Welcome to Gutenprint 5.2.3, a stable release of Gutenprint 5.2.  This
release has bug fixes over 5.2.2.  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.2
        * 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: <type your administrator password>
      % cd backend
      % sudo mv canon epson ../old-backend
      Password: <retype your administrator password if prompted>

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.2

   1) CUPS PPD files in non-English locales are now generated
      correctly when the CUPS driver interface is used (with CUPS 1.2
      and above).

   2) Epson inkjet printers that support duplex printing now use less
      restrictive margins (allowing use of more of the page) when
      duplex printing is not used.

   3) Printing to the following Epson printers has been corrected:

      EPSON Artisan 700
      EPSON Artisan 800
      EPSON BX300F
      EPSON EP-801A
      EPSON EP-901A
      EPSON EP-901F
      EPSON ME 300
      EPSON ME Office 360
      EPSON PX-401A
      EPSON Stylus NX100
      EPSON Stylus NX105
      EPSON Stylus Photo PX700FW
      EPSON Stylus Photo PX800FW
      EPSON Stylus Photo TX700W
      EPSON Stylus Photo TX800W
      EPSON Stylus S20
      EPSON Stylus SX100
      EPSON Stylus SX105
      EPSON Stylus T20
      EPSON Stylus TX100
      EPSON Stylus TX101
      EPSON Stylus TX102
      EPSON Stylus TX103
      EPSON Stylus TX105
      EPSON Stylus TX106
      EPSON Stylus TX109
      EPSON TX300F

      These printers should all be fully functional, but may be
      further tuned in the future.

   4) Duplex printing has been enabled on the Epson Stylus RX680,
      RX685, RX690, PM-A940, and PM-T960.  Support for these printers
      is still considered experimental.

   5) Support has been added for the Canon MULTIPASS MP220.

   6) Preliminary support has been added for the Canon PIXMA iP4600.


----------------

* 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<language> 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.
