[LWN Logo]

 Main page
 Linux in the news
 Back page
All in one big page

See also: last week's Development page.

Development projects

News and Editorials

Gnulpr and the evolution of printing on Linux. News reached LWN this week of the release of drivers for Lexmark printers coming directly from Lexmark, apparently shipped with their printers. On the heels of that announcement came word of a new project (or should we say GNU project) for handling printing on Unix systems: gnulpr. The design document for this system has been posted to SourceForge. The question that begs asking is - with the advent of CUPS and LPRng, is gnulpr necessary?

Printing on Linux systems has always been a bit of a black art. Configuration has been a fairly manual task and printer drivers have come primarily from the sufficient but incomplete Ghostscript package. LPR itself, derivatives of which come from the original Berkeley LPR, is not actually a printing system. It's a queue manager that provides for the submission and processing of print jobs. All of the real work is handed off to filter programs and utilities.

As much as it hurts to admit it, configuration and printing on Windows systems is a much simpler task, at least for the most simple scenario of a single printer connected directly to the PC in use. Linux developers have been striving in a number of ways to provide better interfaces to the print subsystem as well as provide a better subsystem for handling driver interaction and installation. LPRng is one such system. Its design aims at extending the original LPR implementation while providing features seen in variations of LPR like Unix SVR4's lp and lpstat.

But LPRng is still LPR. The basic subsystem of filter interaction with printers remains. It still relies on Ghostscript to deal with most printers. An alternative to this system is CUPS. CUPS provides a portable printing layer for UNIX-based operating systems. Licensed under the GPL and LGPL, it has been developed by Easy Software Products to promote a standard printing solution for UNIX systems in general, including Linux. System V and Berkeley command-line interfaces are provided. CUPS uses the Internet Printing Protocol ("IPP" - defined in RFC2565, RFC2566 and RFC2567) as the basis for managing print jobs and queues. The Line Printer Daemon ("LPD"), Server Message Block ("SMB"), and AppSocket (a.k.a. JetDirect) protocols are also supported with reduced functionality. CUPS adds network printer browsing and PostScript Printer Description ("PPD") based printing options to support real-world printing under UNIX. In other words, CUPS covers a lot of ground internally while using a common interface for users.

What separates CUPS from LPRng is the commercial front end for configuration and the wide supply of back-end drivers - Easy Software's ESP PrintPro package. While not free software, it does provide an easy to use configuration tool and a huge set of printer drivers. And that driver set is current with many popular desktop printers. But CUPS isn't designed to work only with ESP Print Pro. The author of both products, Mike Sweet, also wrote the original Print plug-in for the GIMP. And now that tool has been extended into yet another printing system - known as Gimp-Print (or stp to some developers) - which hooks into any back-end, including CUPS, LPD and Ghostscript drivers. And it integrates with Foomatic, yet another printing subsystem.

So what about Ghostscript itself, the workhorse solution to printer drivers under free Unix distributions? Recently this project was picked up by long time Linux (and GIMP) hacker Raph Levien, who posted an open letter to the open source community outlining his view for the future of Ghostscript. He also opened a new web site for Ghostscript, which has an Advogato-like style.

And this leads us back to gnulpr. Unsatisfied that the original design of LPR had not evolved since it's early days and various implementation had become only marginally interoperable, Grant Taylor decided to look at ways to replace it. And Grant was not alone in his dissatisfaction. The Free Software Foundation has noticed that LPR had forked into a number of poorly-maintained or proprietary versions. Since the GNU project lacks a printing system, Richard Stallman approached Ben Woodard about taking over maintaining LPR for project GNU. From both of these events was born gnulpr.

Confused? You should be. As stated previously, printing on Linux is a black art. Standards exist but we also have a wealth of implementations. Many work together and their interoperability is getting better. Even so, each system has its limitations and users really only care about two things - can I configure my new printer quickly and will it work with all my applications? The answer to the latter is "probably". The answer to the former is "maybe". Bad though that sounds, it's better than last year when the answers were "not likely" and "you've got to be kidding", respectively.

But back for a moment to gnulpr. Will this new system meet the needs of modern graphical software? According to Nick Moffitt, it can:

Yes, even in version 1.0! Part of the anthology release is an application called gpr, which is a drop-in replacement for the lpr client binary. One can simply replace "lpr" with "gpr" in Netscape's printing dialog, and up it comes. The gpr client uses PPD files to provide a GUI for selecting printer options (such as duplex, tray selection, watermarks, etc.). It then uses the selections to generate an lpr command-line with all of the necessary parameters. Our version of lpd has support to pass these options into the ppdfilt program, which is part of our printfilters set. This functionality is actually the first thing we really did with LPR. It was the difficulty of assembling all of the pieces that lead us to the anthology release concept. Gpr was actually a third-party application developed by Thomas Hubbell of Compumetric Labs.

