Archive:Printing News

Jump to: navigation, search

For the current Printing News see Portal:Printing

Deal with the major incompatible changes since CUPS 1.6

CUPS 1.6 and later versions have major incompatible changes compared to all CUPS versions up to 1.5.4.

In particular since CUPS 1.6 printing in the network does no longer work as it did up to CUPS 1.5.4, see SDB:CUPS in a Nutshell.

Furthermore since CUPS 1.6 several programs that are needed for print job processing (so called "filters" for printing) were dropped in CUPS and are now provided in the separated package "cups-filters".

Up to openSUSE 13.2 we provide CUPS version 1.5.4 so that there are no incompatible changes up to openSUSE 13.2.

After the openSUSE 13.2 release it is planned to upgrade the printing system in the openSUSE build service development project "Printing" to CUPS 1.7 or CUPS 2.x plus cups-filters.

For more detailed information what is going on see in the openSUSE Bugzilla the issue "CUPS >= 1.6 has major incompatible changes. Do not blindly upgrade to CUPS >= 1.6 on production systems!".

Full compliance with upstream Ghostscript

openSUSE 12.2 provides a major cleanup of Ghostscript. All our own patches were dropped to enforce a reset to 100% compliance with upstream.

For background information see in the openSUSE Bugzilla the issue "Ghostscript: Package clean-up and upgrade to latest stable release" in particular see comment #36 therein.

Parallel port printers do no longer work out of the box

Since openSUSE 11.4 the kernel does no longer load the 'lp' kernel module unless asked specifically to do so. More precisely udev does no longer provide static /dev/ nodes. When /dev/lp0 is opened to send data via the parallel port the 'lp' kernel module is no longer loaded automatically so that no data can be sent. In the end since openSUSE 11.4 it is by default no longer possible to use the parallel port for a printer.

If you are using openSUSE 12.1 or later, install the "parallel-printer-support" package, which creates a static udev node for the parallel port. Its purpose is to load the "lp" kernel module automatically the first time data is sent to the parallel port. Should you not find the package by using zypper install or YaST Software Management module, make sure that openSUSE 12.1 is up-to-date and the official openSUSE 12.1 Update repository is enabled (it should be by default).

On openSUSE 11.4, in order to install the "parallel-printer-support" package, you can get it from the "Printing" repository via direct download from http://download.opensuse.org/repositories/Printing During the One Click Install a YaST Installation dialog may show up which asks to subscribe to the "Printing" repository plus a check box whether or not to "remain subscribed to this repository". Make sure not to remain subscribed to the "Printing" repository otherwise you will get the newest development packages regarding printing installed onto your system which could mess up the printing functionality of your system, see the Printing repository description

See also

HP devices not detected as usual

The CUPS command "lpinfo -v" (run it as root) or matching CUPS library calls to detect devices may no longer detect HP devices with HP's specific "hp:/..." connection but - if at all - only with the generic "usb:/..." connection. For plain printing both kind of connections should work but for anything else (e.g. device status via HP's "hp-toolbox", or scanning with a HP all-in-one device) the "hp:/..." connection must be used, see http://en.opensuse.org/YaST_Printer#Connection

The reason is that HP's backends "hp" and "hpfax" cannot run at the same time, see https://bugs.launchpad.net/hplip/+bug/741073

A workaround for HP devices without fax is to disable the hpfax backend with the following command (as root):

chmod a-x /usr/lib/cups/backend/hpfax

Various printout failures with CUPS default "RIPCache 8m"

By default CUPS has only 8 MB RIPCache, see "RIPCache" at http://www.cups.org/documentation.php/doc-1.4/ref-cupsd-conf.html

This default exits since a long time and did not cause any issue. But since some time more and more weird issues regarding printout failures happen which are related to this low default. The root cause is that recent versions of Ghostscript changed the internal banding API but the CUPS raster driver was not updated accordingly in Ghostscript.

For example there might be no printout at all because "/usr/lib/cups/filter/pstoraster failed" or there is broken printout like in the attachment 380232 in the openSUSE Bugzilla.

If printout failures actually depend on the low default RIPCache value, it helps to add in /etc/cups/cupsd.conf a line like

RIPCache 128m

and restart the cupsd afterwards. Then the CUPS raster driver in Ghostscript gets more memory available so that rendering is done in full page mode and not in banding mode which avoids issues because of the changed banding API.

In some cases (probably only for color printing at high resolution with the Gutenprint driver) you may have to specify much more, e.g. 1GB with

RIPCache 1024m

of course provided you have at least 2GB main memory in your computer.

Links to openSUSE pages:

External links:

Replacement of the cups-drivers package

Up to openSUSE 11.3 the cups-drivers package was a huge all-in-one package which contained several actually independent printer drivers and several sets of PPD files.

Since openSUSE 11.4 the following printer driver and PPD files packages are split from the cups-drivers package and the cups-drivers package itself is dropped:

  • gutenprint: the Gutenprint driver and its matching PPDs
  • splix: the SpliX driver and its matching PPDs
  • m2300w: the m2300w driver and its matching PPDs
  • OpenPrintingPPDs-ghostscript: PPDs for Ghostscript built-in drivers
  • OpenPrintingPPDs-hpijs: PPDs for the HPIJS driver for non-HP printers
  • OpenPrintingPPDs-postscript: PPDs for PostScript printers

Compliance with upstream CUPS

openSUSE 11.3 provides a major cleanup of CUPS. Almost all our own patches were dropped to enforce a reset to almost 100% compliance with upstream. The main change is that the "/usr/lib/cups/" directory is used on all platforms (in particular no longer "/usr/lib64/cups" on the 64-bit x86_64 platform). For background information see in the openSUSE Bugzilla the Comment #2 to bug 575544: "adapt other printing packages to work with upstream compliant cups-1.4 on 64 bit platform" which reads in particular:

Upstream CUPS installs executables
(in particular backends and filters)
into /usr/lib/ in any case which is
the right place. Compare /usr/bin/
there is nothing like /usr/bin64/ because
for executables special ...64 directories
do not make sense.
In contrast libraries like libcups.so
and libcupsimage.so must be installed
into /usr/lib/ and /usr/lib64/
...
A positive side effect of this clean-up
is that then it works much better to
install third-party printer drivers (which
usually install only into /usr/lib/cups/)

YaST printer module renewal

Since openSUSE 11.1 the YaST printer module was made completely new, see Archive:YaST Printer redesign in particular the sections "Basic Design Ideas" and "Basic Implementation Principles" where the latter also talks about "Strict Compliance With CUPS".