commit 88059d223b53689d91b77d79cb4f101defd69e59d24de6576beb8b4336aa77e7 Author: OBS User unknown Date: Mon Jan 15 23:08:16 2007 +0000 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/cups?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/PSLEVEL1.PPD.bz2 b/PSLEVEL1.PPD.bz2 new file mode 100644 index 0000000..b313f76 --- /dev/null +++ b/PSLEVEL1.PPD.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ae8b4a3676e1dba2f0e159e914b630a8b553cf89923e793e6d85029aaa628dd +size 3050 diff --git a/PSLEVEL2.PPD.bz2 b/PSLEVEL2.PPD.bz2 new file mode 100644 index 0000000..c6848c7 --- /dev/null +++ b/PSLEVEL2.PPD.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11ebbabda7bfe47b945a47430360e2e9e6a50e419e488d3c548eaed75ecded5c +size 3055 diff --git a/PrintAnalyzer b/PrintAnalyzer new file mode 100644 index 0000000..84a1a73 --- /dev/null +++ b/PrintAnalyzer @@ -0,0 +1,499 @@ +#!/usr/bin/perl -w +#*************************************************************************** +# PrintAnalyzer +# Generate some stats from cups page_log file +# copyright : (C) 1999 - 2002 by Thies Moeller +# email : moeller@tu-harburg.de +#*************************************************************************** + +#*************************************************************************** +#* * +#* This program is free software; you can redistribute it and/or modify * +#* it under the terms of the GNU General Public License as published by * +#* the Free Software Foundation; either version 2 of the License, or * +#* (at your option) any later version. * +#* * +#*************************************************************************** +use strict; +use warnings; +use POSIX qw(strftime); +use Time::Local; + +############## +# edit place of your page_log file +############## + +my $PAGE_LOG_FILE = "/var/log/cups/page_log"; + +############## +# edit start and end of normal work time +# activity outside this interval will be marked with an "!" +# to disable set WorkStart to 0 and WorkEnd to 23 +############## +my $WorkStart = 8; +my $WorkEnd = 21; + + +############################ nothing to modify below this line ############## + +my %userRequests = (); +my %userPages = (); +my %hourRequests = (); +my %dateRequests = (); +my %datePages = (); +my %pageRequests = (); +my %queueRequests = (); +my %queuePages = (); +my %pageHeu = (); +my %copyRequests = (); +my %logline = (); +my %lastlogline = (); +my %billingStats = (); +my $totalReq = 0; +my $totalPages = 0; + +sub DateCompare +{ + my $date1 = substr($a, 6, 2) * 1024; # Years + my $date2 = substr($b, 6, 2) * 1024; + + $date1 += substr($a,3,2) * 64; # Months + $date2 += substr($b,3,2) * 64; + + $date1 += substr($a, 0, 2); # Days + $date2 += substr($b, 0, 2); + return ($date1 <=> $date2); +} + + +sub tzdiff2sec +{ +## this method is copied from LogReport Time.pm +## Copyright (C) 2000-2002 Stichting LogReport Foundation LogReport@LogReport.org + + die "tzdiff2sec needs 1 arg\n" + unless @_ == 1; + + # e.g. +0100 or -0900 ; +hh:mm, +hhmm, or +hh + my ( $sign, $hour, $min ) = $_[0] =~ /^([+-])?(\d\d):?(\d\d)?$/ + or die "invalid tzdiff format: $_[0]. It must looks like +0100 or -01:00\n"; + $sign ||= "+"; + $hour ||= 0; + $min ||= 0; + my $sec = $hour * 60 * 60 + $min * 60; + $sec *= -1 if $sign eq '-'; + return $sec; +} + +sub getMonth +{ + my $AllMonths= 'JanFebMarAprMayJunJulAugSepOctNovDec'; + my $month = shift(@_); + return index($AllMonths, $month)/3; +} + + + +sub DateTime2Epoch +{ + my ($day,$month,$year,$hour,$min,$sec,$tz)= + unpack'@1 A2 @4 A3 @8 A4 @13 A2 @16 A2 @19 A2 @22 A5', shift(); + + my $epoch=timegm $sec , + $min , + $hour, + $day, + getMonth($month), + $year; + return $epoch - tzdiff2sec($tz); +} + +sub PrintDayLog +{ + my $dateReq; + +############# Output Form ################ +format DAYLOG_TOP = + +Daily Usage +Date %Requests Pages +----------------------------------------- +. + +format DAYLOG = +@<<<<<<<<<<<<< @>>>>>>> @>>>>>>> +$dateReq,$dateRequests{$dateReq},$datePages{$dateReq} +. +############# Output Form ################ + + + $-=0; + $~="DAYLOG"; + $^="DAYLOG_TOP"; + foreach $dateReq (sort DateCompare keys %dateRequests) + { + #printf("Monat %d\n",getMonth($dateReq)); + write; + } +} + +sub PrintUserLog +{ + my $userReq; + my $pageperjob; + +############# Output Form ################ +format USERLOG_TOP = +PrinterAccounting +Username Requests Pages Pages/Request +-------------------------------------------------------- +. + +format USERLOG = +@<<<<<<<<<<<<<<<<<< @>>>>>>> @>>>>>>> @>>>>>>>> +$userReq, $userRequests{$userReq}, $userPages{$userReq}, $pageperjob +. +############# Output Form ################ + + $-=0; + $~="USERLOG"; + $^="USERLOG_TOP"; + foreach $userReq (sort { $userPages{$b} <=> $userPages{$a}} keys %userRequests) + { + $pageperjob = sprintf("%5d", POSIX::ceil($userPages{$userReq} / $userRequests{$userReq})); + write ; + } +} + +sub PrintHourLog +{ + my $hourReq; + my $outOfWorkingTime; + +############# Output Form ################ +format HOURLOG_TOP = +Hour Usage +Hour Requests +--------------------- +. + +format HOURLOG = +@<@<<<<< @>>>>>>> +$outOfWorkingTime,$hourReq,$hourRequests{$hourReq} +. +############# Output Form ################ + + + $-=0; + $~="HOURLOG"; + $^="HOURLOG_TOP"; + + foreach $hourReq (sort {$a <=> $b} keys %hourRequests) + { + if($hourReq <$WorkStart || $hourReq > $WorkEnd) + { + if($hourRequests{$hourReq} == 0) + { + next; + } + else + { + $outOfWorkingTime = "!"; + } + } + else + { + $outOfWorkingTime = " "; + } + write; + } + +} + +sub PrintRequestSize +{ + my $pageReq; + my %pageHeu; + my $pageHeuK; + my $pageperHeu; +############# Output Form ################ + +format REQUESTLOG_TOP = +Heuristic +JobSize %Requests +--------------------------- +. + +format REQUESTLOG = +@||||||||||| @>>>>>>>> +$pageHeuK,$pageperHeu +. +############# Output Form ################ + + # sammeln der Daten + foreach $pageReq (sort {$a <=> $b} keys %pageRequests) + { + if($pageReq >0 && $pageReq <=10) + {$pageHeu{"1. 0-10"}+=$pageRequests{$pageReq}}; + if ($pageReq >10 && $pageReq <=20) + {$pageHeu{ "2. 20-30"}+=$pageRequests{$pageReq}}; + if ($pageReq >20 && $pageReq <=30) + {$pageHeu{ "3. 30-40"}+=$pageRequests{$pageReq}}; + if ($pageReq >40 && $pageReq <=50) + {$pageHeu{ "4. 40-50"}+=$pageRequests{$pageReq}}; + if ($pageReq >50 && $pageReq <=100) + {$pageHeu{ "5. 50-100"}+=$pageRequests{$pageReq}}; + if ($pageReq >100 && $pageReq <=200) + {$pageHeu{ "6. 100-200"}+=$pageRequests{$pageReq}}; + if ($pageReq >200 ) + {$pageHeu{ "7. 200- "}+=$pageRequests{$pageReq}}; + } + $-=0; + $~="REQUESTLOG"; + $^="REQUESTLOG_TOP"; + + foreach $pageHeuK (sort keys %pageHeu) + { + $pageperHeu = sprintf("%5.2f", 100*$pageHeu{$pageHeuK}/$totalReq); + write; + } +} + +sub PrintCopySize +{ + my $copyReq; + my %copyHeu; + my $copyHeuK; + my $copyperheu; +############# Output Form ################ +format COPY_TOP = +Heuristic +Copies %Requests +--------------------------- +. +format COPYLOG = +@||||||||||||| @>>>>>>>> +$copyHeuK,$copyperheu +. +############# Output Form ################ + + + foreach $copyReq (sort {$a <=> $b} keys %copyRequests) + { + if($copyReq == 1 ) + {$copyHeu{" 1. single"}+=$copyRequests{$copyReq}}; + if($copyReq == 2) + {$copyHeu{" 2. 2 "}+=$copyRequests{$copyReq}}; + if($copyReq == 3) + {$copyHeu{" 3. 3 "}+=$copyRequests{$copyReq}}; + if($copyReq == 4) + {$copyHeu{" 4. 4 "}+=$copyRequests{$copyReq}}; + if($copyReq >=5 && $copyReq <=10) + {$copyHeu{" 5. 5-10 "}+=$copyRequests{$copyReq}}; + if ($copyReq >10 && $copyReq <=20) + {$copyHeu{ " 6. 20-30 "}+=$copyRequests{$copyReq}}; + if ($copyReq >20 && $copyReq <=30) + {$copyHeu{ " 7. 30-40 "}+=$copyRequests{$copyReq}}; + if ($copyReq >40 && $copyReq <=50) + {$copyHeu{ " 8. 40-50 "}+=$copyRequests{$copyReq}}; + if ($copyReq >50 && $copyReq <=100) + {$copyHeu{ " 9. 50-100 "}+=$copyRequests{$copyReq}}; + if ($copyReq >100 && $copyReq <=200) + {$copyHeu{ "10. 100-200 "}+=$copyRequests{$copyReq}}; + if ($copyReq >200 ) + {$copyHeu{ "11. 200- "}+=$copyRequests{$copyReq}}; + } + $-=0; + $~="COPYLOG"; + $^="COPY_TOP"; + foreach $copyHeuK (sort keys %copyHeu) + { + $copyperheu = sprintf("%5.2f", 100*$copyHeu{$copyHeuK}/$totalReq); + write; + } +} + +sub PrintQueueLog +{ + my $queueReq; + my $reqperqueue; + my $pagepermin; + my $pageperqueue ; +############# Output Form ################ +format QUEUELOG_TOP = +Queue Heuristic +Queue %Requests %Pages Pages +-------------------------------------------------------------- +. + +format QUEUELOG = +@>>>>>>>>>>>>>>>>>>>>> @>>>>>>> @>>>>>>> @>>>>>>>> +$queueReq,$reqperqueue,$pageperqueue,$queuePages{$queueReq} +. +############# Output Form ################ + + + $-=0; + $~="QUEUELOG"; + $^="QUEUELOG_TOP"; + foreach $queueReq (sort { $queuePages{$b} <=> $queuePages{$a} } keys %queuePages) + { + $reqperqueue = sprintf("%5.2f", 100*$queueRequests{$queueReq}/$totalReq); + $pageperqueue = sprintf("%5.2f", 100*$queuePages{$queueReq}/$totalPages); + write; + } + +} + +sub PrintBillingLog +{ + my $billing; + my $pageperbilling ; + my $billinguser; + +############# Output Form ################ +format BILLINGLOG_TOP = +Billing Heuristic +Billing Pages +-------------------------------------------------------------- +. + +format BILLINGLOG = +@<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>> +$billing,$pageperbilling +. + +format BILLINGUSERLOG = +|- @>>>>>>>>>>>>>>>>>>>>> @>>>>>>>> +$billinguser,$pageperbilling +. +############# Output Form ################ + + + $-=0; + $~="BILLINGLOG"; + $^="BILLINGLOG_TOP"; + foreach $billing (sort keys %billingStats) + { + $pageperbilling = $billingStats{$billing}{"total_pages"}; + $~="BILLINGLOG"; + write; + $~="BILLINGUSERLOG"; + foreach $billinguser ( sort {$billingStats{$billing}{"user"}{$b} <=> $billingStats{$billing}{"user"}{$a}} keys %{$billingStats{$billing}{"user"}}) + { + $pageperbilling = $billingStats{$billing}{"user"}{$billinguser}; + write; + } + } + +} + +sub HandleNewJob +{ + my $realpages = $lastlogline{num_pages}*$lastlogline{copies}; + my $hourstring = POSIX::strftime "%H", localtime($lastlogline{time}) ; + my $daystring = POSIX::strftime "%d/%m/%y", localtime($lastlogline{time}) ; + + $userRequests{$lastlogline{user}}++; + $userPages{$lastlogline{user}}+=$realpages; + $dateRequests{$daystring}++; + $datePages{$daystring}+=$realpages; + $pageRequests{$realpages}++; + $queueRequests{$lastlogline{printer}}++; + $queuePages{$lastlogline{printer}}+=$realpages; + $hourRequests{$hourstring}++; + $copyRequests{$lastlogline{copies}}++; + $billingStats{$lastlogline{billing}}{"user"}{$lastlogline{user}} += $realpages; + $billingStats{$lastlogline{billing}}{"printer"}{$lastlogline{printer}} += $realpages; + $billingStats{$lastlogline{billing}}{"total_pages"} += $realpages; + + $totalReq++; + $totalPages+=$realpages; + +} + +sub InitHourHistogram +{ + my $i; + for ($i = 0 ; $i <=24 ; $i++) + { + my $hourstring = sprintf("%02d", $i); + $hourRequests{$hourstring}=0; + } +} + +# main +open(PAGELOG,"$PAGE_LOG_FILE") || die "Can't open pagelog file $PAGE_LOG_FILE"; + + +#initialize the hourhistogram +InitHourHistogram; + +while() +{ + my $time; + my $pagenum; + %logline = (); + chomp(); + ($logline{printer}, + $logline{user}, + $logline{jobid}, + $time, + $pagenum, + $logline{copies}, + $logline{billing}) = + ($_ =~ /^(.*)\s(.*)\s(\d+)\s(\[.*\])\s(\d+)\s(\d+)\s(.*)$/) + or do { + print STDERR "Cannot convert $_ \n"; + next; + }; + # downcase username because of samba + $logline{user}=~ tr/A-Z/a-z/; + # handle empty user + if ($logline{user} eq "") { + $logline{user}="TestPages"; + } + # handle empty billing code + if ($logline{billing} eq "") { + $logline{billing}="-none-"; + } + my $endtime = DateTime2Epoch( $time ); + + if ( ! defined $lastlogline{jobid} || $lastlogline{jobid} ne $logline{jobid} ) + { + # new job; + $logline{num_pages} = 1; + $logline{time} = $endtime; + if ( defined $lastlogline{jobid} ) { + HandleNewJob; + }; + } else { + # same job; update info + $logline{num_pages} = $lastlogline{num_pages} + 1; + $logline{time} = $lastlogline{time}; + } + %lastlogline= %logline; + +} +close(PAGELOG); + +# handle last job +if ( defined $lastlogline{jobid} ) { + HandleNewJob; + } + + + +PrintQueueLog; +PrintRequestSize; +PrintCopySize; +PrintBillingLog; +PrintUserLog; +PrintHourLog; +PrintDayLog; + + + + + + diff --git a/cups-1.1.21-testppd_duplex.patch b/cups-1.1.21-testppd_duplex.patch new file mode 100644 index 0000000..67f7dee --- /dev/null +++ b/cups-1.1.21-testppd_duplex.patch @@ -0,0 +1,21 @@ +--- cups-1.1.21/systemv/cupstestppd.c.orig 2004-08-23 20:36:50.000000000 +0200 ++++ cups-1.1.21/systemv/cupstestppd.c 2004-09-20 16:19:12.427769515 +0200 +@@ -854,6 +854,7 @@ + strcmp(choice->choice, "DuplexTumble") && + strcmp(choice->choice, "SimplexTumble")) + { ++#if 0 + if (verbose >= 0) + { + if (!errors && !verbose) +@@ -865,6 +866,10 @@ + } + + errors ++; ++#else ++ printf(" WARN Bad %s choice %s!\n", ++ option->keyword, choice->choice); ++#endif + } + } + diff --git a/cups-1.1.21-umlaut_printer.patch b/cups-1.1.21-umlaut_printer.patch new file mode 100644 index 0000000..eb97f72 --- /dev/null +++ b/cups-1.1.21-umlaut_printer.patch @@ -0,0 +1,42 @@ +--- cups-1.1.21/scheduler/client.c.orig 2004-09-14 17:00:56.102330657 +0200 ++++ cups-1.1.21/scheduler/client.c 2004-09-14 18:32:04.648731933 +0200 +@@ -1262,10 +1330,36 @@ + * names are not case sensitive but filenames can be... + */ + +- con->uri[strlen(con->uri) - 4] = '\0'; /* Drop ".ppd" */ ++ int i; ++ char tmp_uri[HTTP_MAX_URI]; ++ char *uri, *len; ++ ++ memset(tmp_uri, 0, HTTP_MAX_URI); ++ uri = con->uri; ++ len = uri + strlen(uri) - 4; ++ i = 0; + +- if ((p = FindPrinter(con->uri + 10)) != NULL) +- snprintf(con->uri, sizeof(con->uri), "/ppd/%s.ppd", p->name); ++ while(uri < len) ++ { ++ if (uri[0] == '%' && isxdigit(uri[1]) && isxdigit(uri[2])) ++ { ++ tmp_uri[i] = (isdigit(uri[1])?uri[1]-'0':(toupper(uri[1])-'A'+10))*16 ++ + (isdigit(uri[2])?uri[2]-'0':(toupper(uri[2])-'A'+10)); ++ uri += 3; ++ } ++ else ++ { ++ tmp_uri[i] = uri[0]; ++ uri++; ++ } ++ i++; ++ } ++ tmp_uri[i] = '\0'; ++ ++ // con->uri[strlen(con->uri) - 4] = '\0'; /* Drop ".ppd" */ ++ ++ if ((p = FindPrinter(tmp_uri + 10)) != NULL) ++ snprintf(con->uri, sizeof(con->uri), "/ppd/%s.ppd", p->name); + else + { + if (!SendError(con, HTTP_NOT_FOUND)) diff --git a/cups-1.1.21rc2-preauth_security.patch b/cups-1.1.21rc2-preauth_security.patch new file mode 100644 index 0000000..37fa7b1 --- /dev/null +++ b/cups-1.1.21rc2-preauth_security.patch @@ -0,0 +1,97 @@ +--- cups-1.1.21rc2/scheduler/client.c.orig 2004-08-31 15:48:47.000000000 +0200 ++++ cups-1.1.21rc2/scheduler/client.c 2004-08-31 15:52:54.755695050 +0200 +@@ -293,6 +293,74 @@ + } + } + ++ /* ++ * Do ACL stuff... ++ */ ++ ++ if (BrowseACL && (BrowseACL->num_allow || BrowseACL->num_deny)) ++ { ++ int hostlen = strlen(con->http.hostname); ++ int auth = AUTH_DENY; ++ ++ if (address == 0x7f000001) ++ { ++ /* ++ * Access from localhost (127.0.0.1) is always allowed... ++ */ ++ ++ auth = AUTH_ALLOW; ++ } ++ else ++ { ++ /* ++ * Do authorization checks on the domain/address... ++ */ ++ ++ switch (BrowseACL->order_type) ++ { ++ default : ++ auth = AUTH_DENY; /* anti-compiler-warning-code */ ++ break; ++ ++ case AUTH_ALLOW : /* Order Deny,Allow */ ++ auth = AUTH_ALLOW; ++ ++ if (CheckAuth(address, con->http.hostname, hostlen, ++ BrowseACL->num_deny, BrowseACL->deny)) ++ auth = AUTH_DENY; ++ ++ if (CheckAuth(address, con->http.hostname, hostlen, ++ BrowseACL->num_allow, BrowseACL->allow)) ++ auth = AUTH_ALLOW; ++ break; ++ ++ case AUTH_DENY : /* Order Allow,Deny */ ++ auth = AUTH_DENY; ++ ++ if (CheckAuth(address, con->http.hostname, hostlen, ++ BrowseACL->num_allow, BrowseACL->allow)) ++ auth = AUTH_ALLOW; ++ ++ if (CheckAuth(address, con->http.hostname, hostlen, ++ BrowseACL->num_deny, BrowseACL->deny)) ++ auth = AUTH_DENY; ++ break; ++ } ++ } ++ ++ if (auth == AUTH_DENY) ++ { ++ LogMessage(L_DEBUG, "AcceptClient(): Refused connection from from %s; please check BrowseAllow/BrowseDeny settings", ++ con->http.hostname); ++#ifdef WIN32 ++ closesocket(con->http.fd); ++#else ++ close(con->http.fd); ++#endif /* WIN32 */ ++ return; ++ } ++ } ++ + LogMessage(L_DEBUG, "AcceptClient: %d from %s:%d.", con->http.fd, + con->http.hostname, ntohs(con->http.hostaddr.sin_port)); + +--- cups-1.1.21rc2/conf/cupsd.conf.in.orig 2004-08-31 15:48:47.000000000 +0200 ++++ cups-1.1.21rc2/conf/cupsd.conf.in 2004-08-31 15:55:01.452514988 +0200 +@@ -575,6 +575,9 @@ + #BrowseAllow address + #BrowseDeny address + ++BrowseAllow @LOCAL ++BrowseDeny All ++ + # + # BrowseInterval: the time between browsing updates in seconds. Default + # is 30 seconds. +@@ -769,6 +772,7 @@ + Deny From All + Allow From 127.0.0.1 + Allow From 127.0.0.2 ++Allow From @LOCAL + + + # diff --git a/cups-1.1.21rc2-usermode.patch b/cups-1.1.21rc2-usermode.patch new file mode 100644 index 0000000..c27d017 --- /dev/null +++ b/cups-1.1.21rc2-usermode.patch @@ -0,0 +1,32 @@ +--- cups-1.1.21rc2/conf/cupsd.conf.in.orig 2004-08-31 15:55:01.000000000 +0200 ++++ cups-1.1.21rc2/conf/cupsd.conf.in 2004-08-31 15:57:30.562005961 +0200 +@@ -246,6 +246,7 @@ + # + + #Printcap /etc/printcap ++Printcap /etc/printcap + + # + # PrintcapFormat: the format of the printcap file, currently either +@@ -366,6 +367,9 @@ + + #User @CUPS_USER@ + #Group @CUPS_GROUP@ ++User @CUPS_USER@ ++Group @CUPS_GROUP@ ++RunAsUser Yes + + # + # RIPCache: the amount of memory that each RIP should use to cache +@@ -834,8 +838,9 @@ + # the group name using the SystemGroup directive. + # + +-AuthType Basic +-AuthClass System ++AuthType BasicDigest ++AuthClass Group ++AuthGroupName sys + + ## Restrict access to local domain + Order Deny,Allow diff --git a/cups-1.1.23-testpage.patch b/cups-1.1.23-testpage.patch new file mode 100644 index 0000000..33dec8d --- /dev/null +++ b/cups-1.1.23-testpage.patch @@ -0,0 +1,261 @@ +--- cups-1.1.23/data/testprint.ps.orig 2005-01-03 20:29:45.000000000 +0100 ++++ cups-1.1.23/data/testprint.ps 2005-01-21 14:27:36.019127436 +0100 +@@ -107,99 +107,99 @@ + } ifelse + 100 string cvs show % Convert to a string and show it... + } bind def +-/CUPSLOGO { % Draw the CUPS logo +- % height CUPSLOGO +- % Start with a big C... +- /Helvetica findfont 1 index scalefont setfont +- 0 setgray +- 0 0 moveto +- (C) show +- +- % Then "UNIX Printing System" much smaller... +- /Helvetica-Bold findfont 1 index 9 div scalefont setfont +- 0.25 mul +- dup dup 2.0 mul moveto +- (UNIX) show +- dup dup 1.6 mul moveto +- (Printing) show +- dup 1.2 mul moveto +- (System) show +-} bind def +-/ESPLOGO { % Draw the ESP logo +- % height ESPLOGO +- % Compute the size of the logo... +- 0 0 +- 2 index 1.5 mul 3 index +- +- % Do the "metallic" fill from 10% black to 40% black... +- 1 -0.001 0 { +- dup % loopval +- -0.15 mul % loopval * -0.15 +- 0.9 add % 0.9 - loopval * 0.15 +- setgray % set gray shade +- +- 0 % x +- 1 index neg % loopval +- 1 add % 1 - loopval +- 3 index % height +- mul % height * (1 - loopval) +- moveto % starting point +- +- dup % loopval +- 3 index % width +- mul % loopval * width +- 2 index % height +- lineto % Next point +- +- 0 % x +- 2 index % height +- lineto % Next point +- +- closepath +- fill +- +- dup % loopval +- 0.15 mul % loopval * 0.15 +- 0.6 add % 0.6 + loopval * 0.15 +- setgray +- +- dup % loopval +- neg 1 add % 1 - loopval +- 3 index % width +- mul % (1 - loopval) * width +- 0 % y +- moveto % Starting point +- +- 2 index % width +- exch % loopval +- 2 index % height +- mul % loopval * height +- lineto % Next point +- +- 1 index % width +- 0 % y +- lineto % Next point +- +- closepath +- fill +- } for +- +- 0 setgray rectstroke +- +- /Helvetica-BoldOblique findfont 1 index 3 div scalefont setfont +- dup 40 div +- +- dup 4 mul 1 index 25 mul moveto (E) show +- dup 10 mul 1 index 15 mul moveto (S) show +- dup 16 mul 1 index 5 mul moveto (P) show +- +- /Helvetica-BoldOblique findfont 2 index 5 div scalefont setfont +- dup 14 mul 1 index 29 mul moveto (asy) show +- dup 20 mul 1 index 19 mul moveto (oftware) show +- dup 26 mul 1 index 9 mul moveto (roducts) show +- +- pop +-} bind def ++%/CUPSLOGO { % Draw the CUPS logo ++% % height CUPSLOGO ++% % Start with a big C... ++% /Helvetica findfont 1 index scalefont setfont ++% 0 setgray ++% 0 0 moveto ++% (C) show ++% ++% % Then "UNIX Printing System" much smaller... ++% /Helvetica-Bold findfont 1 index 9 div scalefont setfont ++% 0.25 mul ++% dup dup 2.0 mul moveto ++% (UNIX) show ++% dup dup 1.6 mul moveto ++% (Printing) show ++% dup 1.2 mul moveto ++% (System) show ++%} bind def ++%/ESPLOGO { % Draw the ESP logo ++% % height ESPLOGO ++% % Compute the size of the logo... ++% 0 0 ++% 2 index 1.5 mul 3 index ++% ++% % Do the "metallic" fill from 10% black to 40% black... ++% 1 -0.001 0 { ++% dup % loopval ++% -0.15 mul % loopval * -0.15 ++% 0.9 add % 0.9 - loopval * 0.15 ++% setgray % set gray shade ++% ++% 0 % x ++% 1 index neg % loopval ++% 1 add % 1 - loopval ++% 3 index % height ++% mul % height * (1 - loopval) ++% moveto % starting point ++% ++% dup % loopval ++% 3 index % width ++% mul % loopval * width ++% 2 index % height ++% lineto % Next point ++% ++% 0 % x ++% 2 index % height ++% lineto % Next point ++% ++% closepath ++% fill ++% ++% dup % loopval ++% 0.15 mul % loopval * 0.15 ++% 0.6 add % 0.6 + loopval * 0.15 ++% setgray ++% ++% dup % loopval ++% neg 1 add % 1 - loopval ++% 3 index % width ++% mul % (1 - loopval) * width ++% 0 % y ++% moveto % Starting point ++% ++% 2 index % width ++% exch % loopval ++% 2 index % height ++% mul % loopval * height ++% lineto % Next point ++% ++% 1 index % width ++% 0 % y ++% lineto % Next point ++% ++% closepath ++% fill ++% } for ++% ++% 0 setgray rectstroke ++% ++% /Helvetica-BoldOblique findfont 1 index 3 div scalefont setfont ++% dup 40 div ++% ++% dup 4 mul 1 index 25 mul moveto (E) show ++% dup 10 mul 1 index 15 mul moveto (S) show ++% dup 16 mul 1 index 5 mul moveto (P) show ++% ++% /Helvetica-BoldOblique findfont 2 index 5 div scalefont setfont ++% dup 14 mul 1 index 29 mul moveto (asy) show ++% dup 20 mul 1 index 19 mul moveto (oftware) show ++% dup 26 mul 1 index 9 mul moveto (roducts) show ++% ++% pop ++%} bind def + %%EndResource + %%EndProlog + %%Page: 1 1 +@@ -480,9 +480,13 @@ + + % Draw the copyright notice at the bottom... + pageWidth 36 mul % Center of page +- pageHeight 10 mul % Bottom of page ++ pageHeight 13 mul % Bottom of page + 2 copy moveto % Position text +- (Printed Using CUPS v1.1.x) CENTER % Show text centered ++ (Printed Using CUPS 1.1.23) CENTER % Show text centered ++ ++ pageHeight 4 mul sub % Move down... ++ 2 copy moveto % Position text ++ (and personal build CUPS version) CENTER % Show text centered + + pageHeight 2 mul sub % Move down... + 2 copy moveto % Position text +@@ -490,30 +494,30 @@ + (Copyright 1993-2005 by Easy Software Products, All Rights Reserved.) CENTER + pageHeight sub % Move down... + 2 copy moveto % Position text +- (CUPS, Easy Software Products and their logos are the trademark property of) CENTER ++ (NOVELL homepage: http://www.novell.com) CENTER + pageHeight sub % Move down... + 2 copy moveto % Position text +- (Easy Software Products, 44141 Airport View Drive, Suite 204,) CENTER ++ (Test page derived from the CUPS test page.) CENTER + pageHeight sub % Move down... + 2 copy moveto % Position text +- (Hollywood, Maryland, 20636, USA.) CENTER ++ (CUPS is a trademark property of Easy Software Products) CENTER + +- % Then the CUPS logo.... +- gsave +- pageWidth 4 mul +- pageHeight 4 mul +- translate +- pageWidth 9 mul CUPSLOGO +- grestore +- +- % And the ESP logo.... +- gsave +- pageWidth 59 mul +- pageHeight 4 mul +- translate +- pageWidth 6 mul ESPLOGO +- grestore +-% Show the page... ++% % Then the CUPS logo.... ++% gsave ++% pageWidth 4 mul ++% pageHeight 4 mul ++% translate ++% pageWidth 9 mul CUPSLOGO ++% grestore ++ ++% % And the ESP logo.... ++% gsave ++% pageWidth 59 mul ++% pageHeight 4 mul ++% translate ++% pageWidth 6 mul ESPLOGO ++% grestore ++%% Show the page... + grestore + showpage + % diff --git a/cups-1.2.0-ppdsdat_generation.patch b/cups-1.2.0-ppdsdat_generation.patch new file mode 100644 index 0000000..5a72223 --- /dev/null +++ b/cups-1.2.0-ppdsdat_generation.patch @@ -0,0 +1,93 @@ +--- cups-1.2.0/scheduler/main.c.orig 2006-03-18 04:05:12.000000000 +0100 ++++ cups-1.2.0/scheduler/main.c 2006-03-29 19:02:22.000000000 +0200 +@@ -148,6 +148,7 @@ + */ + + fg = 0; ++ ppds_generation = 0; + + for (i = 1; i < argc; i ++) + if (argv[i][0] == '-') +@@ -219,6 +220,10 @@ + #endif /* HAVE_LAUNCHD */ + break; + ++ case 'P' : /* generate ppds only */ ++ ppds_generation = 1; ++ break; ++ + default : /* Unknown option */ + _cupsLangPrintf(stderr, _("cupsd: Unknown option \"%c\" - " + "aborting!\n"), *opt); +@@ -287,17 +292,18 @@ + perror("cupsd"); + return (1); + } +- else if (WIFEXITED(i)) ++ else if (!ppds_generation && WIFEXITED(i)) + { + fprintf(stderr, "cupsd: Child exited with status %d!\n", + WEXITSTATUS(i)); + return (2); + } +- else ++ else if (!ppds_generation || WTERMSIG(i)!=0) + { + fprintf(stderr, "cupsd: Child exited on signal %d!\n", WTERMSIG(i)); + return (3); +- } ++ } else ++ return (0); + } + } + +@@ -482,6 +488,9 @@ + } + #endif /* __sgi */ + ++ if (ppds_generation > 0) ++ return (stop_scheduler); ++ + /* + * Initialize authentication certificates... + */ +@@ -2260,13 +2269,14 @@ + usage(int status) /* O - Exit status */ + { + _cupsLangPuts(status ? stderr : stdout, +- _("Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n" ++ _("Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l] [-P]\n" + "\n" + "-c config-file Load alternate configuration file\n" + "-f Run in the foreground\n" + "-F Run in the foreground but detach\n" + "-h Show this usage message\n" +- "-l Run cupsd from launchd(8)\n")); ++ "-l Run cupsd from launchd(8)\n" ++ "-P Generate ppds.dat and exit\n")); + exit(status); + } + +--- cups-1.2.0/scheduler/cupsd.h.orig 2006-03-18 04:05:12.000000000 +0100 ++++ cups-1.2.0/scheduler/cupsd.h 2006-03-29 17:30:47.000000000 +0200 +@@ -202,6 +202,8 @@ + char *envp[], int infd, int outfd, + int errfd, int backfd, int root, int *pid); + ++VAR int ppds_generation;/* Generate ppds.dat and exit() */ ++ + + /* + * End of "$Id: cupsd.h 5305 2006-03-18 03:05:12Z mike $". +--- cups-1.2.0/scheduler/conf.c.orig 2006-03-14 12:54:45.000000000 +0100 ++++ cups-1.2.0/scheduler/conf.c 2006-03-29 17:30:47.000000000 +0200 +@@ -716,6 +716,9 @@ + TempDir, strerror(errno)); + } + ++ if (ppds_generation > 0) ++ return(1); ++ + /* + * Setup environment variables... + */ diff --git a/cups-1.2.2-testppd_filename.patch b/cups-1.2.2-testppd_filename.patch new file mode 100644 index 0000000..3b533b0 --- /dev/null +++ b/cups-1.2.2-testppd_filename.patch @@ -0,0 +1,27 @@ +--- cups-1.2.2/systemv/cupstestppd.c.orig 2006-07-25 18:43:43.000000000 +0200 ++++ cups-1.2.2/systemv/cupstestppd.c 2006-07-25 19:09:20.000000000 +0200 +@@ -90,6 +90,7 @@ + int i, j, k, m, n; /* Looping vars */ + int len; /* Length of option name */ + char *opt; /* Option character */ ++ char *ppdfilename; /* Pointer to actual PPD file */ + const char *ptr; /* Pointer into string */ + int files; /* Number of files */ + int verbose; /* Want verbose output? */ +@@ -293,6 +294,7 @@ + + errors = 0; + ppdversion = 43; ++ ppdfilename = argv[i]; + + if (verbose > 0) + _cupsLangPuts(stdout, +@@ -1204,7 +1206,7 @@ + + if (verbose >= 0) + { +- check_basics(argv[i]); ++ check_basics(ppdfilename); + + /* + * Look for default keywords with no corresponding option... diff --git a/cups-1.2.5-desktop_file.patch b/cups-1.2.5-desktop_file.patch new file mode 100644 index 0000000..513cd23 --- /dev/null +++ b/cups-1.2.5-desktop_file.patch @@ -0,0 +1,11 @@ +--- cups-1.2.5/desktop/cups.desktop.orig 2006-10-02 18:26:04.000000000 +0200 ++++ cups-1.2.5/desktop/cups.desktop 2006-11-06 14:39:32.000000000 +0100 +@@ -1,7 +1,7 @@ + [Desktop Entry] + Categories=Application;System;X-Red-Hat-Base; + Encoding=UTF-8 +-Exec=htmlview http://localhost:631/ ++Exec=desktop-launch http://localhost:631/ + GenericName= + Icon=cups + MimeType= diff --git a/cups-1.2.6-lppasswd_permission.patch b/cups-1.2.6-lppasswd_permission.patch new file mode 100644 index 0000000..dc9441c --- /dev/null +++ b/cups-1.2.6-lppasswd_permission.patch @@ -0,0 +1,12 @@ +--- cups-1.2.6/scheduler/conf.c.orig 2006-11-09 15:21:33.000000000 +0100 ++++ cups-1.2.6/scheduler/conf.c 2006-11-09 15:30:46.000000000 +0100 +@@ -640,7 +640,9 @@ + check_permissions(StateDir, NULL, 0755, RunUser, Group, 1, 1) < 0 || + check_permissions(StateDir, "certs", RunUser ? 0711 : 0511, User, + SystemGroupIDs[0], 1, 1) < 0 || ++#if 0 + check_permissions(ServerRoot, NULL, 0755, RunUser, Group, 1, 0) < 0 || ++#endif + check_permissions(ServerRoot, "ppd", 0755, RunUser, Group, 1, 1) < 0 || + check_permissions(ServerRoot, "ssl", 0700, RunUser, Group, 1, 0) < 0 || + check_permissions(ServerRoot, "cupsd.conf", ConfigFilePerm, RunUser, diff --git a/cups-1.2.7-source.tar.bz2 b/cups-1.2.7-source.tar.bz2 new file mode 100644 index 0000000..f539804 --- /dev/null +++ b/cups-1.2.7-source.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7485d6b3dcbd338a2361aff66c516f8dfafc1c81ea5b01396f6ee5f365c4eb3 +size 3585758 diff --git a/cups-1.2b2-access_conf.patch b/cups-1.2b2-access_conf.patch new file mode 100644 index 0000000..3148e22 --- /dev/null +++ b/cups-1.2b2-access_conf.patch @@ -0,0 +1,10 @@ +--- cups-1.2b2/conf/cupsd.conf.in.orig 2006-02-16 13:28:29.000000000 +0100 ++++ cups-1.2b2/conf/cupsd.conf.in 2006-03-14 21:10:37.000000000 +0100 +@@ -29,6 +29,7 @@ + + Order allow,deny + Allow localhost ++ Allow 127.0.0.2 + + + # Restrict access to the admin pages... diff --git a/cups-1.2rc1-template.patch b/cups-1.2rc1-template.patch new file mode 100644 index 0000000..a466db9 --- /dev/null +++ b/cups-1.2rc1-template.patch @@ -0,0 +1,12 @@ +--- cups-1.2rc1/templates/choose-uri.tmpl.orig 2006-03-18 13:56:48.000000000 +0100 ++++ cups-1.2rc1/templates/choose-uri.tmpl 2006-03-29 20:03:30.000000000 +0200 +@@ -24,6 +24,9 @@ + + lpd://hostname/queue + ++ smb://servername/printer ++ smb://username:password@workgroup/servername/printer ++ + socket://hostname + socket://hostname:9100 + diff --git a/cups-1.2rc3-libwrap.patch b/cups-1.2rc3-libwrap.patch new file mode 100644 index 0000000..8ffaaf4 --- /dev/null +++ b/cups-1.2rc3-libwrap.patch @@ -0,0 +1,50 @@ +--- cups-1.2rc3/scheduler/Makefile.orig 2006-03-05 17:48:12.000000000 +0100 ++++ cups-1.2rc3/scheduler/Makefile 2006-04-26 16:52:06.000000000 +0200 +@@ -73,6 +73,7 @@ + testmime \ + testspeed + ++CUPSDLIBS += -lwrap + + # + # Make everything... +--- cups-1.2rc3/scheduler/client.c.orig 2006-04-17 23:24:17.000000000 +0200 ++++ cups-1.2rc3/scheduler/client.c 2006-04-26 16:34:40.000000000 +0200 +@@ -59,6 +59,11 @@ + # include + #endif /* HAVE_GNUTLS */ + ++#include ++#include ++int allow_severity = LOG_INFO; ++int deny_severity = LOG_WARNING; ++ + + /* + * Local functions... +@@ -149,6 +154,25 @@ + return; + } + ++ /* ++ * libwrap/tcp_wrappers: ++ * draht@suse.de, Tue Jan 29 2002 ++ */ ++ ++ { ++ struct request_info wrap_req; ++ ++ request_init(&wrap_req, RQ_DAEMON, "cupsd" , RQ_FILE, con->http.fd, NULL); ++ fromhost(&wrap_req); ++ if (!hosts_access(&wrap_req)) { /* we do not accept the connection: */ ++ cupsdLogMessage(CUPSD_LOG_WARN, ++ "tcp_wrappers refused connection from %s. See /etc/hosts.allow and /etc/hosts.deny.", ++ eval_client(&wrap_req)); ++ close(con->http.fd); ++ return; ++ } ++ } ++ + #ifdef AF_INET6 + if (lis->address.addr.sa_family == AF_INET6) + { diff --git a/cups-1.2rc3-mime.patch b/cups-1.2rc3-mime.patch new file mode 100644 index 0000000..3a0b064 --- /dev/null +++ b/cups-1.2rc3-mime.patch @@ -0,0 +1,22 @@ +--- cups-1.2rc3/conf/mime.types.orig 2006-04-14 21:21:03.000000000 +0200 ++++ cups-1.2rc3/conf/mime.types 2006-04-26 16:31:35.000000000 +0200 +@@ -80,6 +80,8 @@ + contains(0,1024,"LANGUAGE = POSTSCRIPT") \ + (contains(0,1024,<0a>%!) + \ + !contains(0,1024,"ENTER LANGUAGE"))) ++#application/x-dvi dvi string(0,) ++application/netscape-ps ps (string(0,%!) + contains(30,200,"Mozilla")) + application/vnd.hp-HPGL hpgl string(0,<1B>&)\ + string(0,<1B>E<1B>%0B) \ + string(0,<1B>%-1B) string(0,<201B>)\ +--- cups-1.2rc3/conf/mime.convs.orig 2006-04-14 21:21:03.000000000 +0200 ++++ cups-1.2rc3/conf/mime.convs 2006-04-26 16:31:04.000000000 +0200 +@@ -45,6 +45,8 @@ + + application/pdf application/postscript 33 pdftops + application/postscript application/vnd.cups-postscript 66 pstops ++#application/x-dvi application/postscript 50 dvitops ++application/netscape-ps application/vnd.cups-postscript 33 ogonki + application/vnd.hp-HPGL application/postscript 66 hpgltops + application/x-cshell application/postscript 33 texttops + application/x-csource application/postscript 33 texttops diff --git a/cups-1.2rc3-pswrite.patch b/cups-1.2rc3-pswrite.patch new file mode 100644 index 0000000..851fad3 --- /dev/null +++ b/cups-1.2rc3-pswrite.patch @@ -0,0 +1,27 @@ +--- cups-1.2rc3/conf/mime.convs.orig 2006-04-26 17:24:57.000000000 +0200 ++++ cups-1.2rc3/conf/mime.convs 2006-04-26 17:32:16.000000000 +0200 +@@ -46,7 +46,9 @@ + application/pdf application/postscript 33 pdftops + application/postscript application/vnd.cups-postscript 66 pstops + #application/x-dvi application/postscript 50 dvitops +-application/netscape-ps application/vnd.cups-postscript 33 ogonki ++application/netscape-ps application/postscript 33 ogonki ++#application/mozilla-ps application/postscript 33 pswrite ++application/mozilla-ps application/vnd.cups-postscript 66 pstops + application/vnd.hp-HPGL application/postscript 66 hpgltops + application/x-cshell application/postscript 33 texttops + application/x-csource application/postscript 33 texttops +--- cups-1.2rc3/conf/mime.types.orig 2006-04-26 17:24:57.000000000 +0200 ++++ cups-1.2rc3/conf/mime.types 2006-04-26 17:30:33.000000000 +0200 +@@ -81,7 +81,10 @@ + (contains(0,1024,<0a>%!) + \ + !contains(0,1024,"ENTER LANGUAGE"))) + #application/x-dvi dvi string(0,) +-application/netscape-ps ps (string(0,%!) + contains(30,200,"Mozilla")) ++application/mozilla-ps ps (string(0,%!) + \ ++ contains(30,200,"Creator: Mozilla PostScript")) ++application/netscape-ps ps (string(0,%!) + \ ++ contains(30,200,"Creator: Mozilla (NetScape)")) + application/vnd.hp-HPGL hpgl string(0,<1B>&)\ + string(0,<1B>E<1B>%0B) \ + string(0,<1B>%-1B) string(0,<201B>)\ diff --git a/cups-pam.diff b/cups-pam.diff new file mode 100644 index 0000000..4ba852c --- /dev/null +++ b/cups-pam.diff @@ -0,0 +1,5 @@ +--- conf/pam.suse 2003/02/07 11:09:32 1.1 ++++ conf/pam.suse 2003/02/07 11:10:03 +@@ -0,0 +1,2 @@ ++auth include common-auth ++account include common-account diff --git a/cups.changes b/cups.changes new file mode 100644 index 0000000..e14f56b --- /dev/null +++ b/cups.changes @@ -0,0 +1,1411 @@ +------------------------------------------------------------------- +Wed Jan 10 11:32:34 CET 2007 - kssingvo@suse.de + +- added Required-Start: to rccupsrenice (bugzilla#231675) + +------------------------------------------------------------------- +Fri Jan 5 15:41:34 CET 2007 - sbrabec@suse.cz + +- Fixed devel dependencies. + +------------------------------------------------------------------- +Tue Dec 12 11:40:20 CET 2006 - kssingvo@suse.de + +- removed broken locale patch: PS generation fails (bugzilla#227205) + +------------------------------------------------------------------- +Thu Nov 16 16:26:30 CET 2006 - kssingvo@suse.de + +- Upgrade to 1.2.7 (another bugfix version): + * Documentation updates + * The PostScript filter now rotates the bounding box values as needed + * The scheduler no longer loads the remote printer cache when browsing + is disabled + * The scheduler no longer writes a new launchd configuration file if + it doesn't have to + * The scheduler now picks up on changes to IPv6 and DNS configuration + * The lpstat program could still hang + * Fixed an inefficiency in the SNMP IPP detection code + * The SSL negotiation code did not implement short timeouts + +------------------------------------------------------------------- +Tue Nov 14 17:11:34 CET 2006 - kssingvo@suse.de + +- fixed non conform PPD values in PSLEVEL*.PPD (bugzilla#219779) + +------------------------------------------------------------------- +Thu Nov 9 15:32:28 CET 2006 - kssingvo@suse.de + +- fixed perm problem of /etc/cups regarding lppasswd (bugzilla#218745) + +------------------------------------------------------------------- +Tue Nov 7 14:44:54 CET 2006 - kssingvo@suse.de + +- Upgrade to 1.2.6 (bugfix version): + * "lpc status" did not show the number of queued jobs for disabled queues + * The lpstat program could hang + * The serial backend did not support the new USB serial filenames on Linux + * The parallel backend did not support bidirectional I/O properly + * The network backends now log the numeric address that is being used + * Fixed a compile error when using libpaper + * Fixed a compile error when compiling on Solaris with threading enabled + * Missing printer-state-changed event for printer-state-message updates + +------------------------------------------------------------------- +Mon Nov 6 15:35:37 CET 2006 - kssingvo@suse.de + +- coolo's patch seems not to work, now using desktop-launch + (bugzilla#207915) + +------------------------------------------------------------------- +Mon Nov 6 14:54:04 CET 2006 - kssingvo@suse.de + +- fixed cups.desktop file (bugzilla#207915) +- suse_update_desktop_file produces strange results in my xterm. + redirecting output to /dev/null +- removed duplicate entry in %files: %{_libdir}/cups/monitor/* + +------------------------------------------------------------------- +Mon Oct 23 10:13:18 CEST 2006 - kssingvo@suse.de + +- Upgrade to 1.2.5: + * Documentation updates + * The SNMP backend no longer uses IPP for Epson printers + * Updated the configure script for Tru64 UNIX 5.1 + * Tru64 5.1B's getaddrinfo() and getnameinfo() functions leak file + descriptors + * cupsAddDest() didn't add the parent destination's options and + attributes. + * ppdConflicts() did not handle custom option constraints. + * Raw printing of gzip'd files did not work + * The scheduler no longer preserves default option choices when + the new PPD no longer provides the old default choice + * The Linux SCSI backend is now only built if the SCSI development + headers are installed. + * USB printing to Minolta printers did not work + * Windows clients could not monitor the queue status + * The scheduler didn't log the operation name in the access_log + file for Create*Job and Print-Job requests. + * The PostScript filter now separates collated copies with any + required JCL commands so that JCL*based finishing options act on + the individual copies and not all of the copies as a single + document. + * The PostScript filter now disables duplex printing when printing + a 1*page document. + * cups-lpd didn't pass the correct job-originating-host-name value + * Fixed some speling errors in the German message catalog + * cupstestppd did not catch PPD files with bad UIConstraints + values + * The USB backend did not work with the current udev- created + printers if the first printer was disconnected + * Mirrored and rotated printing did not work with some documents + * 2-sided printing with banners did not work properly on some + printers + * Updated the raw type rule to handle PJL within the first 4k of a + print job + * Added an Estonian translation + * Clarified the documentation for the cupsd.conf @LOCAL and + @IF(name) allow/deny functionality + * The PostScript filters did not escape the Title and For comments + in the print job header + * The scheduler would use 100% CPU if browsing was disabled and + the cupsd.conf file contained BrowsePoll lines + * The cupsDirRead() function did not work properly on + non*POSIX-compliant systems + * The cupsFile functions didn't handle read/write errors properly + +------------------------------------------------------------------- +Fri Sep 22 12:19:14 CEST 2006 - kssingvo@suse.de + +- CUPS 1.2.4 fixes a number of web interface, scheduler, and CUPS API issues. + Changes include: +- The --with-printcap configure option did not work +- The character set reported by cupsLangGet() did not always reflect + the default character set of a given locale +- Older Lexmark and Tektronix printers did not work with IPP +- Failsafe printing did not work +- Some web interface redirects did not work +- The web interface change settings button could introduce a "Port 0" + line in cupsd.conf if there was no loopback connection available +- The web interface change settings and edit configuration file + buttons would truncate the cupsd.conf file +- The German web interface used the wrong printer icon images +- The "All Documents" link in the on-line help was missing a trailing + slash +- The Polish web interface translation used the wrong URLs for the job + history +- The "reprint job" button did not work +- The scheduler did not always report printer or job events properly +- The scheduler always stopped the queue on error, regardless of the + exit code, if the error policy was set to "stop-printer" +- ppdEmitJCL() included UTF-8 characters in the JCL job name, which + caused problems on some printers +- Fixed a buffering problem that cause high CPU usage +- The command-line applications did not convert command-line strings + to UTF-8 as needed +- cupsDirRead() incorrectly aborted when reading a symbolic link that + pointed to a file/directory that did not exist +- The cupsInterpretRasterPPD() function did not handle custom page + sizes properly. + +------------------------------------------------------------------- +Thu Sep 14 14:07:57 CEST 2006 - kssingvo@suse.de + +- Upgrade to 1.2.3: +* The scheduler did not send job-state or job-config-changed events + when a job was held, released, or changed +* The scheduler now aborts if the configuration file and directory + checks fail +* Fixed a problem with ippPort() not using the port number that was + set via the client.conf file or CUPS_SERVER environment variable +* HTTP headers were not buffered +* Some IPP printers (HP) did not like UTF-8 job names +* The CUPS desktop icon is now localized for Polish +* Printer options were not always honored when printing +* The openssl command would lock up the scheduler when generating + an encryption certificate on some platforms due to a lack of + entropy for the random number generator +* The web admin page did not recognize that "Listen 631" enabled + remote access +* The web admin page did not check whether changes were made to the + Basic Server Settings check boxes +* The IPP backend could generate N*N copies in certain edge cases. +* The scheduler did not restore remote printers properly when + BrowseShortNames was enabled +* Polling did not handle changes to the network environment on Mac + OS X +* The "make test" subscription tests used invalid + notify-recipient-uri values +* Printers could be left in an undefined state on system sleep +* The Berkeley and System V commands did not always use the + expected character set +* Remote printing fixes +* The cupstestppd utility did not validate translation strings for + custom options properly. +* Multi-language PPD files were not properly localized in the web + interface +* The admin page's simple settings options did not check for local + domain socket or IPv6 addresses and did not use "localhost" as + the listen address. +* An empty BrowseProtocols, BrowseLocalProtocols, or + BrowseRemoteProtocols line would crash the scheduler instead of + disabling the corresponding browsing options. +* The scheduler now logs IPP operation status as debug messages + instead of info or error. +* cupsFileRewind() didn't clear the end-of-file state. +* cupstestppd didn't report the actual misspelling of the + 1284DeviceID attribute +* BrowseRelay didn't work on Debian +* configure --without-languages didn't work +* Manually added remote printers did not work +* The header was not installed. +* Updated the build files for Autoconf 2.60 +* The scheduler incorrectly terminated the polling processes after + receiving a partial log line. +* The cups-lpd mini-daemon reported "No printer-state attribute + found" errors when reporting the queue status +* SNMP backend improvements +* The scheduler erroneously reported an error with the CGI pipe +* Fixed HP-UX compile problems +* cupstestppd crashed with some PPD files +* The and header files did not work with + C++. + +------------------------------------------------------------------- +Tue Jul 25 19:21:19 CEST 2006 - kssingvo@suse.de + +- upgrade to version 1.2.2, which fixes several build, platform, notification, and printing bugs. Changes include: + * Documentation updates + * CUPS didn't know about alternate character set names for Asian text + * The lpoptions -o and -r options did not work unless you specified a printer. + * The lpoptions command incorrectly allowed users to set printer attributes like printer-type + * httpWait() did not flush the write buffer, causing "bad request" errors when communicating with CUPS 1.1.x servers + * Polling did not sanitize the printer description, location, or make and model strings like broadcasts did. + * Polled printers did not show the server's default job-sheets option value. + * The Samba password prompt was not properly localized + * Added a German translation + * The scheduler now creates self-signed SSL certficates automatically when using OpenSSL and CDSA for encryption, just as for GNU TLS. + * The SNMP backend sporatically reported some printers as "unknown" + * The scheduler now forces BrowseTimeout to be at least twice the BrowseInterval value and non-zero to avoid common configuration errors. + * The scheduler incorrectly returned printer URIs of the form "ipp://server/printers/classname" for classes + * Updated Japanese localization + * The scheduler's SSL certificate/key directory was not created on installation + * Added a mailto.conf man page and help page + * The parallel and USB backends no longer wait for the printer to go on-line - this caused problems with certain printers that don't follow with the IEEE-1284 standard + * The scheduler could crash on a reload when implicit classes were present + * The IPP backend incorrectly used the CUPS_ENCRYPTION environment variable to determine the default encryption mode when printing + * USB printing did not work on Solaris + * The scheduler sorted job priorities in the wrong order + * The scheduler did not automatically restart notifiers that exited or crashed + * IPv6 support did not work on NetBSD + * The EPM packaging file did not work + * The scheduler used up the CPU if BrowseRemoteProtocols was empty + * Custom page sizes did not work + * The SNMP backend could crash on some systems when SNMP logging was enabled + * Browsing could produce some funny printer names when ServerName was set to an IP address + * Fixed the log message for BrowseRelay + * Fixes to allow CUPS to compile on MirBSD + * The scheduler incorrectly set the FINAL_CONTENT_TYPE environment variable + * The pdftops filter incorrectly embedded a "produced by" comment, causing PDF printing not to work on some operating systems + * Sending raw jobs from a client system could cause the client's scheduler to eventually crash + * The scheduler now checks that the notifier exists prior to accepting a new subscription request. + * The scheduler now reports the supported notify-recipient schemes based on the contents of the ServerBin/notifier directory. + * Event notifications did not include the notify-sequence-number or other required attributes + * Allow/Deny addresses of the form "11.22.33.*" did not work on Linux + * cupsGetPPD() did not work if the scheduler was only listening on a domain socket + * The scheduler could crash advertising a class + * The scheduler could crash if the default printer was deleted + * Added a new default CUPS raster format (v3) which does not compress the raster stream in order to provide the same cupsRasterReadPixels() and cupsRasterWritePixels() performance as CUPS 1.1.x. + * The cupsaddsmb man page listed the wrong files for the CUPS driver. + * Some configure --with options did not work + * "Allow @IF(name)" didn't work if "name" wasn't the first network interface + * The lpstat command did not use the correct character set when reporting the date and time + * The cupsaddsmb command and web interface did not update the Windows PPD files properly, resulting in corrupt PPD files for the Windows client to use + * The cupsd.conf man page didn't describe the Listen domain socket syntax + * The scheduler no longer tries to support more than FD_SETSIZE file descriptors. + * CDSA (encryption) support fixes for MacOS X. + * The lppasswd program needs to be setuid to root to create and update the /etc/cups/passwd.md5 file + * 32/64-bit library installation was broken + * The USB backend now reports a "no such device" error when using the old filename-based USB URIs instead of the "success" error. + * Increased the HTTP and IPP read timeouts to 10 seconds, as 1 second was too short on congested networks + * The SNMP backend now uses the device description over the printer-make-and-model attribute when the attribute contains a generic name + * Fixed another file descriptor leak when printing raw files + * Raw queues were not shared via LDAP + * The pstops filter didn't always embed PageSetup commands from the PPD file + * "make install" didn't work if you disabled all of the localizations. + * The scheduler didn't always choose the least costly filter. + * Fixed parsing of IPv6 addresses in Allow, Deny, BrowseAllow, BrowseDeny, and BrowseRelay directives + * Printers that were shared via LDAP did not get added to the LDAP server properly + * LDAP browsing would crash the scheduler if a required value was missing + * Special cases for the "localhost" hostname did not work, causing printing to not work when the /etc/hosts file did not contain a localhost entry + * Updated the Spanish translation + * Reverse-order page output was broken when N-up or landscape orientations were used + * The parallel, serial, socket, and USB backends needed print data before they would report back-channel data, causing problems with several new drivers +- fixed randomly crash when testing many PPD files (bugzilla#193354) + +------------------------------------------------------------------- +Thu Jul 13 14:44:10 CEST 2006 - kssingvo@suse.de + +- moved 3.0 from BETA to STABLE + +------------------------------------------------------------------- +Thu Jun 29 17:25:50 CEST 2006 - nadvornik@suse.cz + +- do not use deprecated libpng function png_read_destroy + +------------------------------------------------------------------- +Wed Jun 28 11:41:34 CEST 2006 - kssingvo@suse.de + +- reinjected lost --datadir into configure + +------------------------------------------------------------------- +Thu Jun 22 14:20:30 CEST 2006 - kssingvo@suse.de + +- upgrade to version 1.2.1: a major release after long (>1y) development + with new functions, many enhancements, bugfixes and new bugs + +------------------------------------------------------------------- +Mon May 22 20:49:14 CEST 2006 - kssingvo@suse.de + +- removed Required-Start: in rccupsrenice; real fix for (bugzilla#172708) + +------------------------------------------------------------------- +Mon May 22 12:43:13 CEST 2006 - lmuelle@suse.de + +- Only activate cupsrenice on initial install; [#172708]. + +------------------------------------------------------------------- +Tue Apr 25 11:48:29 CEST 2006 - kssingvo@suse.de + +- fixed pswrite.patch (bugzilla#169068) + +------------------------------------------------------------------- +Tue Apr 11 17:09:39 CEST 2006 - kssingvo@suse.de + +- fixed the usb naming for special HP printers (bugzilla#163833) + +------------------------------------------------------------------- +Wed Jan 25 21:35:16 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Sat Jan 14 17:50:52 CET 2006 - lmuelle@suse.de + +- Move cups-config to the libs sub package. Then we do not bother anyone as + cups-libs is required by cups-devel and cups; [#142004]. + +------------------------------------------------------------------- +Fri Jan 13 10:48:29 CET 2006 - meissner@suse.de + +- Use -fstack-protector. + +------------------------------------------------------------------- +Wed Jan 11 19:03:06 CET 2006 - kssingvo@suse.de + +- moved cups-config into main package (bugzilla#142004) + +------------------------------------------------------------------- +Tue Jan 10 15:21:33 CET 2006 - kssingvo@suse.de + +- fixed %files for /etc/cups/printcap (bugzilla#140308) +- fixed various xpdf security issues (bugzilla#137156) + CVE-2005-3624, CVE-2005-3625, CVE-2005-3626, CVE-2005-3627, + CVE-2005-3628, CVE-2005-3193 + +------------------------------------------------------------------- +Tue Dec 6 21:00:55 CET 2005 - kssingvo@suse.de + +- fixed xpdf overflow CVE-2005-3193 (bugzilla#137156) + +------------------------------------------------------------------- +Wed Nov 23 14:51:48 CET 2005 - kssingvo@suse.de + +- fixed the info of last printer in printcap file (bugzilla#132152) + +------------------------------------------------------------------- +Wed Nov 23 12:24:43 CET 2005 - kssingvo@suse.de + +- added global lpoptions file (bugzilla#118982) +- fixed $ppid test in rccupsrenice (bugzilla#119822) +- fixed short description in rccupsrenice (bugzilla#121873) +- changed filtering of mozilla-ps (bugzilla#130623) + +------------------------------------------------------------------- +Mon Sep 12 15:14:03 CEST 2005 - kssingvo@suse.de + +- fixed segfault in cupstestppd (bugzilla#116468) + +------------------------------------------------------------------- +Thu Sep 8 11:47:28 CEST 2005 - kssingvo@suse.de + +- fixed rccupsrenice: can handle mutliple pids in $ppid now (bugzilla#115863) +- fixed rccupsrenice: link points to correct script + +------------------------------------------------------------------- +Mon Sep 5 10:21:41 CEST 2005 - kssingvo@suse.de + +- fixed rccupsrenice: requires changed to cupsd (bugzilla#115261) + +------------------------------------------------------------------- +Fri Sep 2 16:03:06 CEST 2005 - kssingvo@suse.de + +- fixed length of stftime array in lpstat (bugzilla#105732) + +------------------------------------------------------------------- +Thu Sep 1 10:43:15 CEST 2005 - kssingvo@suse.de + +- rccupsrenice checks if cupsd is running before processing (bugzilla#114650) + +------------------------------------------------------------------- +Tue Aug 23 11:10:52 CEST 2005 - kssingvo@suse.de + +- coolo wants a speedup of system boot: + rccups: cupsd gets now a lower ionice value if booting in level 5 + and rccupsrenice (new introduced) brings those io values back, + later when system is up and running + +------------------------------------------------------------------- +Tue Jul 26 13:34:13 CEST 2005 - kssingvo@suse.de + +- removed backends pipe and novell; now in cups-backends + +------------------------------------------------------------------- +Mon Jul 11 17:52:34 CEST 2005 - kssingvo@suse.de + +- further changes for PIE +- renamed latest patches to my naming schema + +------------------------------------------------------------------- +Thu Jun 30 18:37:37 CEST 2005 - uli@suse.de + +- build with -fPI[CE] (not -fpi[ce]) to avoid GOT overflows in + certain packages (e.g. scribus) on s390* + +------------------------------------------------------------------- +Mon Jun 20 17:20:31 CEST 2005 - ro@suse.de + +- build as PIE + +------------------------------------------------------------------- +Wed Jun 15 18:11:53 CEST 2005 - mfabian@suse.de + +- Bugzilla #41006 "Charset detection in CUPS": + add missing includes and fix charset and language detection. + +------------------------------------------------------------------- +Mon Jun 13 16:43:59 CEST 2005 - kssingvo@suse.de + +- removed permissions file from package (bugzilla#66305) +- changed permission of xinetd.d file +- fixed SUSE version in testpage (bugzilla#78075) + +------------------------------------------------------------------- +Thu Apr 7 17:13:54 CEST 2005 - kssingvo@suse.de + +- gcc4.0 compilation fixes (thx to mls) + +------------------------------------------------------------------- +Thu Mar 10 16:05:43 CET 2005 - kssingvo@suse.de + +- fixed problem in lppasswd file generation (bugzilla#64370) +- fixed problem in library with authorization +- cupstestppd checks now PageSize more properly + +------------------------------------------------------------------- +Tue Mar 1 16:49:53 CET 2005 - kssingvo@suse.de + +- fixed lpstat segfault issue (bugzilla#66328) + +------------------------------------------------------------------- +Mon Feb 21 19:33:16 CET 2005 - kssingvo@suse.de + +- added "hplip" to rccups (bugzilla#65378) + +------------------------------------------------------------------- +Tue Feb 15 15:42:14 CET 2005 - kssingvo@suse.de + +- introduced norootforbuild + +------------------------------------------------------------------- +Fri Jan 21 14:40:50 CET 2005 - kssingvo@suse.de + +- update to version 1.1.23 and adaption of patches +- added xpdf buffer overflow fix; CAN-2005-0064 (bugzilla#49840) + +------------------------------------------------------------------- +Sat Jan 15 21:09:14 CET 2005 - schwab@suse.de + +- Use : in permissions file. + +------------------------------------------------------------------- +Sun Dec 19 14:08:43 CET 2004 - kssingvo@suse.de + +- added additional xpdf buffer overflow patches (missing in this + version) + +------------------------------------------------------------------- +Wed Dec 15 17:00:23 CET 2004 - kssingvo@suse.de + +- updated novell backend (bugzilla#41773) +- updated pipe backend (bugzilla#33659) + +------------------------------------------------------------------- +Wed Nov 17 14:44:27 CET 2004 - kssingvo@suse.de + +- updated to cups-1.1.22 +- adapted spec file, patches, etc. + +------------------------------------------------------------------- +Mon Nov 8 17:13:35 CET 2004 - kukuk@suse.de + +- Include common-* PAM config files in cups configuration + +------------------------------------------------------------------- +Fri Sep 24 14:04:06 CEST 2004 - kssingvo@suse.de + +- added creation of group ntadmin in %pre (bugzilla#45719) + +------------------------------------------------------------------- +Mon Sep 20 16:15:08 CEST 2004 - kssingvo@suse.de + +- cupstestppd fails on some doubtful Sharp PPDs (bugzilla#45648) +- removed ed from neededforbuild list + +------------------------------------------------------------------- +Wed Sep 15 16:46:52 CEST 2004 - kssingvo@suse.de + +- fix for umlaut names when download of queue ppds (bugzilla#44975) + +------------------------------------------------------------------- +Tue Sep 14 14:16:29 CEST 2004 - kssingvo@suse.de + +- cups-1.1.21 is now released +- cupsomatic removed (will be replaced by foomatic-rip/foomatic-filters) +- more useable messages in preauth patch + +------------------------------------------------------------------- +Thu Sep 2 18:13:40 CEST 2004 - kssingvo@suse.de + +- ignores now short living childs in ppds.dat generation case + +------------------------------------------------------------------- +Wed Sep 1 11:58:57 CEST 2004 - kssingvo@suse.de + +- fixed security problem in cupsomatic, CAN-2004-0801 (bugzilla#44233) + +------------------------------------------------------------------- +Tue Aug 31 15:58:54 CEST 2004 - kssingvo@suse.de + +- first try for cups-1.1.21rc2 +- renumbered patches +- adapted old SuSE patches to this version +- removed /var/adm/notify -- ancient and no longer needed + +------------------------------------------------------------------- +Thu Aug 12 13:54:08 CEST 2004 - kssingvo@suse.de + +- added test for /.buildenv to make users happy (bugzilla#43503) :-) + +------------------------------------------------------------------- +Wed Apr 21 19:59:10 CEST 2004 - kssingvo@suse.de + +- removed needless "rm -rf $RPM_BUILD_ROOT" in %install +- added -fno-strict-aliasing compile option (*sic*) +- added missing mime handling of pswrite (bugzilla#33862) + +------------------------------------------------------------------- +Tue Apr 13 15:18:46 CEST 2004 - kssingvo@suse.de + +- removed x-devel-packages from neededforbuild + +------------------------------------------------------------------- +Tue Apr 6 18:11:08 CEST 2004 - kssingvo@suse.de + +- fixed segfault in library (bugzilla#38381) - tested and works fine + +------------------------------------------------------------------- +Mon Mar 22 18:18:56 CET 2004 - kssingvo@suse.de + +- fixed image links in web interface (bugzilla#36403) +- fixed cupstestppd (bugzilla#36688) + +------------------------------------------------------------------- +Wed Mar 17 16:56:23 CET 2004 - kssingvo@suse.de + +- cupstestppd failed if PPD file has default for non-existance names (STR#476) +- patch for CPU excess if CGI is sending faster than client receiving (STR#595) +- faster scan of ppd files (bugzilla#33222) +- patch for broken HTTP authentication cache (STR#517) +- redirect administration tasks to primary server (STR#491) + +------------------------------------------------------------------- +Wed Mar 17 14:15:56 CET 2004 - kssingvo@suse.de + +- added pswrite filter script to produce PostScript1 output +- beautified filter ogonki "mktemp -q /tmp/dvitops.XXXXXX" -> ogonki.XXXXXX +- removed cups-1.1.19-no_dvi.patch, fixed cups-mime.patch instead +- added PS1 and PS2 PPD files (bugzilla#34938) + +------------------------------------------------------------------- +Tue Mar 16 20:35:44 CET 2004 - kssingvo@suse.de + +- backport of signed char usage for weird platforms (STR#518) +- cups-lpd mini-daemon rejects jobs if queue behing is rejecting (STR#515) +- fix for too fast CGI data delivery (STR#484) + +------------------------------------------------------------------- +Mon Mar 8 17:51:46 CET 2004 - kssingvo@suse.de + +- backport of fixes in CVS repository for scheduler and library, + with many fixes, like crash on remote reject, close client on + errors, propper http flushing, etc. -- first print tests work fine. + +------------------------------------------------------------------- +Mon Mar 8 17:13:30 CET 2004 - kssingvo@suse.de + +- many backports of fixes in CVS repository +- upgrade of pdftops to version 2.03 + +------------------------------------------------------------------- +Mon Feb 23 19:22:59 CET 2004 - kssingvo@suse.de + +- memory overwrite fixed in rastertoepson +- fixed md5sum revealing problem (bugzilla#32862) +- fixed naming of some usb printers + +------------------------------------------------------------------- +Wed Feb 11 17:08:25 CET 2004 - kssingvo@suse.de + +- activated incidentally removed usermode patch (bugzilla#34438) +- added "printbill" to rccups + +------------------------------------------------------------------- +Fri Jan 16 13:12:55 CET 2004 - kukuk@suse.de + +- Add pam-devel to neededforbuild + +------------------------------------------------------------------- +Wed Nov 26 13:42:17 CET 2003 - kssingvo@suse.de + +- fixed permission of directory interfaces (bugzilla#33337) +- added new option "-p" to generate ppds.dat only and exit (bugzilla#33222) +- added openslp support +- upgraded to 1.1.20 (final) + +------------------------------------------------------------------- +Wed Oct 1 13:33:17 CEST 2003 - kssingvo@suse.de + +- changed LC_MESSAGES -> LC_CTYPE (= fixed bugzilla#26006) + +------------------------------------------------------------------- +Thu Sep 25 12:54:29 CEST 2003 - kssingvo@suse.de + +- update to 1.1.20rc2 + +------------------------------------------------------------------- +Wed Sep 17 17:09:29 CEST 2003 - kssingvo@suse.de + +- authentication method for /admin changed (bugzilla#31158) + +------------------------------------------------------------------- +Mon Sep 15 16:23:00 CEST 2003 - kssingvo@suse.de + +- fixed PPDs defaults: Letter -> A4 (bugzilla#30662) + +------------------------------------------------------------------- +Thu Sep 11 17:42:26 CEST 2003 - kukuk@suse.de + +- Set sticky bit for /var/spool/cups/tmp + +------------------------------------------------------------------- +Thu Sep 11 13:30:41 CEST 2003 - kssingvo@suse.de + +- changed rcfile, as suggested in bugzilla#28444 + +------------------------------------------------------------------- +Tue Sep 9 13:36:00 CEST 2003 - kssingvo@suse.de + +- fixed typo in configuration for preauth security patch + +------------------------------------------------------------------- +Mon Sep 8 18:02:40 CEST 2003 - kssingvo@suse.de + +- fix for the SLP browsing patch (missing/wrong initialize of variables) + +------------------------------------------------------------------- +Wed Sep 3 16:59:12 CEST 2003 - kssingvo@suse.de + +- fix for boolean options in filters (CUPS STR#249) +- fix for check of written bytes in 4 backends (CUPS STR#253) +- fix for segfault when browsing and SLP is set on (CUPS STR#259) +- fix for restart problem of processed jobs (CUPS STR#226) +- fix for LPD port number in URI (CUPS STR#249) +- fix for Landscape PDF offset rotation position (CUPS STR#243) +- generated /etc/cups/printcap and link /etc/printcap due to UserMode + (bugzilla#29671) + +------------------------------------------------------------------- +Tue Sep 2 18:00:22 CEST 2003 - kssingvo@suse.de + +- fixed %_libdir problem in xinetd.d/cups-lpd (bugzilla#29877) + +------------------------------------------------------------------- +Mon Sep 1 15:04:49 CEST 2003 - kssingvo@suse.de + +- last fix of bugzilla#29418 didn't work in reality. on specfile again. +- "-y" for fillup_and_insserv + +------------------------------------------------------------------- +Mon Sep 1 13:34:47 CEST 2003 - kssingvo@suse.de + +- DOCDIR removed to fix bugzilla#29418 +- specfile: daemon has now security patches -> start it on boot per default +- specfile: restart of daemon on package update + +------------------------------------------------------------------- +Fri Aug 29 10:38:25 CEST 2003 - kukuk@suse.de + +- Set explicit correct permissions of /etc/cups contents, else + cups will do it. + +------------------------------------------------------------------- +Tue Aug 26 15:22:28 CEST 2003 - kssingvo@suse.de + +- changed attributes for files (bugzilla#28736) + +------------------------------------------------------------------- +Mon Aug 25 19:10:40 CEST 2003 - kssingvo@suse.de + +- fix for locale destroying (bugzilla#29218) + +------------------------------------------------------------------- +Mon Aug 25 16:53:29 CEST 2003 - kssingvo@suse.de + +- made restrictrions in cupsd.conf to take preauthorization effect + +------------------------------------------------------------------- +Thu Aug 21 16:36:04 CEST 2003 - kssingvo@suse.de + +- cupsd runs now as lp:lp (as suggested in bugzilla#28444) + +------------------------------------------------------------------- +Thu Aug 21 15:58:33 CEST 2003 - kssingvo@suse.de + +- added preauthorization patch from okir - seems to work - thx + +------------------------------------------------------------------- +Thu Aug 21 10:16:53 CEST 2003 - kssingvo@suse.de + +- fixed USB backend to report manufacturer and model, if description + string is missing (cups STR#174) +- fixed problem with some embedded Type1C fonts (cups STR#177) +- fixed problem when reading files and using the POSIX locale (cups STR#159) + +------------------------------------------------------------------- +Wed Aug 20 18:53:37 CEST 2003 - kssingvo@suse.de + +- added official patch for cupstestppd problem (bugzilla#27950) +- fixed problem with "keepalive on" (bugzilla#28154) +- fixed encode options to honor "yes" and "on" as values too + +------------------------------------------------------------------- +Mon Aug 18 11:05:14 CEST 2003 - kssingvo@suse.de + +- fixed metadata in sysconfig file (bugzilla#28861) + +------------------------------------------------------------------- +Wed Aug 13 13:48:32 CEST 2003 - kssingvo@suse.de + +- fixed cupstestppd (bugzilla#27950) + +------------------------------------------------------------------- +Thu Jul 31 11:10:50 CEST 2003 - coolo@suse.de + +- don't strip explicitly, but let the brp scripts handle it + +------------------------------------------------------------------- +Tue Jul 29 13:41:27 CEST 2003 - kssingvo@suse.de + +- fixed ogonkify (bugzilla#28307) + +------------------------------------------------------------------- +Thu Jul 10 14:03:57 CEST 2003 - kssingvo@suse.de + +- fixed 64bit problem in printers.cgi (bugzilla#24786) +- removed dvi printing support due to missing packages (bugzilla#27032) + +------------------------------------------------------------------- +Fri Jul 4 13:49:48 CEST 2003 - kssingvo@suse.de + +- splitted out foomatic-filters package, which is cups independed + (except Coolo's faulty checking) + +------------------------------------------------------------------- +Mon Jun 23 17:30:04 CEST 2003 - kssingvo@suse.de + +- fixed mandir problem under non-i386 architecture + +------------------------------------------------------------------- +Mon Jun 23 14:17:57 CEST 2003 - lmuelle@suse.de + +- remove smb backand from file list and init script; it's now part of the + samba-client package + +------------------------------------------------------------------- +Tue Jun 17 21:28:54 CEST 2003 - kssingvo@suse.de + +- added ptal to Should-Start in rccups (bugzilla#27159) + +------------------------------------------------------------------- +Thu Jun 12 11:51:32 CEST 2003 - kukuk@suse.de + +- Add missing directories to filelist + +------------------------------------------------------------------- +Mon Jun 2 15:33:02 CEST 2003 - kssingvo@suse.de + +- 1.1.19 is released -> updated + +------------------------------------------------------------------- +Fri May 30 15:38:09 CEST 2003 - ro@suse.de + +- remove unpackaged files from buildroot + +------------------------------------------------------------------- +Tue Apr 29 10:00:36 CEST 2003 - kssingvo@suse.de + +- updated to 1.1.19rc3 +- removed unnecessary patches +- removed README.SuSE (bugzilla#26479) + +------------------------------------------------------------------- +Wed Apr 9 12:09:56 CEST 2003 - kssingvo@suse.de + +- added patch for cgi-interface: hostname is now mapped to localhost +- updated PrintAnalyzer script + +------------------------------------------------------------------- +Wed Mar 12 18:06:38 CET 2003 - kssingvo@suse.de + +- fixed "endless attempts to print" problem (bugzilla#25152) + +------------------------------------------------------------------- +Wed Mar 12 13:44:25 CET 2003 - kssingvo@suse.de + +- installs now correct pam file (bugzilla#23277) + +------------------------------------------------------------------- +Mon Mar 10 16:18:21 CET 2003 - kssingvo@suse.de + +- fixed location of foomatic-rip filters -> /usr/bin +- added link for foomatic-rip +- updated foomatic-rip (to latest, fixed version) + +------------------------------------------------------------------- +Thu Mar 6 13:18:04 CET 2003 - kssingvo@suse.de + +- fixed typo for manpage installation of foomatic-rip +- fixed file list of cups and cups-client (foomatic-rip is part of cups + and therefore the corresponding package should contain the manpage too) + +------------------------------------------------------------------- +Mon Mar 3 10:32:34 CET 2003 - kssingvo@suse.de + +- updated cupsomatic to linuxprinting.org (hopefully fixed accounting problem) + +------------------------------------------------------------------- +Thu Feb 27 11:14:51 CET 2003 - kssingvo@suse.de + +- fix for add printer with KDE util (from CVS head) + +------------------------------------------------------------------- +Wed Feb 26 17:20:33 CET 2003 - kssingvo@suse.de + +- fixed again filelist :) +- fixed documenation path (buzgzilla#24083) +- fixed PPD file parsing (from CVS head) +- tested daemon + +------------------------------------------------------------------- +Wed Feb 26 16:54:55 CET 2003 - ro@suse.de + +- fix filelist (file listed twice) + +------------------------------------------------------------------- +Wed Feb 26 14:34:38 CET 2003 - kssingvo@suse.de + +- updated foomatic-gswrapper +- added new foomatic-rip: filter, config file and manpage + +------------------------------------------------------------------- +Mon Feb 24 12:28:12 CET 2003 - kssingvo@suse.de + +- updated backends novell and pipe +- renamed sysconfig metadata: sysconfig.cups -> cups.sysconfig +- renamed permissions file: permissions.cups -> cups.permissions +- fixed problem in lpoptions (no more loops! :) + +------------------------------------------------------------------- +Thu Feb 20 12:37:07 CET 2003 - mmj@suse.de + +- Add sysconfig metadata [#22629] + +------------------------------------------------------------------- +Fri Feb 7 12:15:53 CET 2003 - kukuk@suse.de + +- Use pam_unix2.so instead of pam_unix.so + +------------------------------------------------------------------- +Tue Jan 28 17:45:38 CET 2003 - kssingvo@suse.de + +- fixed "Error message when starting cups daemon" problem (bugzilla#22472) +- removed unnecessary DocumentRoot setting cupsd.conf + +------------------------------------------------------------------- +Tue Jan 28 14:57:11 CET 2003 - kssingvo@suse.de + +- changed replacement of distribution in testprint.ps +- rccups: moved hotplug from required start to should-start (bugzilla#23054) +- added /usr/bin/cupstestppd (bugzilla#23143) +- created xinetd.d file for cups-lpd + +------------------------------------------------------------------- +Thu Jan 23 17:55:27 CET 2003 - kssingvo@suse.de + +- added usb patch (for epson printers) +- added herrno patch in IPP protocol + +------------------------------------------------------------------- +Fri Jan 17 14:09:05 CET 2003 - kssingvo@suse.de + +- added two backends (pipe + novell), written by jsrain@suse.cz +- welcome back foomatic filter (makes more sense to have it here) + +------------------------------------------------------------------- +Fri Dec 20 13:09:43 CET 2002 - kssingvo@suse.de + +- updated to 1.1.18, adapted testpage.diff for new version + +------------------------------------------------------------------- +Mon Dec 16 11:02:35 CET 2002 - kssingvo@suse.de + +- fixed test for link problem in rccups + +------------------------------------------------------------------- +Tue Dec 10 17:11:45 CET 2002 - kssingvo@suse.de + +- removed foomatic filter. with next suse release will be in pkg cups-drivers + +------------------------------------------------------------------- +Wed Dec 4 10:55:34 CET 2002 - kssingvo@suse.de + +- updated to version 1.1.17, removed lib64 patch (now already in source tree) + +------------------------------------------------------------------- +Thu Nov 7 17:08:49 CET 2002 - kssingvo@suse.de + +- updated %files for all cups subpackages. + (Now new cups files are included too :-) + +------------------------------------------------------------------- +Thu Nov 7 14:56:27 CET 2002 - kssingvo@suse.de + +- removed debuging option in spec file. + +------------------------------------------------------------------- +Thu Nov 7 11:00:45 CET 2002 - kssingvo@suse.de + +- updated to version 1.1.16, removed or adapted SuSE patches + +------------------------------------------------------------------- +Tue Sep 10 12:38:47 CEST 2002 - ro@suse.de + +- added prereq for groupadd (#19300) + +------------------------------------------------------------------- +Thu Sep 5 22:25:25 CEST 2002 - ro@suse.de + +- fix postinstall + +------------------------------------------------------------------- +Thu Sep 5 16:12:02 CEST 2002 - kssingvo@suse.de + +- changed %post: removed "insserv" to make yast2 and security happy + +------------------------------------------------------------------- +Mon Sep 2 18:13:43 CEST 2002 - kssingvo@suse.de + +- changed cupsd.conf for 127.0.0.2 access (bugzilla#18764) + +------------------------------------------------------------------- +Mon Sep 2 17:55:42 CEST 2002 - kssingvo@suse.de + +- added directory /usr/share/cups/drivers for cupsaddsmb/samba + +------------------------------------------------------------------- +Tue Aug 27 17:34:29 CEST 2002 - kssingvo@suse.de + +- fixed foomatic and foomatic-gswrapper (bugzilla#18425) + +------------------------------------------------------------------- +Wed Aug 21 16:36:29 CEST 2002 - kssingvo@suse.de + +- gave %files sections a %deffattr and gave special files and dirs + a required %attr permissions of lp.sys (bugzilla#18126) + +------------------------------------------------------------------- +Tue Aug 20 13:02:41 CEST 2002 - uli@suse.de + +- fixed hardcoded path CUPS_SERVERBIN (fixes ghostscript on lib64 + archs) + +------------------------------------------------------------------- +Tue Aug 20 11:13:05 CEST 2002 - mmj@suse.de + +- Correct PreReq + +------------------------------------------------------------------- +Mon Aug 12 17:11:16 CEST 2002 - kssingvo@suse.de + +- cups-devel now requires exact matching version of cups-libs +- added /var/log/cups to cups-libs (bugzilla#17617) + +------------------------------------------------------------------- +Sat Jul 27 18:26:55 CEST 2002 - adrian@suse.de + +- add %run_ldconfig + +------------------------------------------------------------------- +Mon Jul 22 15:47:18 CEST 2002 - kssingvo@suse.de + +- fix for author patch: crashed on reload signal (tested for stability) + +------------------------------------------------------------------- +Fri Jul 19 16:29:48 CEST 2002 - kssingvo@suse.de + +- using now fillup to generate sysconfig file +- replaced delayed exit patch by CUPS authors one + +------------------------------------------------------------------- +Thu Jul 18 16:02:20 CEST 2002 - kssingvo@suse.de + +- again rccups: rc.config only parsed, if present (for backward compatibility) + +------------------------------------------------------------------- +Thu Jul 18 10:14:15 CEST 2002 - kssingvo@suse.de + +- updated rccups to satisfy new SuSE requirements +- added delayed exit of cupsd patch (for processing many PPD files) + +------------------------------------------------------------------- +Wed Jul 10 21:22:30 CEST 2002 - kssingvo@suse.de + +- adapted the pam file for SuSE (according to Thorstens proposal) + +------------------------------------------------------------------- +Tue Jul 9 21:11:53 CEST 2002 - kssingvo@suse.de + +- upgraded to version 1.1.15 and adapted all the old patches +- moved %{_sysconfdir}/cups to libs (as suggested by jsmeix) + +------------------------------------------------------------------- +Tue Jul 2 16:57:33 CEST 2002 - kssingvo@suse.de + +- added symbolic link /usr/bin/lpc (bugzilla #16652) +- changed umask in rccups (bugzilla #16567) + +------------------------------------------------------------------- +Thu Jun 13 20:00:27 MEST 2002 - draht@suse.de + +- Running cupsd if no printer is configured makes no sense. + Do not activate cupsd after installation in %post. + +------------------------------------------------------------------- +Tue Jun 4 18:49:05 CEST 2002 - kssingvo@suse.de + +- fixed g++/cups-config problems in other cups subpackages + +------------------------------------------------------------------- +Tue Jun 4 16:00:21 CEST 2002 - kssingvo@suse.de + +- added 'cups-config' to devel + +------------------------------------------------------------------- +Wed May 8 18:06:35 CEST 2002 - kssingvo@suse.de + +- fixed linker problem (rpath) under x86_64 +- therefore old x86_64 fix is no longer necessary: removed. + +------------------------------------------------------------------- +Mon Apr 22 16:20:21 CEST 2002 - kssingvo@suse.de + +- added %ifarch x86_64 to avoid linking problems in specfile. + +------------------------------------------------------------------- +Thu Apr 18 17:30:40 CEST 2002 - kssingvo@suse.de + +- updated to 1.1.14 +- removed unnecessary patches +- adapted testpage.ps patch to new file +- fixed permission problem with lppasswd +- fixed %files section (now includes all %dirs too) + +------------------------------------------------------------------- +Wed Apr 10 11:18:40 CEST 2002 - ro@suse.de + +- don't call autoreconf, we can't use autoheader and automake here + +------------------------------------------------------------------- +Tue Feb 26 11:29:00 CET 2002 - kssingvo@suse.de + +- fixed too restrictive IPP security fix +- fixed documentation path (#13889) + +------------------------------------------------------------------- +Mon Feb 25 20:20:43 CET 2002 - kssingvo@suse.de + +- reorganized online documentation. old structure might confuse people (#13849) + +------------------------------------------------------------------- +Wed Feb 20 15:33:13 CET 2002 - kssingvo@suse.de + +- completed the IPP security fix again (hopefully the last time) + +------------------------------------------------------------------- +Mon Feb 18 17:27:56 CET 2002 - kssingvo@suse.de + +- completed the IPP security fix + +------------------------------------------------------------------- +Tue Feb 12 10:58:49 CET 2002 - kssingvo@suse.de + +- updated perl scripts cupsomatic, and foomatic-gswrapper + +------------------------------------------------------------------- +Tue Feb 12 10:52:12 CET 2002 - kssingvo@suse.de + +- made patch cups-cs-utf8.dif again. got build problems with last version. + +------------------------------------------------------------------- +Mon Feb 11 17:49:40 CET 2002 - kssingvo@suse.de + +- Added iso-8859-2 patch for czech utf-8 locale. + Thanks to Petr Blahos . + +------------------------------------------------------------------- +Mon Feb 11 17:31:46 CET 2002 - kssingvo@suse.de + +- added IPP security fix + +------------------------------------------------------------------- +Fri Feb 1 18:36:44 MET 2002 - draht@suse.de + +- log tcp-wrappers based connection refusals to cups' own logfiles + instead of syslog. + +------------------------------------------------------------------- +Fri Feb 1 00:26:11 CET 2002 - ro@suse.de + +- changed neededforbuild to + +------------------------------------------------------------------- +Tue Jan 29 20:28:51 MET 2002 - draht@suse.de + +- added support for tcp-wrappers (cups-1.1.12-libwrap-addition.dif) + token for /etc/hosts.{allow,deny} is "cupsd". + +------------------------------------------------------------------- +Mon Jan 21 15:40:50 CET 2002 - schwab@suse.de + +- Fix gcc version check. + +------------------------------------------------------------------- +Tue Jan 8 14:02:01 CET 2002 - pblahos@suse.cz + +- cups-client does not provide print_daemon anymore. print_daemon + is required by aps but cups-client does not satisfy aps + regarding this. +- START_CUPS variable removed +- up to 1.1.12 + +------------------------------------------------------------------- +Sun Nov 11 00:59:05 CET 2001 - bjacke@suse.de + +- fixes specfile + +------------------------------------------------------------------- +Sat Nov 10 19:16:26 CET 2001 - bjacke@suse.de + +- add standard postscript PPD +- set DefaultPage{Size,Region} to A4 in ppd files +- now reqiures ghostscript_any +- add /etc/permissions.d/cups-client (#4094) +- personalize test page +- move old font directory if existing and send mail +- up to 1.1.11 + +------------------------------------------------------------------- +Mon Oct 22 00:14:34 CEST 2001 - ro@suse.de + +- remove ghostscript-fonts-std from neededforbuild, this is only + a runtime requirement + +------------------------------------------------------------------- +Tue Sep 4 19:02:36 CEST 2001 - bjacke@suse.de + +- work around cups' broken tmp file handling (#10142) + +------------------------------------------------------------------- +Sun Sep 2 19:50:26 CEST 2001 - bjacke@suse.de + +- move client.conf to libs package +- activate cat8 man pages +- add README.SuSE +- update lphelp + +------------------------------------------------------------------- +Thu Aug 30 23:55:33 CEST 2001 - bjacke@suse.de + +- split into cups-client and cups(-server) package +- add %ghosty smb printer backend support +- re-add ogonky for non-latin1 charsets (#9864) +- add printanalyzer script in doc + +------------------------------------------------------------------- +Mon Aug 27 09:48:10 CEST 2001 - utuerk@suse.de + +- removed cups.conf (now provided by susehelp) + +------------------------------------------------------------------- +Mon Aug 27 07:46:07 CEST 2001 - kukuk@suse.de + +- Remove -j parameter from spec file + +------------------------------------------------------------------- +Sat Aug 25 19:33:57 CEST 2001 - bjacke@suse.de + +- update to 1.1.10-1 (many fixes) +- fix output for dvi's (bug #9862) +- new poll_ppd_base + +------------------------------------------------------------------- +Sun Aug 19 23:36:28 CEST 2001 - bjacke@suse.de + +- split out cups-libs from cups +- add ssl directory +- make correct links for cups libraries + +------------------------------------------------------------------- +Thu Aug 16 17:05:19 CEST 2001 - bjacke@suse.de + +- use ghostscript fonts which are the same as the cups fonts and adjust + dependecy for ghostscript-fonts-std + +------------------------------------------------------------------- +Sun Aug 12 18:42:27 CEST 2001 - bjacke@suse.de + +- enable SSL + +------------------------------------------------------------------- +Fri Aug 10 15:14:38 CEST 2001 - bjacke@suse.de + +- correct init script + +------------------------------------------------------------------- +Fri Jul 20 12:53:46 CEST 2001 - max@suse.de + +- new version 1.1.9 . +- updated init script to new skeleton (Bug #8981). + +------------------------------------------------------------------- +Mon Jun 18 14:33:50 CEST 2001 - max@suse.de + +- added support for PS files created by Netscape. + +------------------------------------------------------------------- +Sun Apr 15 21:14:03 CEST 2001 - schwab@suse.de + +- Fix missing declarations. + +------------------------------------------------------------------- +Thu Apr 12 18:06:07 CEST 2001 - max@suse.de + +- moved foomatic-gswrapper and cupsomatic + from cups-drivers to cups + +------------------------------------------------------------------- +Thu Apr 12 11:43:40 CEST 2001 - max@suse.de + +- patched cupsd to use /dev/urandom instead of /dev/random. + This fixes bug #6703 + +------------------------------------------------------------------- +Wed Apr 11 16:18:20 CEST 2001 - max@suse.de + +- spec file overhaul +- using RPM_BUILD_ROOT now +- removed /etc/printcap from file list +- removed dependency to cups-drivers + +------------------------------------------------------------------- +Tue Apr 10 16:00:42 CEST 2001 - kendy@suse.cz + +- Wake up Epson Stylus USB printers before sending the print job. +- Added czech translations (czech.dif). + +------------------------------------------------------------------- +Mon Apr 2 15:41:58 CEST 2001 - utuerk@suse.de + +- added cups.conf for susehelp + +------------------------------------------------------------------- +Fri Mar 23 16:42:05 CET 2001 - kendy@suse.cz + +- USB printers can be now addressed using URI + usb:?vendor=&prod_id= + where and are USB identification numbers. + (e.g. usb:/dev/usb/lp?vendor=04a9&prod_id=1052 for Canon BJC-6100) +- fixed pplication/dvi -> application/dvi in conf/mime.convs + +------------------------------------------------------------------- +Mon Feb 26 14:31:15 CET 2001 - mhafner@suse.de + +- update to 1.1.6-3 (fixing several security issues) + +------------------------------------------------------------------- +Tue Jan 30 09:27:36 CET 2001 - mhafner@suse.de + +- update to 1.1.6 (fixes possible DoS attack) + +------------------------------------------------------------------- +Mon Jan 8 13:54:58 MET 2001 - bjacke@suse.de + +- added missing reqiures for cups-drivers + +------------------------------------------------------------------- +Fri Dec 22 11:56:46 MET 2000 - mhafner@suse.de + +- update to version 1.1.5 + +------------------------------------------------------------------- +Mon Dec 4 15:51:50 MET 2000 - mhafner@suse.de + +- cups configuration changed - Browsing now Off by default + +------------------------------------------------------------------- +Thu Nov 30 10:29:44 MET 2000 - mhafner@suse.de + +- added DVI filter + +------------------------------------------------------------------- +Wed Nov 29 18:56:40 CET 2000 - ro@suse.de + +- fixed spec + +------------------------------------------------------------------- +Tue Nov 28 18:21:53 CET 2000 - ro@suse.de + +- fixed startscript + +------------------------------------------------------------------- +Fri Nov 24 13:29:07 MET 2000 - mhafner@suse.de + +- added rc.config fillup and SuSEconfig script to automatically + set browse address if demanded + +------------------------------------------------------------------- +Wed Nov 22 12:40:01 MET 2000 - mhafner@suse.de + +- split into system and development package + +------------------------------------------------------------------- +Fri Oct 6 13:58:49 CEST 2000 - mhafner@suse.de + +- documentation root changed + +------------------------------------------------------------------- +Fri Oct 6 08:58:06 CEST 2000 - mhafner@suse.de + +- update to version 1.1.4 +- small changes in spec file + +------------------------------------------------------------------- +Mon Sep 25 10:06:38 CEST 2000 - mhafner@suse.de + +- make post-script succeed unconditionally + +------------------------------------------------------------------- +Tue Sep 19 08:25:32 CEST 2000 - mhafner@suse.de + +- update to version 1.1.3 + +------------------------------------------------------------------- +Thu Sep 14 11:54:23 CEST 2000 - mhafner@suse.de + +- restart daemon if already started +- added two little tools (poll_ppd_base, lphelp) +- added a few compatibility links + +------------------------------------------------------------------- +Thu Sep 14 11:06:33 CEST 2000 - mhafner@suse.de + +- turned automatic generation of printcap on +- turned implicit classes off since they are buggy + +------------------------------------------------------------------- +Wed Sep 13 16:20:40 CEST 2000 - mhafner@suse.de + +- fixed directory structure +- added links to lpd and rclpd + +------------------------------------------------------------------- +Fri Sep 1 09:16:39 CEST 2000 - adrian@suse.de + +- added Conflicts line + +------------------------------------------------------------------- +Mon Aug 28 15:10:28 CEST 2000 - adrian@suse.de + +- initial package + diff --git a/cups.spec b/cups.spec new file mode 100644 index 0000000..65a32ba --- /dev/null +++ b/cups.spec @@ -0,0 +1,1156 @@ +# +# spec file for package cups (Version 1.2.7) +# +# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: cups +BuildRequires: gcc-c++ libpng-devel libtiff-devel openslp-devel openssl-devel pam-devel tcpd-devel update-desktop-files +URL: http://www.cups.org/ +License: GNU General Public License (GPL) +Group: Hardware/Printing +Summary: The Common UNIX Printing System +Version: 1.2.7 +Release: 11 +Requires: cups-libs = %{version}, cups-client = %{version} +Requires: ghostscript_any, ghostscript-fonts-std, foomatic-filters +Requires: util-linux, /usr/bin/ionice +Conflicts: plp lprold lprng +Source0: cups-%{version}-source.tar.bz2 +Source1: poll_ppd_base.c +Source2: lphelp.c +Source3: dvitops +Source4: pswrite +Source7: ogonki +Source8: rccups +Source9: http://amaru.ti6.tu-harburg.de/portal/Members/ti6ntm/Projekte/Printanalyzer/PrintAnalyzer +Source11: setcupsbroadcasting +Source12: postscript.ppd.bz2 +Source13: cups.sysconfig +Source14: cups.xinetd +Source15: PSLEVEL1.PPD.bz2 +Source16: PSLEVEL2.PPD.bz2 +Source17: rccupsrenice +Patch1: cups-1.2rc3-mime.patch +Patch2: cups-1.2.0-ppdsdat_generation.patch +Patch3: cups-1.2rc1-template.patch +Patch4: cups-1.2rc3-libwrap.patch +Patch5: cups-pam.diff +Patch6: cups-1.2b2-access_conf.patch +Patch9: cups-1.1.21rc2-preauth_security.patch +Patch10: cups-1.1.21rc2-usermode.patch +Patch12: cups-1.2rc3-pswrite.patch +Patch13: cups-1.1.21-umlaut_printer.patch +Patch14: cups-1.1.21-testppd_duplex.patch +Patch15: cups-1.2.2-testppd_filename.patch +Patch16: cups-1.2.5-desktop_file.patch +Patch17: cups-1.2.6-lppasswd_permission.patch +Patch100: cups-1.1.23-testpage.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if %suse_version >= 801 +PreReq: textutils, fileutils, sh-utils, %insserv_prereq, %fillup_prereq /usr/sbin/groupadd +%endif + +%description +The Common UNIX Printing System provides a portable printing layer for +UNIX® operating systems like BSD lp or lprng. CUPS provides some +additional features. + +http://www.cups.org + + + +Authors: +-------- + Easy Software Products + +%define INSTALL install -m755 +%define INSTALL_SCRIPT install -m755 +%define INSTALL_DIR install -d -m755 +%define INSTALL_DATA install -m644 +%define CPUs %(grep -c ^processor\ /proc/cpuinfo || echo 1) +%package libs +Summary: libraries for CUPS +Group: Hardware/Printing + +%description libs +The Common UNIX Printing System provides a portable printing layer for +UNIX® operating systems like BSD lp or lprng. CUPS provides some +additional features. This package contains libraries needed by CUPS and +some other packages. + + + +Authors: +-------- + Easy Software Products + +%package client +Summary: CUPS Client Programs +Group: Hardware/Printing +Conflicts: plp lprold lprng +Requires: cups-libs = %{version} + +%description client +The Common UNIX Printing System provides a portable printing layer for +UNIX® operating systems like BSD lp or lprng. CUPS provides some +additional features. This package contains all programs needed for +running a CUPS client, not a server. + + + +Authors: +-------- + Easy Software Products + +%package devel +Summary: Development Environment for CUPS +Group: Development/Libraries/C and C++ +Requires: %{name}-libs = %{version} openssl-devel glibc-devel + +%description devel +The Common UNIX Printing System provides a portable printing layer for +UNIX® operating systems like BSD lp or lprng. CUPS provides some +additional features. This is the development package. + +http://www.cups.org + + + +Authors: +-------- + Easy Software Products + +%prep +%setup -n %{name}-%{version} +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 +%patch6 -p1 +#tbd: %patch9 -p1 +#tbd: %patch10 -p1 +%patch12 -p1 +#tbd: %patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +if [ -f /.buildenv ]; then + . /.buildenv +else + BUILD_DISTRIBUTION_NAME="personal build CUPS version" +fi +perl -pi -e "s|SUSEVERSION|$BUILD_DISTRIBUTION_NAME|; \ + s/CUPSVERSION/%{version}/" %{PATCH100} +#tbd: %patch100 -p1 +# fix hardcoded $_libdir path to real architecture dependend $_libdir +perl -pi -e 's|(CUPS_SERVERBIN=\")\$exec_prefix/lib|$1'%{_libdir}'|' \ + config-scripts/cups-directories.m4 + +%build +%{?suse_update_config:%{suse_update_config -f . }} +libtoolize --force +aclocal +autoconf +%if %suse_version >= 1010 +export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -O2 -fno-strict-aliasing -fstack-protector" +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fstack-protector" +%else +export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -O2 -fno-strict-aliasing" +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +%endif +export CXX=g++ +./configure \ + --mandir=%{_mandir} \ + --sysconfdir=%{_sysconfdir} \ + --libdir=%{_libdir} \ + --datadir=%{_datadir} \ + --with-docdir=%{_defaultdocdir}/%{name} \ + --with-cups-user=lp \ + --with-cups-group=lp \ + --enable-pie \ + --enable-static \ + --without-rcdir \ + --prefix=/ +# perl -pi -e 's:^(OPTIONS\s+\=):$1 -I/usr/X11R6/include -O2 -fstack-protector -fno-strict-aliasing:' Makedefs +# perl -pi -e 's:^(INSTALL_BIN\s+\=.*)-s:$1:' Makedefs +# for debugging enable: +#perl -pi -e 's:^(OPTIONS\s+\=):$1 -I/usr/X11R6/include -O2 -fno-strict-aliasing -g -DDEBUG:' Makedefs +#perl -pi -e 's:^(OPTIM\s+\=):$1 -g -DDEBUG:' Makedefs +make CXX=g++ +# Compile additional tools +gcc -opoll_ppd_base $CFLAGS -fPIC -fPIE -pie -I. -L./cups -lcups %{SOURCE1} +gcc -olphelp $CFLAGS -fPIC -fPIE -pie -I. -L./cups -lcups %{SOURCE2} + +%install +make BUILDROOT=$RPM_BUILD_ROOT \ + install +if [ x%{version} = x"1.1.18" ]; then + mv $RPM_BUILD_ROOT/usr/sbin/cupstestppd \ + $RPM_BUILD_ROOT/usr/bin/cupstestppd +fi +# place CUPS-O-MATIC script in CUPS filter directory +%{INSTALL_SCRIPT} %{SOURCE7} $RPM_BUILD_ROOT%{_libdir}/cups/filter +%{INSTALL_SCRIPT} %{SOURCE3} $RPM_BUILD_ROOT%{_libdir}/cups/filter +%{INSTALL_SCRIPT} %{SOURCE4} $RPM_BUILD_ROOT%{_libdir}/cups/filter +# might no longer be needed: ln -s /etc/cups/printcap $RPM_BUILD_ROOT/etc +# install the two little tools +install -m 755 poll_ppd_base $RPM_BUILD_ROOT/usr/bin/ +install -m 755 lphelp $RPM_BUILD_ROOT/usr/bin/ +%{INSTALL_DIR} $RPM_BUILD_ROOT/etc/init.d +%{INSTALL_SCRIPT} %{SOURCE8} $RPM_BUILD_ROOT/etc/init.d/cups +%{INSTALL_SCRIPT} %{SOURCE17} $RPM_BUILD_ROOT/etc/init.d/cupsrenice +%{INSTALL_DIR} $RPM_BUILD_ROOT/var/adm/fillup-templates +install -m 644 %{SOURCE13} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.cups +perl -pi -e "s:\@LIB\@:%{_libdir}:g" $RPM_BUILD_ROOT/etc/init.d/cups +ln -sf ../../etc/init.d/cups $RPM_BUILD_ROOT/usr/sbin/rccups +ln -sf ../../etc/init.d/cupsrenice $RPM_BUILD_ROOT/usr/sbin/rccupsrenice +# +rm -r $RPM_BUILD_ROOT/usr/share/cups/fonts +#mkdir -p /usr/share/ghostscript/fonts +mkdir -p $RPM_BUILD_ROOT/usr/share/ghostscript/fonts +ln -sf /usr/share/ghostscript/fonts $RPM_BUILD_ROOT/usr/share/cups/ +# make directory for ssl files: +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/cups/ssl +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d +install -m 644 -D %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/cups-lpd +perl -pi -e "s:\@LIB\@:%{_libdir}:g" $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/cups-lpd +ln -sf libcupsimage.so.2 $RPM_BUILD_ROOT%{_libdir}/libcupsimage.so +ln -sf libcups.so.2 $RPM_BUILD_ROOT%{_libdir}/libcups.so +ln -sf ../sbin/lpc $RPM_BUILD_ROOT/usr/bin/lpc # bugzilla#16652 +%{INSTALL_DIR} $RPM_BUILD_ROOT/usr/share/cups/drivers +%{INSTALL_DIR} $RPM_BUILD_ROOT/%{_defaultdocdir}/%{name} +%{INSTALL_DIR} $RPM_BUILD_ROOT/%{_defaultdocdir}/%{name}/images +install -m 644 -D conf/pam.suse $RPM_BUILD_ROOT/etc/pam.d/cups +install -m 755 $RPM_SOURCE_DIR/PrintAnalyzer $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}/ +for f in CHANGES*.txt CREDITS.txt INSTALL.txt LICENSE.txt README.txt; do + install -m 644 "$f" $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}/ +done +bzip2 -cd < %{SOURCE12} > $RPM_BUILD_ROOT%{_datadir}/cups/model/Postscript.ppd +bzip2 -cd < %{SOURCE15} > $RPM_BUILD_ROOT%{_datadir}/cups/model/Postscript-level1.ppd +bzip2 -cd < %{SOURCE16} > $RPM_BUILD_ROOT%{_datadir}/cups/model/Postscript-level2.ppd +find %{buildroot}/usr/share/cups/model -name "*.ppd" | while read FILE +do + # change default paper size from letter to A4 if possible (bugzilla#30662) + # and delete trailing whitespace + perl -pi -e 's:^(\*Default.*)Letter\s*$:$1A4\n:; \ + s:^(\*ImageableArea A4.*\:\s+)"0 0 595 842":$1"24 48 571 818":; \ + s:^(\*ImageableArea Letter.*\:\s+)"0 0 612 792":$1"24 48 588 768":; \ + s:\s\n:\n:' \ + "$FILE" + gzip -9 "$FILE" +done +# add files for menu +rm -f $RPM_BUILD_ROOT//usr/share/applications/cups.desktop +%suse_update_desktop_file -i -r %name PrintingUtility 2>/dev/null +mkdir $RPM_BUILD_ROOT/usr/share/pixmaps +install -m 644 $RPM_BUILD_ROOT/usr/share/icons/hicolor/64x64/apps/cups.png $RPM_BUILD_ROOT/usr/share/pixmaps +rm -rf $RPM_BUILD_ROOT/usr/share/icons +# remove unpackaged files +rm -rf $RPM_BUILD_ROOT/%{_mandir}/es/cat? +rm -rf $RPM_BUILD_ROOT/%{_mandir}/fr/cat? +rm -rf $RPM_BUILD_ROOT/%{_mandir}/cat? + +%clean +#test -n "$RPM_BUILD_ROOT" && rm -rf $RPM_BUILD_ROOT + +%pre +/usr/sbin/groupadd -g 71 -o -r ntadmin 2>/dev/null || : + +%post libs +%run_ldconfig + +%post +%{fillup_and_insserv -npy cups cups} +%{fillup_and_insserv -npy cups cupsrenice} + +%preun +%stop_on_removal cups + +%postun +%restart_on_update cups +%{insserv_cleanup} + +%files +%defattr(-,root,root) +%dir %attr(711,lp,lp) %{_sysconfdir}/cups/ssl +%dir %attr(755,lp,lp) %{_sysconfdir}/cups/ppd +%config(noreplace) %attr(640,lp,lp) %{_sysconfdir}/cups/cupsd.conf +%{_sysconfdir}/cups/cupsd.conf.default +%config(noreplace) %attr(755,lp,lp) %{_sysconfdir}/cups/interfaces +%config(noreplace) %{_sysconfdir}/cups/mime.* +%config(noreplace) %{_sysconfdir}/xinetd.d/cups-lpd +# %dir %attr(700,lp,lp) %{_sysconfdir}/cups/cerst +# %config(noreplace) %attr(640,lp,lp) %{_sysconfdir}/cups/classes.conf +# %config(noreplace) %attr(640,lp,lp) %{_sysconfdir}/cups/printers.conf +# %verify(not md5 size mtime) %config(missingok,noreplace) %{_sysconfdir}/cups/printcap +# %verify(not md5 size mtime) %config(missingok,noreplace) %{_sysconfdir}/printcap +%{_bindir}/poll_ppd_base +%{_bindir}/cupstestppd +%{_bindir}/cupstestdsc +%dir %{_libdir}/cups +%dir %{_libdir}/cups/backend +%{_libdir}/cups/backend/http +%{_libdir}/cups/backend/ipp +%{_libdir}/cups/backend/lpd +%{_libdir}/cups/backend/parallel +%{_libdir}/cups/backend/scsi +%{_libdir}/cups/backend/snmp +%{_libdir}/cups/backend/serial +%{_libdir}/cups/backend/socket +%{_libdir}/cups/backend/usb +%{_libdir}/cups/cgi-bin +%{_libdir}/cups/daemon +%dir %{_libdir}/cups/filter +%{_libdir}/cups/filter/[abd-z]* +%dir %{_libdir}/cups/monitor +%{_libdir}/cups/monitor/* +%dir %{_libdir}/cups/notifier +%{_libdir}/cups/notifier/* +%{_sbindir}/cupsaddsmb +%{_sbindir}/cupsd +%{_sbindir}/rc* +%dir %attr(0775,root,ntadmin) /usr/share/cups/drivers +%dir /usr/share/cups +/usr/share/applications/cups.desktop +/usr/share/pixmaps/cups.png +/usr/share/cups/[bcf-t]* +/usr/share/cups/d[ao]* +%config %attr(0755,root,root) /etc/init.d/cups +%config %attr(0755,root,root) /etc/init.d/cupsrenice +%config /etc/pam.d/cups +/var/adm/fillup-templates/sysconfig.cups +%doc %{_defaultdocdir}/%{name} +%doc %{_mandir}/man5/* +%doc %{_mandir}/man7/* +%doc %{_mandir}/man8/* + +%files client +%defattr(-,root,root) +%{_bindir}/lp +%{_bindir}/lpc +%{_bindir}/lphelp +%{_bindir}/lpoptions +%attr(4755,lp,sys) %{_bindir}/lppasswd +%{_bindir}/lpq +%{_bindir}/lpr +%{_bindir}/lprm +%{_bindir}/lpstat +%{_bindir}/cancel +%{_sbindir}/*able +%{_sbindir}/accept +%{_sbindir}/lp* +%{_sbindir}/reject +%doc %{_mandir}/man1/[a-eg-z]* + +%files devel +%defattr(-,root,root) +%{_includedir}/cups +%{_libdir}/libcups.a +%{_libdir}/libcupsimage.a + +%files libs +%defattr(-,root,root) +%{_bindir}/cups-config +#%dir %attr(0755,lp,lp) %{_sysconfdir}/cups/ +%dir %attr(0710,lp,lp) %{_var}/spool/cups +%dir %attr(1770,lp,lp) %{_var}/spool/cups/tmp +%dir %attr(0755,lp,lp) %{_var}/log/cups/ +# %config(noreplace) %{_sysconfdir}/cups/client.conf +%{_libdir}/libcups.so* +%{_libdir}/libcupsimage.so* +%{_datadir}/locale/*/cups_* + +%changelog -n cups +* Wed Jan 10 2007 - kssingvo@suse.de +- added Required-Start: to rccupsrenice (bugzilla#231675) +* Fri Jan 05 2007 - sbrabec@suse.cz +- Fixed devel dependencies. +* Tue Dec 12 2006 - kssingvo@suse.de +- removed broken locale patch: PS generation fails (bugzilla#227205) +* Thu Nov 16 2006 - kssingvo@suse.de +- Upgrade to 1.2.7 (another bugfix version): + * Documentation updates + * The PostScript filter now rotates the bounding box values as needed + * The scheduler no longer loads the remote printer cache when browsing + is disabled + * The scheduler no longer writes a new launchd configuration file if + it doesn't have to + * The scheduler now picks up on changes to IPv6 and DNS configuration + * The lpstat program could still hang + * Fixed an inefficiency in the SNMP IPP detection code + * The SSL negotiation code did not implement short timeouts +* Tue Nov 14 2006 - kssingvo@suse.de +- fixed non conform PPD values in PSLEVEL*.PPD (bugzilla#219779) +* Thu Nov 09 2006 - kssingvo@suse.de +- fixed perm problem of /etc/cups regarding lppasswd (bugzilla#218745) +* Tue Nov 07 2006 - kssingvo@suse.de +- Upgrade to 1.2.6 (bugfix version): + * "lpc status" did not show the number of queued jobs for disabled queues + * The lpstat program could hang + * The serial backend did not support the new USB serial filenames on Linux + * The parallel backend did not support bidirectional I/O properly + * The network backends now log the numeric address that is being used + * Fixed a compile error when using libpaper + * Fixed a compile error when compiling on Solaris with threading enabled + * Missing printer-state-changed event for printer-state-message updates +* Mon Nov 06 2006 - kssingvo@suse.de +- coolo's patch seems not to work, now using desktop-launch + (bugzilla#207915) +* Mon Nov 06 2006 - kssingvo@suse.de +- fixed cups.desktop file (bugzilla#207915) +- suse_update_desktop_file produces strange results in my xterm. + redirecting output to /dev/null +- removed duplicate entry in %%files: %%{_libdir}/cups/monitor/* +* Mon Oct 23 2006 - kssingvo@suse.de +- Upgrade to 1.2.5: + * Documentation updates + * The SNMP backend no longer uses IPP for Epson printers + * Updated the configure script for Tru64 UNIX 5.1 + * Tru64 5.1B's getaddrinfo() and getnameinfo() functions leak file + descriptors + * cupsAddDest() didn't add the parent destination's options and + attributes. + * ppdConflicts() did not handle custom option constraints. + * Raw printing of gzip'd files did not work + * The scheduler no longer preserves default option choices when + the new PPD no longer provides the old default choice + * The Linux SCSI backend is now only built if the SCSI development + headers are installed. + * USB printing to Minolta printers did not work + * Windows clients could not monitor the queue status + * The scheduler didn't log the operation name in the access_log + file for Create*Job and Print-Job requests. + * The PostScript filter now separates collated copies with any + required JCL commands so that JCL*based finishing options act on + the individual copies and not all of the copies as a single + document. + * The PostScript filter now disables duplex printing when printing + a 1*page document. + * cups-lpd didn't pass the correct job-originating-host-name value + * Fixed some speling errors in the German message catalog + * cupstestppd did not catch PPD files with bad UIConstraints + values + * The USB backend did not work with the current udev- created + printers if the first printer was disconnected + * Mirrored and rotated printing did not work with some documents + * 2-sided printing with banners did not work properly on some + printers + * Updated the raw type rule to handle PJL within the first 4k of a + print job + * Added an Estonian translation + * Clarified the documentation for the cupsd.conf @LOCAL and + @IF(name) allow/deny functionality + * The PostScript filters did not escape the Title and For comments + in the print job header + * The scheduler would use 100%% CPU if browsing was disabled and + the cupsd.conf file contained BrowsePoll lines + * The cupsDirRead() function did not work properly on + non*POSIX-compliant systems + * The cupsFile functions didn't handle read/write errors properly +* Fri Sep 22 2006 - kssingvo@suse.de +- CUPS 1.2.4 fixes a number of web interface, scheduler, and CUPS API issues. + Changes include: +- The --with-printcap configure option did not work +- The character set reported by cupsLangGet() did not always reflect + the default character set of a given locale +- Older Lexmark and Tektronix printers did not work with IPP +- Failsafe printing did not work +- Some web interface redirects did not work +- The web interface change settings button could introduce a "Port 0" + line in cupsd.conf if there was no loopback connection available +- The web interface change settings and edit configuration file + buttons would truncate the cupsd.conf file +- The German web interface used the wrong printer icon images +- The "All Documents" link in the on-line help was missing a trailing + slash +- The Polish web interface translation used the wrong URLs for the job + history +- The "reprint job" button did not work +- The scheduler did not always report printer or job events properly +- The scheduler always stopped the queue on error, regardless of the + exit code, if the error policy was set to "stop-printer" +- ppdEmitJCL() included UTF-8 characters in the JCL job name, which + caused problems on some printers +- Fixed a buffering problem that cause high CPU usage +- The command-line applications did not convert command-line strings + to UTF-8 as needed +- cupsDirRead() incorrectly aborted when reading a symbolic link that + pointed to a file/directory that did not exist +- The cupsInterpretRasterPPD() function did not handle custom page + sizes properly. +* Thu Sep 14 2006 - kssingvo@suse.de +- Upgrade to 1.2.3: + * The scheduler did not send job-state or job-config-changed events + when a job was held, released, or changed + * The scheduler now aborts if the configuration file and directory + checks fail + * Fixed a problem with ippPort() not using the port number that was + set via the client.conf file or CUPS_SERVER environment variable + * HTTP headers were not buffered + * Some IPP printers (HP) did not like UTF-8 job names + * The CUPS desktop icon is now localized for Polish + * Printer options were not always honored when printing + * The openssl command would lock up the scheduler when generating + an encryption certificate on some platforms due to a lack of + entropy for the random number generator + * The web admin page did not recognize that "Listen 631" enabled + remote access + * The web admin page did not check whether changes were made to the + Basic Server Settings check boxes + * The IPP backend could generate N*N copies in certain edge cases. + * The scheduler did not restore remote printers properly when + BrowseShortNames was enabled + * Polling did not handle changes to the network environment on Mac + OS X + * The "make test" subscription tests used invalid + notify-recipient-uri values + * Printers could be left in an undefined state on system sleep + * The Berkeley and System V commands did not always use the + expected character set + * Remote printing fixes + * The cupstestppd utility did not validate translation strings for + custom options properly. + * Multi-language PPD files were not properly localized in the web + interface + * The admin page's simple settings options did not check for local + domain socket or IPv6 addresses and did not use "localhost" as + the listen address. + * An empty BrowseProtocols, BrowseLocalProtocols, or + BrowseRemoteProtocols line would crash the scheduler instead of + disabling the corresponding browsing options. + * The scheduler now logs IPP operation status as debug messages + instead of info or error. + * cupsFileRewind() didn't clear the end-of-file state. + * cupstestppd didn't report the actual misspelling of the + 1284DeviceID attribute + * BrowseRelay didn't work on Debian + * configure --without-languages didn't work + * Manually added remote printers did not work + * The header was not installed. + * Updated the build files for Autoconf 2.60 + * The scheduler incorrectly terminated the polling processes after + receiving a partial log line. + * The cups-lpd mini-daemon reported "No printer-state attribute + found" errors when reporting the queue status + * SNMP backend improvements + * The scheduler erroneously reported an error with the CGI pipe + * Fixed HP-UX compile problems + * cupstestppd crashed with some PPD files + * The and header files did not work with + C++. +* Tue Jul 25 2006 - kssingvo@suse.de +- upgrade to version 1.2.2, which fixes several build, platform, notification, and printing bugs. Changes include: + * Documentation updates + * CUPS didn't know about alternate character set names for Asian text + * The lpoptions -o and -r options did not work unless you specified a printer. + * The lpoptions command incorrectly allowed users to set printer attributes like printer-type + * httpWait() did not flush the write buffer, causing "bad request" errors when communicating with CUPS 1.1.x servers + * Polling did not sanitize the printer description, location, or make and model strings like broadcasts did. + * Polled printers did not show the server's default job-sheets option value. + * The Samba password prompt was not properly localized + * Added a German translation + * The scheduler now creates self-signed SSL certficates automatically when using OpenSSL and CDSA for encryption, just as for GNU TLS. + * The SNMP backend sporatically reported some printers as "unknown" + * The scheduler now forces BrowseTimeout to be at least twice the BrowseInterval value and non-zero to avoid common configuration errors. + * The scheduler incorrectly returned printer URIs of the form "ipp://server/printers/classname" for classes + * Updated Japanese localization + * The scheduler's SSL certificate/key directory was not created on installation + * Added a mailto.conf man page and help page + * The parallel and USB backends no longer wait for the printer to go on-line - this caused problems with certain printers that don't follow with the IEEE-1284 standard + * The scheduler could crash on a reload when implicit classes were present + * The IPP backend incorrectly used the CUPS_ENCRYPTION environment variable to determine the default encryption mode when printing + * USB printing did not work on Solaris + * The scheduler sorted job priorities in the wrong order + * The scheduler did not automatically restart notifiers that exited or crashed + * IPv6 support did not work on NetBSD + * The EPM packaging file did not work + * The scheduler used up the CPU if BrowseRemoteProtocols was empty + * Custom page sizes did not work + * The SNMP backend could crash on some systems when SNMP logging was enabled + * Browsing could produce some funny printer names when ServerName was set to an IP address + * Fixed the log message for BrowseRelay + * Fixes to allow CUPS to compile on MirBSD + * The scheduler incorrectly set the FINAL_CONTENT_TYPE environment variable + * The pdftops filter incorrectly embedded a "produced by" comment, causing PDF printing not to work on some operating systems + * Sending raw jobs from a client system could cause the client's scheduler to eventually crash + * The scheduler now checks that the notifier exists prior to accepting a new subscription request. + * The scheduler now reports the supported notify-recipient schemes based on the contents of the ServerBin/notifier directory. + * Event notifications did not include the notify-sequence-number or other required attributes + * Allow/Deny addresses of the form "11.22.33.*" did not work on Linux + * cupsGetPPD() did not work if the scheduler was only listening on a domain socket + * The scheduler could crash advertising a class + * The scheduler could crash if the default printer was deleted + * Added a new default CUPS raster format (v3) which does not compress the raster stream in order to provide the same cupsRasterReadPixels() and cupsRasterWritePixels() performance as CUPS 1.1.x. + * The cupsaddsmb man page listed the wrong files for the CUPS driver. + * Some configure --with options did not work + * "Allow @IF(name)" didn't work if "name" wasn't the first network interface + * The lpstat command did not use the correct character set when reporting the date and time + * The cupsaddsmb command and web interface did not update the Windows PPD files properly, resulting in corrupt PPD files for the Windows client to use + * The cupsd.conf man page didn't describe the Listen domain socket syntax + * The scheduler no longer tries to support more than FD_SETSIZE file descriptors. + * CDSA (encryption) support fixes for MacOS X. + * The lppasswd program needs to be setuid to root to create and update the /etc/cups/passwd.md5 file + * 32/64-bit library installation was broken + * The USB backend now reports a "no such device" error when using the old filename-based USB URIs instead of the "success" error. + * Increased the HTTP and IPP read timeouts to 10 seconds, as 1 second was too short on congested networks + * The SNMP backend now uses the device description over the printer-make-and-model attribute when the attribute contains a generic name + * Fixed another file descriptor leak when printing raw files + * Raw queues were not shared via LDAP + * The pstops filter didn't always embed PageSetup commands from the PPD file + * "make install" didn't work if you disabled all of the localizations. + * The scheduler didn't always choose the least costly filter. + * Fixed parsing of IPv6 addresses in Allow, Deny, BrowseAllow, BrowseDeny, and BrowseRelay directives + * Printers that were shared via LDAP did not get added to the LDAP server properly + * LDAP browsing would crash the scheduler if a required value was missing + * Special cases for the "localhost" hostname did not work, causing printing to not work when the /etc/hosts file did not contain a localhost entry + * Updated the Spanish translation + * Reverse-order page output was broken when N-up or landscape orientations were used + * The parallel, serial, socket, and USB backends needed print data before they would report back-channel data, causing problems with several new drivers +- fixed randomly crash when testing many PPD files (bugzilla#193354) +* Thu Jul 13 2006 - kssingvo@suse.de +- moved 3.0 from BETA to STABLE +* Thu Jun 29 2006 - nadvornik@suse.cz +- do not use deprecated libpng function png_read_destroy +* Wed Jun 28 2006 - kssingvo@suse.de +- reinjected lost --datadir into configure +* Thu Jun 22 2006 - kssingvo@suse.de +- upgrade to version 1.2.1: a major release after long (>1y) development + with new functions, many enhancements, bugfixes and new bugs +* Mon May 22 2006 - kssingvo@suse.de +- removed Required-Start: in rccupsrenice; real fix for (bugzilla#172708) +* Mon May 22 2006 - lmuelle@suse.de +- Only activate cupsrenice on initial install; [#172708]. +* Tue Apr 25 2006 - kssingvo@suse.de +- fixed pswrite.patch (bugzilla#169068) +* Tue Apr 11 2006 - kssingvo@suse.de +- fixed the usb naming for special HP printers (bugzilla#163833) +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Sat Jan 14 2006 - lmuelle@suse.de +- Move cups-config to the libs sub package. Then we do not bother anyone as + cups-libs is required by cups-devel and cups; [#142004]. +* Fri Jan 13 2006 - meissner@suse.de +- Use -fstack-protector. +* Wed Jan 11 2006 - kssingvo@suse.de +- moved cups-config into main package (bugzilla#142004) +* Tue Jan 10 2006 - kssingvo@suse.de +- fixed %%files for /etc/cups/printcap (bugzilla#140308) +- fixed various xpdf security issues (bugzilla#137156) + CVE-2005-3624, CVE-2005-3625, CVE-2005-3626, CVE-2005-3627, + CVE-2005-3628, CVE-2005-3193 +* Tue Dec 06 2005 - kssingvo@suse.de +- fixed xpdf overflow CVE-2005-3193 (bugzilla#137156) +* Wed Nov 23 2005 - kssingvo@suse.de +- fixed the info of last printer in printcap file (bugzilla#132152) +* Wed Nov 23 2005 - kssingvo@suse.de +- added global lpoptions file (bugzilla#118982) +- fixed $ppid test in rccupsrenice (bugzilla#119822) +- fixed short description in rccupsrenice (bugzilla#121873) +- changed filtering of mozilla-ps (bugzilla#130623) +* Mon Sep 12 2005 - kssingvo@suse.de +- fixed segfault in cupstestppd (bugzilla#116468) +* Thu Sep 08 2005 - kssingvo@suse.de +- fixed rccupsrenice: can handle mutliple pids in $ppid now (bugzilla#115863) +- fixed rccupsrenice: link points to correct script +* Mon Sep 05 2005 - kssingvo@suse.de +- fixed rccupsrenice: requires changed to cupsd (bugzilla#115261) +* Fri Sep 02 2005 - kssingvo@suse.de +- fixed length of stftime array in lpstat (bugzilla#105732) +* Thu Sep 01 2005 - kssingvo@suse.de +- rccupsrenice checks if cupsd is running before processing (bugzilla#114650) +* Tue Aug 23 2005 - kssingvo@suse.de +- coolo wants a speedup of system boot: + rccups: cupsd gets now a lower ionice value if booting in level 5 + and rccupsrenice (new introduced) brings those io values back, + later when system is up and running +* Tue Jul 26 2005 - kssingvo@suse.de +- removed backends pipe and novell; now in cups-backends +* Mon Jul 11 2005 - kssingvo@suse.de +- further changes for PIE +- renamed latest patches to my naming schema +* Thu Jun 30 2005 - uli@suse.de +- build with -fPI[CE] (not -fpi[ce]) to avoid GOT overflows in + certain packages (e.g. scribus) on s390* +* Mon Jun 20 2005 - ro@suse.de +- build as PIE +* Wed Jun 15 2005 - mfabian@suse.de +- Bugzilla #41006 "Charset detection in CUPS": + add missing includes and fix charset and language detection. +* Mon Jun 13 2005 - kssingvo@suse.de +- removed permissions file from package (bugzilla#66305) +- changed permission of xinetd.d file +- fixed SUSE version in testpage (bugzilla#78075) +* Thu Apr 07 2005 - kssingvo@suse.de +- gcc4.0 compilation fixes (thx to mls) +* Thu Mar 10 2005 - kssingvo@suse.de +- fixed problem in lppasswd file generation (bugzilla#64370) +- fixed problem in library with authorization +- cupstestppd checks now PageSize more properly +* Tue Mar 01 2005 - kssingvo@suse.de +- fixed lpstat segfault issue (bugzilla#66328) +* Mon Feb 21 2005 - kssingvo@suse.de +- added "hplip" to rccups (bugzilla#65378) +* Tue Feb 15 2005 - kssingvo@suse.de +- introduced norootforbuild +* Fri Jan 21 2005 - kssingvo@suse.de +- update to version 1.1.23 and adaption of patches +- added xpdf buffer overflow fix; CAN-2005-0064 (bugzilla#49840) +* Sat Jan 15 2005 - schwab@suse.de +- Use : in permissions file. +* Sun Dec 19 2004 - kssingvo@suse.de +- added additional xpdf buffer overflow patches (missing in this + version) +* Wed Dec 15 2004 - kssingvo@suse.de +- updated novell backend (bugzilla#41773) +- updated pipe backend (bugzilla#33659) +* Wed Nov 17 2004 - kssingvo@suse.de +- updated to cups-1.1.22 +- adapted spec file, patches, etc. +* Mon Nov 08 2004 - kukuk@suse.de +- Include common-* PAM config files in cups configuration +* Fri Sep 24 2004 - kssingvo@suse.de +- added creation of group ntadmin in %%pre (bugzilla#45719) +* Mon Sep 20 2004 - kssingvo@suse.de +- cupstestppd fails on some doubtful Sharp PPDs (bugzilla#45648) +- removed ed from neededforbuild list +* Wed Sep 15 2004 - kssingvo@suse.de +- fix for umlaut names when download of queue ppds (bugzilla#44975) +* Tue Sep 14 2004 - kssingvo@suse.de +- cups-1.1.21 is now released +- cupsomatic removed (will be replaced by foomatic-rip/foomatic-filters) +- more useable messages in preauth patch +* Thu Sep 02 2004 - kssingvo@suse.de +- ignores now short living childs in ppds.dat generation case +* Wed Sep 01 2004 - kssingvo@suse.de +- fixed security problem in cupsomatic, CAN-2004-0801 (bugzilla#44233) +* Tue Aug 31 2004 - kssingvo@suse.de +- first try for cups-1.1.21rc2 +- renumbered patches +- adapted old SuSE patches to this version +- removed /var/adm/notify -- ancient and no longer needed +* Thu Aug 12 2004 - kssingvo@suse.de +- added test for /.buildenv to make users happy (bugzilla#43503) :-) +* Wed Apr 21 2004 - kssingvo@suse.de +- removed needless "rm -rf $RPM_BUILD_ROOT" in %%install +- added -fno-strict-aliasing compile option (*sic*) +- added missing mime handling of pswrite (bugzilla#33862) +* Tue Apr 13 2004 - kssingvo@suse.de +- removed x-devel-packages from neededforbuild +* Tue Apr 06 2004 - kssingvo@suse.de +- fixed segfault in library (bugzilla#38381) - tested and works fine +* Mon Mar 22 2004 - kssingvo@suse.de +- fixed image links in web interface (bugzilla#36403) +- fixed cupstestppd (bugzilla#36688) +* Wed Mar 17 2004 - kssingvo@suse.de +- cupstestppd failed if PPD file has default for non-existance names (STR#476) +- patch for CPU excess if CGI is sending faster than client receiving (STR#595) +- faster scan of ppd files (bugzilla#33222) +- patch for broken HTTP authentication cache (STR#517) +- redirect administration tasks to primary server (STR#491) +* Wed Mar 17 2004 - kssingvo@suse.de +- added pswrite filter script to produce PostScript1 output +- beautified filter ogonki "mktemp -q /tmp/dvitops.XXXXXX" -> ogonki.XXXXXX +- removed cups-1.1.19-no_dvi.patch, fixed cups-mime.patch instead +- added PS1 and PS2 PPD files (bugzilla#34938) +* Tue Mar 16 2004 - kssingvo@suse.de +- backport of signed char usage for weird platforms (STR#518) +- cups-lpd mini-daemon rejects jobs if queue behing is rejecting (STR#515) +- fix for too fast CGI data delivery (STR#484) +* Mon Mar 08 2004 - kssingvo@suse.de +- backport of fixes in CVS repository for scheduler and library, + with many fixes, like crash on remote reject, close client on + errors, propper http flushing, etc. -- first print tests work fine. +* Mon Mar 08 2004 - kssingvo@suse.de +- many backports of fixes in CVS repository +- upgrade of pdftops to version 2.03 +* Mon Feb 23 2004 - kssingvo@suse.de +- memory overwrite fixed in rastertoepson +- fixed md5sum revealing problem (bugzilla#32862) +- fixed naming of some usb printers +* Wed Feb 11 2004 - kssingvo@suse.de +- activated incidentally removed usermode patch (bugzilla#34438) +- added "printbill" to rccups +* Fri Jan 16 2004 - kukuk@suse.de +- Add pam-devel to neededforbuild +* Wed Nov 26 2003 - kssingvo@suse.de +- fixed permission of directory interfaces (bugzilla#33337) +- added new option "-p" to generate ppds.dat only and exit (bugzilla#33222) +- added openslp support +- upgraded to 1.1.20 (final) +* Wed Oct 01 2003 - kssingvo@suse.de +- changed LC_MESSAGES -> LC_CTYPE (= fixed bugzilla#26006) +* Thu Sep 25 2003 - kssingvo@suse.de +- update to 1.1.20rc2 +* Wed Sep 17 2003 - kssingvo@suse.de +- authentication method for /admin changed (bugzilla#31158) +* Mon Sep 15 2003 - kssingvo@suse.de +- fixed PPDs defaults: Letter -> A4 (bugzilla#30662) +* Thu Sep 11 2003 - kukuk@suse.de +- Set sticky bit for /var/spool/cups/tmp +* Thu Sep 11 2003 - kssingvo@suse.de +- changed rcfile, as suggested in bugzilla#28444 +* Tue Sep 09 2003 - kssingvo@suse.de +- fixed typo in configuration for preauth security patch +* Mon Sep 08 2003 - kssingvo@suse.de +- fix for the SLP browsing patch (missing/wrong initialize of variables) +* Wed Sep 03 2003 - kssingvo@suse.de +- fix for boolean options in filters (CUPS STR#249) +- fix for check of written bytes in 4 backends (CUPS STR#253) +- fix for segfault when browsing and SLP is set on (CUPS STR#259) +- fix for restart problem of processed jobs (CUPS STR#226) +- fix for LPD port number in URI (CUPS STR#249) +- fix for Landscape PDF offset rotation position (CUPS STR#243) +- generated /etc/cups/printcap and link /etc/printcap due to UserMode + (bugzilla#29671) +* Tue Sep 02 2003 - kssingvo@suse.de +- fixed %%_libdir problem in xinetd.d/cups-lpd (bugzilla#29877) +* Mon Sep 01 2003 - kssingvo@suse.de +- last fix of bugzilla#29418 didn't work in reality. on specfile again. +- "-y" for fillup_and_insserv +* Mon Sep 01 2003 - kssingvo@suse.de +- DOCDIR removed to fix bugzilla#29418 +- specfile: daemon has now security patches -> start it on boot per default +- specfile: restart of daemon on package update +* Fri Aug 29 2003 - kukuk@suse.de +- Set explicit correct permissions of /etc/cups contents, else + cups will do it. +* Tue Aug 26 2003 - kssingvo@suse.de +- changed attributes for files (bugzilla#28736) +* Mon Aug 25 2003 - kssingvo@suse.de +- fix for locale destroying (bugzilla#29218) +* Mon Aug 25 2003 - kssingvo@suse.de +- made restrictrions in cupsd.conf to take preauthorization effect +* Thu Aug 21 2003 - kssingvo@suse.de +- cupsd runs now as lp:lp (as suggested in bugzilla#28444) +* Thu Aug 21 2003 - kssingvo@suse.de +- added preauthorization patch from okir - seems to work - thx +* Thu Aug 21 2003 - kssingvo@suse.de +- fixed USB backend to report manufacturer and model, if description + string is missing (cups STR#174) +- fixed problem with some embedded Type1C fonts (cups STR#177) +- fixed problem when reading files and using the POSIX locale (cups STR#159) +* Wed Aug 20 2003 - kssingvo@suse.de +- added official patch for cupstestppd problem (bugzilla#27950) +- fixed problem with "keepalive on" (bugzilla#28154) +- fixed encode options to honor "yes" and "on" as values too +* Mon Aug 18 2003 - kssingvo@suse.de +- fixed metadata in sysconfig file (bugzilla#28861) +* Wed Aug 13 2003 - kssingvo@suse.de +- fixed cupstestppd (bugzilla#27950) +* Thu Jul 31 2003 - coolo@suse.de +- don't strip explicitly, but let the brp scripts handle it +* Tue Jul 29 2003 - kssingvo@suse.de +- fixed ogonkify (bugzilla#28307) +* Thu Jul 10 2003 - kssingvo@suse.de +- fixed 64bit problem in printers.cgi (bugzilla#24786) +- removed dvi printing support due to missing packages (bugzilla#27032) +* Fri Jul 04 2003 - kssingvo@suse.de +- splitted out foomatic-filters package, which is cups independed + (except Coolo's faulty checking) +* Mon Jun 23 2003 - kssingvo@suse.de +- fixed mandir problem under non-i386 architecture +* Mon Jun 23 2003 - lmuelle@suse.de +- remove smb backand from file list and init script; it's now part of the + samba-client package +* Tue Jun 17 2003 - kssingvo@suse.de +- added ptal to Should-Start in rccups (bugzilla#27159) +* Thu Jun 12 2003 - kukuk@suse.de +- Add missing directories to filelist +* Mon Jun 02 2003 - kssingvo@suse.de +- 1.1.19 is released -> updated +* Fri May 30 2003 - ro@suse.de +- remove unpackaged files from buildroot +* Tue Apr 29 2003 - kssingvo@suse.de +- updated to 1.1.19rc3 +- removed unnecessary patches +- removed README.SuSE (bugzilla#26479) +* Wed Apr 09 2003 - kssingvo@suse.de +- added patch for cgi-interface: hostname is now mapped to localhost +- updated PrintAnalyzer script +* Wed Mar 12 2003 - kssingvo@suse.de +- fixed "endless attempts to print" problem (bugzilla#25152) +* Wed Mar 12 2003 - kssingvo@suse.de +- installs now correct pam file (bugzilla#23277) +* Mon Mar 10 2003 - kssingvo@suse.de +- fixed location of foomatic-rip filters -> /usr/bin +- added link for foomatic-rip +- updated foomatic-rip (to latest, fixed version) +* Thu Mar 06 2003 - kssingvo@suse.de +- fixed typo for manpage installation of foomatic-rip +- fixed file list of cups and cups-client (foomatic-rip is part of cups + and therefore the corresponding package should contain the manpage too) +* Mon Mar 03 2003 - kssingvo@suse.de +- updated cupsomatic to linuxprinting.org (hopefully fixed accounting problem) +* Thu Feb 27 2003 - kssingvo@suse.de +- fix for add printer with KDE util (from CVS head) +* Wed Feb 26 2003 - kssingvo@suse.de +- fixed again filelist :) +- fixed documenation path (buzgzilla#24083) +- fixed PPD file parsing (from CVS head) +- tested daemon +* Wed Feb 26 2003 - ro@suse.de +- fix filelist (file listed twice) +* Wed Feb 26 2003 - kssingvo@suse.de +- updated foomatic-gswrapper +- added new foomatic-rip: filter, config file and manpage +* Mon Feb 24 2003 - kssingvo@suse.de +- updated backends novell and pipe +- renamed sysconfig metadata: sysconfig.cups -> cups.sysconfig +- renamed permissions file: permissions.cups -> cups.permissions +- fixed problem in lpoptions (no more loops! :) +* Thu Feb 20 2003 - mmj@suse.de +- Add sysconfig metadata [#22629] +* Fri Feb 07 2003 - kukuk@suse.de +- Use pam_unix2.so instead of pam_unix.so +* Tue Jan 28 2003 - kssingvo@suse.de +- fixed "Error message when starting cups daemon" problem (bugzilla#22472) +- removed unnecessary DocumentRoot setting cupsd.conf +* Tue Jan 28 2003 - kssingvo@suse.de +- changed replacement of distribution in testprint.ps +- rccups: moved hotplug from required start to should-start (bugzilla#23054) +- added /usr/bin/cupstestppd (bugzilla#23143) +- created xinetd.d file for cups-lpd +* Thu Jan 23 2003 - kssingvo@suse.de +- added usb patch (for epson printers) +- added herrno patch in IPP protocol +* Fri Jan 17 2003 - kssingvo@suse.de +- added two backends (pipe + novell), written by jsrain@suse.cz +- welcome back foomatic filter (makes more sense to have it here) +* Fri Dec 20 2002 - kssingvo@suse.de +- updated to 1.1.18, adapted testpage.diff for new version +* Mon Dec 16 2002 - kssingvo@suse.de +- fixed test for link problem in rccups +* Tue Dec 10 2002 - kssingvo@suse.de +- removed foomatic filter. with next suse release will be in pkg cups-drivers +* Wed Dec 04 2002 - kssingvo@suse.de +- updated to version 1.1.17, removed lib64 patch (now already in source tree) +* Thu Nov 07 2002 - kssingvo@suse.de +- updated %%files for all cups subpackages. + (Now new cups files are included too :-) +* Thu Nov 07 2002 - kssingvo@suse.de +- removed debuging option in spec file. +* Thu Nov 07 2002 - kssingvo@suse.de +- updated to version 1.1.16, removed or adapted SuSE patches +* Tue Sep 10 2002 - ro@suse.de +- added prereq for groupadd (#19300) +* Thu Sep 05 2002 - ro@suse.de +- fix postinstall +* Thu Sep 05 2002 - kssingvo@suse.de +- changed %%post: removed "insserv" to make yast2 and security happy +* Mon Sep 02 2002 - kssingvo@suse.de +- changed cupsd.conf for 127.0.0.2 access (bugzilla#18764) +* Mon Sep 02 2002 - kssingvo@suse.de +- added directory /usr/share/cups/drivers for cupsaddsmb/samba +* Tue Aug 27 2002 - kssingvo@suse.de +- fixed foomatic and foomatic-gswrapper (bugzilla#18425) +* Wed Aug 21 2002 - kssingvo@suse.de +- gave %%files sections a %%deffattr and gave special files and dirs + a required %%attr permissions of lp.sys (bugzilla#18126) +* Tue Aug 20 2002 - uli@suse.de +- fixed hardcoded path CUPS_SERVERBIN (fixes ghostscript on lib64 + archs) +* Tue Aug 20 2002 - mmj@suse.de +- Correct PreReq +* Mon Aug 12 2002 - kssingvo@suse.de +- cups-devel now requires exact matching version of cups-libs +- added /var/log/cups to cups-libs (bugzilla#17617) +* Sat Jul 27 2002 - adrian@suse.de +- add %%run_ldconfig +* Mon Jul 22 2002 - kssingvo@suse.de +- fix for author patch: crashed on reload signal (tested for stability) +* Fri Jul 19 2002 - kssingvo@suse.de +- using now fillup to generate sysconfig file +- replaced delayed exit patch by CUPS authors one +* Thu Jul 18 2002 - kssingvo@suse.de +- again rccups: rc.config only parsed, if present (for backward compatibility) +* Thu Jul 18 2002 - kssingvo@suse.de +- updated rccups to satisfy new SuSE requirements +- added delayed exit of cupsd patch (for processing many PPD files) +* Wed Jul 10 2002 - kssingvo@suse.de +- adapted the pam file for SuSE (according to Thorstens proposal) +* Tue Jul 09 2002 - kssingvo@suse.de +- upgraded to version 1.1.15 and adapted all the old patches +- moved %%{_sysconfdir}/cups to libs (as suggested by jsmeix) +* Tue Jul 02 2002 - kssingvo@suse.de +- added symbolic link /usr/bin/lpc (bugzilla #16652) +- changed umask in rccups (bugzilla #16567) +* Thu Jun 13 2002 - draht@suse.de +- Running cupsd if no printer is configured makes no sense. + Do not activate cupsd after installation in %%post. +* Tue Jun 04 2002 - kssingvo@suse.de +- fixed g++/cups-config problems in other cups subpackages +* Tue Jun 04 2002 - kssingvo@suse.de +- added 'cups-config' to devel +* Wed May 08 2002 - kssingvo@suse.de +- fixed linker problem (rpath) under x86_64 +- therefore old x86_64 fix is no longer necessary: removed. +* Mon Apr 22 2002 - kssingvo@suse.de +- added %%ifarch x86_64 to avoid linking problems in specfile. +* Thu Apr 18 2002 - kssingvo@suse.de +- updated to 1.1.14 +- removed unnecessary patches +- adapted testpage.ps patch to new file +- fixed permission problem with lppasswd +- fixed %%files section (now includes all %%dirs too) +* Wed Apr 10 2002 - ro@suse.de +- don't call autoreconf, we can't use autoheader and automake here +* Tue Feb 26 2002 - kssingvo@suse.de +- fixed too restrictive IPP security fix +- fixed documentation path (#13889) +* Mon Feb 25 2002 - kssingvo@suse.de +- reorganized online documentation. old structure might confuse people (#13849) +* Wed Feb 20 2002 - kssingvo@suse.de +- completed the IPP security fix again (hopefully the last time) +* Mon Feb 18 2002 - kssingvo@suse.de +- completed the IPP security fix +* Tue Feb 12 2002 - kssingvo@suse.de +- updated perl scripts cupsomatic, and foomatic-gswrapper +* Tue Feb 12 2002 - kssingvo@suse.de +- made patch cups-cs-utf8.dif again. got build problems with last version. +* Mon Feb 11 2002 - kssingvo@suse.de +- Added iso-8859-2 patch for czech utf-8 locale. + Thanks to Petr Blahos . +* Mon Feb 11 2002 - kssingvo@suse.de +- added IPP security fix +* Fri Feb 01 2002 - draht@suse.de +- log tcp-wrappers based connection refusals to cups' own logfiles + instead of syslog. +* Fri Feb 01 2002 - ro@suse.de +- changed neededforbuild to +* Tue Jan 29 2002 - draht@suse.de +- added support for tcp-wrappers (cups-1.1.12-libwrap-addition.dif) + token for /etc/hosts.{allow,deny} is "cupsd". +* Mon Jan 21 2002 - schwab@suse.de +- Fix gcc version check. +* Tue Jan 08 2002 - pblahos@suse.cz +- cups-client does not provide print_daemon anymore. print_daemon + is required by aps but cups-client does not satisfy aps + regarding this. +- START_CUPS variable removed +- up to 1.1.12 +* Sun Nov 11 2001 - bjacke@suse.de +- fixes specfile +* Sat Nov 10 2001 - bjacke@suse.de +- add standard postscript PPD +- set DefaultPage{Size,Region} to A4 in ppd files +- now reqiures ghostscript_any +- add /etc/permissions.d/cups-client (#4094) +- personalize test page +- move old font directory if existing and send mail +- up to 1.1.11 +* Mon Oct 22 2001 - ro@suse.de +- remove ghostscript-fonts-std from neededforbuild, this is only + a runtime requirement +* Tue Sep 04 2001 - bjacke@suse.de +- work around cups' broken tmp file handling (#10142) +* Sun Sep 02 2001 - bjacke@suse.de +- move client.conf to libs package +- activate cat8 man pages +- add README.SuSE +- update lphelp +* Thu Aug 30 2001 - bjacke@suse.de +- split into cups-client and cups(-server) package +- add %%ghosty smb printer backend support +- re-add ogonky for non-latin1 charsets (#9864) +- add printanalyzer script in doc +* Mon Aug 27 2001 - utuerk@suse.de +- removed cups.conf (now provided by susehelp) +* Mon Aug 27 2001 - kukuk@suse.de +- Remove -j parameter from spec file +* Sat Aug 25 2001 - bjacke@suse.de +- update to 1.1.10-1 (many fixes) +- fix output for dvi's (bug #9862) +- new poll_ppd_base +* Sun Aug 19 2001 - bjacke@suse.de +- split out cups-libs from cups +- add ssl directory +- make correct links for cups libraries +* Thu Aug 16 2001 - bjacke@suse.de +- use ghostscript fonts which are the same as the cups fonts and adjust + dependecy for ghostscript-fonts-std +* Sun Aug 12 2001 - bjacke@suse.de +- enable SSL +* Fri Aug 10 2001 - bjacke@suse.de +- correct init script +* Fri Jul 20 2001 - max@suse.de +- new version 1.1.9 . +- updated init script to new skeleton (Bug #8981). +* Mon Jun 18 2001 - max@suse.de +- added support for PS files created by Netscape. +* Sun Apr 15 2001 - schwab@suse.de +- Fix missing declarations. +* Thu Apr 12 2001 - max@suse.de +- moved foomatic-gswrapper and cupsomatic + from cups-drivers to cups +* Thu Apr 12 2001 - max@suse.de +- patched cupsd to use /dev/urandom instead of /dev/random. + This fixes bug #6703 +* Wed Apr 11 2001 - max@suse.de +- spec file overhaul +- using RPM_BUILD_ROOT now +- removed /etc/printcap from file list +- removed dependency to cups-drivers +* Tue Apr 10 2001 - kendy@suse.cz +- Wake up Epson Stylus USB printers before sending the print job. +- Added czech translations (czech.dif). +* Mon Apr 02 2001 - utuerk@suse.de +- added cups.conf for susehelp +* Fri Mar 23 2001 - kendy@suse.cz +- USB printers can be now addressed using URI + usb:?vendor=&prod_id= + where and are USB identification numbers. + (e.g. usb:/dev/usb/lp?vendor=04a9&prod_id=1052 for Canon BJC-6100) +- fixed pplication/dvi -> application/dvi in conf/mime.convs +* Mon Feb 26 2001 - mhafner@suse.de +- update to 1.1.6-3 (fixing several security issues) +* Tue Jan 30 2001 - mhafner@suse.de +- update to 1.1.6 (fixes possible DoS attack) +* Mon Jan 08 2001 - bjacke@suse.de +- added missing reqiures for cups-drivers +* Fri Dec 22 2000 - mhafner@suse.de +- update to version 1.1.5 +* Mon Dec 04 2000 - mhafner@suse.de +- cups configuration changed - Browsing now Off by default +* Thu Nov 30 2000 - mhafner@suse.de +- added DVI filter +* Wed Nov 29 2000 - ro@suse.de +- fixed spec +* Tue Nov 28 2000 - ro@suse.de +- fixed startscript +* Fri Nov 24 2000 - mhafner@suse.de +- added rc.config fillup and SuSEconfig script to automatically + set browse address if demanded +* Wed Nov 22 2000 - mhafner@suse.de +- split into system and development package +* Fri Oct 06 2000 - mhafner@suse.de +- documentation root changed +* Fri Oct 06 2000 - mhafner@suse.de +- update to version 1.1.4 +- small changes in spec file +* Mon Sep 25 2000 - mhafner@suse.de +- make post-script succeed unconditionally +* Tue Sep 19 2000 - mhafner@suse.de +- update to version 1.1.3 +* Thu Sep 14 2000 - mhafner@suse.de +- restart daemon if already started +- added two little tools (poll_ppd_base, lphelp) +- added a few compatibility links +* Thu Sep 14 2000 - mhafner@suse.de +- turned automatic generation of printcap on +- turned implicit classes off since they are buggy +* Wed Sep 13 2000 - mhafner@suse.de +- fixed directory structure +- added links to lpd and rclpd +* Fri Sep 01 2000 - adrian@suse.de +- added Conflicts line +* Mon Aug 28 2000 - adrian@suse.de +- initial package diff --git a/cups.sysconfig b/cups.sysconfig new file mode 100644 index 0000000..063291f --- /dev/null +++ b/cups.sysconfig @@ -0,0 +1,17 @@ +## Path: System/Printing/CUPS +## Description: Cups options +## Type: string +## Default: cups +## ServiceReload: cups +## ServiceRestart: cups +# +IDENT="cups" +## Type: string +## Default: "CUPS printer daemon" +DESCRIPTIVE="CUPS printer daemon" +## Type: string +## Default: "" +# +# change CUPSD_OPTIONS for arguments of start of cupsd +# e.g. CUPSD_OPTIONS="-c /etc/cups/cupsd.conf" +CUPSD_OPTIONS="" diff --git a/cups.xinetd b/cups.xinetd new file mode 100644 index 0000000..0728c59 --- /dev/null +++ b/cups.xinetd @@ -0,0 +1,11 @@ +service printer +{ + disable = yes + flags = NAMEINARGS + socket_type = stream + protocol = tcp + wait = no + user = lp + server = @LIB@/cups/daemon/cups-lpd + server_args = cups-lpd -o document-format=application/octet-stream +} diff --git a/dvitops b/dvitops new file mode 100644 index 0000000..5313ee0 --- /dev/null +++ b/dvitops @@ -0,0 +1,41 @@ +#!/bin/sh + +if test "$#" -lt "5"; then + echo "ERROR: Number of arguments ($#) is wrong" 1>&2 + exit 1 +fi + +if test "$#" -gt "6"; then + echo "ERROR: Number of arguments ($#) is wrong" 1>&2 + exit 1 +fi + +# Log the command line +echo dvitops: $@ 1>&2 + +# Get the last parameter (which is the filename if present) +eval filename="\${$#}" + +if [ -e $filename ]; then + FILE_TO_PRINT=$filename; +else + FILE_TO_PRINT=""; +fi + +if [ -z $FILE_TO_PRINT ]; then + FILE_TO_PRINT=`mktemp -q /tmp/dvitops.XXXXXX` + if [ $? -ne 0 ]; then + echo "ERROR: Can't create temp file, exiting..." 1>&2 + exit 1 + fi + trap "rm -f $FILE_TO_PRINT" EXIT SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM + cat >$FILE_TO_PRINT +fi + +if [ -z $FILE_TO_PRINT ]; then + /usr/bin/dvips -q -f +else + /usr/bin/dvips -q -f <$FILE_TO_PRINT +fi + + diff --git a/lphelp.c b/lphelp.c new file mode 100644 index 0000000..41cdbba --- /dev/null +++ b/lphelp.c @@ -0,0 +1,362 @@ +/* + * + * lphelp + * ------ + # + # A simple tool for getting information about an installed printer or a + # PPD file. Especially the printer-specific options defined in the PPD + # file are listed, so that one can make use of them with the "lp", "lpr", + # and "lpoptions" commands. The programm can also be used by installation/ + # configuration scripts to give a "preview" to a PPD file. + # + # ONLY WORKS WITH CUPS DAEMON RUNNING! + # The CUPS library (libcups.so.*) must be installed! + # + # Compile with: gcc -olphelp -lcups lphelp.c + # + * Copyright 2000 by Till Kamppeter + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + * 02111-1307 USA + * + */ + +/* + * Include necessary headers... + */ + +#include +#include +#include +#include + +/* + * 'main()' - Main entry for test program. + */ + +int /* O - Exit status */ +main(int argc, /* I - Number of command-line arguments */ + char *argv[]) /* I - Command-line arguments */ +{ + int i, j, k, m; /* Looping vars */ + const char *filename; /* File to load */ + FILE *ppdfile; + + // Temporary file name (for reading from stdin) + char tmpfile[19] = "/tmp/lphelp.XXXXXX"; + const int blocksize = 1024; + char buffer[blocksize]; + int bytesread; + + // variables for parsing PPD file for usual options (boolean, enumerated) + ppd_file_t *ppd; /* PPD file record */ + ppd_size_t *size; /* Size record */ + ppd_group_t *group; /* UI group */ + ppd_option_t *option; /* Standard UI option */ + ppd_choice_t *choice; /* Standard UI option choice */ + static char *uis[] = { "BOOLEAN", "PICKONE", "PICKMANY" }; + static char *sections[] = { "ANY", "DOCUMENT", "EXIT", + "JCL", "PAGE", "PROLOG" }; + + // variables for parsing CUPS-O-MATIC info for numerical options (float, int) + char line[1024], /* buffer for reading PPD file line by + line to search numerical options */ + item[1024], /* item to be defined (left of "=>") */ + value[1024], /* value for item (right of "=>") */ + argname[1024], /* name of the current argument */ + comment[1024]; /* human-readable argument name */ + const char *line_contents; /* contents of line */ + const char *scan; /* pointer scanning the line */ + char *writepointer; + double min, max, defvalue; /* Range of numerical + CUPS-O-MATIC option */ + int opttype; /* 0 = other, 1 = int, 2 = float */ + int openbrackets; /* How many curled brackets are open? */ + int inquotes; /* are we in quotes now? */ + int inargspart; /* are we in the arguments part now? */ + + /* + * Display PPD files for each file listed on the command-line... + */ + + if (argc == 1) { + fputs("Usage: lphelp .ppd [.ppd ...]\n lphelp [ ...]\n lphelp -\n", stderr); + return (1); + } + + for (i = 1; i < argc; i ++) { + if ((strstr(argv[i], ".ppd")) || (strstr(argv[i], "-"))) + filename = argv[i]; + else + filename = cupsGetPPD(argv[i]); + if (strcmp(filename,"-") == 0) { + if ((ppdfile = fdopen(mkstemp(tmpfile), "w")) == NULL) { + fprintf(stderr, "Unable to generate temporary file!\n"); + } + while ((bytesread = fread(buffer, 1, blocksize, stdin)) > 0) { + fwrite(buffer, 1, bytesread, ppdfile); + } + fclose(ppdfile); + filename = tmpfile; + } + if ((ppd = ppdOpenFile(filename)) == NULL) { + fprintf(stderr, "Unable to open \'%s\' as a PPD file!\n", filename); + continue; + } + + printf("==============================================================================\n\n"); + printf("%s\n\n", ppd->modelname); + printf("==============================================================================\n\n"); + printf(" %s printer\n\n", ppd->color_device ? "Colour" : "Black & white"); + printf(" Printer-specific options\n"); + printf(" ------------------------\n\n"); + printf(" Besides the options described in the CUPS software users manual\n"); + printf(" (http://localhost:631/sum.html) you can use also the following options\n"); + printf(" when you print on this printer with the \"lp\" or \"lpr\" command (a choice\n"); + printf(" with the \"default\" mark represents the behaviour of the printer when the\n"); + printf(" appropriate option is not given on the command line):\n\n"); + + for (j = 0, group = ppd->groups; j < ppd->num_groups; j ++, group ++) { + for (k = 0, option = group->options; k < group->num_options; + k ++, option ++) { + if (strcmp(option->keyword, "PageRegion") != 0) { + if ((strcmp(uis[option->ui],"BOOLEAN") == 0) || + (strcmp(uis[option->ui],"PICKONE") == 0)) { + printf(" %s: -o %s=\n\n", + option->text, option->keyword); + printf(" can be one of the following:\n\n"); + } else { + printf(" %s: -o %s=,,...\n\n", + option->text, option->keyword); + printf(" , , and so on can be out of the following:\n\n"); + } + if (strcmp(option->keyword, "PageSize") == 0) { + for (m = option->num_choices, choice = option->choices; + m > 0; + m --, choice ++) { + size = ppdPageSize(ppd, choice->choice); + + if (size == NULL) + printf(" %s (%s, size unknown", choice->choice, choice->text); + else + printf(" %s (%s, size: %.2fx%.2fin", choice->choice, + choice->text, size->width / 72.0, size->length / 72.0); + if (strcmp(option->defchoice, choice->choice) == 0) + puts(", default)"); + else + puts(")"); + } + } else { + for (m = option->num_choices, choice = option->choices; + m > 0; + m --, choice ++) { + printf(" %s (%s", choice->choice, choice->text); + if (strcmp(option->defchoice, choice->choice) == 0) + puts(", default)"); + else + puts(")"); + } + } + printf("\n"); + } + } + } + ppdClose(ppd); + + // Search for numerical options of CUPS-O-MATIC + if ((ppdfile = fopen(filename,"r")) == NULL) { + fprintf(stderr, "Unable to open \'%s\' as a PPD file!\n", filename); + continue; + } + // Reset all variables + opttype = 0; + min = 0.0; max = 0.0; defvalue = 0.0; + openbrackets = 0; + inquotes = 0; + writepointer = item; + inargspart = 0; + // Read the PPD file again, line by line. + while (fgets(line,sizeof(line),ppdfile)) { + // evaluate only lines with CUPS-O-MATIC info + if (line_contents = strstr(line,"*% COMDATA #")) { + line_contents += 12; // Go to the text after + // "*% COMDATA #" + for (scan = line_contents; + (*scan != '\n') && (*scan != '\0'); + scan ++) { + switch(*scan) { + case '[': // open square bracket + case '{': // open curled bracket + if (!inquotes) { + openbrackets ++; + // we are on the left hand side now + *writepointer = '\0'; + writepointer = item; + // in which type of block are we now? + if ((openbrackets == 2) && + (strncasecmp(item,"args",4) == 0)) { + // we are entering the arguments section now + inargspart = 1; + } + if ((openbrackets == 3) && + (inargspart == 1)) { + // new argument, get its name + strcpy(argname,item); + } + // item already evaluated now + item[0] = '\0'; + } else {*writepointer = *scan; writepointer ++;} + break; + case ',': // end of logical line + case ']': // close square bracket + case '}': // close curled bracket + if (!inquotes) { + // right hand side completed, go to left hand side + *writepointer = '\0'; + writepointer = item; + // evaluate logical line + if (item[0]) { + // Machine-readable argument name + if ((openbrackets == 3) && + (inargspart == 1) && + (strcasecmp(item,"name") == 0)) { + strcpy(argname,value); + } + // Human-readable argument name + if ((openbrackets == 3) && + (inargspart == 1) && + (strcasecmp(item,"comment") == 0)) { + strcpy(comment,value); + } + // argument type + if ((openbrackets == 3) && + (inargspart == 1) && + (strcasecmp(item,"type") == 0)) { + if (strcasecmp(value,"int") == 0) opttype = 1; + if (strcasecmp(value,"float") == 0) opttype = 2; + } + // minimum value + if ((openbrackets == 3) && + (inargspart == 1) && + (strcasecmp(item,"min") == 0)) { + min = atof(value); + } + // maximum value + if ((openbrackets == 3) && + (inargspart == 1) && + (strcasecmp(item,"max") == 0)) { + max = atof(value); + } + // default value + if ((openbrackets == 3) && + (inargspart == 1) && + (strcasecmp(item,"default") == 0)) { + defvalue = atof(value); + } + // item already evaluated now + item[0] = '\0'; + } + // close bracket + if ((*scan == '}') || (*scan == ']')) { + // which block did we complete now? + if ((openbrackets == 2) && + (inargspart == 1)) { + // We are leaving the arguments part now + inargspart = 0; + } + if ((openbrackets == 3) && + (inargspart == 1)) { + // The current option is completely parsed + // Is the option a valid numerical option? + if ((opttype > 0) && + (min != max) && + (argname[0])) { + // Correct the default value, if necessary + if (min < max) { + if (defvalue < min) defvalue = min; + if (defvalue > max) defvalue = max; + } else { + if (defvalue < max) defvalue = max; + if (defvalue > min) defvalue = min; + } + // Show the found argument + printf(" %s: -o %s=\n\n", + comment, argname); + if (opttype == 1) { + printf( + " must be an integer number in the range %d..%d\n", + (int)(min),(int)(max)); + printf( + " The default value is %d\n\n", + (int)(defvalue)); + } else { + printf( + " must be a decimal number in the range %.2f..%.2f\n", + min,max); + printf( + " The default value is %.2f\n\n", + defvalue); + } + } + // reset the values + argname[0] = '\0'; + opttype = 0; + min = 0.0; max = 0.0; defvalue = 0.0; + } + openbrackets --; + } + } else {*writepointer = *scan; writepointer ++;} + break; + case '\'': // quote + if (!inquotes) { // open quote pair + inquotes = 1; + } else { // close quote pair + inquotes = 0; + } + break; + case '=': // "=>" + if ((!inquotes) && (*(scan + 1) == '>')) { + scan ++; + // left hand side completed, go to right hand side + *writepointer = '\0'; + writepointer = value; + } else {*writepointer = *scan; writepointer ++;} + break; + case ' ': // white space + case '\t': + if (!inquotes) { + // ignore white space outside quotes + } else {*writepointer = *scan; writepointer ++;} + break; + default: + // write all other characters + *writepointer = *scan; writepointer ++; + break; + } + } + inquotes = 0; // quote pairs cannot enclose more + // than one line + } + } + fclose(ppdfile); + printf("\n\n\n"); + } + + if (!(strstr(tmpfile, "XXXXXX"))) { + unlink(tmpfile); + } + + return (0); +} diff --git a/ogonki b/ogonki new file mode 100644 index 0000000..9e8bb14 --- /dev/null +++ b/ogonki @@ -0,0 +1,50 @@ +#!/bin/sh + +if test "$#" -lt "5"; then + echo "ERROR: Number of arguments ($#) is wrong" 1>&2 + exit 1 +fi + +if test "$#" -gt "6"; then + echo "ERROR: Number of arguments ($#) is wrong" 1>&2 + exit 1 +fi + +# Log the command line +echo ogonkify: $@ 1>&2 + +# Get the last parameter (which is the filename if present) +eval filename="\${$#}" + +case "$CHARSET" in + iso-8859-1) CMD="cat " ;; + iso-8859-2) CMD="/usr/bin/ogonkify -AT -N " ;; + iso-8859-3) CMD="/usr/bin/ogonkify -e L3 -AT -N " ;; + iso-8859-4) CMD="/usr/bin/ogonkify -e L4 -AT -N " ;; + iso-8859-9) CMD="/usr/bin/ogonkify -e L5 -AT -N " ;; + iso-8859-10) CMD="/usr/bin/ogonkify -e L6 -AT -N " ;; + iso-8859-15) CMD="/usr/bin/ogonkify -e L9 -AT -N " ;; + *) CMD="cat " ;; +esac + +if [ -e $filename ]; then + FILE_TO_PRINT=$filename; +else + FILE_TO_PRINT=""; +fi + +if [ -z $FILE_TO_PRINT ]; then + FILE_TO_PRINT=`mktemp -q /tmp/ogonki.XXXXXX` + if [ $? -ne 0 ]; then + echo "ERROR: Can't create temp file, exiting..." 1>&2 + exit 1 + fi + trap "rm -f $FILE_TO_PRINT" EXIT SIGHUP SIGINT SIGQUIT SIGABRT SIGTERM + cat >$FILE_TO_PRINT +fi + +if [ -z $FILE_TO_PRINT ]; then + eval $CMD +else + eval $CMD <$FILE_TO_PRINT +fi diff --git a/poll_ppd_base.c b/poll_ppd_base.c new file mode 100644 index 0000000..78f4381 --- /dev/null +++ b/poll_ppd_base.c @@ -0,0 +1,302 @@ +/* + * + * poll_ppd_base + * ------------- + # + # A simple tool for getting a list of all installed PPD files + # with printer manufacturer and printer model, polling the database + # of the CUPS daemon. This program is mainly intended to be called + # from installation/configuration scripts for CUPS. + # + # ONLY WORKS WITH CUPS DAEMON RUNNING! + # The CUPS library (libcups.so.*) must be installed! + # + # Compile with: gcc -opoll_ppd_base -lcups poll_ppd_base.c + # + * Copyright 2000 by Till Kamppeter + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + * 02111-1307 USA + * + */ + +/* + * Include necessary headers... + */ + +#include +#include +#include +#include +#include +#include +#include + +// IPP Request routines for getting the printer type, stolen from QTCUPS from +// Michael Goffioul (file qtcups/cupshelper.cpp) + +ipp_t* newIppRequest() +{ + ipp_t *request; + cups_lang_t *lang; + request = ippNew(); + request->request.op.request_id = 1; + lang = cupsLangDefault(); + ippAddString(request,IPP_TAG_OPERATION,IPP_TAG_CHARSET,"attributes-charset",NULL,cupsLangEncoding(lang)); + ippAddString(request,IPP_TAG_OPERATION,IPP_TAG_LANGUAGE,"attributes-natural-language",NULL,lang->language); + return request; +} + +ipp_t* processRequest(ipp_t *req, const char *res) +{ + http_t *HTTP; + ipp_t *answer; + HTTP = httpConnect(cupsServer(),ippPort()); + if (!HTTP) { + ippDelete(req); + return 0; + } + answer = cupsDoRequest(HTTP,req,res); + httpClose(HTTP); + if (!answer) return 0; + if (answer->state == IPP_ERROR || answer->state == IPP_IDLE) { + ippDelete(answer); + return 0; + } + return answer; +} + +ipp_t *getPPDList() +{ + ipp_t *request = newIppRequest(); + char str[1024]; + const char* server = cupsServer(); + int port = ippPort(); + + request->request.op.operation_id = CUPS_GET_PPDS; + if ((!server) || (port < 0)) return NULL; + sprintf(str,"ipp://%s:%d/printers/",cupsServer(),ippPort()); + ippAddString(request,IPP_TAG_OPERATION,IPP_TAG_URI,"printer-uri",NULL,str); + //str.sprintf("/printers/%s",name); + request = processRequest(request,"/"); + return request; +} + +/* + * Main program + */ + +int /* O - exit state */ +main(int argc, /* I - Number of command-line arguments */ + char *argv[]) /* I - Command-line arguments */ +{ + int i,j; /* Looping vars */ + int makelen = 0; /* Length of current manufacturer name */ + int makelist = 0; /* List of manufacturers */ + int makegiven = 0; /* List of models for given manufacturer */ + int all = 0; /* LIst of all models */ + char *make; /* Chosen manufacturer */ + ipp_t *ppdlist; /* List of PPD files resulting from IPP */ + /* request */ + ipp_attribute_t *attr, /* Current attribute */ + *last; /* Last attribute */ + char *currmake, /* current data red from PPD list */ + *currmod, + *currlang, + *currfile, + *c; + char buffer[80], + buffer2[256]; + int lineprinted = 1; /* Is the current line already printed to + stdout */ + + // read command line arguments + + for (i = 1; i < argc; i ++) + if (argv[i][0] == '-') { + switch (argv[i][1]) { + case 'm' : /* Manufacturer options */ + if (argv[i][2] != '\0') { + if (strcmp(argv[i],"-ml") == 0) { + makelist = 1; + } else { + make = argv[i] + 2; + makegiven = 1; + } + } else { + i ++; + if (!(make = argv[i])) return 1; + makegiven = 1; + } + break; + case 'a' : /* List all PPD files */ + all = 1; + break; + default : + fprintf(stderr,"Unknown option \'%c\'!\n", argv[i][1]); + fprintf(stderr,"Start program without options for help!\n"); + return(1); + } + } else { + fprintf(stderr,"Unknown option \'%s\'!", argv[i]); + fprintf(stderr,"Start program without options for help!\n"); + return(1); + } + if ((all) || (makegiven)) { // list all PPDs or PPDs of given manufacturer + ppdlist = getPPDList(); + if (!ppdlist) return 1; + for (attr = ppdlist->attrs; // go through all entries + attr != NULL; + attr = attr->next) + if (attr->name) { + // read data items + if (strcmp(attr->name, "ppd-name") == 0) { + currfile = attr->values[0].string.text; + lineprinted = 0; + } else if (strcmp(attr->name, "ppd-make") == 0) { + currmake = attr->values[0].string.text; + } else if (strcmp(attr->name, "ppd-make-and-model") == 0) { + currmod = attr->values[0].string.text; + } else if (strcmp(attr->name, "ppd-natural-language") == 0) { + currlang = attr->values[0].string.text; + } + } else { // attr->name = NULL ==> data set completed + lineprinted = 1; + // Fill empty entries with some default stuff + if (!currmod) currmod = "UNKNOWN"; + if (!currmake) currmake = "UNKNOWN"; + if (!currlang) currlang = "en"; + // Remove the manufacturer's name from the model entries + makelen = strlen(currmake); + if (strcasecmp(currmake,"UNKNOWN") != 0) { + if (strncasecmp(currmake,currmod,makelen) == 0) { + currmod += makelen; + while ((*currmod == ' ') || + (*currmod == '-') || + (*currmod == '\t')) currmod ++; + } + } + // Make the manufacturer's name all-uppercase + currmake = strcpy(buffer,currmake); + for (i = 0; i < makelen; i ++) buffer[i] = toupper(buffer[i]); + // Clean up the driver info + currmod = strcpy(buffer2,currmod); + if (c = strstr(currmod, "Foomatic + Postscript")) { + memmove(c, "PostScript", 10); + memmove(c + 10, c + 21, strlen(c) - 20); + } else if (c = strstr(currmod, "Foomatic")) { + memmove(c + 11, c + 8, strlen(c) - 7); + memmove(c, "GhostScript", 11); + } else if (c = strstr(currmod, "CUPS+GIMP-print")) { + memmove(c + 17, c + 15, strlen(c) - 14); + memmove(c, "CUPS + GIMP-Print", 17); + } else if (c = strstr(currmod, "Series CUPS")) { + memmove(c + 12, c + 11, strlen(c) - 10); + memmove(c, "Series, CUPS", 12); + } else if (!((strstr(currmod, "PostScript")) || + (strstr(currmod, "Postscript")) || + (strstr(currmod, "POSTSCRIPT")))) { + memmove(currmod + strlen(currmod), ", PostScript", 13); + } + // Put data to stdout when "all" is chosen or when the manufacturer + // matches the given one. + if ((currfile) && ((all) || !strcasecmp(currmake,make))) + printf("%s|%s|%s|%s\n",currfile,currmake,currmod,currlang); + } + if (!lineprinted) { + // Fill empty entries with some default stuff + if (!currmod) currmod = "UNKNOWN"; + if (!currmake) currmake = "UNKNOWN"; + if (!currlang) currlang = "en"; + // Remove the manufacturer's name from the model entries + makelen = strlen(currmake); + if (strcasecmp(currmake,"UNKNOWN") != 0) { + if (strncasecmp(currmake,currmod,makelen) == 0) { + currmod += makelen; + while ((*currmod == ' ') || + (*currmod == '-') || + (*currmod == '\t')) currmod ++; + } + } + // Make the manufacturer's name all-uppercase + currmake = strcpy(buffer,currmake); + for (i = 0; i < makelen; i ++) buffer[i] = toupper(buffer[i]); + // Clean up the driver info + currmod = strcpy(buffer2,currmod); + if (c = strstr(currmod, "Foomatic + Postscript")) { + memmove(c, "PostScript", 10); + memmove(c + 10, c + 21, strlen(c) - 20); + } else if (c = strstr(currmod, "Foomatic")) { + memmove(c + 11, c + 8, strlen(c) - 7); + memmove(c, "GhostScript", 11); + } else if (c = strstr(currmod, "CUPS+GIMP-print")) { + memmove(c + 17, c + 15, strlen(c) - 14); + memmove(c, "CUPS + GIMP-Print", 17); + } else if (c = strstr(currmod, "Series CUPS")) { + memmove(c + 12, c + 11, strlen(c) - 10); + memmove(c, "Series, CUPS", 12); + } else if (!((strstr(currmod, "PostScript")) || + (strstr(currmod, "Postscript")) || + (strstr(currmod, "POSTSCRIPT")))) { + memmove(currmod + strlen(currmod), ", PostScript", 13); + } + // Put data to stdout when "all" is chosen or when the manufacturer + // matches the given one. + if ((currfile) && ((all) || !strcasecmp(currmake,make))) + printf("%s|%s|%s|%s\n",currfile,currmake,currmod,currlang); + } + } else if (makelist) { // list all manufacturers + ppdlist = getPPDList(); + if (!ppdlist) return 1; + for (attr = ppdlist->attrs, last = NULL; // go through all entries + attr != NULL; + attr = attr->next) + if (attr->name && strcmp(attr->name, "ppd-make") == 0) + // only search for manufacturerer entriees + if (last == NULL || + strcasecmp(last->values[0].string.text, + attr->values[0].string.text) != 0) + // Do not take the same manufacturer twice + { + // Put found manufacturer to stdout + printf("%s\n",attr->values[0].string.text); + last = attr; + } + } else { // Help! + fprintf(stderr,"Usage:\n"); + fprintf(stderr,"------\n"); + fprintf(stderr,"\n"); + fprintf(stderr," poll_ppd_base\n"); + fprintf(stderr,"\n"); + fprintf(stderr," This help page\n"); + fprintf(stderr,"\n"); + fprintf(stderr," poll_ppd_base -a\n"); + fprintf(stderr,"\n"); + fprintf(stderr," List all PPD files\n"); + fprintf(stderr,"\n"); + fprintf(stderr," poll_ppd_base -ml\n"); + fprintf(stderr,"\n"); + fprintf(stderr," List of all printer manufacturers supported by the PPD files installed\n"); + fprintf(stderr,"\n"); + fprintf(stderr," poll_ppd_base -m \n"); + fprintf(stderr,"\n"); + fprintf(stderr," List of all supported printer models of this manufacturer\n"); + fprintf(stderr,"\n"); + fprintf(stderr,"ONLY WORKS WITH CUPS DAEMON RUNNING!\n"); + fprintf(stderr,"\n"); + return(1); + } + return(0); +} diff --git a/postscript.ppd.bz2 b/postscript.ppd.bz2 new file mode 100644 index 0000000..046f3b0 --- /dev/null +++ b/postscript.ppd.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9182f16834ccea5ae10398c0e4ad76156b1d8b82b175db4883201d912d0400a2 +size 1911 diff --git a/pswrite b/pswrite new file mode 100644 index 0000000..c5492d4 --- /dev/null +++ b/pswrite @@ -0,0 +1,12 @@ +#! /bin/bash + +# enable "set -x" for debug info in /var/log/cups/error_log +#set -x + +# set inputfile to where the input comes from +inputfile="-" +[ -n "$6" ] && inputfile="$6" + +# output PostScript level 1 (for PostScript level 2 use -dLanguageLevel=2) +gs -q -dBATCH -dPARANOIDSAFER -dNOPAUSE -sDEVICE=pswrite -dLanguageLevel=1 -sOutputFile=- $inputfile + diff --git a/rccups b/rccups new file mode 100644 index 0000000..537e6c7 --- /dev/null +++ b/rccups @@ -0,0 +1,172 @@ +#! /bin/sh +# +# Copyright (c) 1995-2001 SuSE GmbH Nuernberg, Germany. +# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany. +# +# Author: Kurt Garloff , 2000 +# Klaus Singvogel , 2002 +# +# /etc/init.d/cupsd +# +# and symbolic its link +# +# /sbin/rccupsd +# +# System startup script for the CUPS printer daemon +# +### BEGIN INIT INFO +# Provides: cupsd +# Required-Start: $local_fs $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Should-Start: earlykdm hotplug named portmap ptal slpd printbill hplip +# Should-Stop: portmap +# Default-Start: 2 3 5 +# Default-Stop: 0 1 6 +# Description: Start CUPS printer daemon +### END INIT INFO + +# Source SuSE config, only if exists with size greater zero +test -s /etc/rc.config && \ + . /etc/rc.config + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v ditto but be verbose in local rc status +# rc_status -v -r ditto and clear the local rc status +# rc_failed set local and overall rc status to failed +# rc_failed set local and overall rc status to +# rc_reset clear local rc status (overall remains) +# rc_exit exit appropriate to overall rc status + +CUPSD_BIN=/usr/sbin/cupsd + +test -s /etc/rc.status && \ + . /etc/rc.status + +test -s /etc/sysconfig/cups && \ + . /etc/sysconfig/cups + +test -x $CUPSD_BIN || exit 5 + +# First reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - insufficient privilege +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signalling is not supported) are +# considered a success. + +# change umask to avoid problems in wrong file permission of /etc/printcap +# (SuSE buzilla #16567) +umask 022 + +case "$1" in + start) + echo -n "Starting cupsd" + ## Start daemon with startproc(8). If this fails + ## the echo return value is set appropriate. + + # NOTE: startproc return 0, even if service is + # already running to match LSB spec. + if [ "$PREVLEVEL" = "N" -a "$RUNLEVEL" = "5" ]; then + /usr/bin/ionice -c 3 startproc $CUPSD_BIN $CUPSD_OPTIONS + else + startproc $CUPSD_BIN $CUPSD_OPTIONS + fi + + # Remember status and be verbose + rc_status -v + ;; + stop) + echo -n "Shutting down cupsd" + ## Stop daemon with killproc(8) and if this fails + ## set echo the echo return value. + + killproc -TERM $CUPSD_BIN + + # Remember status and be verbose + rc_status -v + ;; + try-restart) + ## Stop the service and if this succeeds (i.e. the + ## service was running before), start it again. + ## Note: try-restart is not (yet) part of LSB (as of 0.7.5) + $0 status >/dev/null && $0 restart + + # Remember status and be quiet + rc_status + ;; + restart) + ## Stop the service and regardless of whether it was + ## running or not, start it again. + $0 stop + $0 start + + # Remember status and be quiet + rc_status + ;; + force-reload) + ## Signal the daemon to reload its config. Most daemons + ## do this on signal 1 (SIGHUP). + ## If it does not support it, restart. + + if ps -C cupsd -o user | grep -q '^root$'; then + echo -n "Reload service cupsd" + killproc -HUP $CUPSD_BIN + rc_status -v + else + $0 restart + fi + ;; + reload) + ## Like force-reload, but if daemon does not support + ## signalling, do nothing (!) + + # If it supports signalling: + if ps -C cupsd -o user | grep -q '^root$'; then + echo -n "Reload service cupsd" + killproc -HUP $CUPSD_BIN + rc_status -v + else + echo -n '"reload" not possible in RunAsUser mode - use "restart" instead' + rc_status -s + fi + ;; + status) + echo -n "Checking for cupsd: " + ## Check status with checkproc(8), if process is running + ## checkproc will return with exit status 0. + + # Status has a slightly different for the status command: + # 0 - service running + # 1 - service dead, but /var/run/ pid file exists + # 2 - service dead, but /var/lock/ lock file exists + # 3 - service not running + + # NOTE: checkproc returns LSB compliant status values. + checkproc $CUPSD_BIN + rc_status -v + ;; + probe) + ## Optional: Probe for the necessity of a reload, + ## give out the argument which is required for a reload. + + rc_failed 3 + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac +rc_exit diff --git a/rccupsrenice b/rccupsrenice new file mode 100644 index 0000000..2b4eb7f --- /dev/null +++ b/rccupsrenice @@ -0,0 +1,116 @@ +#! /bin/sh +# Copyright (c) 1995-2005 SUSE Linux AG, Nuernberg, Germany. +# All rights reserved. +# +# Author: Klaus Singvogel. +# Please send feedback to http://www.suse.de/feedback/ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +### BEGIN INIT INFO +# Provides: cupsrenice +# Should-Start: $ALL +# Required-Start: $local_fs +# Required-Stop: $local_fs +# Default-Start: 5 +# Default-Stop: 0 1 2 3 6 +# Short-Description: renice cupsd after the kde is running +# Description: bring cups daemon back to normal IO process level +# after the graphical system is up and running. +# This should result in a faster boot time +### END INIT INFO +# +#FOO_BIN=/usr/sbin/FOO +#test -x $FOO_BIN || { echo "$FOO_BIN not installed"; +# if [ "$1" = "stop" ]; then exit 0; +# else exit 5; fi; } +# +## Check for existence of needed config file and read it +#FOO_CONFIG=/etc/sysconfig/FOO +#test -r $FOO_CONFIG || { echo "$FOO_CONFIG not existing"; +# if [ "$1" = "stop" ]; then exit 0; +# else exit 6; fi; } +# +## Read config +#. $FOO_CONFIG + +. /etc/rc.status + +# Reset status of this service +rc_reset + +find_and_renice_cups_procs() +{ + # ...find process pid of cupsd and remember as parent pid + ppid=`/bin/ps -A | awk '/cupsd/{print $1}'` + # if no cupsd is running, don't do further processing + if [ -z "$ppid" ]; then + return + fi + # ...find sibling processes from daemon + list1=`/bin/ps --ppid $ppid | /usr/bin/awk '/[0-9]/{printf "%s ", $1}'` + # ...find processes owned by "lp" + list2=`/bin/ps -A -fl | /usr/bin/awk '{if ($3 ~ "lp") printf "%s ",$4}'` + # ...and renice them + for i in `echo $list1 $list2 $ppid | awk '{for (i=1;i<=NF;i++){print $i}}'| sort -u` + do + /usr/bin/ionice -c 1 "$i" + done +} + +case "$1" in + start) + ( sleep 40; find_and_renice_cups_procs ) & + rc_status -v + ;; + stop) + rc_exit + ;; + try-restart|condrestart) + $0 status + if test $? = 0; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + # Remember status and be quiet + rc_status + ;; + restart) + ## Stop the service and regardless of whether it was + ## running or not, start it again. + $0 stop + $0 start + + # Remember status and be quiet + rc_status + ;; + force-reload) + rc_failed 3 + rc_status -v + ;; + reload) + rc_failed 3 + rc_status -v + ;; + status) + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|status}" + exit 1 + ;; +esac +rc_exit diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4 diff --git a/setcupsbroadcasting b/setcupsbroadcasting new file mode 100644 index 0000000..a880974 --- /dev/null +++ b/setcupsbroadcasting @@ -0,0 +1,185 @@ +#!/usr/bin/perl -w + +# +# Script to automatically restrict the printer information broadcasting the +# accepting of external broadcasts, and the access to the printers to local +# (eth?) networks +# + +# +# Till Kamppeter (till@mandrakesoft.com) +# +# Copyright 2000 MandrakeSoft +# +# This software may be freely redistributed under the terms of the GNU +# General Public License. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +# Do not do any changes during the installation + +if ($ENV{'DURING_INSTALL'}) {exit 0}; + +# Read CUPS config file + +my $cups_conf = "/etc/cups/cupsd.conf"; +if (!(-f $cups_conf)) {die "No CUPS configuration file $cups_conf!"}; +open CONF_CUPS, "$cups_conf" or die "Can't open $cups_conf!"; +my @cups_conf_content = ; +close CONF_CUPS; + +# If it contains at least one "BrowseAddress" line broadcasting is already +# configured and we are done, stop silently here. + +grep(/^\s*BrowseAddress[^:]/, @cups_conf_content) and exit 0; + +# Read the output of "ifconfig" to look for local networks + +my $dev_is_localnet = 0; +my @local_networks = (); +my @local_bcasts = (); +my $current_ip = ""; +my $current_mask = ""; +my $current_bcast = ""; + +if (-x "/sbin/ifconfig") { + open IFCONFIG_OUT, "/sbin/ifconfig|" or die "Couldn't run \"ifconfig\"!"; + while (defined($readline = )) { + # New entry ... + if ($readline =~ /^(\S+)\s/) { + $dev = $1; + # ... for a local network? + if ($dev =~ /^eth/) {$dev_is_localnet = 1} + else {$dev_is_localnet = 0}; + # delete previous network data + $current_ip = ""; + $current_mask = ""; + $current_bcast = ""; + } + # Are we in an entry for a local network? + if ($dev_is_localnet == 1) { + # Are we in the important line now? + if ($readline =~ /\sinet addr:[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\s/) { + # Rip out the network addresses + if ($readline =~ /\sinet addr:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\s/) { + $current_ip = $1; + } + if ($readline =~ /\sBcast:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\s/) { + $current_bcast = $1; + } + if ($readline =~ /\sMask:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)\s/) { + $current_mask = $1; + } + # Is the entry valid? + if (($current_ip ne "") and ($current_mask ne "")) { + # Is there a broadcast address? + if ($current_bcast eq "") {$current_bcast = $current_ip}; + # Store broadcast address (or current IP if there is none) + push @local_bcasts, $current_bcast; + # Calculate mask fore access restriction + $current_ip =~ /([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/; + ($i1, $i2, $i3, $i4) = ($1, $2, $3, $4); + $current_mask =~ /([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/; + ($m1, $m2, $m3, $m4) = ($1, $2, $3, $4); + $current_net = ""; + if ($m1 eq "255") {$current_net = "${current_net}${i1}\."}; + if ($m2 eq "255") {$current_net = "$current_net$i2."}; + if ($m3 eq "255") {$current_net = "$current_net$i3."}; + if ($m4 eq "255") {$current_net = "$current_net$i4"} + else {$current_net = "$current_net*"}; + # Store mask + push @local_networks, $current_net; + } + } + } + } + close(IFCONFIG_OUT); +} + +# Remove all valid "BrowseAddress" lines +($_ =~ /^\s*BrowseAddress[^:]/ and $_="") foreach @cups_conf_content; + +# Insert the new "BrowseAddress" lines +(push @cups_conf_content, "BrowseAddress $_\n") foreach @local_bcasts; + +# Delete all "BrowseOrder", "BrowseAllow" and "BrowseDeny" lines from the file + +($_ =~ /^\s*BrowseOrder/ and $_="") foreach @cups_conf_content; +($_ =~ /^\s*BrowseAllow/ and $_="") foreach @cups_conf_content; +($_ =~ /^\s*BrowseDeny/ and $_="") foreach @cups_conf_content; + +# Add the new "BrowseOrder" and "BrowseDeny" lines + +push(@cups_conf_content,"BrowseOrder Deny,Allow\n"); +push(@cups_conf_content,"BrowseDeny All\n"); + +# Add a "BrowseAllow" line for every local network + +(push(@cups_conf_content,"BrowseAllow $_\n")) foreach @local_networks; + +# Cut out the root location block +# +# +# ... +# +# +# so that it can be treated seperately without affecting the rest of the +# file + +if (grep(m!^\s*!, @cups_conf_content)) { + $root_location_start = -1; + $root_location_end = -1; + # Go through all the lines, bail out when start and end line found + for ($i = 0; + ($i <= $#cups_conf_content) and ($root_location_end == -1); + $i++) { + if ($cups_conf_content[$i] =~ m!^\s*<\s*Location\s+/\s*>!) { + # Start line of block + $root_location_start = $i; + } elsif (($cups_conf_content[$i] =~ m!^\s*<\s*/Location\s*>!) and + ($root_location_start != -1)) { + # End line of block + $root_location_end = $i; + } + } + # Rip out the block and store it seperately + @root_location = + splice(@cups_conf_content,$root_location_start, + $root_location_end - $root_location_start + 1); +} else { + # If there is no root location block, create one + $root_location_start = $#cups_conf_content + 1; + @root_location = (); + push @root_location, "\n"; + push @root_location, "\n"; +} + +# Delete all former "Order", "Allow", and "Deny" lines from the root location +# block + +($_ =~ /^\s*Order/ and $_="") foreach @root_location; +($_ =~ /^\s*Allow/ and $_="") foreach @root_location; +($_ =~ /^\s*Deny/ and $_="") foreach @root_location; + +# Add the new "Order" and "Deny" lines + +splice(@root_location,-1,0,"Order Deny,Allow\n"); +splice(@root_location,-1,0,"Deny From All\n"); +splice(@root_location,-1,0,"Allow From 127.0.0.1\n"); + +# Add an "Allow" line for every local network + +(splice(@root_location,-1,0,"Allow From $_\n")) foreach @local_networks; + +# Put the changed root location block back into the file + +splice(@cups_conf_content,$root_location_start,0,@root_location); + +# Write back the modified CUPS config file + +open CONF_CUPS, ">$cups_conf" or die "Can't open $cups_conf"; +print CONF_CUPS @cups_conf_content; +close CONF_CUPS;