Welcome to Gutenprint 5.2.2, a stable release of Gutenprint 5.2. This release has minor bug fixes over 5.2.1. Please read these release notes carefully. Gutenprint is a suite of printer drivers that may be used with most common UNIX print spooling systems, including CUPS, lpr, LPRng, or others. Gutenprint currently supports over 1400 printer models. These drivers provide high quality printing for UNIX, Linux, and Macintosh OS X (10.3 and above) systems. Gutenprint includes CUPS and Foomatic drivers, and an enhanced Print plug-in for GIMP that replaces the print plug-in packaged with the GIMP distribution. Gutenprint 5.2 no longer supports Macintosh OS X 10.2. *** NOTE TO PACKAGERS: Please read the file README.package for issues that are of interest to distributors and packagers of Gutenprint. It is not necessary for end users of Gutenprint to read this file. These release notes contain the following sections: I) General Requirements II) Critical Upgrade Note III) Changes from Previous Releases * Changes from 5.2.1 IV) Overall changes from 5.0.2 to 5.2 A) General User-visible Changes B) New Functionality C) Changes to the Enhanced Print plugin for GIMP D) Changes to the CUPS interface E) Changes to the Foomatic interface F) Quality Improvements G) Architectural Changes H) New Printers Supported in this Release V) Exceptions and Workarounds A) General Issues B) Build/Installation Issues ================================================================ I) GENERAL REQUIREMENTS Gutenprint will run on any reasonably modern computer running Linux, Macintosh OS X (10.3 or above), Solaris, or any other UNIX-like operating system. If you plan to compile this package from source, you will also need an ANSI C compiler, such as gcc (recommended). A compiler is not required if you are installing a pre-compiled package. Processor and memory requirements vary depending upon the printer and runtime options selected; it is suggested that you have at least 64 MB of memory for general purpose printing, 256 MB or more for high quality printing on a good printer, and 1 GB or more for large format printing at high resolution. You should have at least 50 MB of free disk space to compile and install Gutenprint. Disk space requirements for printing will vary depending upon how you use Gutenprint, but are generally modest except as noted below. We recommend a processor speed of at least 300 MHz. Fast printers may require a faster processor to achieve maximum printing speed. For general use, you should have the Common UNIX Printing System, CUPS (version 1.1.15 or above) or Foomatic (2.0 or above) installed. Please the rest of the release notes, in particular the Exceptions and Workarounds, for full details on installation, as there is important information to be aware of. CUPS is the printing system used on Macintosh OS X 10.3 and above, and many other systems use it. The combination of CUPS and Gutenprint provides a flexible, general purpose printing system capable of producing the highest quality output with any of the printers supported by this package. We strongly recommend using CUPS with Gutenprint as a general-purpose printing solution. The enhanced Print plug-in for GIMP requires GIMP 2.0 or above (GIMP 2.2 recommended). This plug-in will work with any printing system, and offers a comprehensive user interface to control all aspects of the printing process. If you are printing photographs in large format from GIMP at very high resolution, disk space requirements may be substantial, and we recommend at least 2 GB of free disk space for that purpose. The Ghostscript driver requires GNU Ghostscript 6.53 or higher, ESP Ghostscript 7.05 or higher, or AFPL Ghostscript 7.04 or higher. It uses the IJS package included with these versions of Ghostscript to create a driver that may be built much more easily than traditional Ghostscript drivers. This driver should be used in conjunction with Foomatic to configure printers. Users of Macintosh 10.3 (Panther), 10.4 (Tiger), and 10.5 (Leopard) can use this package, as the printing system is based on CUPS. For ease of installation, a pre-built package with installer is normally supplied a few days after the release of the source package. We strongly recommend that OS X users use the pre-built package rather than attempt to build it themselves. The README file included with this package provides full instructions for building and installing Gutenprint. ================================================================ II) CRITICAL UPGRADE NOTE If you are using CUPS with Gutenprint on a non-Macintosh system, and are upgrading from an earlier version of Gutenprint or Gimp-Print, please read this note carefully as there are special procedures that you should follow in addition to the normal procedure of running cups-genppdupdate. Background: older versions of Gutenprint distributed CUPS backends, named "epson" and "canon", that we have determined have compatibility problems on certain systems. The symptom of this problem is that the last page of each print job does not complete; it prints almost to the end of the page, and the printer stops. The only way to clear this condition is to power the printer off and back on after each job. A CUPS "backend" is a special program whose purpose is to transfer data from the printer driver to the printer itself. CUPS provides a number of general purpose backends. The "epson" and "canon" backends previously provided with Gutenprint are capable of retrieving ink level information from Epson and Canon inkjet printers respectively. These backends are no longer needed in CUPS 1.2, and are not strictly necessary in CUPS 1.1. Therefore, these backends have been removed from Gutenprint as of 5.2. Due to a subtle issue, these backends may not correctly send all of the data to the printer on some systems. While we have not fully characterized the systems on which this happens, it appears likely that it is on certain operating system versions. The backend believes that all data has been sent, but the way it does I/O results in some data not being sent on all systems. As a result, the printer continues to wait for more data to be received. We recommend that if you have any printer queues using these backends that you modify the queues to use a different backend. Even if you are not currently having problems, we recommend that you do this, as a future operating system upgrade may result in this problem becoming visible. If this is the first version of Gutenprint or Gimp-Print you have installed on your system, you should not have these backends present. Here are the steps we recommend that you follow. 1) Determine whether any printers on your system use the epson or canon backends. This can be determined via "lpstat -v". This may be done without administrator privileges: $ lpstat -v device for EPSON_Stylus_Photo_R300_USB_1: usb://EPSON/Stylus%20Photo%20R300 device for espr300-ez: usb://EPSON/Stylus%20Photo%20R300 device for r300-test: epson:/dev/usb/lp0 device for HP_LaserJet_1022_USB_1: usb://HP/LaserJet%201022 Inspect each device line for a device that begins with "epson:" or "canon:". These are the queues you must modify. In this case, the only queue that must be modified is "r300-test". The other queues all have devices that begin with "usb:"; these queues use the standard CUPS USB backend that does not have this problem. 2) For each queue that uses the epson or canon backend, modify it to use an appropriate backend. If your system provides a user interface for administering printers, we recommend that you use that interface. If you're comfortable with the KDE or GNOME print manager, you may use that interface. However, we recommend using the CUPS web interface (http://localhost:631/printers) to modify the printer. The steps you should follow (assuming that you are using the CUPS web interface) are: i) Click "Modify Printer", to start leading you through a series of screens allowing you to change the printer properties. ii) The first screen, entitled "Modify Printer r300-test" (the printer name, of course, will vary), will display the name of the printer, along with the location and description. You may modify these if you wish, but it isn't necessary. Click "Continue". iii) The next screen, entitled "Device for r300-test", is the important one. This provides you a drop-down list of devices. These devices typically include "AppSocket/HP JetDirect", "LP#1", and so forth. It is critical that you select the correct device at this point. The entries that you want are of the form EPSON Stylus Photo R300 USB #1 (EPSON Stylus Photo R300) or EPSON Stylus Photo EX Parallel #1 (EPSON Stylus Photo EX) Make sure to select the one that's appropriate for your printer model. You will likely also see entries such as "Gutenprint USB Printer #1 (EPSON USB2.0 Printer (Hi-speed)". These are the entries corresponding to the "epson" and "canon" backends, and you must avoid these. iv) The next screen, entitled "Make/Manufacturer for r300-test", allows you to select the manufacturer of the printer. Normally, the correct manufacturer (Epson or Canon) will be highlighted, and you can click Continue. v) The next screen, entitled "Model/Driver for r300-test", allows you to select the precise model of the printer. Normally, the correct model (which will be named something like "Epson Stylus Photo R300 - CUPS+Gutenprint v5.2.0-rc1") will already be highlighted, and you can click "Modify Printer". Otherwise, you must find and select the correct printer model before clicking Modify Printer. You will likely need to provide your administrator username and password to continue here. After this, you should see a message "Printer r300-test modified successfully". 3) Remove the epson and canon backends. On most systems, the backends will be named /usr/lib/cups/backend/canon and /usr/lib/cups/backend/epson. On some systems, the backends will be named /usr/lib64/cups/backend/canon and /usr/lib64/cups/backend/epson. They may be present in other locations, but these are the most common locations. If these files are present, you should create a directory named /usr/lib/cups/old-backend or /usr/lib64/cups/old-backend, and move the epson and canon backends there just in case you later need them. % cd /usr/lib/cups % sudo mkdir old-backend Password: % cd backend % sudo mv canon epson ../old-backend Password: The specific underlying technical problem appears to be that when at least certain devices are in non-blocking mode (O_NONBLOCK or O_NDELAY) with certain operating system versions (Linux 2.6.25 appears to be suffer this problem, and most likely some other versions also do), the close() call does not result in all data being flushed to the device. We have determined that the data is in fact written by the "epson" process, but it's never getting to the printer. ================================================================ III) MAJOR CHANGES FROM PREVIOUS RELEASES * Changes from 5.2.1 1) Printing at standard and draft quality to a number of Epson multi-function devices has been corrected. The printers that have been corrected are: EPSON Stylus CX4100 EPSON Stylus CX4200 EPSON Stylus CX4700 EPSON Stylus CX4800 EPSON Stylus CX5700 EPSON Stylus CX5800 EPSON Stylus CX7700 EPSON Stylus CX7800 EPSON Stylus DX4200 EPSON Stylus DX4250 EPSON Stylus DX4800 EPSON Stylus DX4850 EPSON PX A650 2) Printing at standard and draft quality to the Epson Stylus Photo R1900 has been corrected. 3) Printing to the Epson Artisan 700, Artisan 800, Stylus Photo TX700W, Stylus Photo TX800W, Stylus PX700FW, Stylus PX800FW, EP-801A, EP-901A, and EP-901F is believed to be corrected based on updated specifications. The printers have not been tuned and are still considered experimental. 4) An Italian translation has been added. 5) Builds using the VPATH feature, allowing building outside of the source tree, have been fixed. This has no user-visible implications, but it may have implications to distributors building Gutenprint. ================================================================ IV) OVERALL CHANGES FROM 5.0.2 TO 5.2 A) GENERAL USER-VISIBLE CHANGES 1) Gutenprint 5.2 and beyond no longer support GIMP 1.2. Please ensure that you are using GIMP 2.0 or above. 2) Gutenprint 5.2 no longer supports Macintosh OS X 10.2; it now requires 10.3 (Panther) or higher. This is due to a new library requirement (for the iconv library) that is not present in 10.2. 3) Color Correction is now shown on the basic output adjustment menu rather than the advanced menu. 4) We recommend that any profiles created against Gutenprint 5.1 or earlier releases be checked, and if necessary, re-created for use with Gutenprint 5.2. B) NEW FUNCTIONALITY 1) The PostScript driver has been rewritten, offering enhanced functionality approaching that of the native printer drivers. This driver is used by the enhanced Print plugin for the GIMP, and by other packages (such as PhotoPrint) that utilize Gutenprint. In particular, the following specific functionality has been added: - All PPD file options are now offered. - CMYK input is now handled correctly. - The PostScript driver recognizes Gutenprint PPD files (from the native CUPS driver, not from Foomatic) and presents floating point options correctly. Note that this driver does not offer the curve options offered by the native drivers. If no PPD file is selected, a basic set of options is provided. 2) Envelope paper sizes are now offered in both portrait and landscape form factor, as some printers expect envelopes to be fed long edge first while some expect them to be fed short edge first. 3) PCL laser printers now offer paper trays with adjustable guides. Many laser printers use adjustable guides for manual feed of papers narrower than letter size. 4) In addition to support for specific laser printers listed below, support for generic large format PCL laser printers has been added. Note that all PCL laser printers are supported in black and white only. 5) Quality presets have been added to the PCL driver (HP inkjets and HP and other laser printers). 6) L-size photo paper (3 1/2x5 inches) has been added. C) CHANGES TO THE ENHANCED PRINT PLUGIN FOR GIMP 1) The GIMP plugin now offers additional options for many Epson inkjet printers, allowing precise specification of drop sizes if desired. 2) A problem with determining the system printer queues in the GIMP plugin on certain systems using languages other than English has been fixed. 3) The GIMP plugin now offers reset buttons for individual settings, so it is possible to reset a single setting to its default without resetting all settings. D) CHANGES TO THE CUPS INTERFACE 1) PPD files generated by cups-genppd and the CUPS driver interface (gutenprint.5.2) now include, by default, all localizations in a single file. This is referred to as "globalized PPD files". This functionality is supported by CUPS 1.2 and higher. Single-language PPD files are still generated on request, or if CUPS 1.1 is in use. The CUPS driver is now localized using built-in code, eliminating problems with PPD files not always being translated properly. cups-genppdupdate will normally upgrade all PPD files to globalized ones if CUPS 1.2 or higher is in use or if pregenerated PPD files are used, but will otherwise generate single-language files. This behavior can be controlled as follows: - If -l is passed to cups-genppdupdate, it will be honored no matter what release of Gutenprint is in use. This may be used if applications have issues with globalized PPD files. We would like reports of any such applications. The list of languages accepted is as follows: C English (US) cs Czech da Danish de German el Greek en_GB English (UK) es Spanish fr French hu Hungarian ja Japanese nb Norwegian nl Dutch pl Polish pt Portuguese sk Slovak sv Swedish zh_TW Simplified Chinese - If -loriginal is passed, the original language of the PPD file will be honored. - If no -l option is passed, the original language will be honored if -r5.0 or -r5.1 is passed (i. e. if cups-genppdupdate is used to downgrade to an older version of Gutenprint), or if CUPS 1.1 is in used. - A new configure option --enable-globalized-cups-ppds (or if not desired, --disable-globalized-cups-ppds) has been added to enable or disable pre-generating globalized PPD files. This option is only used if --enable-cups-ppds is set. It defaults to "yes" if CUPS 1.2 or above is in use or "no" if CUPS 1.1 is in use. 2) The CUPS driver is now localized using built-in code, hopefully eliminating problems with PPD files not always being translated properly. 3) cups-genppdupdate is no longer versioned, as it was in 5.0 and 5.1 (cups-genppdupdate.5.0 and cups-genppdupdate.5.1). It also supports the following options: -r Specify the major.minor version to update to, e. g. 5.0 or 5.1. -f Bypass ownership/permissions checks on update PPD files. -i Interactively ask whether to update each PPD file. -l Specify the language in which to generate PPD files, as described above. 4) The performance of cups-genppdupdate has been improved significantly. 5) cups-genppdupdate no longer updates PPD files that differ only in case of the file extension (e. g. printer.ppd and printer.PPD). This avoids updating PPD files twice on filesystems that are case insensitive, such as OS X. 6) cups-genppdconfig has been removed from this release. This command was used to configure CUPS printer queues, but is not necessary as there are ample other tools available to configure printer queues. 7) The CUPS driver will no longer attempt to find a matching predefined page size when a custom page size is passed in. This yields more accurate printing sizes for custom paper sizes. In addition, it avoids a problem with unnecessary margins being imposed when the paper size is approximately 4.7x6.8" (120x173 mm) due to a specific defined page size with those dimensions and tear-off borders. 8) Certain legacy applications (most notably Microsoft Office) did not print correctly on printers capable of high resolution, due to inability to handle the specified resolutions. This release works around that issue by not advertising very high resolutions in a way that these applications will fail on. 9) Progress and error messages produced by the CUPS raster driver are now localized. 10) The CUPS driver now provides an Output Order option, where appropriate, in all cases. This worked prior to 5.2.0-beta3 and was broken in that release only. 11) A problem whereby the CUPS driver could consume excessive amounts of CPU and generate no output with Epson PictureMate and E-series compact photo printers has been fixed. E) CHANGES TO THE FOOMATIC INTERFACE 1) The Foomatic-based driver will only attempt to find a precisely matching page size when a custom page size is passed in. This yields more accurate printing sizes for custom paper sizes. F) QUALITY IMPROVEMENTS 1) A number of improvements have been made to the Epson driver: - Borderless printing and in general printing near the bottom of the page has been improved for many Epson inkjet printers. - Additional very high resolutions (2880x2880 and 5760x2880 DPI) have been added for many modern (post-2005) printers. These resolutions may be useful when one desires the absolute best print quality. - Additional enhanced low and intermediate resolutions have been added for some Epson printers to reduce banding while still achieving good output performance and quality. - Printing speed, and in some cases quality, has been improved on many modern Epson printers. - Ink drop size has been retuned on printers using Claria inks, yielding improved quality at lower resolutions. - Borderless support has been added to the Epson Stylus Pro 7600/9600 and the margins have been corrected. - Epson printers will now correctly handle color output if quadtone inks are in use by printing in grayscale even though color is specified. - The Epson Stylus CX8300 and CX8400 now print correctly, although the colors may be retuned before final release. - The Epson Stylus CX7400, DX7400, and DX7450 now print correctly at all resolutions. Previously, printing at 720x360 DPI or below was incorrect. Output will be rather grainy. - A problem whereby some rows are not printed in color on the Epson Stylus CX3700 and related printers has been fixed. 2) Output quality has been improved for certain Canon printers, in particular the PIXMA iP4500 and related printers. 3) A new dither algorithm, Ordered New, has been added. This dither algorithm is most likely to improve output at low resolutions, particularly when printing black and white. It will only help on printers offering multiple drop sizes. 4) Various new controls and settings have been added to assist in printer calibration. While the tools for using these controls are not yet created, these tools will assist in calibrating printers in the future. - The Epson driver now offers additional controls for adjusting the relationship between light and dark ink: + The Value parameters (such as Light Cyan Value) specify the relative darkness of the light vs. dark inks. + The Cutoff parameters now specify the point at which the darker ink is first used, relative to the value of the light ink. + The Scale parameters now specify the amount of light ink used (essentially the density of the light ink). This is the same as the parameters previously called Cutoff. - The Epson driver now exposes as defaults the actual GCR settings used for the printer, paper, and ink combination in use. - The Epson driver now allows passing low level settings such as printer base resolution, ink drop size selection, and relative ink drop size as parameters. The ink drop size can be accessed in the GIMP plugin, while the base resolution and ink drop size selection can only be used via the test pattern generator or other application that allows setting integer parameters. - Two new dither algorithms, Segmented and Segmented New, have been added. These are not intended for normal use, and will normally behave like Ordered and Ordered New. However, if Raw color correction is selected and a printer with multiple drop sizes is used, the range of input will be divided up such that the high order bits will select the drop size to be used and the lower bits will specify the amount of ink. High order bits of 0 indicate that all drop sizes should be used. For example, if a printer offers 3 drop sizes (2 bits), the range of 0-16383 will print all drop sizes normally (with the range of 0-16383 being scaled to 0-65535), 16384-32767 will use the small drop size, and so forth. This is intended to assist in tuning ink drop sizes and is not normally useful otherwise. - A new parameter allowing dumping out of color correction state (lookup tables, GCR data, curves, etc.) has been added, and is accessible in the GIMP plugin. At present, this data cannot be used directly, but it is intended that in the future this mechanism be used to allow calibration information to be saved and restored. G) ARCHITECTURAL CHANGES 1) The Epson driver has been significantly rewritten to use data stored in external files external to the binary library. This allows making improvements, adding new features, and adding new printers without recompiling the source code. 2) Test coverage has been increased. H) NEW PRINTERS SUPPORTED SINCE GUTENPRINT 5.0.0 1) Epson inkjet printers: B-300 B-308 B-500DN B-508DN E 150 E 300 E 500 E 520 E 700 E 720 ME Office 70 ME Office 700FW ME Office 80W Offirio PX-B300 Offirio PX-B500 PM 670C PM A820 PM D870 PM G4500 PM G850 PX 101 PX 201 PX 601F PX V780 PictureMate 100 PictureMate 2005 PictureMate 210 PictureMate 215 PictureMate 240 PictureMate 250 PictureMate 260 PictureMate 270 PictureMate 280 PictureMate 290 PictureMate 500 PictureMate Dash PictureMate Flash PictureMate Pal PictureMate Snap Stylus C110 Stylus C120 Stylus C79+ Stylus C87+ Stylus CX4400 Stylus CX4900 Stylus CX5000 Stylus CX5000F Stylus CX5500 Stylus CX5600 Stylus CX6000 Stylus CX7000F Stylus CX7400 Stylus CX9300F Stylus CX9400 Stylus CX9400F Stylus CX9475F Stylus D120 Stylus D92 Stylus DX4050 Stylus DX4400 Stylus DX4450 Stylus DX7000F Stylus DX7400 Stylus DX7450 Stylus DX8400 Stylus DX8450 Stylus DX9400F Stylus NX200 Stylus NX400 Stylus Office B30 Stylus Office B33 Stylus Office B40W Stylus Office BX300F Stylus Office BX600FW Stylus Office SX600FW Stylus Office T30 Stylus Office T33 Stylus Office T40W Stylus Office TX300F Stylus Office TX600FW Stylus Photo 1400 Stylus Photo 1410 Stylus Photo R230 Stylus Photo R240 Stylus Photo R245 Stylus Photo R260 Stylus Photo R265 Stylus Photo R270 Stylus Photo R280 Stylus Photo R285 Stylus Photo R290 Stylus Photo R350 Stylus Photo R360 Stylus Photo R380 Stylus Photo R390 Stylus Photo R1900 Stylus Photo RX560 Stylus Photo RX580 Stylus Photo RX585 Stylus Photo RX590 Stylus Photo RX595 Stylus Photo RX610 Stylus Photo RX640 Stylus Photo RX680 Stylus Photo RX685 Stylus Photo RX690 Stylus SX200 Stylus SX205 Stylus SX400 Stylus SX405 Stylus TX200 Stylus TX400 WorkForce 30 WorkForce 40 WorkForce 500 WorkForce 600 Artisan 700 (experimental) Artisan 800 (experimental) Stylus NX100 (experimental) Stylus NX300 (experimental) Stylus PX700FW (experimental) Stylus PX800FW (experimental) Stylus Photo TX700W (experimental) Stylus Photo TX800W (experimental) Stylus Pro 7800 (experimental) Stylus Pro 7880 (experimental) Stylus Pro 9800 (experimental) Stylus Pro 9880 (experimental) Stylus Pro 11880 (experimental) Stylus S20 (experimental) Stylus SX100 (experimental) Stylus SX105 (experimental) Stylus T20 (experimental) Stylus TX100 (experimental) 2) Canon inkjet printers: BJC5100 BJC5500 BJC8500 PIXMA MP150 PIXMA MP170 PIXMA MP180 PIXMA MP500 PIXMA MP520 PIXMA MP610 PIXMA MP700 PIXMA MP710 PIXMA MP730 PIXMA MP740 PIXMA MP750 PIXMA MP760 PIXMA MP770 PIXMA MP780 PIXMA MP790 PIXMA MP830 PIXMA Pro 9500 PIXMA iP2000 PIXMA iP3000 PIXMA iP3100 PIXMA iP4100 PIXMA iP4200 PIXMA iP4300 PIXMA iP4500 PIXMA iP5000 PIXMA iP5200 PIXMA iP5300 PIXMA iP6000D PIXMA iP6700 PIXMA iP8500 PIXMA iX5000 PIXUS iP3100 PIXUS iP4100 i560 i80 i850 i860 i865 3) Dye sublimation printers Canon CP-10 Canon SELPHY ES1 (*) Canon SELPHY ES2 (*) Canon SELPHY ES20 (*) Fujifilm FinePix NX-500 Kodak Easyshare Printer Olympus P-S100 Shinko CHC S9045 Sony DPP-EX5 Sony UP-DR100 (*) Note that these printers may not work on all systems due to communication requirements. 4) Lexmark inkjet and compatible printers: Compaq IJ1200 Lexmark X73 5) Laser printers (black and white only): Brother DCP-8045D Brother HL-1430 Brother HL-1450 Brother HL-1470N Brother HL-1650 Brother HL-1670N Brother HL-1850 Brother HL-1870N Brother HL-2060 Brother HL-2460 Brother HL-2460N Brother HL-5030 Brother HL-5040 Brother HL-5050 Brother HL-5070N Brother HL-5140 Brother HL-5150D Brother HL-5170DN Brother HL-7050 Brother HL-7050N Epson EPL-N2050 Epson EPL-N2050+ Epson EPL-N2050PS Epson EPL-N2050PS+ Epson EPL-N2120 Epson EPL-N2500 Epson EPL-N2500PS Epson EPL-N2750 Epson EPL-N2750PS Gestetner 10512 Gestetner 2212 Gestetner 2712 Gestetner 3212 Gestetner 3502 Gestetner 3532 Gestetner 4235g Gestetner 4245g Gestetner 4502 Gestetner 4532 Gestetner 6002 Gestetner 7502 Gestetner 9002 Gestetner DS645G Gestetner DSm415 Gestetner DSm416 Gestetner DSm615 Gestetner DSm616 Gestetner DSm618 Gestetner DSm618d Gestetner DSm620 Gestetner DSm620d Gestetner DSm622 Gestetner DSm625 Gestetner DSm627 Gestetner DSm635 Gestetner DSm635G Gestetner DSm645 Gestetner DSm651 Gestetner DSm660 Gestetner DSm675 Gestetner DSm7110 Gestetner DSm7135 Gestetner DSm716 Gestetner DSm721d Gestetner DSm725 Gestetner DSm725e Gestetner DSm730 Gestetner DSm730e Gestetner DSm735 Gestetner DSm735G Gestetner DSm735e Gestetner DSm745 Gestetner DSm745G Gestetner DSm745e Gestetner DSm755 Gestetner DSm765 Gestetner DSm775 Gestetner DSm790 Gestetner MP 161 Gestetner MP 1100 Gestetner MP 1350 Gestetner MP 1600 Gestetner MP 2000 Gestetner MP 2500 Gestetner MP 2510 Gestetner MP 2550 Gestetner MP 2550B Gestetner MP 3010 Gestetner MP 3350 Gestetner MP 3350B Gestetner MP 3500 Gestetner MP 4000 Gestetner MP 4000B Gestetner MP 4500 Gestetner MP 5000 Gestetner MP 5000B Gestetner MP 5500 Gestetner MP 6500 Gestetner MP 7500 Gestetner MP 9000 HP LaserJet 1022 HP LaserJet 1160 HP LaserJet 1320 HP LaserJet 2410 HP LaserJet 2420 HP LaserJet 2430 HP LaserJet 3015 HP LaserJet 3020 HP LaserJet 3030 HP LaserJet 3050 HP LaserJet 3052 HP LaserJet 3055 HP LaserJet 3380 HP LaserJet 3390 HP LaserJet 3392 HP LaserJet 4240 HP LaserJet 4250 HP LaserJet 4345 mfp HP LaserJet 4350 HP LaserJet 5200 HP LaserJet 5200L HP LaserJet 9040 HP LaserJet 9040 MFP HP LaserJet 9050 HP LaserJet 9050 MFP HP LaserJet M3027 MFP HP LaserJet M3035 MFP HP LaserJet M4345 MFP HP LaserJet M5025 MFP HP LaserJet M5035 MFP HP LaserJet P2010 HP LaserJet P2015 HP LaserJet P3004 HP LaserJet P3005 Infotec 4353 MF Infotec 4452 MF Infotec IS 2015 Infotec IS 2018 Infotec IS 2018D Infotec IS 2022 Infotec IS 2027 Infotec IS 2032 Infotec IS 2035 Infotec IS 2045 Infotec IS 2060 Infotec IS 2075 Infotec IS 2090 Infotec IS 2105 Infotec IS 2122 Infotec IS 2127 Infotec IS 2132 Infotec IS 2135 Infotec IS 2145 Infotec IS 2151 Infotec IS 2160 Infotec IS 2175 Infotec IS 2215 Infotec IS 2216 Infotec IS 2220 Infotec IS 2220D Infotec IS 2225 Infotec IS 2230 Infotec IS 2235 Infotec IS 2245 Infotec IS 2255 Infotec IS 2265 Infotec IS 2275 Infotec IS 2316 Infotec IS 2320 Infotec IS 2325 Infotec IS 2416 Infotec IS 2425 Infotec IS 2430 Infotec IS 2435 Infotec IS 2445 Infotec IS 3090 Infotec IS 3110 Infotec IS 3135 Infotec MP 2550 Infotec MP 2550B Infotec MP 3350 Infotec MP 3350B Infotec MP 4000 Infotec MP 4000B Infotec MP 5000 Infotec MP 5000B Lanier 5622 Lanier 5627 Lanier 5632 Lanier 5635 Lanier 5645 Lanier LD015 Lanier LD016 Lanier LD035 Lanier LD040 Lanier LD040B Lanier LD045 Lanier LD050 Lanier LD050B Lanier LD060 Lanier LD075 Lanier LD090 Lanier LD115 Lanier LD116 Lanier LD118 Lanier LD118d Lanier LD120 Lanier LD120d Lanier LD122 Lanier LD125 Lanier LD127 Lanier LD132 Lanier LD135 Lanier LD145 Lanier LD151 Lanier LD160 Lanier LD175 Lanier LD190 Lanier LD225 Lanier LD230 Lanier LD235 Lanier LD245 Lanier LD255 Lanier LD265 Lanier LD275 Lanier LD316 Lanier LD320d Lanier LD325 Lanier LD330 Lanier LD335 Lanier LD345 Lanier LD425 Lanier LD425B Lanier LD433 Lanier LD433B Lanier LD0105 Lanier LD1100 Lanier LD1135 Lanier MP 161 Lanier MP 1100 Lanier MP 1350 Lanier MP 1600 Lanier MP 2000 Lanier MP 2500 Lanier MP 2510 Lanier MP 2550 Lanier MP 2550B Lanier MP 3010 Lanier MP 3350 Lanier MP 3350B Lanier MP 3500 Lanier MP 4000 Lanier MP 4000B Lanier MP 4500 Lanier MP 5000 Lanier MP 5000B Lanier MP 5500 Lanier MP 6500 Lanier MP 7500 Lanier MP 9000 Lexmark Optra E220 Lexmark Optra E321 NRG 2205 NRG 2212 NRG 2238 NRG 2705 NRG 2712 NRG 2738 NRG 3205 NRG 3212 NRG 3238 NRG 3502 NRG 3508 NRG 3518 NRG 3525 NRG 3532 NRG 3545 NRG 4502 NRG 4508 NRG 4518 NRG 4525 NRG 4532 NRG 4545 NRG 6002 NRG 6005 NRG 6008 NRG 7502 NRG 7505 NRG 7508 NRG 9002 NRG 9005 NRG 9008 NRG 10512 NRG 10515 NRG 10518 NRG DSm415 NRG DSm615 NRG DSm616 NRG DSm618 NRG DSm618d NRG DSm620 NRG DSm620d NRG DSm622 NRG DSm627 NRG DSm632 NRG DSm635 NRG DSm645 NRG DSm651 NRG DSm660 NRG DSm675 NRG DSm725 NRG DSm730 NRG DSm735 NRG DSm745 NRG MP 161 NRG MP 1100 NRG MP 1350 NRG MP 1600 NRG MP 2000 NRG MP 2500 NRG MP 2510 NRG MP 2550 NRG MP 2550B NRG MP 3010 NRG MP 3350 NRG MP 3350B NRG MP 3500 NRG MP 4000 NRG MP 4000B NRG MP 4500 NRG MP 5000 NRG MP 5000B NRG MP 5500 NRG MP 6500 NRG MP 7500 NRG MP 9000 Ricoh Aficio 220 Ricoh Aficio 1022 Ricoh Aficio 1027 Ricoh Aficio 1032 Ricoh Aficio 1035 Ricoh Aficio 1045 Ricoh Aficio 1060 Ricoh Aficio 1075 Ricoh Aficio 1515 Ricoh Aficio 2015 Ricoh Aficio 2016 Ricoh Aficio 2018 Ricoh Aficio 2018D Ricoh Aficio 2020 Ricoh Aficio 2020D Ricoh Aficio 2022 Ricoh Aficio 2027 Ricoh Aficio 2032 Ricoh Aficio 2035 Ricoh Aficio 2035e Ricoh Aficio 2045 Ricoh Aficio 2045e Ricoh Aficio 2051 Ricoh Aficio 2060 Ricoh Aficio 2075 Ricoh Aficio 2090 Ricoh Aficio 2105 Ricoh Aficio 3025 Ricoh Aficio 3030 Ricoh Aficio 3035 Ricoh Aficio 3045 Ricoh Aficio MP 161 Ricoh Aficio MP 1100 Ricoh Aficio MP 1350 Ricoh Aficio MP 1600 Ricoh Aficio MP 2000 Ricoh Aficio MP 2500 Ricoh Aficio MP 2510 Ricoh Aficio MP 2550 Ricoh Aficio MP 2550B Ricoh Aficio MP 3010 Ricoh Aficio MP 3350 Ricoh Aficio MP 3350B Ricoh Aficio MP 3500 Ricoh Aficio MP 4000 Ricoh Aficio MP 4000B Ricoh Aficio MP 4500 Ricoh Aficio MP 5000 Ricoh Aficio MP 5000B Ricoh Aficio MP 5500 Ricoh Aficio MP 6500 Ricoh Aficio MP 7500 Ricoh Aficio MP 9000 Samsung ML-1250 Samsung ML-1450 Samsung ML-1450PS Samsung ML-1650 Samsung ML-1651N Samsung ML-1750 Samsung ML-2150 Samsung ML-2150PS Samsung ML-2151N Samsung ML-2151NPS Samsung ML-2152W Samsung ML-2152WPS Samsung ML-2250 Samsung ML-2550 Samsung ML-2551N Samsung ML-2552W Samsung ML-7300 Samsung ML-7300N Savin 2235 Savin 2245 Savin 2522 Savin 2527 Savin 2532 Savin 2535 Savin 2545 Savin 2560 Savin 2575 Savin 3515 Savin 40105 Savin 4015 Savin 4018 Savin 4018d Savin 4022 Savin 4027 Savin 4035 Savin 4035e Savin 4045 Savin 4045e Savin 4051 Savin 4060 Savin 4075 Savin 4090 Savin 4135eG Savin 4135g Savin 4145eG Savin 4145g Savin 7025 Savin 8016 Savin 8020 Savin 8020d Savin 8025 Savin 8025e Savin 8030 Savin 8030e Savin 8035 Savin 8035e Savin 8035g Savin 8045 Savin 8045e Savin 8045g Savin 8055 Savin 8065 Savin 8075 Savin 8090 Savin 8110 Savin 8135 Savin 816 Savin 9016 Savin 9021d Savin 9025 Savin 9025b Savin 9033 Savin 9033b Savin 9040 Savin 9040b Savin 9050 Savin 9050b Sharp AR-M257 Xerox WorkCentre M118 ================================================================ V) EXCEPTIONS AND WORKAROUNDS A) GENERAL ISSUES 1) The Canon, Hewlett-Packard, Lexmark, and dye sublimation drivers do not offer all of the additional options and improvements that the Epson driver does. Please contact us if you would like to assist with making these options available (requires C programming skills). ---------------- B) BUILD/INSTALLATION ISSUES 1) With certain versions of CUPS and in certain non-default configurations, if a new version of Gutenprint is installed over an existing version genppd will create PPD files based on the older version of Gutenprint rather than the newer version. This will happen if all of the following are true: i) The cups-config provided by the CUPS driver adds -Wl,rpath=/usr/lib. This is done by some versions of CUPS reportedly because in some cases the runtime linker does not pick up libraries out of /usr/lib. This can be checked by running cups-config --libs --ldflags and inspecting the output for any mention of "rpath", "RPATH", "RUN_PATH", or the like. This is controlled by the CUPS installation on your system. ii) There is presently a version of Gutenprint installed in /usr (--prefix=/usr) rather than /usr/local or the like. The default location of Gutenprint installation is in /usr/local, but system vendors typically install Gutenprint in /usr. iii) Gutenprint is built dynamically only (--disable-static or --disable-static-genppd). This is not a default, and requires the explicit --disable-static or --disable-static-genppd on the Gutenprint "configure" command line. Therefore, if you build Gutenprint normally you should not be vulnerable to this problem. Note that in general if you install CUPS into a non-standard location, and install Gutenprint into the same location, this problem can surface. For example, if you choose to install CUPS in /usr/local and Gutenprint in /usr/local you are vulnerable to this. However, it is not standard practice to install CUPS anywhere but /usr. In this case, the run path embedded in the genppd executable points to the version of Gutenprint installed in /usr/lib. This run path overrides any attempt by libtool to look in the build directory. The result is that cups-genppd and rastertogutenprint are run against the older version of Gutenprint. If the new version contains additional features (more printers, changes to printer options, etc.) they will not be available. This bug is difficult to detect in a normal build. It normally does not cause an error to happen during build unless there is an API change from the version installed and the version being built; the only failure is frequently that some PPD files may not be built or may be built with missing options. Due to the PPD version checking introduced in this release, the behavior might manifest itself as a runtime error. It is also possible that there will be no error at all other than the older version of Gutenprint being used, with the result that new features and bug fixes are not available. If you wish to use only shared libraries, do not wish to build static libraries at all, and are vulnerable to this issue (because cups-config --ldflags sets the run path), there are three workarounds available: i) Build and install Gutenprint into /usr (rather than /usr/local) and then rebuild Gutenprint from scratch. This will install the correct libgutenprint.so in /usr/lib, and in the rebuild genppd will be run against the correct library. ii) Remove the old version of Gutenprint prior to building the new version of Gutenprint. The important files to remove are anything named /usr/lib/libgutenprint*. iii) Edit cups-config to remove the reference to the run path. 2) There are multiple issues that one must be aware of when using Foomatic with Gutenprint. i) Before installing any new release of Gutenprint 5.2, you must manually remove any existing Foomatic option files. This is because the Foomatic utility to load data kits (foomatic-kitload) does not remove obsolete data files from the Foomatic database. If you do not do this, any PPD files you generate will be incorrect and printing may work incorrectly or not at all. Foomatic option files are usually located in /usr/local/share/foomatic/db/source/opt or /usr/share/foomatic/db/source/opt Assuming they're in the former location, you must remove data files associated with the Gutenprint driver. The command to do this, which must be run as the superuser (root) is cd /usr/local/share/foomatic/db/source/opt ls -l gutenprint-ijs*.xml If there are existing files present, you must remove them: rm -f gutenprint-ijs*.xml Now check to make sure that they are gone: ls -l gutenprint-ijs*.xml CAUTION: Be very careful when typing this command! Minor errors in typing these commands may result in severe damage to your system. After this, you may run 'make install' in your Gutenprint source directory to install the package. You will then need to re-create any printer queues using Foomatic. In general, you will have to perform this procedure any time you install a new version of Gutenprint. Please check the Foomatic site (http://www.openprinting.org/foomatic.html) and the Gutenprint site (http://gimp-print.sourceforge.net) for updated instructions about this. ii) Unlike with the CUPS native driver, there is no simple way to update all PPD files when you install a new version of Gutenprint. You must either use the foomatic-ppdfile command to upgrade PPD files individually, or foomatic-compiledb to build all PPD files. Your system may provide an alternate way to install new PPD files, in which case you may use that method. iii) The Foomatic data is version locked to the Gutenprint release installed on the system. For example, PPD files generated with the Foomatic data for release 5.2.0 will not work with the ijsgutenprint in release 5.2.1. This is to prevent accidentally using incorrect data, which could cause incorrect function to take place. 3) There is a known complication building "escputil" that causes problems on a small number of systems. "escputil" uses the "readline" package, to support command editing and history within the program. Unfortunately, linking programs with "readline" often requires linking against additional libraries, and the exact library depends upon the system (e. g. not all Linux/UNIX systems have the same requirements). The configure script attempts to determine which additional library must be linked against. It tries using the following libraries in this order to build a test executable: -lncurses -lcurses -ltermcap no additional libraries The reason it tries other libraries first is that some systems will link successfully, but only fail when an attempt is made to actually call readline. Therefore, we assume that additional libraries are required. Since we try the extra libraries in order from most recent to oldest, we expect that the first one we find will be appropriate. For example, if the "ncurses" library is the standard on a given system, the "termcap" library may be provided for back compatibility, but it is unlikely that "termcap" will be the standard with "curses" or "ncurses" being provided for compatibility only (so that the link will succeed but the command will use the incorrect library). As this procedure is not failsafe, we provide the following configure options to control this behavior: ./configure --with-readline=yes (the default; attempts to determine the correct library to link against) ./configure --with-readline=no (turns off use of readline altogether) ./configure --with-readline=only (specifically instructs configure to not attempt to link against any other libraries) ./configure --with-readline=libs (specifies the libraries to be linked against) A hypothetical (this won't work anywhere!) example of the latter would be ./configure --with-readline='-lncurses -ltermcap' Note that configure will not allow readline to be used if it cannot successfully build the test program, regardless of the option selected. If you are having difficulty getting escputil to build, we suggest using --with-readline=no. The commands used within escputil are very short and seldom require significant editing.