Slashdot Mirror


CUPS 1.0 Enters The World

Michael Sweet writes "Well, it's taken us long enough (nearly 2 years since we started the project), but the Common UNIX Printing System, or "CUPS", is finally out of beta and ready to replace all those 1970's line printer spoolers masquerading as printing systems. What is CUPS, you ask?

Well, it's basically a completely new printing system based on the Internet Printing Protocol ("IPP") that supports PostScript and non-PostScript printers and a variety of different file formats to make your life easier.

CUPS provides all of the normal printing commands ("lpr", "lp", etc.) - you still use "lpr" to print from Netscape, etc. However, these commands take on a new life with CUPS - instead of bringing up an application everytime you want to print, you can print most images, PDF files, etc. directly. CUPS figures out the type of file and runs any necessary filters to format it for the printer. Have a file that CUPS doesn't handle? No problem, just add a filter and CUPS will handle it, for any printer you have.

Printer drivers are provided for PostScript and HP PCL based printers. We're hoping that the filters provided with CUPS (including a PostScript RIP based on GNU GhostScript) will encourage independent developers and printer manufacturers like EPSON to start developing drivers that use CUPS. Only time will tell.

CUPS can be downloaded from our website at cups.org and is provided under the terms of the GNU General Public License. Commercial printer drivers based on CUPS are available from our main website. "

