Hello community,
here is the log from the commit of package cups-drivers
checked in at Thu Jan 17 22:33:12 CET 2008.
--------
--- cups-drivers/cups-drivers.changes 2007-11-22 10:04:26.000000000 +0100
+++ /mounts/work_src_done/STABLE/cups-drivers/cups-drivers.changes 2008-01-16 15:16:56.160470000 +0100
@@ -1,0 +2,23 @@
+Wed Jan 16 15:08:18 CET 2008 - kssingvo@suse.de
+
+- update to gutenprint 5.0.2:
+ * new Epson inkjet printers: CX4400, CX4900, CX5600, CX7400, CX9400
+ DX4050, Photo RX595, C110, C120, D120, PM 670C, PX V780
+ * new Canon printers: MP710, MP740,
+ * new PCL laser printers: Sharp AR-M257, HP LserJet 1022
+ * Preliminary Canon inkjet printers support: BJC5100, BJC5500
+ BJC8500, Pixma iP4500, Pixma iP5300, Pixma iP8500, Pixma iX5000,
+ Pixma MP170, Pixma MP180, Pixma MP610, Pixma Pro 9500, i80
+ * several bug fixes
+ * fixes for old printers, such as Canon iP4000, iP4200, and i560
+- update OpenPrinting database to 2007-JAN-10:
+ * imported new hplip printers (not used)
+ * many new manufacturer printer entries (not used)
+ * fix for eplaser
+ * fix for HP DesignJets in manufacturer name
+ * all UPP files for Epson inkjet printers are marked obsolete
+ * Removed unnneeded command line prototype from Stc670pl.upp
+ * support for hp models: LJ M2727, OJ K8600, Photo C4380
+- disabled test if ghostscript runs in m2300w (glibc issue)
+
+-------------------------------------------------------------------
Old:
----
foomatic-db-bzr-20070731.tar.bz2
foomatic-db-engine-bzr-20070731.tar.bz2
foomatic-filters-bzr-20070731.tar.bz2
gutenprint-5.0.1-resolution.patch
gutenprint-5.0.1.tar.bz2
New:
----
foomatic-db-bzr-20080116.tar.bz2
foomatic-db-engine-bzr-20080116.tar.bz2
foomatic-filters-bzr-20080116.tar.bz2
gutenprint-5.0.2-resolution.patch
gutenprint-5.0.2.tar.bz2
m2300w-0.51-disable_gs_test.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cups-drivers.spec ++++++
--- /var/tmp/diff_new_pack.x23422/_old 2008-01-17 22:31:37.000000000 +0100
+++ /var/tmp/diff_new_pack.x23422/_new 2008-01-17 22:31:37.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package cups-drivers (Version 1.2.12)
+# spec file for package cups-drivers (Version 1.3.5)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2008 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.
#
@@ -12,14 +12,15 @@
Name: cups-drivers
BuildRequires: a2ps bison cairo-devel cups-devel cupsddk foomatic-filters
-BuildRequires: gcc-c++ ghostscript-ijs-devel ghostscript-library gimp-devel
-BuildRequires: glib2-devel gtk2-devel libgimpprint-devel libpng-devel
-BuildRequires: libtiff-devel libxml2-devel libxslt openssl-devel pango-devel
+BuildRequires: gcc-c++ ghostscript-ijs-devel ghostscript-library
+BuildRequires: ghostscript-x11 gimp-devel glib2-devel gtk2-devel
+BuildRequires: libgimpprint-devel libpng-devel libtiff-devel libxml2-devel
+BuildRequires: libxslt openssl-devel pango-devel
License: GPL v2 or later
Group: Hardware/Printing
Summary: Drivers for the Common UNIX Printing System
-Version: 1.2.12
-Release: 53
+Version: 1.3.5
+Release: 1
Provides: cups_drv
Requires: ghostscript-library >= 7.05, foomatic-filters
PreReq: sysvinit, sh-utils, procps
@@ -29,9 +30,9 @@
# number of jobs to run simultaneously
%define numprocs %(cat %_sourcedir/CPUs 2>/dev/null || echo 1)
# linuxprinting.org database variables
-%define DBDate 20070731
+%define DBDate 20080116
%define foomaticver bzr
-%define gutenprintver 5.0.1
+%define gutenprintver 5.0.2
%define splixver 1.0.2
%define m2300wver 0.51
#URL: http://www.linuxprinting.org/download/foomatic/
@@ -49,10 +50,11 @@
Patch2: cups-drivers-1.1.23-stcolor.patch
Patch3: cups-drivers-1.2.12-hl7x0_language.patch
Patch300: gutenprint-5.0.0-A4.patch
-Patch301: gutenprint-5.0.1-resolution.patch
+Patch301: gutenprint-5.0.2-resolution.patch
Patch400: splix-1.0.1_beta2-install.patch
Patch500: m2300w-0.51-foomatic.patch
Patch501: m2300w-0.51-resolution.patch
+Patch502: m2300w-0.51-disable_gs_test.patch
%description
This package contains free printer driver descriptions for CUPS. It
@@ -137,6 +139,7 @@
pushd m2300w
%patch500 -p1
%patch501 -p1
+%patch502 -p1
popd
#
# ------- %Build ---------------------------------------------------------
@@ -307,6 +310,7 @@
##### Minolta 2300W
#
cd m2300w
+autoreconf
./configure --prefix=%{_prefix}
make CFLAGS="$RPM_OPT_FLAGS"
cd ..
@@ -518,10 +522,30 @@
%{_libdir}/pkgconfig/gutenprint*
%changelog
-* Thu Nov 22 2007 - kssingvo@suse.de
+* Wed Jan 16 2008 kssingvo@suse.de
+- update to gutenprint 5.0.2:
+ * new Epson inkjet printers: CX4400, CX4900, CX5600, CX7400, CX9400
+ DX4050, Photo RX595, C110, C120, D120, PM 670C, PX V780
+ * new Canon printers: MP710, MP740,
+ * new PCL laser printers: Sharp AR-M257, HP LserJet 1022
+ * Preliminary Canon inkjet printers support: BJC5100, BJC5500
+ BJC8500, Pixma iP4500, Pixma iP5300, Pixma iP8500, Pixma iX5000,
+ Pixma MP170, Pixma MP180, Pixma MP610, Pixma Pro 9500, i80
+ * several bug fixes
+ * fixes for old printers, such as Canon iP4000, iP4200, and i560
+- update OpenPrinting database to 2007-JAN-10:
+ * imported new hplip printers (not used)
+ * many new manufacturer printer entries (not used)
+ * fix for eplaser
+ * fix for HP DesignJets in manufacturer name
+ * all UPP files for Epson inkjet printers are marked obsolete
+ * Removed unnneeded command line prototype from Stc670pl.upp
+ * support for hp models: LJ M2727, OJ K8600, Photo C4380
+- disabled test if ghostscript runs in m2300w (glibc issue)
+* Thu Nov 22 2007 kssingvo@suse.de
- added procps to PreReq:
- added mkdir %%buildroot (rpmlint warning)
-* Wed Nov 14 2007 - kssingvo@suse.de
+* Wed Nov 14 2007 kssingvo@suse.de
- update to splix-1.0.2:
* fix of X clipping, was miss-calculated
* ML-2010 resolution bug is now fixed
@@ -532,12 +556,12 @@
* bug fix in 300 DPI resolution
* bug fix while monochrome document printed on color printers
* Rewrite some parts of the PPD files
-* Fri Nov 09 2007 - kssingvo@suse.de
+* Fri Nov 09 2007 kssingvo@suse.de
- added support for printing in gimp
-* Mon Sep 10 2007 - kssingvo@suse.de
+* Mon Sep 10 2007 kssingvo@suse.de
- changed illegal values of Resolution in PPD files to pass
cupstestppd and full-fill PPD specification (bugzilla#309219)
-* Tue Jul 31 2007 - kssingvo@suse.de
+* Tue Jul 31 2007 kssingvo@suse.de
- updated to foomatic DB from 2007-07-31:
* new support for several printers:
Samsung-CLP-300, Samsung-CLP-510, Samsung-CLP-600, Ricoh-DDP_92_PS,
@@ -556,7 +580,7 @@
* put drivers of the "epsonepl" project together into one driver entry
removed the execution data
* several drivers are marked as obsolete: pbm2ppa, ppmtocpva, ptouch, ...
-* Mon Jun 18 2007 - kssingvo@suse.de
+* Mon Jun 18 2007 kssingvo@suse.de
- upgraded to gutenprint-5.0.1:
* several new printers supported in this release
* CUPS 1.2 is now supported using on-the-fly PPD file generation.
@@ -595,31 +619,31 @@
image is not placed at the top of the page
- removed gutenprint-sysfs patch: now upstream included
- removed gutenprint-print.patch: now upstream included
-* Fri Jun 08 2007 - kssingvo@suse.de
+* Fri Jun 08 2007 kssingvo@suse.de
- added ghostscript-ijs-devel to BuildRequires
-* Wed Apr 25 2007 - kssingvo@suse.de
+* Wed Apr 25 2007 kssingvo@suse.de
- fixed LSB required directories to latest information
-* Wed Apr 25 2007 - kssingvo@suse.de
+* Wed Apr 25 2007 kssingvo@suse.de
- added LSB 3.2 required directories
-* Wed Apr 11 2007 - kssingvo@suse.de
+* Wed Apr 11 2007 kssingvo@suse.de
- updated gutenprint to 5.0.99.1
- added m2300w driver for Minolta Colorlaser with Windows interface
- fixed uninitialized variable issue in gutenprint (bugzilla#230172)
- added security patch for gutenprint
-* Wed Dec 13 2006 - kssingvo@suse.de
+* Wed Dec 13 2006 kssingvo@suse.de
- fixed issue with duplicate packaged filter rastertospl2
-* Mon Dec 11 2006 - kssingvo@suse.de
+* Mon Dec 11 2006 kssingvo@suse.de
- added splix driver: samsung spl driver for unix
-* Mon Nov 27 2006 - kssingvo@suse.de
+* Mon Nov 27 2006 kssingvo@suse.de
- another fix for gutenprint: A4 on some epson printers broken
-* Mon Nov 20 2006 - kssingvo@suse.de
+* Mon Nov 20 2006 kssingvo@suse.de
- changed version to 1.2.7 to align with latest cups version
-* Thu Nov 16 2006 - kssingvo@suse.de
+* Thu Nov 16 2006 kssingvo@suse.de
- append "black and white only" to some gutenprint PPDs (bugzilla#220079)
-* Tue Nov 14 2006 - kssingvo@suse.de
+* Tue Nov 14 2006 kssingvo@suse.de
- changed version to 1.2.6 to align with latest cups version
- fixed non conform PPD values in various PostScript.ppd (bugzilla#219779)
-* Wed Oct 18 2006 - kssingvo@suse.de
+* Wed Oct 18 2006 kssingvo@suse.de
- update to foomatic DB from 2006-10-18:
* updated printer descriptions
* new printers: HP LaserJet P2015, HP LaserJet M3035_MFP,
@@ -636,7 +660,7 @@
were still listed by CUPS.
* some (unknown) Debian changes
- cleaned up specfile
-* Wed Sep 20 2006 - kssingvo@suse.de
+* Wed Sep 20 2006 kssingvo@suse.de
- updated to foomatic DB from 2006-09-19:
* new Samsung laser printers, new driver "splix"
* fixed model name in the entry for the Epson Stylus C65
@@ -652,206 +676,206 @@
- worked on foomatic DB patches:
* rewrote A4 patch and others
* removed unneccessary patches due to DB upgrade
-* Thu Sep 14 2006 - kssingvo@suse.de
+* Thu Sep 14 2006 kssingvo@suse.de
- update to foomatic DB from 2006-08-30
- update gimp-print to gutenprint (successor)
- ... caused major changes in the spec file
- ... and adapted necessary patches (sysfs, A4)
-* Thu Feb 16 2006 - kssingvo@suse.de
+* Thu Feb 16 2006 kssingvo@suse.de
- fixed illegal maring values in rastertoprinter (bugzilla#149434)
-* Tue Jan 31 2006 - kssingvo@suse.de
+* Tue Jan 31 2006 kssingvo@suse.de
- removed HP Postscript drivers (already in manufacturer-PPDs)
- remove of PS printers from Ricoh and affiliate need new handling
-* Wed Jan 25 2006 - mls@suse.de
+* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
-* Fri Jan 20 2006 - mls@suse.de
+* Fri Jan 20 2006 mls@suse.de
- removed -ghostscript-fonts-std, it's no longer needed
-* Wed Jan 18 2006 - kssingvo@suse.de
+* Wed Jan 18 2006 kssingvo@suse.de
- added for gimp-print same patches as used in ghostscript
- adapted them
-* Tue Jan 17 2006 - kssingvo@suse.de
+* Tue Jan 17 2006 kssingvo@suse.de
- updated to latest linuxprinting.org db
- adapted patches
-* Tue Jan 17 2006 - meissner@suse.de
+* Tue Jan 17 2006 meissner@suse.de
- use -fstack-protector
-* Mon Jan 16 2006 - mls@suse.de
+* Mon Jan 16 2006 mls@suse.de
- added -ghostscript-fonts-std to neededforbuild
-* Mon Aug 22 2005 - kssingvo@suse.de
+* Mon Aug 22 2005 kssingvo@suse.de
- removed unwished PS printers from Ricoh and affiliate (bugzilla#106080)
-* Mon Aug 01 2005 - kssingvo@suse.de
+* Mon Aug 01 2005 kssingvo@suse.de
- updated to latest linuxprinting.org db
- adapted patches
- adapted gimp-print patches
- added min12xxw driver (now in filters package included)
-* Wed Apr 20 2005 - mmj@suse.de
+* Wed Apr 20 2005 mmj@suse.de
- fix invalid lvalues for gcc4
-* Fri Mar 18 2005 - kssingvo@suse.de
+* Fri Mar 18 2005 kssingvo@suse.de
- fix for color model in hpdj drivers (bugzilla#72932)
- fix for CompressMode for HP DJ500 in hpdj driver
-* Wed Mar 16 2005 - kssingvo@suse.de
+* Wed Mar 16 2005 kssingvo@suse.de
- added epl6200 to unsupported printers
- fixed not allowed characters in some printer names
- removed not allowed option from some stcolor printers
- fixed page size problem in designjet printers
-* Mon Feb 28 2005 - kssingvo@suse.de
+* Mon Feb 28 2005 kssingvo@suse.de
- updated to latest linuxprinting.org db
- updated known_drivers to new ghostscript
- adapted A4 patch
-* Mon Feb 21 2005 - kssingvo@suse.de
+* Mon Feb 21 2005 kssingvo@suse.de
- updated %%version to keep in sync with cups main package
- dropped hpijs drivers - now in hplip package (bugzilla#65379)
-* Mon Jan 17 2005 - ro@suse.de
+* Mon Jan 17 2005 ro@suse.de
- added c++ to neededforbuild (for libtiff)
-* Wed Sep 29 2004 - kssingvo@suse.de
+* Wed Sep 29 2004 kssingvo@suse.de
- removed ppmtocpva driver (we're using now ppmtomd instead :)
-* Fri Sep 24 2004 - kssingvo@suse.de
+* Fri Sep 24 2004 kssingvo@suse.de
- additional non-existend drivers are now black listed
-* Mon Sep 20 2004 - kssingvo@suse.de
+* Mon Sep 20 2004 kssingvo@suse.de
- updated %%version only to keep in sync with cups main package
-* Tue Sep 07 2004 - kssingvo@suse.de
+* Tue Sep 07 2004 kssingvo@suse.de
- updated to latest gimp-print
- adapted gimp-print patches
- updated db to latest CVS snapshot
-* Tue Aug 10 2004 - ro@suse.de
+* Tue Aug 10 2004 ro@suse.de
- fix build with current libxml2
-* Wed Jun 02 2004 - kssingvo@suse.de
+* Wed Jun 02 2004 kssingvo@suse.de
- fixed right margin for Epson Stylus C63, C64, C83, C84
-* Tue May 25 2004 - kssingvo@suse.de
+* Tue May 25 2004 kssingvo@suse.de
- added missing drivers to foomatic-driver.known (bugzilla#41175)
-* Wed Apr 14 2004 - kssingvo@suse.de
+* Wed Apr 14 2004 kssingvo@suse.de
- fixes for Epson Stylus C63, C64, C83, C84
- fixes for cups page counting in gimp-print filters
-* Mon Mar 29 2004 - kssingvo@suse.de
+* Mon Mar 29 2004 kssingvo@suse.de
- removed A4 fix, due to missing changes in ghostscript. Letter is now
the default pagesize for some rare printers (bugzilla#36528)
- changed Okidata to Oki as manufacturer of some printers (bugzilla#36848)
-* Wed Mar 24 2004 - kssingvo@suse.de
+* Wed Mar 24 2004 kssingvo@suse.de
- fixed "*DefaultPageSize: A4", when there is no "PageSize A4" (bugzilla#36528)
- canon/epson backends from gimp-print subpackage use sysfs now to
get USB printer identification strings (bugzilla#36774)
-* Fri Mar 19 2004 - kssingvo@suse.de
+* Fri Mar 19 2004 kssingvo@suse.de
- japanese drivers is now in package "manufacturer-PPDs" (bugzilla#36532)
- fixed broken drivers (by patch and remove) (bugzilla#36539)
- fixed manufacturer name to "HP" (bugzilla#36530)
-* Mon Mar 01 2004 - kssingvo@suse.de
+* Mon Mar 01 2004 kssingvo@suse.de
- upgrade to 3.0.1 and CVS snapshot 20040301
-* Tue Feb 17 2004 - kukuk@suse.de
+* Tue Feb 17 2004 kukuk@suse.de
- Fix building on lib64 architectures
-* Thu Feb 12 2004 - kssingvo@suse.de
+* Thu Feb 12 2004 kssingvo@suse.de
- upgrade to gimp-print-4.2.6
- adaptions for cups-1.1.20
- "-fstrict-aliasing" for gimp-print build
-* Sat Jan 10 2004 - adrian@suse.de
+* Sat Jan 10 2004 adrian@suse.de
- build as user
-* Wed Sep 10 2003 - kssingvo@suse.de
+* Wed Sep 10 2003 kssingvo@suse.de
- added epl5800l and epl5900l to unsupported printers (bugzilla#30121)
-* Thu Sep 04 2003 - kssingvo@suse.de
+* Thu Sep 04 2003 kssingvo@suse.de
- removed cups from PreRequires, to make it useable for LPRng
- added import of new files to cupsd for cups-drivers-stp
-* Mon Aug 25 2003 - kssingvo@suse.de
+* Mon Aug 25 2003 kssingvo@suse.de
- updated database to 2003-08-25 state
- removed no longer neccessary patch
-* Mon Aug 25 2003 - ro@suse.de
+* Mon Aug 25 2003 ro@suse.de
- fixed segfault in foomatic-combo-xml on x86_64
-* Sat Jul 26 2003 - kssingvo@suse.de
+* Sat Jul 26 2003 kssingvo@suse.de
- updated database to 2003-07-25 state
- adapted patches
-* Fri Jul 04 2003 - kssingvo@suse.de
+* Fri Jul 04 2003 kssingvo@suse.de
- fixed %%Requires, foomatic-rip is now in foomatic-filters
-* Mon Jun 23 2003 - ro@suse.de
+* Mon Jun 23 2003 ro@suse.de
- remove unpackaged files from buildroot
- added directories to filelist
-* Wed Mar 12 2003 - kssingvo@suse.de
+* Wed Mar 12 2003 kssingvo@suse.de
- additional unsupported drivers found (by tests) and are now removed
-* Tue Mar 11 2003 - kssingvo@suse.de
+* Tue Mar 11 2003 kssingvo@suse.de
- fix for usb generation in db
-* Thu Mar 06 2003 - kssingvo@suse.de
+* Thu Mar 06 2003 kssingvo@suse.de
- delete of additional unsupported drivers (similiar names)
- replaced partly working samsunggdi-perl-substitution through patch
-* Tue Mar 04 2003 - kssingvo@suse.de
+* Tue Mar 04 2003 kssingvo@suse.de
- fixed %%files conflict
-* Sun Mar 02 2003 - kssingvo@suse.de
+* Sun Mar 02 2003 kssingvo@suse.de
- updated db to 20030302 (looks good)
-* Thu Feb 27 2003 - kssingvo@suse.de
+* Thu Feb 27 2003 kssingvo@suse.de
- removed file duplicates
-* Wed Feb 26 2003 - kssingvo@suse.de
+* Wed Feb 26 2003 kssingvo@suse.de
- adapted old patches (Patch5 no longer needed)
- updated database to today
- removed unneccessary xml generation files
-* Wed Feb 26 2003 - schwab@suse.de
+* Wed Feb 26 2003 schwab@suse.de
- Fix configure test.
-* Wed Feb 26 2003 - kssingvo@suse.de
+* Wed Feb 26 2003 kssingvo@suse.de
first version for foomatic 3.0pre generation
- still problems expected, hopefully final foomatic-3.0 till RC1
- had to rewrite some parts in spec file a bit
- still not done: old patches had to be adapted for new vesion
-* Mon Feb 17 2003 - ro@suse.de
+* Mon Feb 17 2003 ro@suse.de
- use gimp-print-4.2.5 like others (ghostscript/gimp)
-* Mon Feb 03 2003 - kssingvo@suse.de
+* Mon Feb 03 2003 kssingvo@suse.de
- updated to new foomatic database (first try :)
-* Tue Oct 29 2002 - kssingvo@suse.de
+* Tue Oct 29 2002 kssingvo@suse.de
- 'samsunggdi' printers are not only in samsung subdirectory found
fixed spec to change any *-gdi.ppd file, e.g. Lexmark (bugzilla#21211)
-* Wed Sep 04 2002 - kssingvo@suse.de
+* Wed Sep 04 2002 kssingvo@suse.de
- fixed bjc-[68]00 drivers for monochrome mode (bugzilla#18758)
-* Mon Sep 02 2002 - kssingvo@suse.de
+* Mon Sep 02 2002 kssingvo@suse.de
- renamed 'gdi' to 'samsunggdi' of all Samsung gdi PPDs (to be compatible
with our ghostscript name).
-* Mon Sep 02 2002 - kssingvo@suse.de
+* Mon Sep 02 2002 kssingvo@suse.de
- added PPD files for Japanese printers.
-* Mon Aug 26 2002 - kssingvo@suse.de
+* Mon Aug 26 2002 kssingvo@suse.de
- fixed the 64 bit architecture build problem
-* Wed Aug 21 2002 - kssingvo@suse.de
+* Wed Aug 21 2002 kssingvo@suse.de
- updated "PreReq:"
- fixed modification of ImageableArea (bugzilla#18094)
-* Tue Aug 13 2002 - kssingvo@suse.de
+* Tue Aug 13 2002 kssingvo@suse.de
- added "Requires:" for subpackage cups-drivers-stp (bugzilla#17532)
-* Mon Aug 05 2002 - kssingvo@suse.de
+* Mon Aug 05 2002 kssingvo@suse.de
- worked on foomatic-drivers.known list
- removed outdated de and cz translations (incl. generation and subpackages)
- modified perl script to get a good printable area of page in PPD files
-* Sun Aug 04 2002 - kssingvo@suse.de
+* Sun Aug 04 2002 kssingvo@suse.de
- updated to same gimp-print version of ghostscript
- updated way to import gimp-print db
- adapted ia64 patch
- added perl script to have "A4" as page default size
- some small modifications
- still missing: goog page margins
-* Sat Aug 03 2002 - kukuk@suse.de
+* Sat Aug 03 2002 kukuk@suse.de
- Add PreRequires for sysvinit (needed for init script "status").
-* Fri Jul 26 2002 - kssingvo@suse.de
+* Fri Jul 26 2002 kssingvo@suse.de
- removed debug "exit 1" from spec file. sorry.
- fixed broken A4 patch
-* Wed Jul 24 2002 - kssingvo@suse.de
+* Wed Jul 24 2002 kssingvo@suse.de
- moved to foomatic db from 20020709
- still problems known (no A4 default, no good margins) but compiles
and works fine
-* Thu Jul 11 2002 - meissner@suse.de
+* Thu Jul 11 2002 meissner@suse.de
- libpng -> libpng-devel-packages
-* Wed Jun 05 2002 - kssingvo@suse.de
+* Wed Jun 05 2002 kssingvo@suse.de
- its no longer noarch, removed Build.Architecture: noarch
- build requires now openssl (through cups-config from package cups-devel)
-* Tue May 14 2002 - kssingvo@suse.de
+* Tue May 14 2002 kssingvo@suse.de
- fixed next problems with x86_64
-* Wed May 08 2002 - kssingvo@suse.de
+* Wed May 08 2002 kssingvo@suse.de
- tried to fix the -lcupsimage problem under x86_64, but noticed it as
a cups problem
- deleting now not included libraries to make brp-x86_64-linux happy
-* Wed Apr 24 2002 - kssingvo@suse.de
+* Wed Apr 24 2002 kssingvo@suse.de
- fixes for 64 bit architecture
-* Wed Mar 13 2002 - kssingvo@suse.de
+* Wed Mar 13 2002 kssingvo@suse.de
- updated hpijs driver.xml and opts.xml for new ghostscript parameter values
(bugzilla#14928)
-* Tue Mar 12 2002 - kssingvo@suse.de
+* Tue Mar 12 2002 kssingvo@suse.de
- fixed default page size from 'letter' to 'A4' (bugzilla#14322)
- added missing PostScript drivers (detected by Andreas Klein).
-* Mon Feb 18 2002 - kssingvo@suse.de
+* Mon Feb 18 2002 kssingvo@suse.de
- update gimp-print to 4.2.0 to match copy in ghostscript-library
sources (libgimpprint is built there)
-* Mon Feb 11 2002 - kssingvo@suse.de
+* Mon Feb 11 2002 kssingvo@suse.de
- fixed problem with tar/bzip2 options, which are suddenly wrong
- gimp-print PPDs are now used too
-* Wed Feb 06 2002 - kssingvo@suse.de
+* Wed Feb 06 2002 kssingvo@suse.de
- removed all-com-ppds.tar.bz2, and cleanppd.pl
- added generation of foomatic database:
* a view PERL-XML-modules: XML-Dumper, XML-Encoding, XML-Grove,
@@ -861,11 +885,11 @@
foomatic-manufacturer-id.xsl, foomatic-printer-id.xsl
- rewrote spec completly to setup/generate foomatic files
- kept the DE and CS translation of PPD files (maybe have to be adapted)
-* Thu Aug 16 2001 - bjacke@suse.de
+* Thu Aug 16 2001 bjacke@suse.de
- gzip PPDs
-* Fri Apr 13 2001 - kendy@suse.cz
+* Fri Apr 13 2001 kendy@suse.cz
- the package uses Buildroot:
-* Thu Apr 12 2001 - max@suse.de
+* Thu Apr 12 2001 max@suse.de
- updated printer database
- Package splitted into cups-drivers, cups-drivers-de and
cups-drivers-cs
@@ -873,37 +897,37 @@
the cups package
- started to change the package to use Buildroot:
- single soure files are not compressed anymore
-* Mon Apr 09 2001 - kendy@suse.cz
+* Mon Apr 09 2001 kendy@suse.cz
- Added scripts to localize the PPD files.
- Package splitted into cups-drivers and cups-ppds (cups-ppds,
cups-ppds-cs, cups-ppds-de)
- Added empty German and Czech translations
-* Mon Feb 26 2001 - mhafner@suse.de
+* Mon Feb 26 2001 mhafner@suse.de
- updated printer database
- added foomatic-gswrapper
-* Fri Dec 01 2000 - ro@suse.de
+* Fri Dec 01 2000 ro@suse.de
- made package noarch
-* Wed Nov 29 2000 - uli@suse.de
+* Wed Nov 29 2000 uli@suse.de
- replaced fixed dependency on perl with autoreqprov
- removed useless provides tag
- fixed problem with funny chars in filenames in cleanppd.pl
- fixed file list
- made paths in post section relative
-* Tue Nov 21 2000 - mhafner@suse.de
+* Tue Nov 21 2000 mhafner@suse.de
- renamed to cups-drivers
- changed version to match cups system version
- updated printer database
-* Fri Oct 06 2000 - mhafner@suse.de
+* Fri Oct 06 2000 mhafner@suse.de
- updated printer database
- small changes in spec file
-* Mon Sep 25 2000 - ro@suse.de
+* Mon Sep 25 2000 ro@suse.de
- make post-script succeed unconditionally
-* Tue Sep 19 2000 - mhafner@suse.de
+* Tue Sep 19 2000 mhafner@suse.de
- updated printer database
-* Fri Sep 15 2000 - mhafner@suse.de
+* Fri Sep 15 2000 mhafner@suse.de
- changed name of package to cups_drv
-* Fri Sep 15 2000 - mhafner@suse.de
+* Fri Sep 15 2000 mhafner@suse.de
- updated printer database
- changed some odd names of ppd files
-* Thu Sep 14 2000 - mhafner@suse.de
+* Thu Sep 14 2000 mhafner@suse.de
- initial package
++++++ foomatic-db-bzr-20070731.tar.bz2 -> foomatic-db-bzr-20080116.tar.bz2 ++++++
++++ 3770 lines of diff (skipped)
++++++ foomatic-db-engine-bzr-20070731.tar.bz2 -> foomatic-db-engine-bzr-20080116.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/foomatic-db-engine-bzr-20070731/ChangeLog new/foomatic-db-engine-bzr-20080116/ChangeLog
--- old/foomatic-db-engine-bzr-20070731/ChangeLog 2007-07-31 11:57:33.000000000 +0200
+++ new/foomatic-db-engine-bzr-20080116/ChangeLog 2008-01-10 16:21:29.000000000 +0100
@@ -1,3 +1,60 @@
+2007-12-13 Till Kamppeter
+
+ * foomatic-perl-data.c: Added "<group>" tag to driver entries. Drivers
+ which differ only by their locales ("<locales>" tag) should have the
+ same "<group>" tags. If the user queries a driver giving a locale
+ he gets only the best matching from each group.
+
+2007-12-12 Till Kamppeter
+
+ * lib/Foomatic/DB.pm: Allow localized queries by adding a "language"
+ field to the data structure and calling foomatic-perl-data with
+ an appropriate "-l" option.
+
+ * foomatic-perl-data.c: Fixed "-l" option, with "-l" the debug mode
+ was always activated.
+
+2007-12-11 Till Kamppeter
+
+ * foomatic-perl-data.c: Added new XML tags "<licensetext>" (full
+ text of the license), "<locales>" (locales for which this driver
+ is recommended), "<requires>" (drivers which are required to be
+ on the system to run this driver), and "<packages>" (explicit
+ listing of downloadable package files). They were introduced to
+ fulfill demands of the printer manufacturers.
+
+ Allow internationalization in the "<license>", "<supplier>", and
+ "<supportcontact>" fields.
+
+ Fixed internationalization. Now it is at first tried to find a
+ text version which matches the user-supplied locale ID exactly,
+ then it is searched for a text version where the supplied locale
+ ID matches at least the language (First two characters), and as
+ last mean english text is shown.
+
+2007-10-09 Till Kamppeter
+
+ * lib/Foomatic/DB.pm: The PPD gnerator for CUPS did not list the
+ PPDs correctly on printer names containing a comma (Ubuntu bug
+ #150985).
+
+2007-08-20 Till Kamppeter
+
+ * lib/Foomatic/DB.pm: Let margins default to safer values (1/4
+ inch on the left and on the right, 1/2 inch at the top and the
+ bottom) if no margins are defined in the Foomatic database.
+ Before, the default margins were all zero.
+
+ Allow an empty model name in the search term for the
+ find_printer() function ("ricoh|"), This way one can also search
+ all printers from a given manufacturer, where the given
+ manufacturer name does not need to match exactly with the name
+ in the database.
+
+ Some improvements in cleaning the manufacturer names.
+
+ Improvements in the perltoxml() function.
+
2007-07-18 Till Kamppeter
* README, foomatic-perl-data.c, lib/Foomatic/DB.pm: Added support
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/foomatic-db-engine-bzr-20070731/foomatic-perl-data.c new/foomatic-db-engine-bzr-20080116/foomatic-perl-data.c
--- old/foomatic-db-engine-bzr-20070731/foomatic-perl-data.c 2007-07-31 11:57:33.000000000 +0200
+++ new/foomatic-db-engine-bzr-20080116/foomatic-perl-data.c 2008-01-10 16:21:29.000000000 +0100
@@ -188,6 +188,7 @@
printerDrvEntryPtr *drivers;
/* Driver */
xmlChar *driver;
+ xmlChar *driver_group;
xmlChar *pcdriver;
xmlChar *driver_type;
xmlChar *driver_comment;
@@ -196,12 +197,17 @@
xmlChar *supplier;
xmlChar *manufacturersupplied;
xmlChar *license;
+ xmlChar *licensetext;
xmlChar *free;
int num_supportcontacts;
xmlChar **supportcontacts;
xmlChar **supportcontacturls;
xmlChar **supportcontactlevels;
xmlChar *shortdescription;
+ xmlChar *locales;
+ int num_packages;
+ xmlChar **packageurls;
+ xmlChar **packagescopes;
xmlChar *drvmaxresx;
xmlChar *drvmaxresy;
xmlChar *drvcolor;
@@ -220,6 +226,9 @@
xmlChar *excphoto;
xmlChar *excload;
xmlChar *excspeed;
+ int num_requires;
+ xmlChar **requires;
+ xmlChar **requiresversion;
xmlChar *cmd;
xmlChar *nopjl;
xmlChar *nopageaccounting;
@@ -316,17 +325,23 @@
typedef struct driverEntry {
xmlChar *id;
xmlChar *name;
+ xmlChar *group;
xmlChar *url;
xmlChar *driver_obsolete;
xmlChar *supplier;
xmlChar *manufacturersupplied;
xmlChar *license;
+ xmlChar *licensetext;
xmlChar *free;
int num_supportcontacts;
xmlChar **supportcontacts;
xmlChar **supportcontacturls;
xmlChar **supportcontactlevels;
xmlChar *shortdescription;
+ xmlChar *locales;
+ int num_packages;
+ xmlChar **packageurls;
+ xmlChar **packagescopes;
xmlChar *maxresx;
xmlChar *maxresy;
xmlChar *color;
@@ -336,6 +351,9 @@
xmlChar *photo;
xmlChar *load;
xmlChar *speed;
+ int num_requires;
+ xmlChar **requires;
+ xmlChar **requiresversion;
xmlChar *driver_type;
xmlChar *cmd;
xmlChar *driverppdentry;
@@ -425,6 +443,74 @@
}
/*
+ * Function to read out localized text, choosing the translation into the
+ * desirted language. Reads also simple text without language tags, for
+ * backward compatibility for the case that a not yet localized database
+ * field gets localized
+ */
+
+static void
+getLocalizedText(xmlDocPtr doc, /* I - The whole data tree */
+ xmlNodePtr node, /* I - Node of XML tree to work on */
+ xmlChar **ret, /* O - Text which was selected by the
+ language */
+ xmlChar *language, /* I - User language */
+ int debug) { /* I - Debug mode flag */
+ xmlNodePtr cur1; /* XML node currently worked on */
+
+ cur1 = node->xmlChildrenNode;
+ if (xmlStrcasecmp(cur1->name, "C") && xmlStrcasecmp(cur1->name, "POSIX")) {
+ while (cur1 != NULL) {
+ /* Exact match of locale ID */
+ if ((!xmlStrcasecmp(cur1->name, language))) {
+ *ret = xmlStrdup
+ (perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1)));
+ if (debug)
+ fprintf
+ (stderr,
+ " Localized text with full locale ID matched (%s):\n\n%s\n\n",
+ language, *ret);
+ return;
+ }
+ cur1 = cur1->next;
+ }
+ cur1 = node->xmlChildrenNode;
+ while (cur1 != NULL) {
+ /* Fall back to match only the two-character language code */
+ if ((!xmlStrncasecmp(cur1->name, language, 2))) {
+ *ret = xmlStrdup
+ (perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1)));
+ if (debug)
+ fprintf
+ (stderr,
+ " Localized text with only language ID matched (%s):\n\n%s\n\n",
+ language, *ret);
+ return;
+ }
+ cur1 = cur1->next;
+ }
+ cur1 = node->xmlChildrenNode;
+ }
+ while (cur1 != NULL) {
+ /* Fall back to English */
+ if ((!xmlStrncasecmp(cur1->name, (const xmlChar *) "en", 2))) {
+ *ret = xmlStrdup
+ (perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1)));
+ if (debug)
+ fprintf(stderr, " English text:\n\n%s\n\n", *ret);
+ return;
+ }
+ cur1 = cur1->next;
+ }
+ cur1 = node->xmlChildrenNode;
+ /* Fall back to non-localized text (allows backward compatibility if
+ deciding on localizing a database item later */
+ *ret = xmlStrdup(perlquote(xmlNodeListGetString(doc, cur1, 1)));
+ if (debug)
+ fprintf(stderr, " Non-localized text:\n\n%s\n\n", *ret);
+}
+
+/*
* Functions to fill in the unprintable margin data structure with the
* data parsed from the XML input
*/
@@ -1241,27 +1327,9 @@
cur4 = cur4->next;
}
} else if ((!xmlStrcmp(cur3->name, (const xmlChar *) "comments"))) {
- cur4 = cur3->xmlChildrenNode;
- while (cur4 != NULL) {
- if ((!xmlStrcmp(cur4->name, (const xmlChar *) language))) {
- dentry->comment =
- perlquote(xmlNodeListGetString(doc,
- cur4->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Comment (%s): \n%s\n\n",
- language, dentry->comment);
- } else if ((!xmlStrcmp(cur4->name, (const xmlChar *) "en"))) {
- if (!dentry->comment) {
- dentry->comment =
- perlquote(xmlNodeListGetString(doc,
- cur4->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Comment (en): \n%s\n\n",
- dentry->comment);
- }
- }
- cur4 = cur4->next;
- }
+ if (debug)
+ fprintf(stderr, " Comments:\n");
+ getLocalizedText(doc, cur3, &(dentry->comment), language, debug);
}
cur3 = cur3->next;
}
@@ -1496,11 +1564,12 @@
xmlNodePtr cur3; /* Another XML node pointer */
xmlNodePtr cur4; /* Another XML node pointer */
xmlChar *id; /* Full driver ID, with "driver/" */
- xmlChar *level;
+ xmlChar *level, *version, *scope;
xmlChar *url;
/* Initialization of entries */
ret->driver = NULL;
+ ret->driver_group = NULL;
ret->driver_type = NULL;
ret->driver_comment = NULL;
ret->url = NULL;
@@ -1508,12 +1577,17 @@
ret->driver_obsolete = NULL;
ret->manufacturersupplied = NULL;
ret->license = NULL;
+ ret->licensetext = NULL;
ret->free = NULL;
ret->num_supportcontacts = 0;
ret->supportcontacts = NULL;
ret->supportcontacturls = NULL;
ret->supportcontactlevels = NULL;
ret->shortdescription = NULL;
+ ret->locales = NULL;
+ ret->num_packages = 0;
+ ret->packageurls = NULL;
+ ret->packagescopes = NULL;
ret->drvmaxresx = NULL;
ret->drvmaxresy = NULL;
ret->drvcolor = NULL;
@@ -1532,6 +1606,9 @@
ret->excphoto = NULL;
ret->excload = NULL;
ret->excspeed = NULL;
+ ret->num_requires = 0;
+ ret->requires = NULL;
+ ret->requiresversion = NULL;
ret->cmd = NULL;
ret->nopjl = (xmlChar *)"0";
ret->nopageaccounting = (xmlChar *)"0";
@@ -1556,10 +1633,16 @@
ret->driver =
perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
if (debug) fprintf(stderr, " Driver name: %s\n", ret->driver);
+ } else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "group"))) {
+ ret->driver_group =
+ perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
+ if (debug) fprintf(stderr, " Driver group (for localization): %s\n",
+ ret->driver_group);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "pcdriver"))) {
ret->pcdriver =
perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Driver part of PC file name in PPD: %s\n", ret->pcdriver);
+ if (debug) fprintf(stderr, " Driver part of PC file name in PPD: %s\n",
+ ret->pcdriver);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "url"))) {
ret->url =
perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
@@ -1573,9 +1656,9 @@
if (debug) fprintf(stderr, " Driver is obsolete: %s\n",
ret->driver_obsolete);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "supplier"))) {
- ret->supplier =
- perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Driver supplier: %s\n", ret->supplier);
+ if (debug)
+ fprintf(stderr, " Driver supplier:\n");
+ getLocalizedText(doc, cur1, &(ret->supplier), language, debug);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "manufacturersupplied"))) {
ret->manufacturersupplied =
perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
@@ -1588,9 +1671,13 @@
ret->manufacturersupplied = (xmlChar *)"0";
if (debug) fprintf(stderr, " Driver supplied by a third party\n");
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "license"))) {
- ret->license =
- perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Driver license: %s\n", ret->license);
+ if (debug)
+ fprintf(stderr, " Driver license:\n");
+ getLocalizedText(doc, cur1, &(ret->license), language, debug);
+ } else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "licensetext"))) {
+ if (debug)
+ fprintf(stderr, " Driver license text:\n");
+ getLocalizedText(doc, cur1, &(ret->licensetext), language, debug);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "freesoftware"))) {
ret->free = (xmlChar *)"1";
if (debug) fprintf(stderr, " Driver is free software\n");
@@ -1625,8 +1712,10 @@
url = xmlGetProp(cur2, (const xmlChar *) "url");
ret->supportcontactlevels[ret->num_supportcontacts - 1] = level;
ret->supportcontacturls[ret->num_supportcontacts - 1] = url;
- ret->supportcontacts[ret->num_supportcontacts - 1] =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
+ getLocalizedText
+ (doc, cur2,
+ &(ret->supportcontacts[ret->num_supportcontacts - 1]),
+ language, debug);
if (debug)
fprintf(stderr, " %s (%s):\n %s\n",
ret->supportcontacts[ret->num_supportcontacts - 1],
@@ -1636,24 +1725,37 @@
cur2 = cur2->next;
}
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "shortdescription"))) {
+ if (debug)
+ fprintf(stderr, " Driver short description:\n");
+ getLocalizedText(doc, cur1, &(ret->shortdescription), language, debug);
+ } else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "locales"))) {
+ ret->locales =
+ perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
+ if (debug) fprintf(stderr, " Driver list of locales: %s\n", ret->locales);
+ } else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "packages"))) {
cur2 = cur1->xmlChildrenNode;
+ if (debug) fprintf(stderr, " Driver downloadable packages:\n");
while (cur2 != NULL) {
- /*if ((!xmlStrcmp(cur2->name, (const xmlChar *) language))) {*/
- if ((!xmlStrcmp(cur2->name, language))) {
- ret->shortdescription =
+ if ((!xmlStrcmp(cur2->name, (const xmlChar *) "package"))) {
+ ret->num_packages ++;
+ ret->packageurls =
+ (xmlChar **)
+ realloc((xmlChar **)ret->packageurls,
+ sizeof(xmlChar *) *
+ ret->num_packages);
+ ret->packagescopes =
+ (xmlChar **)
+ realloc((xmlChar **)ret->packagescopes,
+ sizeof(xmlChar *) *
+ ret->num_packages);
+ scope = xmlGetProp(cur2, (const xmlChar *) "scope");
+ ret->packageurls[ret->num_packages - 1] =
perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
+ ret->packagescopes[ret->num_packages - 1] = perlquote(scope);
if (debug)
- fprintf(stderr, " Driver short description (%s):\n\n%s\n\n",
- language, ret->shortdescription);
- } else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "en"))) {
- if (!ret->driver_comment) {
- ret->shortdescription =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode,
- 1));
- if (debug)
- fprintf(stderr, " Driver short description (en):\n\n%s\n\n",
- ret->shortdescription);
- }
+ fprintf(stderr, " %s (%s)\n",
+ ret->packageurls[ret->num_packages - 1],
+ ret->packagescopes[ret->num_packages - 1]);
}
cur2 = cur2->next;
}
@@ -1720,7 +1822,31 @@
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "execution"))) {
cur2 = cur1->xmlChildrenNode;
while (cur2 != NULL) {
- if ((!xmlStrcmp(cur2->name, (const xmlChar *) "cups"))) {
+ if ((!xmlStrcmp(cur2->name, (const xmlChar *) "requires"))) {
+ ret->num_requires ++;
+ ret->requires =
+ (xmlChar **)
+ realloc((xmlChar **)ret->requires,
+ sizeof(xmlChar *) *
+ ret->num_requires);
+ ret->requiresversion =
+ (xmlChar **)
+ realloc((xmlChar **)ret->requiresversion,
+ sizeof(xmlChar *) *
+ ret->num_requires);
+ version = xmlGetProp(cur2, (const xmlChar *) "version");
+ ret->requires[ret->num_requires - 1] =
+ perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
+ ret->requiresversion[ret->num_requires - 1] = perlquote(version);
+ if (debug)
+ if (!version)
+ fprintf(stderr, " Driver requires driver: %s\n",
+ ret->requires[ret->num_requires - 1]);
+ else
+ fprintf(stderr, " Driver requires driver: %s (%s)\n",
+ ret->requires[ret->num_requires - 1],
+ ret->requiresversion[ret->num_requires - 1]);
+ } else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "cups"))) {
ret->driver_type = (xmlChar *)"C";
if (debug) fprintf(stderr, " Driver type: CUPS Raster\n");
} else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "ijs"))) {
@@ -1763,25 +1889,9 @@
cur2 = cur2->next;
}
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "comments"))) {
- cur2 = cur1->xmlChildrenNode;
- while (cur2 != NULL) {
- /*if ((!xmlStrcmp(cur2->name, (const xmlChar *) language))) {*/
- if ((!xmlStrcmp(cur2->name, language))) {
- ret->driver_comment =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Driver Comment (%s):\n\n%s\n\n",
- language, ret->driver_comment);
- } else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "en"))) {
- if (!ret->driver_comment) {
- ret->driver_comment =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Driver Comment (en):\n\n%s\n\n",
- ret->driver_comment);
- }
- }
- cur2 = cur2->next;
- }
+ if (debug)
+ fprintf(stderr, " Driver Comment:\n");
+ getLocalizedText(doc, cur1, &(ret->driver_comment), language, debug);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "printers"))) {
cur2 = cur1->xmlChildrenNode;
while (cur2 != NULL) {
@@ -1928,38 +2038,13 @@
cur2 = cur1->xmlChildrenNode;
while (cur2 != NULL) {
if ((!xmlStrcmp(cur2->name, (const xmlChar *) "ev_shortname"))) {
- cur3 = cur2->xmlChildrenNode;
- while (cur3 != NULL) {
- if ((!xmlStrcmp(cur3->name, (const xmlChar *) "en"))) {
- enum_val->value =
- perlquote(xmlNodeListGetString(doc, cur3->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Choice short name: %s\n",
- enum_val->value);
- }
- cur3 = cur3->next;
- }
+ if (debug)
+ fprintf(stderr, " Choice short name (do not translate):\n");
+ getLocalizedText(doc, cur2, &(enum_val->value), "C", debug);
} else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "ev_longname"))) {
- cur3 = cur2->xmlChildrenNode;
- while (cur3 != NULL) {
- if ((!xmlStrcmp(cur3->name, (const xmlChar *) language))) {
- enum_val->comment =
- perlquote(xmlNodeListGetString(doc, cur3->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr," Choice long name (%s): %s\n",
- language, enum_val->comment);
- } else if ((!xmlStrcmp(cur3->name, (const xmlChar *) "en"))) {
- if (!enum_val->comment) {
- enum_val->comment =
- perlquote(xmlNodeListGetString(doc, cur3->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr,
- " Choice long name (en): %s\n",
- enum_val->comment);
- }
- }
- cur3 = cur3->next;
- }
+ if (debug)
+ fprintf(stderr, " Choice long name:\n");
+ getLocalizedText(doc, cur2, &(enum_val->comment), language, debug);
} else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "ev_driverval"))) {
enum_val->driverval =
perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
@@ -2056,51 +2141,18 @@
cur2 = cur1->xmlChildrenNode;
while (cur2 != NULL) {
if ((!xmlStrcmp(cur2->name, (const xmlChar *) "arg_shortname"))) {
- cur3 = cur2->xmlChildrenNode;
- while (cur3 != NULL) {
- if ((!xmlStrcmp(cur3->name, (const xmlChar *) "en"))) {
- option->name =
- perlquote(xmlNodeListGetString(doc, cur3->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Option short name: %s\n",
- option->name);
- }
- cur3 = cur3->next;
- }
+ if (debug)
+ fprintf(stderr, " Option short name (do not translate):\n");
+ getLocalizedText(doc, cur2, &(option->name), "C", debug);
} else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "arg_shortname_false"))) {
- cur3 = cur2->xmlChildrenNode;
- while (cur3 != NULL) {
- if ((!xmlStrcmp(cur3->name, (const xmlChar *) "en"))) {
- option->name_false =
- perlquote(xmlNodeListGetString(doc, cur3->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr,
- " Option short name if false: %s\n",
- option->name_false);
- }
- cur3 = cur3->next;
- }
+ if (debug)
+ fprintf(stderr,
+ " Option short name if false (do not translate):\n");
+ getLocalizedText(doc, cur2, &(option->name_false), "C", debug);
} else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "arg_longname"))) {
- cur3 = cur2->xmlChildrenNode;
- while (cur3 != NULL) {
- if ((!xmlStrcmp(cur3->name, (const xmlChar *) language))) {
- option->comment =
- perlquote(xmlNodeListGetString(doc, cur3->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Option long name (%s): %s\n",
- language, option->comment);
- } else if ((!xmlStrcmp(cur3->name, (const xmlChar *) "en"))) {
- if (!option->comment) {
- option->comment =
- perlquote(xmlNodeListGetString(doc, cur3->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr,
- " Option long name (en): %s\n",
- option->comment);
- }
- }
- cur3 = cur3->next;
- }
+ if (debug)
+ fprintf(stderr, " Option long name:\n");
+ getLocalizedText(doc, cur2, &(option->comment), language, debug);
} else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "arg_execution"))) {
cur3 = cur2->xmlChildrenNode;
while (cur3 != NULL) {
@@ -2387,30 +2439,9 @@
cur3 = cur2->xmlChildrenNode;
while (cur3 != NULL) {
if ((!xmlStrcmp(cur3->name, (const xmlChar *) "comments"))) {
- cur4 = cur3->xmlChildrenNode;
- while (cur4 != NULL) {
- if ((!xmlStrcmp(cur4->name, (const xmlChar *) language))) {
- ret->refill =
- perlquote(xmlNodeListGetString(doc,
- cur4->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr,
- " Consumables (%s): %s\n",
- language, ret->refill);
-
- } else if ((!xmlStrcmp(cur4->name, (const xmlChar *) "en"))) {
- if (!ret->refill) {
- ret->refill =
- perlquote(xmlNodeListGetString(doc,
- cur4->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr,
- " Consumables (en): %s\n",
- ret->refill);
- }
- }
- cur4 = cur4->next;
- }
+ if (debug)
+ fprintf(stderr, " Consumables:\n");
+ getLocalizedText(doc, cur3, &(ret->refill), language, debug);
}
cur3 = cur3->next;
}
@@ -2650,23 +2681,9 @@
if (debug) fprintf(stderr, " Contributed URL: %s\n",
ret->contriburl);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "comments"))) {
- cur2 = cur1->xmlChildrenNode;
- while (cur2 != NULL) {
- if ((!xmlStrcmp(cur2->name, (const xmlChar *) language))) {
- ret->comment =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Comment (%s):\n\n%s\n\n",
- language, ret->comment);
- } else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "en"))) {
- if (!ret->comment) {
- ret->comment =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Comment (en):\n\n%s\n\n",
- ret->comment);
- }
- }
- cur2 = cur2->next;
- }
+ if (debug)
+ fprintf(stderr, " Comment:\n");
+ getLocalizedText(doc, cur1, &(ret->comment), language, debug);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "drivers"))) {
cur2 = cur1->xmlChildrenNode;
while (cur2 != NULL) {
@@ -2713,27 +2730,9 @@
if (debug) fprintf(stderr, " Ready-made PPD: %s\n",
dentry->ppd);
} else if ((!xmlStrcmp(cur3->name, (const xmlChar *) "comments"))) {
- cur4 = cur3->xmlChildrenNode;
- while (cur4 != NULL) {
- if ((!xmlStrcmp(cur4->name, (const xmlChar *) language))) {
- dentry->comment =
- perlquote(xmlNodeListGetString(doc,
- cur4->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Comment (%s): \n%s\n\n",
- language, dentry->comment);
- } else if ((!xmlStrcmp(cur4->name, (const xmlChar *) "en"))) {
- if (!dentry->comment) {
- dentry->comment =
- perlquote(xmlNodeListGetString(doc,
- cur4->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Comment (en): \n%s\n\n",
- dentry->comment);
- }
- }
- cur4 = cur4->next;
- }
+ if (debug)
+ fprintf(stderr, " Comment:\n");
+ getLocalizedText(doc, cur3, &(dentry->comment), language, debug);
}
cur3 = cur3->next;
}
@@ -2758,22 +2757,28 @@
xmlNodePtr cur4; /* Another XML node pointer */
xmlChar *id; /* Full driver ID, with "driver/" */
drvPrnEntryPtr entry; /* An entry for a printer supported by this driver*/
- xmlChar *url, *level;
+ xmlChar *url, *level, *version, *scope;
/* Initialization of entries */
ret->id = NULL;
ret->name = NULL;
+ ret->group = NULL;
ret->url = NULL;
ret->driver_obsolete = NULL;
ret->supplier = NULL;
ret->manufacturersupplied = NULL;
ret->license = NULL;
+ ret->licensetext = NULL;
ret->free = NULL;
ret->num_supportcontacts = 0;
ret->supportcontacts = NULL;
ret->supportcontacturls = NULL;
ret->supportcontactlevels = NULL;
ret->shortdescription = NULL;
+ ret->locales = NULL;
+ ret->num_packages = 0;
+ ret->packageurls = NULL;
+ ret->packagescopes = NULL;
ret->maxresx = NULL;
ret->maxresy = NULL;
ret->color = NULL;
@@ -2783,6 +2788,9 @@
ret->photo = NULL;
ret->load = NULL;
ret->speed = NULL;
+ ret->num_requires = 0;
+ ret->requires = NULL;
+ ret->requiresversion = NULL;
ret->driver_type = NULL;
ret->cmd = NULL;
ret->driverppdentry = NULL;
@@ -2807,6 +2815,11 @@
ret->name =
perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
if (debug) fprintf(stderr, " Driver name: %s\n", ret->name);
+ } else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "group"))) {
+ ret->group =
+ perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
+ if (debug) fprintf(stderr, " Driver group (for localization): %s\n",
+ ret->group);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "url"))) {
ret->url =
perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
@@ -2820,9 +2833,9 @@
if (debug) fprintf(stderr, " Driver is obsolete: %s\n",
ret->driver_obsolete);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "supplier"))) {
- ret->supplier =
- perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Driver supplier: %s\n", ret->supplier);
+ if (debug)
+ fprintf(stderr, " Driver supplier:\n");
+ getLocalizedText(doc, cur1, &(ret->supplier), language, debug);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "manufacturersupplied"))) {
ret->manufacturersupplied =
perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
@@ -2835,9 +2848,13 @@
ret->manufacturersupplied = (xmlChar *)"0";
if (debug) fprintf(stderr, " Driver supplied by a third party\n");
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "license"))) {
- ret->license =
- perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Driver license: %s\n", ret->license);
+ if (debug)
+ fprintf(stderr, " Driver license:\n");
+ getLocalizedText(doc, cur1, &(ret->license), language, debug);
+ } else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "licensetext"))) {
+ if (debug)
+ fprintf(stderr, " Driver license text:\n");
+ getLocalizedText(doc, cur1, &(ret->licensetext), language, debug);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "freesoftware"))) {
ret->free = (xmlChar *)"1";
if (debug) fprintf(stderr, " Driver is free software\n");
@@ -2872,8 +2889,10 @@
url = xmlGetProp(cur2, (const xmlChar *) "url");
ret->supportcontactlevels[ret->num_supportcontacts - 1] = level;
ret->supportcontacturls[ret->num_supportcontacts - 1] = url;
- ret->supportcontacts[ret->num_supportcontacts - 1] =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
+ getLocalizedText
+ (doc, cur2,
+ &(ret->supportcontacts[ret->num_supportcontacts - 1]),
+ language, debug);
if (debug)
fprintf(stderr, " %s (%s):\n %s\n",
ret->supportcontacts[ret->num_supportcontacts - 1],
@@ -2883,24 +2902,37 @@
cur2 = cur2->next;
}
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "shortdescription"))) {
+ if (debug)
+ fprintf(stderr, " Driver short description:\n");
+ getLocalizedText(doc, cur1, &(ret->shortdescription), language, debug);
+ } else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "locales"))) {
+ ret->locales =
+ perlquote(xmlNodeListGetString(doc, cur1->xmlChildrenNode, 1));
+ if (debug) fprintf(stderr, " Driver list of locales: %s\n", ret->locales);
+ } else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "packages"))) {
cur2 = cur1->xmlChildrenNode;
+ if (debug) fprintf(stderr, " Driver downloadable packages:\n");
while (cur2 != NULL) {
- /*if ((!xmlStrcmp(cur2->name, (const xmlChar *) language))) {*/
- if ((!xmlStrcmp(cur2->name, language))) {
- ret->shortdescription =
+ if ((!xmlStrcmp(cur2->name, (const xmlChar *) "package"))) {
+ ret->num_packages ++;
+ ret->packageurls =
+ (xmlChar **)
+ realloc((xmlChar **)ret->packageurls,
+ sizeof(xmlChar *) *
+ ret->num_packages);
+ ret->packagescopes =
+ (xmlChar **)
+ realloc((xmlChar **)ret->packagescopes,
+ sizeof(xmlChar *) *
+ ret->num_packages);
+ scope = xmlGetProp(cur2, (const xmlChar *) "scope");
+ ret->packageurls[ret->num_packages - 1] =
perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
+ ret->packagescopes[ret->num_packages - 1] = perlquote(scope);
if (debug)
- fprintf(stderr, " Driver short description (%s):\n\n%s\n\n",
- language, ret->shortdescription);
- } else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "en"))) {
- if (!ret->shortdescription) {
- ret->shortdescription =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode,
- 1));
- if (debug)
- fprintf(stderr, " Driver short description (en):\n\n%s\n\n",
- ret->shortdescription);
- }
+ fprintf(stderr, " %s (%s)\n",
+ ret->packageurls[ret->num_packages - 1],
+ ret->packagescopes[ret->num_packages - 1]);
}
cur2 = cur2->next;
}
@@ -2967,7 +2999,31 @@
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "execution"))) {
cur2 = cur1->xmlChildrenNode;
while (cur2 != NULL) {
- if ((!xmlStrcmp(cur2->name, (const xmlChar *) "cups"))) {
+ if ((!xmlStrcmp(cur2->name, (const xmlChar *) "requires"))) {
+ ret->num_requires ++;
+ ret->requires =
+ (xmlChar **)
+ realloc((xmlChar **)ret->requires,
+ sizeof(xmlChar *) *
+ ret->num_requires);
+ ret->requiresversion =
+ (xmlChar **)
+ realloc((xmlChar **)ret->requiresversion,
+ sizeof(xmlChar *) *
+ ret->num_requires);
+ version = xmlGetProp(cur2, (const xmlChar *) "version");
+ ret->requires[ret->num_requires - 1] =
+ perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
+ ret->requiresversion[ret->num_requires - 1] = perlquote(version);
+ if (debug)
+ if (!version)
+ fprintf(stderr, " Driver requires driver: %s\n",
+ ret->requires[ret->num_requires - 1]);
+ else
+ fprintf(stderr, " Driver requires driver: %s (%s)\n",
+ ret->requires[ret->num_requires - 1],
+ ret->requiresversion[ret->num_requires - 1]);
+ } else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "cups"))) {
ret->driver_type = (xmlChar *)"C";
if (debug) fprintf(stderr, " Driver type: CUPS Raster\n");
} else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "ijs"))) {
@@ -3004,23 +3060,9 @@
cur2 = cur2->next;
}
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "comments"))) {
- cur2 = cur1->xmlChildrenNode;
- while (cur2 != NULL) {
- if ((!xmlStrcmp(cur2->name, (const xmlChar *) language))) {
- ret->comment =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Comment (%s):\n\n%s\n\n",
- language, ret->comment);
- } else if ((!xmlStrcmp(cur2->name, (const xmlChar *) "en"))) {
- if (!ret->comment) {
- ret->comment =
- perlquote(xmlNodeListGetString(doc, cur2->xmlChildrenNode, 1));
- if (debug) fprintf(stderr, " Comment (en):\n\n%s\n\n",
- ret->comment);
- }
- }
- cur2 = cur2->next;
- }
+ if (debug)
+ fprintf(stderr, " Comment:\n");
+ getLocalizedText(doc, cur1, &(ret->comment), language, debug);
} else if ((!xmlStrcmp(cur1->name, (const xmlChar *) "printers"))) {
cur2 = cur1->xmlChildrenNode;
while (cur2 != NULL) {
@@ -3059,27 +3101,9 @@
if (debug) fprintf(stderr, " ID: %s\n",
entry->id);
} else if ((!xmlStrcmp(cur3->name, (const xmlChar *) "comments"))) {
- cur4 = cur3->xmlChildrenNode;
- while (cur4 != NULL) {
- if ((!xmlStrcmp(cur4->name, (const xmlChar *) language))) {
- entry->comment =
- perlquote(xmlNodeListGetString(doc,
- cur4->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Comment (%s): \n%s\n\n",
- language, entry->comment);
- } else if ((!xmlStrcmp(cur4->name, (const xmlChar *) "en"))) {
- if (!entry->comment) {
- entry->comment =
- perlquote(xmlNodeListGetString(doc,
- cur4->xmlChildrenNode,
- 1));
- if (debug) fprintf(stderr, " Comment (en): \n%s\n\n",
- entry->comment);
- }
- }
- cur4 = cur4->next;
- }
+ if (debug)
+ fprintf(stderr, " Comment:\n");
+ getLocalizedText(doc, cur3, &(entry->comment), language, debug);
} else if ((!xmlStrcmp(cur3->name, (const xmlChar *) "functionality"))) {
cur4 = cur3->xmlChildrenNode;
while (cur4 != NULL) {
@@ -3638,6 +3662,10 @@
printer->drivers[j]->name))) {
printf(" '%s' => {\n",
printer->drivers[j]->name);
+ if (overview->overviewDrivers[k]->group != NULL) {
+ printf(" 'group' => '%s',\n",
+ overview->overviewDrivers[k]->group);
+ }
if (overview->overviewDrivers[k]->url != NULL) {
printf(" 'url' => '%s',\n",
overview->overviewDrivers[k]->url);
@@ -3658,6 +3686,10 @@
printf(" 'license' => '%s',\n",
overview->overviewDrivers[k]->license);
}
+ if (overview->overviewDrivers[k]->licensetext != NULL) {
+ printf(" 'licensetext' => '%s',\n",
+ overview->overviewDrivers[k]->licensetext);
+ }
if (overview->overviewDrivers[k]->free != NULL) {
printf(" 'free' => '%s',\n",
overview->overviewDrivers[k]->free);
@@ -3686,6 +3718,46 @@
printf(" 'shortdescription' => '%s',\n",
overview->overviewDrivers[k]->shortdescription);
}
+ if (overview->overviewDrivers[k]->locales != NULL) {
+ printf(" 'locales' => '%s',\n",
+ overview->overviewDrivers[k]->locales);
+ }
+ if (overview->overviewDrivers[k]->num_packages != 0) {
+ printf(" 'packages' => [\n");
+ for (l = 0;
+ l < overview->overviewDrivers[k]->num_packages; l ++) {
+ if (overview->overviewDrivers[k]->packageurls[l] !=
+ NULL) {
+ printf(" {\n");
+ printf(" 'url' => '%s',\n",
+ overview->overviewDrivers[k]->packageurls[l]);
+ if (overview->overviewDrivers[k]->packagescopes[l]
+ != NULL)
+ printf(" 'scope' => '%s',\n",
+ overview->overviewDrivers[k]->packagescopes[l]);
+ printf(" },\n");
+ }
+ }
+ printf(" ],\n");
+ }
+ if (overview->overviewDrivers[k]->num_requires != 0) {
+ printf(" 'requires' => [\n");
+ for (l = 0;
+ l < overview->overviewDrivers[k]->num_requires; l ++) {
+ if (overview->overviewDrivers[k]->requires[l] !=
+ NULL) {
+ printf(" {\n");
+ printf(" 'driver' => '%s',\n",
+ overview->overviewDrivers[k]->requires[l]);
+ if (overview->overviewDrivers[k]->requiresversion[l]
+ != NULL)
+ printf(" 'version' => '%s',\n",
+ overview->overviewDrivers[k]->requiresversion[l]);
+ printf(" },\n");
+ }
+ }
+ printf(" ],\n");
+ }
if (overview->overviewDrivers[k]->driver_type != NULL) {
printf(" 'type' => '%s',\n",
overview->overviewDrivers[k]->driver_type);
@@ -4000,6 +4072,9 @@
printf(" 'snmp_cmd' => undef,\n");
}
printf(" 'driver' => '%s',\n", combo->driver);
+ if (combo->driver_group) {
+ printf(" 'group' => '%s',\n", combo->driver_group);
+ }
if (combo->pcdriver) {
printf(" 'pcdriver' => '%s',\n", combo->pcdriver);
} else {
@@ -4031,6 +4106,10 @@
printf(" 'license' => '%s',\n",
combo->license);
}
+ if (combo->licensetext != NULL) {
+ printf(" 'licensetext' => '%s',\n",
+ combo->licensetext);
+ }
if (combo->free != NULL) {
printf(" 'free' => '%s',\n",
combo->free);
@@ -4059,6 +4138,28 @@
printf(" 'shortdescription' => '%s',\n",
combo->shortdescription);
}
+ if (combo->locales != NULL) {
+ printf(" 'locales' => '%s',\n",
+ combo->locales);
+ }
+ if (combo->num_packages != 0) {
+ printf(" 'packages' => [\n");
+ for (i = 0;
+ i < combo->num_packages; i ++) {
+ if (combo->packageurls[i] !=
+ NULL) {
+ printf(" {\n");
+ printf(" 'url' => '%s',\n",
+ combo->packageurls[i]);
+ if (combo->packagescopes[i]
+ != NULL)
+ printf(" 'scope' => '%s',\n",
+ combo->packagescopes[i]);
+ printf(" },\n");
+ }
+ }
+ printf(" ],\n");
+ }
if (combo->excmaxresx != NULL) {
printf(" 'drvmaxresx' => '%s',\n",
combo->excmaxresx);
@@ -4122,6 +4223,24 @@
printf(" 'speed' => '%s',\n",
combo->speed);
}
+ if (combo->num_requires != 0) {
+ printf(" 'requires' => [\n");
+ for (i = 0;
+ i < combo->num_requires; i ++) {
+ if (combo->requires[i] !=
+ NULL) {
+ printf(" {\n");
+ printf(" 'driver' => '%s',\n",
+ combo->requires[i]);
+ if (combo->requiresversion[i]
+ != NULL)
+ printf(" 'version' => '%s',\n",
+ combo->requiresversion[i]);
+ printf(" },\n");
+ }
+ }
+ printf(" ],\n");
+ }
if (combo->cmd) {
printf(" 'cmd' => '%s',\n", combo->cmd);
} else {
@@ -4457,6 +4576,9 @@
xmlChar **printers;
printf("$VAR1 = {\n");
printf(" 'name' => '%s',\n", driver->name);
+ if (driver->group) {
+ printf(" 'group' => '%s',\n", driver->group);
+ }
if (driver->url) {
printf(" 'url' => '%s',\n", driver->url);
}
@@ -4475,6 +4597,10 @@
printf(" 'license' => '%s',\n",
driver->license);
}
+ if (driver->licensetext != NULL) {
+ printf(" 'licensetext' => '%s',\n",
+ driver->licensetext);
+ }
if (driver->free != NULL) {
printf(" 'free' => '%s',\n",
driver->free);
@@ -4503,6 +4629,28 @@
printf(" 'shortdescription' => '%s',\n",
driver->shortdescription);
}
+ if (driver->locales != NULL) {
+ printf(" 'locales' => '%s',\n",
+ driver->locales);
+ }
+ if (driver->num_packages != 0) {
+ printf(" 'packages' => [\n");
+ for (i = 0;
+ i < driver->num_packages; i ++) {
+ if (driver->packageurls[i] !=
+ NULL) {
+ printf(" {\n");
+ printf(" 'url' => '%s',\n",
+ driver->packageurls[i]);
+ if (driver->packagescopes[i]
+ != NULL)
+ printf(" 'scope' => '%s',\n",
+ driver->packagescopes[i]);
+ printf(" },\n");
+ }
+ }
+ printf(" ],\n");
+ }
if (driver->maxresx != NULL) {
printf(" 'drvmaxresx' => '%s',\n",
driver->maxresx);
@@ -4539,6 +4687,24 @@
printf(" 'speed' => '%s',\n",
driver->speed);
}
+ if (driver->num_requires != 0) {
+ printf(" 'requires' => [\n");
+ for (i = 0;
+ i < driver->num_requires; i ++) {
+ if (driver->requires[i] !=
+ NULL) {
+ printf(" {\n");
+ printf(" 'driver' => '%s',\n",
+ driver->requires[i]);
+ if (driver->requiresversion[i]
+ != NULL)
+ printf(" 'version' => '%s',\n",
+ driver->requiresversion[i]);
+ printf(" },\n");
+ }
+ }
+ printf(" ],\n");
+ }
if (driver->driver_type) {
printf(" 'type' => '%s',\n", driver->driver_type);
}
@@ -4619,7 +4785,7 @@
int i, j; /* loop variables */
int debug = 0; /* Debug output level */
xmlChar *setting;
- xmlChar *language = "en";
+ xmlChar *language = "C";
xmlChar **defaultsettings = NULL; /* User-supplied option settings*/
int num_defaultsettings = 0;
char *filename = NULL;
@@ -4670,6 +4836,7 @@
i ++;
language = (xmlChar *)(argv[i]);
}
+ break;
case 'v' : /* verbose */
debug++;
j = 2;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/foomatic-db-engine-bzr-20070731/lib/Foomatic/DB.pm new/foomatic-db-engine-bzr-20080116/lib/Foomatic/DB.pm
--- old/foomatic-db-engine-bzr-20070731/lib/Foomatic/DB.pm 2007-07-31 11:57:34.000000000 +0200
+++ new/foomatic-db-engine-bzr-20080116/lib/Foomatic/DB.pm 2008-01-10 16:21:29.000000000 +0100
@@ -22,6 +22,7 @@
sub new {
my $type = shift(@_);
my $this = bless {@_}, $type;
+ $this->{'language'} = "C";
return $this;
}
@@ -52,6 +53,12 @@
return $oldid;
}
+# Set language for localized answers
+sub set_language {
+ my ($this, $language) = @_;
+ $this->{'language'} = $language;
+}
+
# List of driver names
sub get_driverlist {
my ($this) = @_;
@@ -74,7 +81,7 @@
$otype .= ' -n' if ($cupsppds == 1);
# Generate overview Perl data structure from database
my $VAR1;
- eval (`$bindir/foomatic-combo-xml $otype -l '$libdir' | $bindir/foomatic-perl-data -O`) ||
+ eval (`$bindir/foomatic-combo-xml $otype -l '$libdir' | $bindir/foomatic-perl-data -O -l $this->{'language'}`) ||
die ("Could not run \"foomatic-combo-xml\"/\"foomatic-perl-data\"!");
$this->{'overview'} = $VAR1;
}
@@ -121,7 +128,7 @@
# Generate printer Perl data structure from database
my $VAR1;
if (-r "$libdir/db/source/printer/$poid.xml") {
- eval (`$bindir/foomatic-perl-data -P '$libdir/db/source/printer/$poid.xml'`) ||
+ eval (`$bindir/foomatic-perl-data -P -l $this->{'language'} '$libdir/db/source/printer/$poid.xml'`) ||
die ("Could not run \"foomatic-perl-data\"!");
} else {
return undef;
@@ -139,7 +146,7 @@
# Generate driver Perl data structure from database
my $VAR1;
if (-r "$libdir/db/source/driver/$drv.xml") {
- eval (`$bindir/foomatic-perl-data -D '$libdir/db/source/driver/$drv.xml'`) ||
+ eval (`$bindir/foomatic-perl-data -D -l $this->{'language'} '$libdir/db/source/driver/$drv.xml'`) ||
die ("Could not run \"foomatic-perl-data\"!");
} else {
return undef;
@@ -189,14 +196,15 @@
my ($make) = @_;
$make =~ s/^Canon\W.*$/Canon/i;
$make =~ s/^Lexmark.*$/Lexmark/i;
- $make =~ s/^Hewlett?[\s\-]*Packard/HP/i;
- $make =~ s/^Seiko[\s\-]*Epson/Epson/i;
- $make =~ s/^Kyocera[\s\-]*Mita/Kyocera/i;
+ $make =~ s/^Hewlett?[_\s\-]*Packard/HP/i;
+ $make =~ s/^Seiko[_\s\-]*Epson/Epson/i;
+ $make =~ s/^Kyocera[_\s\-]*Mita/Kyocera/i;
$make =~ s/^CItoh/C.Itoh/i;
- $make =~ s/^Oki(|[\s\-]*Data)\s*$/Okidata/i;
+ $make =~ s/^Oki(|[_\s\-]*Data)\s*$/Okidata/i;
$make =~ s/^(SilentWriter2?|ColorMate)/NEC/i;
$make =~ s/^(XPrint|Majestix)/Xerox/i;
$make =~ s/^QMS-PS/QMS/i;
+ $make =~ s/^konica([_\s\-]|)minolta/KONICA MINOLTA/i;
$make =~ s/^(Personal|LaserWriter)/Apple/i;
$make =~ s/^Digital/DEC/i;
$make =~ s/\s+Inc\.//i;
@@ -332,7 +340,7 @@
# Search term is not a device ID
if (!$deviceid) {
- if ($searchterm =~ /^([^\|]+)\|([^\|]+)(\|.*|)$/) {
+ if ($searchterm =~ /^([^\|]+)\|([^\|]+|)(\|.*?|)$/) {
$automake = $1;
$automodel = $2;
} else {
@@ -973,7 +981,7 @@
# Generate Perl data structure from database
my %dat; # Our purpose in life...
my $VAR1;
- eval (`$bindir/foomatic-combo-xml -d '$drv' -p '$poid' -l '$libdir' | $bindir/foomatic-perl-data -C`) ||
+ eval (`$bindir/foomatic-combo-xml -d '$drv' -p '$poid' -l '$libdir' | $bindir/foomatic-perl-data -C -l $this->{'language'}`) ||
die ("Could not run \"foomatic-combo-xml\"/" .
"\"foomatic-perl-data\"!");
%dat = %{$VAR1};
@@ -1012,7 +1020,7 @@
sub ppdfromvartoperl ($);
sub ppdtoperl($);
-sub perltoxml($);
+sub perltoxml;
sub ppdtoperl($) {
@@ -1653,80 +1661,103 @@
return $dat;
}
-sub perltoxml ($) {
- my ($this, $dat) = @_;
+sub perltoxml {
+ my ($this, $dat, $mode) = @_;
+
+ my $xml = "";
- my $xml =
- "<foomatic>{'id'} . "\">\n" .
- " <make>" . $dat->{'make'} . "</make>\n" .
- " <model>" . $dat->{'model'} . "</model>\n" .
- " <comments><en /></comments>\n" .
- "</printer>\n\n\n";
-
- $xml .=
- "{'driver'} . "\">\n" .
- " <name>" . $dat->{'driver'} . "</name>\n" .
- " <execution>\n" .
- " <filter />\n" .
- " <prototype>" . $dat->{'cmd'} . "</prototype>\n" .
- " </execution>\n" .
- "</driver>\n\n";
-
- $xml .= "<options>\n";
-
- foreach (@{$dat->{'args'}}) {
- my $type = $_->{'type'};
- my $optname = $_->{'name'};
- $xml .= "