There has been a fair amount of discussion about the release of both gnulpr and the Lexmark drivers, the most interesting of which may have come from LinuxPrinting.org, the site which evolved from the Linux Printing HOWTO, under the General Forum.

While not complete, this information should give you an idea of what's been going on and where it has been happening. All you need to do is wait. At least until all the various implementation come together and a common printing system works its way onto the Linux desktop.

More Printing News: HP's response to Eric Raymond. HP has published a response to Eric Raymond's open letter. In it, they detail what they have done for open source in the printing arena.


Galeon Release 0.8. Release 0.8 of the Galeon Web Browser has been released. New features include more context menu options, a clear cache feature, Netscape import/export tools, and bug fixes.

Mozilla Status Report for November 2, 2000. The November 2, 2000 Mozilla Status Report is out. News includes lots of bug fixes in the Translator, MailNews, Necko/Imglib, and XPtoolkit sections of Mozilla.


Sanchez releases GT.M database as open source. Sanchez Computer Associates Inc. announced this past week that the company's Greystone Group, a technology division of Sanchez, has made its M database technology available to GNU/Linux-based users as open source software. The code is available from Sourceforge and is licensed under the GPL. This announcement raised a few questions at LWN. In particular, the statement that "The release of GT.M as open source freeware applies only to the x86 GNU/Linux platform" caught our attention, so we sent the company a query. K.S. Bhaskar, Vice President of the Greystone Group, responded.

LWN: Is this the "mumps" executable in the distribution? If so, could you give me a hint as to where the source might be found?

Bhaskar: Yes, the mumps executable includes and invokes the M compiler. As noted in the press release, the source code has not actually been released yet (it's in our work pipeline, and will happen soon -- mostly technical packaging issues that we are working on while scrambling to make a release that clients are working for, so we're not as focussed and as efficient as we could be).

