Slashdot Mirror


CUPS - Common Unix Printing System

McSnarf writes "What is CUPS, anyhow? And does it make sense to buy a book about a GPLed piece of software? CUPS is an acronym for Common Unix Printing System, software that was written to replace the rather powerless printing system found in Unix and Linux. If you run any current Linux distro, the chances are that you already use CUPS for printing." That being the case, read on for McSnarf's review of Michael R. Sweet's book on the topic. CUPS - Common Unix Printing System author Michael R. Sweet pages 650 publisher SAMS Publishing rating 10 reviewer McSnarf ISBN 0672321963 summary More than just a complete reference to CUPS

Background Information CUPS is developed and maintained by Easy Software Products, which is co-owned by the author of the book, Mike Sweet.

The complete table of contents for CUPS - Common Unix Printing System, aka "The Octopus Book" can be found here. The CUPS web site also contains errata lists and example code. In addition, Easy Software Products sells a companion CD for the book, only available on their web site.

Who should read it? If you do not use a printer with Unix or Linux, or if you do and you are perfectly happy with the results (maybe because the distro came with all the right stuff pre-installed), this book is not for you.

However, if you are serious about printing, if you are considering replacing the outdated legacy printing system that came with your Unix or Linux or if you are a developer even remotely interested in Linux/Unix printing, this book is for you.

Did I mention that the Octopus Book is also very helpful when it comes to understanding IPP, the Internet Printing Protocol? If you tried to read through all the RFCs on IPP out there and managed to understand IPP afterwards -- congratulations! I tried that, failed, bought the Octopus Book and finally understood.

How will it help users and admins? This book will show you how to install, administer and use CUPS. While the documentation that comes with CUPS is very good already, having everything in one handy package has its advantages, especially as the book goes into more detail than the on-line documentation. In addition, this book will explain to you in great detail how to extend CUPS. If you've ever wanted to be able to directly print some rather unusual file type -- or need a mechanism to create PDF files and email a copy of each PDF whenever you print them to a certain printer, this book will tell you how to do that.

Anything for developers? Sure. Complete API documentation with loads of example code. Everything from "How can I add good printing support to my application" to "How do I write a printer driver?" is in there. Likes and dislikes Of course, no book is perfect. This book comes close, but you should know that a lot of it is already available for free on the CUPS web site. It also lacks details on how to rip the old printing system out of your legacy Unix -- but if you've got root, this is something you should know anyhow.

Another thing - it is not as funny as Terry Pratchett. But I can live with that.

As you might have noticed, I really like this book. It definitely made my work much easier -- I work for a manufacturer of (among other things) large printers and this (by now well-worn) book has been granted dedicated space on a very crowded desktop.

You can purchase CUPS - Common Unix Printing System from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