6 of 265 comments (clear)

  1. Got to admit I'm torn... by itp · · Score: 5

    On one hand, a new printing system sounds really cool. Good that it's backwards compatible, sounds like it can provide some really neat features, but...

    On the other hand, I'm not all that excited about a system that seems to encourage non-free printer drivers. Because that's what this is; the core is free, but large portions of the drivers are probably going to be proprietary.

    I know some people will probably say I'm just being a whiny free software person, and maybe I am. But look at where proprietary drivers has gotten, oh, windows. You just can't depend on them. The stability of the GNU/Linux system is something we all trumpet, so why toss that out when it comes to something like your printing?

    Then, let's look at experiences so far with proprietary drivers on Linux. My roommate complains all the time about his SBLive driver. It only works with some kernel versions, isn't stable, etc. I know that this isn't the same as kernel modules, but it still makes me nervous.

    I'm all for new capabilities for my favorite operating system, but let's not forget the freedom that got us here in the first place. Support those manufacturers who make their specs openly available, and support free software.

    --
    Ian Peters

  2. Strange terms... by chuck · · Score: 4
    This is very unusual:
    Easy Software Products also sells rights to the CUPS source code under a binary distribution license for vendors that are unable to release source code for their drivers or additions and modifications to CUPS under the GPL. For pricing information please contact us at:
    So, let me get this straight... If I want to take their GPL'ed code, and make proprietary changes to it, I have to pay them a license fee? I seriously hope I'm misunderstanding this. I mean, they're the copyright holder, so they can do whatever they want. It doesn't even conflict with the GPL, so far as I can tell, but it just seems... weird. Even weirder, I bet you more than one company is going to do it.

    Why don't I just download the code, change it, and not tell anybody?

  3. Re:Interesting project by Jeffrey+Baker · · Score: 5
    I took the plunge and installed it, so now I can make a report.
    • Compile went fine, but I dislike build systems that don't show the compiler's output. This is open-source, folks. If you show the compiler output maybe some hacker will send a patch to fix your warnings.
    • The installation script cups.install is missing from the distribution, and
    • The uninstallation script is also missing.
    • In direct conflict with the README.txt file, The make install does not backup your current printing system!
    • After I installed it, it didn't work

    I couldn't get it to talk to my HP LaserJet using JetDirect, even though I can easily contact it using my original printing setup and also via telnet. Oh well, it comes with the source so I guess I could hack on it.

    -jwb

  4. IP and printers by bortbox · · Score: 5

    Well this is a great step for printing on the Unix side and a bit late if you ask me. Spending my whole life with printers, espeically high speed print servers I must say that this is really too little too late. Unix is in whole, a multi user platform made for networks, and not necesarily the everyday home user. And so most printers that interface nicely with Unix, by no surprise, are multi user, high-speed printers. Now I am going to use two printers as example to point out printer evolution on Unix platforms.

    On the small color end you have the relitively new Tektronix 780, with network features such as:

    Built in HTTP server for printer management and set up, FTP server for instand Postscript file upload, SCSI and IDE HD options for job storage as well as buffering space, SNMP, DHCP, and the list goes on. Now to print to one of these small office color machines from Unix, it is recommended that you have your app create a postscript file and have the app FTP the PS file to the printer. Real simple, real fast, very effective. No configuring anything in your OS for printer ports, print servers, or anything..just the specs of your printer to make the post script file. Here at work, we have mounted the printer's HDD to a point on the network where the PS files are automatically saved and printed.

    Now on the high end lets look at how Xerox has developed its high end Docutech series. I cannot say enough about the importance the original 1992 Docutech135 has meant to computers in general. It is one of the projects that led Xerox to give us the mouse, the GUI, and ethernet. Moving away from totally cutom gear now that mice and GUI's are a dime a dozen, Xerox moves the central RIP'ing precess and printer control to a nice Sun Ultra 2 (creator 2). Nice move if you ask me. Using SBus's throughput to move paper through a machine 135 times a munite, duplexing, stapleing, binding etc (controlling a printer about the size of a bus in length). Now Xerox writes a SLEW of new apps to controll this printer, and to accept jobs comming in from IPX novell netoworks, Appletalk (handling IPX and appletalk on solaris, Xerox has gonads ;) ) Total custom boards, nice printing interface, custom RIP software, no use of lp (lpr) anywhere.

    Point in hand.. this app, which is aimed for the home small printer user I am assuming, is nothing real majical, and for most commercial users quit insignifigant. Anyway.. sorry about the spelling grammer etc.. i am in a REAL rush.
    Bort

  5. Re:Interesting project by printman · · Score: 5

    The compile command is hidden (.SILENT in Makedefs), but any warnings and errors are displayed.

    The command-line is long enough we all got sick of seeing it over and over...

    The install and remove scripts are generated by the "EPM" software in the "epm" directory.

    The docos don't say "make install" backs things up, only that the binary distributions do a backup...

    For a LaserJet with a JetDirect, use:

    lpadmin -p Printer -E -m laserjet.ppd -v socket://ip-address:9100

    --
    I print, therefore I am.
  6. Experiences with CUPS, and an alternative. by egnor · · Score: 4

    Since I hate stock lpr (who doesn't?), I recently tried a late beta of CUPS. They may have fixed all the problems I encountered, but while I was thrilled by the idea, I found the execution poor. In particular, the server had a tendency to crash with a segmentation fault whenever anything slightly strange happenned; and in the course of blundering about trying to set it up, I managed to cause many slightly strange things.

    Trying to figure out why, I started looking at the source... and discovered that in many places they lack even elementary error checking. NULL pointers are passed to functions that don't check for it, system calls are made with no return value tests, etc.

    Now, as I mentioned, it's quite plausible that they fixed the specific bugs I ran into (e.g. when I tried to enable a printer class, instead of a specific printer, it died). It's also possible that the code examples I saw were an aberration, and that most of the project has much better quality code.

    Still, I was very taken aback; remember, this is code that is implementing a network service directly -- sloppiness often leads to security holes.

    Based on this experience, I instead chose to use LPRng: http://www.astart.com/lprng/LPRng.html. It took more effort to set up, and didn't work "magically" out of the box the way CUPS did (I had to install a version of apsfilter myself, for example), but in the end it did most of the same things -- and didn't crash all the time.

    Unfortunately, LPRng has "yet another wacky license", which they claim is "Open Source", but which may have restrictions on commercial use. But if you're interested in CUPS, you should check out LPRng too.