GT.M includes a compiler for the M language. There is a code generator for each target architecture, and (at least at this time) we are only releasing the x86 code generator under the GPL. If someone is able to retarget the code generator (probably not a massive task, but certainly harder than falling off a log), s/he could certainly run it on other platforms. (I'm personally rather hoping someone will port GT.M to a PDA...)

The high performance transaction processing database part is reasonable portable across UNIXen. So, someone could easily hook it up to C, Java, etc. without a lot of work.

What makes the release of this software interesting is its potential in the medical software arena, as was discussed on LinuxMedNews.

MySQL. A couple of notes on MySQL this week. This first is that for the third Year in a row MySQL won the Readers Choice Award in Linux Journal. MySQL earlier this fall won the Linux Magazine Editors Choice Award.

On another front, MySQL founder Michael "Monty" Widenius predicted a substantial Open source database impact on the markets today dominated by proprietary database companies. Monty's speech at the OSDN-summit in San Jose was quoted by CBS Marketwatch.


Linux in education report #32 for November 6. The latest issue of the Linux in education report has been posted to the SEUL website. There are some first hand reports of the Red Escolar project along with the Manhattan Virtual Classroom, a system that "allows you to go online with your courses - without creating a single web page." (Thanks to Doug Loss)

Embedded Systems

Report from the 2nd Embedded Linux Expo. LinuxDevices' Rick Lehrbaum reports on the second Embedded Linux Expo & Conference (ELEC), held October 27, 2000 in Westborough, MA. "As in the case of last June's ELEC, the event was well attended from both the attendee and exhibitor perspective, and the day was permeated by a clear sense that Embedded Linux is truly 'a market on fire.'"


Wine Weekly News. We missed last weeks news, and so here are two weeks worth of news from the WINE project.

  • Issue 67 - This issue includes a link to unofficial screenshots of MS Word and Excel 2000 running under WINE.
  • Issue 68 - The latest issue includes discussions on configuration and thoughts on porting to MacOS X.

Office Applications

GIMP News. A few announcements from the GIMP News front. First, Miles O'Neal went one-on-one with LinuxNews.com to talk about the future of GIMP. Next, a new GIMP web site, MacGIMP, was launched this week. The web site aims to help Macintosh users, particularly Mac OS X users, run the X window system, GTK, and the GIMP. In conference news, GIMP has a booth in the Linux-Park (Hall A3) at the Systems 2000 show in Munich, which runs from November 6th through 10th. The booth will be manned by GIMP developers Simon Buddig and Marc Lehman. Finally, an article about GIMP configuration on any X11 capable OS, including some info about TrueType fonts and Wacom tablets, was posted to diff.org. The article is in Italian - English text is available via Babelfish.

On the Desktop

GNOME Configuration Made Easy (Linux Planet). In the first edition of a new weekly column on GNOME, Linux Planet looks at GNOME configuration issues. "The GNOME mail notification applet (found under Programs/Applets/Network/Mailcheck) has six different notification graphics. You can also run more than one of these at a time, and you can select which mailbox each monitors. If you're using procmail and have multiple mbox files, or have multiple POP accounts, this is a great way to keep track of which box has mail."

GNOME Icon Project Needs Manager. Matthias Warkus is stepping down from his position as manager of the Gnome Icon Project. As a result, the project needs a new leader. This sounds like a fun job for someone who is graphically inspired and can manage input from a wide variety of people.

The People Behind KDE: Rik Hemsley. Continuing in the series on KDE developers, this article introduces Rik Hemsley, a developer known mostly for his work on empath, a groupware project for the KDE PIM project similar to Outlook. "Day-to-day I look hard at KDE in general and try to find ways we can improve it. I usually investigate problems first, talking to those who are responsible or have good knowledge of a subject area. I then try to work with people to find solutions. This yields better results than simply filing bug reports."

2nd Public Beta of Kivio announced. The 2nd public beta release of Kivio, the KDE flowchart tool, is now available for download. Most popular Linux distribution formats are provided for binary versions of the package, as well as the source distribution.

QextMDI 1.0.0 released. The 1.0 version of QextMDI, a C++ library extension to Qt that allows for multiple views of a document, has been released.


MUMPS Compiler/Interpreters are now GPL. In August we reported on the release of a Mumps Compiler for Linux. While that release was described as not truly free software, a recent announcement on the LinuxMedNews site notes that the license has been changed to the GPL. This announcement, coupled with the release of the GT.M database software, takes the idea of an open source VistA package (used by the VA Administration) a step closer to reality.

Web-site Development

Zope Weekly News. The Zope Weekly News for November 8 is out. Zope documentation appears to be the theme of the week.

Section Editor: Michael J. Hammel

November 9, 2000

Application Links
High Availability

Open Source Code Collections
Le Serveur Libre



Programming Languages


Utilizing Callbacks in GTK+ (LinuxProgramming). Donna S. Martin's latest article in her series on GTK+ programming takes a look at using callbacks: "The point of all this is that any information our buttons need to perform their duties must be available when the function is invoked. Some information can be retrieved from GTK+, some could be queried from the user, and some (such as the id of the label widget to update) needs to be supplied from the main program."


Incremental development with Ant and JUnit. Testing your code is a necessary evil. IBM's developerWorks looks at Ant and JUnit, two tools used in conjunction with testing Java programs.

The change bug has bitten every developer. During the modification of code, a bug might be introduced, which is not found until after compilation when the code might be manually tested via a user interface. Then, you spend days tracking down an error introduced by the change.


This week on perl5-porters (31 Oct -- 07 Nov 2000). Perl5 Porters posted their latest newsletter. Some of the topics covered include error number parsing, the (f)crypt of mystery, and the regex stack problem .

Days 1.4 and 1.5 of University of Perl. Nathan Torkington has concluded his daily journal of the University of Perl this week with entries for Day 1.4 and Day 1.5.

Beginner's Introduction to Perl. We didn't see this reference yet - Perl.com has an introduction to using Perl that covers everything from variables to functions to programmed loops.


PHP Weekly Summary for November 6th, 2000. The November 6th, 2000 edition of the PHP Weekly Summary is out. News includes information on stack traces in error messages, methods for displaying references in var_dump(), and an imlib2 extension update.


This Week's Python-URL. The November 6, 2000 edition of the Dr. Dobb's Python-URL is out. Included are some overviews of Python based graphics packages and a pointer to a Python library listing utility.


This week's Tcl-URL. Here is the Dr. Dobb's Tcl-URL for November 6 with the latest from the Tcl/Tk camp. Among other things, it points out the new SourceForge page for TclPro, a Tcl tool set with a graphical debugger, code checker, and compiler.


A dW tutorial: Rebol scripting basics. IBM's developerWorks Web site carried an article on scripting with Rebol.

Rebol has a huge number of built-in datatypes, designed to represent values that you find in the "real world", like email addresses, URLs, dates, times, and monetary values.

Note that this article requires a free registration.

Software Development Tools

Jumpstart your Yacc...and Lex too! An introduction to Lex and Yacc. In another article from IBM's developerWorks, an introduction to the use and purpose of Lex and Yacc bring users up to speed on processing lexical patterns and grammars, respectively.

Section Editor: Michael J. Hammel

Language Links
Caml Hump
g95 Fortran
Gnu Compiler Collection (GCC)
Gnu Compiler for the Java Language (GCJ)
IBM Java Zone
Free the X3J Thirteen (Lisp)
Use Perl
O'Reilly's perl.com
Dr. Dobbs' Perl
PHP Weekly Summary
Daily Python-URL
Python Eggs
Ruby Garden
MIT Scheme
Why Smalltalk
Tcl Developer Xchange
O'Reilly's XML.com
Regular Expressions

Next: Commerce

Eklektix, Inc. Linux powered! Copyright © 2000 Eklektix, Inc., all rights reserved
Linux ® is a registered trademark of Linus Torvalds