13 of 248 comments (clear)

  1. lpd powerless? by Merlin83 · · Score: 4, Interesting

    After the story a few days ago about how it was so flexible and could be used for queueing up MP3s etc?

  2. You may be a CUPS user... by Mononoke · · Score: 3, Interesting
    If you run any current Linux distro, the chances are that you already use CUPS for printing.
    Even well-camouflaged Linux distros like Mac OS X.

    --
    NetInfo connection failed for server 127.0.0.1/local
  3. Re:CUPS is part of the 'killer app' trilogy by Azghoul · · Score: 5, Interesting

    Now there's a book I'd buy. The problem I have is seeing all this great stuff from a bird's eye view: How would someone know how all this stuff connects and interoperates? Or even, how would one know that they DO interoperate?

    Is there a book that talks about this kind of top-down view? How to Administer a Small Business Using Nothing But OSS and Your Brain.

    Maybe even a "cookbook" series:
    - Implementing CUPS for Sweet Printing Stuff.
    - Using OpenLDAP: Why the hell you should.
    etc...

    Anyway, just a thought.

  4. Re:Of course it makes sense to buy the book by mark_lybarger · · Score: 3, Interesting

    good documentation

    there's a major difference that and just documentation. man pages are documentation. there's web sites with how-to guides for other documentation. and there's plenty of open source software based books that are just not worth the read. so the author was trying to let you know if this book is going to be worth the $$ you spend.

  5. Re:CUPS is part of the 'killer app' trilogy by Alkarismi · · Score: 4, Interesting

    Oops, a bit premature with the 'submit' button there.
    I meant to add that Samba + CUPS + OpenLDAP will do pretty much everything most businesses need for a back-end serving their MS desktops. It will also pave the way for bringing in new platforms (whether they be Open Source, MacOS X, whatever).
    We've got a full case study illustrating this trilogy here:
    http://www.siriusit.co.uk/support/casestudi es/k_g_ case.html
    CUPS will give equal quality/ease of use/simple admin printing to your *NIX and MacOS users as your Windows users. Couple this with an OpenLDAP authentication backend and you're in a great position to diminish your companies reliance on MS software, or even eliminate it on the back-end entirely.
    Don't want to go on too much more, but the features coming up in Samba 3.0 (due rsn), especially enhanced LDAP support and MS AS interoperability make this trilogy a no-brainer!

  6. Web based configuration by luugi · · Score: 3, Interesting

    I really like the fact that we could configure and see the status of the printer from a web browser.

    --
    Think like a man of action, act like a man of thought.
  7. CUPS color management? by sakusha · · Score: 5, Interesting

    There is a lot more to printing than writing device drivers. I've been using CUPS on MacOS X for quite a while, since there are no other drivers for my old Epson 1520. I'm a bit dissatisfied with the color management abilities of CUPS. Sure it has custom color tables, but no real way to integrate with Colorsync or other color profiling systems. I can turn off all color management in CUPS, hoping it prints a relatively neutral profile, and then let Colorsync work it's profile to that, but you don't really get the full dynamic range compared to real official Epson drivers with real official Colorsync. So I'm not even getting as good quality color output and matching as with MacOS 9. Oh well, I suppose I'll have to get a new printer with proper drivers one of these days, but I like my old 4color printer for press proofing, I can't stand 6 or 7 color printer proofs when I'm targeting CMYK film output.

  8. Why use CUPS with OS X? by chia_monkey · · Score: 3, Interesting

    A simple question. Why would an OS X user want to use CUPS? I know there's a good reason it is built in, I just haven't found the need to use it yet.

    Maybe I'll use it, maybe I won't. I remember thinking "PDF workflow handling in OS X? Why bother?" but it turned out to be a great help when working on newsletters and such and mailing them out from Illustrator.

    So if anyone could post a good "5 - Informative" reply to me, I'd love it.

    --

    "He uses statistics as a drunken man uses lampposts...for support rather than illumination." - Andrew Lang
    1. Re:Why use CUPS with OS X? by ferlatte · · Score: 2, Interesting

      If you ever print to an OS X network printer, you are using CUPS... you just didn't know you were using CUPS. :)

      In fact, I believe that Apple uses uses CUPS for all printing as of 10.2... at least, my laptop appears to do so.

      My buddy and I spent a long time trying to figure out how to "use" CUPS from a MacOS X client to a Linux server... until finally, we just tried to print something, and it Just Worked... the CUPS printer appeared in the MacOS X print selection drop down (due to IPP broadcasts, I suspect), and that's it. Worked great.

  9. Question for CUPS experts... by pe1chl · · Score: 2, Interesting

    With Berkeley LPD you can do:

    sap|write documents to sap-out:\ :sd=/var/spool/lpd/sap:\ :if=/usr/local/lib/print-sap-out:\ :af=/var/spool/lpd/sap/acct:\ :lp=/dev/null:\ :bk:sh:mx#0:

    This sets an input filter on an otherwise dummy printer, which can be a shellscript or whatever executable. It will receive your request data on stdin, and gets args that specify the source host and loginname of the user submitting the request.
    The above was in real-life use on a Linux system, the script took the input file and put it on an Intranet website directory as a PDF file. grouped by source system and user.

    Now, update the Linux system and we got CUPS insted of lpd. But this simple way of input-filtering printers seems to be gone.... We can still write a backend, but it does not get the originating hostname as a parameter!

    How is this solved or worked around?

    1. Re:Question for CUPS experts... by pe1chl · · Score: 2, Interesting

      > It almost sounds like you missed the sarcasm. I had a similar thought when I first saw your command string,

      It is not a command string, it is a printcap entry.
      And it is not for CUPS, it is for berkeley lpd. So it is for BSD geeks.

      > It almost sounds like you missed the sarcasm. I had a similar thought when I first saw your command string,

      I have not yet had it to work well enough on CUPS to know what happens there, but with berkeley lpd this may actually be possible!
      Use a postscript printer on Windows, let it print to the lpd spooler on Linux, and examine the first few lines of the postscript output. The name may actually be there as part of a comment. Easy to extract using perl.

      In the example I gave, the handler is actually a perl program that extracts information like that, for inclusion on the webpage.
      (like "what program sent this output")

  10. Re:Of course it makes sense to buy the book by haystor · · Score: 2, Interesting

    Oh please, name your proprietary well-documented projects. Oh, then name all the well-designed ones in the same problem space that failed because all that got done was design.

    Everyone buys into this designing software theory, but unless you have the budget of NASA, the best results I've seen have been from hiring good people to write good code first. This results in a solid product that works well and is consequently easy to document.

    Current software engineering seems to guard aganist coders being absolute morons. I prefer to hire quality and leave it to them to guard against not getting any real work done. All programmers know this is true, 10% get it and the rest don't. Its real easy to recognize the difference too.

    --
    t
  11. print dialogs in applications by ZorroXXX · · Score: 5, Interesting
    I really like CUPS and it is quite nice on the "system" side.

    What is missing with regards to printing in unix is something better that the standard (unfortunately), ultra primitive printer options dialog box given to the user, i.e. a prompt asking for your favourite lpr command.

    When I select File->Print in an application in X I should be presented with a dialog box with access to all the selected printer's specific options (for instance print on both sides, etc). As long as this is not the case printing in unix sucks, although with CUPS it sucks less :)

    --
    When you are sure of something, you probably are wrong (search for "Unskilled and Unaware of It").