"5 gold stars for anybody who can 'splain why cups exists"
I found the quote above while searching for answers to getting CUPS to work. In the past, I've usually become so frustrated with CUPS that I uninstall it and hunt down the lpr/lpd package and put it on my system. lpr works, and works quite well. I believe CUPS came about as part of the time honored tradition of "It ain't broke but I'm too lazy to read the instructions, I think I'll reinvent the wheel."
After setting up my new server I quickly discovered I could no longer print from my Mac, or from any other computer for that matter. I fought with the print manager under OSX for quite a while to get it to talk to the new server before realizing that it probably didn't work because CUPS was on there.
CUPS of course speaks its own non-standard protocol. These days, lpr is pretty much the standard: Windoze does, it, Macs (OSX) do it, and of course, just about every *nix system out there does it. Who needs CUPS? Some of you are probably thinking "But CUPS gives me all those neato filters so I can turn my cheapo printer into a PostScript printer." Wrong, all of that is provided by foomatic, which in turn relies on GhostScript, which has been integrated into the lpr system for ages and ages.
Being quite determined this time to get CUPS to work, I kept pounding at it. I checked to make sure the daemon was running, and that I could at least print from the server itself. I still couldn't get any clients to work and realized that maybe it was a problem with allowing access from external hosts. Supposedly CUPS uses some kind of http protocol, so I checked /etc/httpd/conf.d/ and found a cups.conf. Looking through it I saw it was only allowing access from localhost. I changed it to be less restrictive, and restarted httpd. Sigh. No change, still can't print.
A little more searching for answers, and I discovered that there is a "legacy compatibility" module for CUPS that lets it speak lpr. Hmm, everything else I have does lpr, maybe I should try it. I installed the package and found it works from xinetd. I enabled it and fired it up, and lo-and-behold, I was finally able to print. So again, it looks like I ended up going back to lpr. So what the heck is CUPS good for?