ProductsDesktop Server For Scientific Computing For IBM POWER For IBM System z For SAP Business Applications Red Hat Network Satellite ManagementExtended Update Support High Availability High Performance Network Load Balancer Resilient Storage Scalable File System Smart Management Extended Lifecycle SupportWeb Server Developer Studio Portfolio Edition JBoss Operations Network FuseSource Integration Products Web Framework Kit Application Platform Data Grid Portal Platform SOA Platform Business Rules Management System (BRMS) Data Services Platform Messaging JBoss Community or JBoss enterprise
SolutionsApplication development Business process management Enterprise application integration Interoperability Operational efficiency Security VirtualizationMigrate to Red Hat Enterprise Linux Systems management Upgrading to Red Hat Enterprise Linux JBoss Enterprise Middleware IBM AIX to Red Hat Enterprise Linux HP-UX to Red Hat Enterprise Linux Solaris to Red Hat Enterprise Linux UNIX to Red Hat Enterprise Linux Start a conversation with Red Hat Migration services
TrainingPopular and new courses JBoss Middleware Administration curriculum Core System Administration curriculum JBoss Middleware Development curriculum Advanced System Administration curriculum Linux Development curriculum Cloud Computing and Virtualization curriculum
ConsultingStandard Operating Environment (SOE) Strategic Migration Planning Service-oriented architecture (SOA) Enterprise Data Solutions Business Process Management
Issue #22 August 2006
- The kids are alright
- Belly up to the BarCamp
- How to set up a home web server
- The little laptop that could
- Fedora Core 6 advances printing
- Using Dogtail to automate Frysk GUI tests
- Integrated virtualization lives
- The Fedora message
- The Fedora Project and Red Hat Enterprise Linux, part 4
From the Inside
In each Issue
- Editor's blog
- Red Hat speaks
- Ask Shadowman
- Tips & tricks
- Fedora status report
- Podcast (XML)
- Magazine archive
Fedora Core 6 advances printing
by Tim Waugh
Table of Contents
The release of Fedora™ Core 6 will see several improvements in the way printing is configured and used. The print spooler itself has had a major upgrade; the printing administration tool has been re-written; and the dialog you see when printing a document has been dramatically improved.
The Common Unix Printing System (CUPS) is the print spooler used in Fedora Core. A new major version of CUPS was made available this year and will be available in Fedora Core 6. In fact it has even been available as an update to Fedora Core 5 since June.
There are many changes between CUPS 1.1 (the previous version) and CUPS 1.2 (the new version), too many to mention here, but a few of them are worth highlighting.
The first thing you will notice is that the CUPS service starts much more quickly. This is due in part to the fact that devices are now detected on-demand rather than at start-up. Rather than probing serial ports and examining USB devices when the service starts, this is now only done when configuring a printer.
Another reason CUPS starts more quickly is that installed PostScript Printer Definition (PPD) files, which describe the capabilities of different models of printer, are also scanned on-demand rather than at start-up. Not only that, but CUPS 1.2 allows dynamically generated PPD files. This is useful for the foomatic printer database, for example, which can generate PPD files based on the database information.
Printers can now be shared on the network individually. In the previous version it was only possible to share all printers on the server or none of them. This limited option led to the need to adjust permissions for each printer and caused confusion since a server would advertise a printer on the network even if it was private.
CUPS can now probe the local network for SNMP-capable network printers. Many printers that can connect directly to the network are capable of communicating using the SNMP protocol. This protocol is for discovering information about network devices and is not used for sending print jobs. The CUPS SNMP backend can detect which transport mechanism (JetDirect, IPP, or LPR) should be used to send jobs to each printer it finds.
One last major item to mention is the addition of
server-side default options for printers. Options such as
job-sheets, media, and the page margins for text printing, have
previously used the
lpoptions mechanism for
setting defaults. This is a client-side default: jobs submitted
from a client machine have their default options set from the
lpoptions file on that client machine,
therefore setting network-wide defaults has been a problem.
With CUPS 1.2 it is now possible to set default job options on the CUPS server. These network default options can be set using the improved Fedora printing configuration tool (see the section called “New printing configuration tool”).
The "What's New" section of the CUPS on-line help has 94 items, so I hope the aforementioned few paragraphs are a useful summary of the biggest new features.
The Fedora printing configuration tool in Fedora Core 5, system-config-printer ( -> -> from the menu), has several major drawbacks which necessitated a re-design. It is used for adding and configuring print queues.
This tool has been in use since before the Fedora Core 1 release, and previous to CUPS being included in the distribution. It was designed to configure both the LPRng spooler and CUPS. It is able to apply the same configuration to either printing system by maintaining a separate "generic" configuration file. When the printing service is started, fresh configuration files for it are generated from the generic configuration file.
Most complaints I have seen about this method of doing things equate to: "Changes I made to my configuration files were over-written." This was the main problem we needed to rectify.
The fact the configuration file format was generic by design meant that useful and interesting CUPS features could not be utilized.
Another problem with the configuration tool was the rather limited support for PPD files. All the information about printer drivers came from the foomatic printer database. Manufacturer's PPD files had to be imported into the foomatic database before they could be used.
Taking this into account I designed a replacement, hoping to address the worst of the problems. The new configuration tool configures CUPS directly using the Internet Printing Protocol (IPP). This follows the example of the web administration interface that CUPS itself provides. The web interface on its own is insufficient because it does not provide particularly tight integration with the foomatic database (there is no way of reading comments about the printers and drivers for example). It does not integrate with the USB hotplug system to configure locally connected printers without any user interaction. Features such as Windows printer share browsing (which has been retained from the Fedora Core 5 configuration tool) are not available in the CUPS web interface.
The new tool is intended to provide user-defined print queues for Stateless Linux. These are queues that are visible only to a particular user, with the user's own PPD file.
Some screenshots are shown here, although at the time of writing there may be further alterations before Fedora Core 6 is released.
Gtk+ is the toolkit used by applications in GNOME, the default desktop environment in Fedora Core. As a toolkit, it drives the buttons, scrollbars, text-entry boxes and icons that applications use in their windows and dialogs.
It already provides many features for applications, but one piece of functionality it has not provided until now is a standard "print this document" dialog. In Gtk+ 2.10 this missing piece is now in place, allowing large multi-platform Gtk+ applications such as OpenOffice.org and Mozilla Firefox to provide the same print dialog as other native applications.
The new Page Setup dialog is shown in Figure 10, “Page Setup dialog”.
The new Print dialog is shown in Figure 11, “Print dialog (General)”.
It allows all the printer's available PPD settings, such as duplexing (double-sided printing) and print quality, to be tweaked. Figure 12, “Print dialog (Image Quality)” shows the PPD setting relating to image quality; other PPD settings are in the Advanced tab.
At the time of writing, the Gutenprint printer driver is nearing its first public stable release and will replace the gimp-print driver—it is essentially a new major version. We would have loved to get Gutenprint into the distribution ready for Fedora Core 6, if only there had been more time to do so.
Since version 8.54, GPL Ghostscript no longer trails a year behind the AFPL-licensed release from Aladdin. Fedora Core comes with ESP Ghostscript, a project that is hosted by Easy Software Products (who also host CUPS). ESP Ghostscript is based on GPL Ghostscript but contains fixes and extra drivers.
Unfortunately, ESP Ghostscript is still based on the 8.15 GPL release and has not incorporated the 8.54 version yet. If we were to switch to GPL Ghostscript we would lose the extra drivers that ESP Ghostscript comes with. Hopefully the ESP fixes and drivers will soon be ported to the 8.54 GPL release.
There is a lot to look forward to in Fedora Core 6 associated with printing support, and more to come after that. The printing configuration tool has been re-designed and re-written, a task long overdue. This, together with the much improved printing dialog in Gtk+, hopefully brings the printing experience on Fedora a step closer to the goal of being truly easy to use.