[Pkg-cups-devel] Bug#545298: cups-driverd detects a loop on /usr/share/ppd/1-local-admin and stops searching for PPDs
Tanguy Ortolo
tanguy+debian at ortolo.eu
Sun Sep 6 10:53:11 UTC 2009
Package: cups
Version: 1.4.0-4
Severity: important
Tags: patch
Hello,
After upgrading to CUPS 1.4, I found that it did not see any of
OpenPrinting.org's PPD, installed on /usr/share/ppd/postscript/. Here is what
happens on the log:
D [06/Sep/2009:12:22:21 +0200] [cups-driverd] Loading "/usr/local/share/ppd"...
D [06/Sep/2009:12:22:21 +0200] [cups-driverd] Loading "/usr/share/ppd"...
D [06/Sep/2009:12:22:21 +0200] [cups-driverd] Loading "/usr/share/ppd/ghostscript"...
D [06/Sep/2009:12:22:21 +0200] [cups-driverd] Loading "/usr/share/ppd/ghostscript/model"...
D [06/Sep/2009:12:22:21 +0200] [cups-driverd] Loading "/usr/share/ppd/custom"...
E [06/Sep/2009:12:22:21 +0200] [cups-driverd] Skipping "/usr/share/ppd/1-local-admin": loop detected!
And cups-driverd stops here, skipping remaining directories such as
/usr/share/ppd/postscript/.
The fact that cups-driverd detects a loop on /usr/share/ppd/1-local-admin is
not normal, but the most important problem is that this error makes it ignore
other directories. Reading the source code, I found what cups-driverd's
load_ppds() did:
1. called on a directory, loop for each file it contains (l. 1447);
2. ignore hidden files;
3. for directories (l. 1467), recursively call load_ppds() on them:
3.1. if the recursive call failed (l. 1477), terminate the function, even if
there remains directories to browse!
So here is a trivial patch to make cups-driverd ignore failing directories
instead of stopping its browsing: removing the l. 1477's return(). I will also
try to find why it considers /usr/share/ppd/1-local-admin as a looping
directory.
Regards,
--
Tanguy Ortolo
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.30-1-686 (SMP w/1 CPU core)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages cups depends on:
ii adduser 3.110 add and remove users and groups
ii bc 1.06.94-3.1 The GNU bc arbitrary precision cal
ii cups-client 1.3.11-1+b1 Common UNIX Printing System(tm) -
ii cups-common 1.3.11-1 Common UNIX Printing System(tm) -
ii debconf [debconf-2.0] 1.5.27 Debian configuration management sy
ii ghostscript 8.70~dfsg-2 The GPL Ghostscript PostScript/PDF
ii libavahi-client3 0.6.25-1 Avahi client library
ii libavahi-common3 0.6.25-1 Avahi common library
ii libc6 2.9-25 GNU C Library: Shared libraries
ii libcups2 1.4.0-4 Common UNIX Printing System(tm) -
ii libcupscgi1 1.4.0-4 Common UNIX Printing System(tm) -
ii libcupsdriver1 1.4.0-4 Common UNIX Printing System(tm) -
ii libcupsimage2 1.3.11-1+b1 Common UNIX Printing System(tm) -
ii libcupsmime1 1.4.0-4 Common UNIX Printing System(tm) -
ii libcupsppdc1 1.4.0-4 Common UNIX Printing System(tm) -
ii libdbus-1-3 1.2.16-2 simple interprocess messaging syst
ii libgcc1 1:4.4.1-1 GCC support library
ii libgnutls26 2.8.3-2 the GNU TLS library - runtime libr
ii libgssapi-krb5-2 1.7dfsg~beta3-1 MIT Kerberos runtime libraries - k
ii libijs-0.35 0.35-7 IJS raster image transport protoco
ii libkrb5-3 1.7dfsg~beta3-1 MIT Kerberos runtime libraries
ii libldap-2.4-2 2.4.17-1 OpenLDAP libraries
ii libpam0g 1.0.1-10 Pluggable Authentication Modules l
ii libpaper1 1.1.23+nmu1 library for handling paper charact
ii libpoppler4 0.10.6-1 PDF rendering library
ii libslp1 1.2.1-7.6 OpenSLP libraries
ii libstdc++6 4.4.1-1 The GNU Standard C++ Library v3
ii libusb-0.1-4 2:0.1.12-13 userspace USB programming library
ii lsb-base 3.2-23 Linux Standard Base 3.2 init scrip
ii perl-modules 5.10.0-25 Core Perl modules
ii poppler-utils [xpdf-ut 0.10.6-1 PDF utilitites (based on libpopple
ii procps 1:3.2.8-1 /proc file system utilities
ii ssl-cert 1.0.23 simple debconf wrapper for OpenSSL
ii ttf-freefont 20080323-3 Freefont Serif, Sans and Mono True
ii zlib1g 1:1.2.3.3.dfsg-15 compression library - runtime
Versions of packages cups recommends:
pn cups-driver-gutenprint <none> (no description available)
ii foomatic-filters 4.0-20090509-1 OpenPrinting printer support - fil
ii ghostscript-cups 8.70~dfsg-2 The GPL Ghostscript PostScript/PDF
Versions of packages cups suggests:
ii cups-bsd 1.3.11-1+b1 Common UNIX Printing System(tm) -
pn cups-pdf <none> (no description available)
ii cups-ppdc 1.4.0-4 Common UNIX Printing System(tm) -
ii foomatic-db 20090616-1 OpenPrinting printer support - dat
ii foomatic-db-engine 4.0-20090509-2 OpenPrinting printer support - pro
pn hplip <none> (no description available)
pn smbclient <none> (no description available)
pn xpdf-korean | xpdf-japane <none> (no description available)
-- debconf information:
cupsys/raw-print: true
cupsys/backend: ipp, lpd, parallel, socket, usb
-------------- next part --------------
--- cups-driverd.cxx.orig 2009-09-06 12:35:20.000000000 +0200
+++ cups-driverd.cxx 2009-09-06 12:35:39.000000000 +0200
@@ -1474,7 +1474,6 @@
if (!load_ppds(filename, name, 1))
{
cupsDirClose(dir);
- return (1);
}
continue;
More information about the Pkg-cups-devel
mailing list