[cups.general] CUPS sucks!

Michael Sweet msweet at apple.com
Tue Aug 25 10:41:02 PDT 2009


On Aug 25, 2009, at 12:34 AM, ncoesel wrote:
>> *Embedded* platforms have different hardware, resources, and
>> capabilities than desktop or server systems.
>
> Wrong. Embedded platforms are just a few years behind. My old Linux  
> server (retired last year after 12 years of service) had a 90MHz cpu  
> and 32MB of ram and that machine ran X, SMB server, webserver,  
> printing, etc. The 'embedded' platform I'm working with has a 300MHz  
> cpu and 64MB of ram. It also runs X, SMB server, etc, etc. If it had  
> a bigger flash drive I could simply install Debian Linux on it (and  
> use it like a desktop system when I attach a keyboard and mouse to  
> the USB port).

OK, so you're saying that embedded platforms have different hardware,  
resources, and capabilities than desktop or server systems.

I don't care if today's embedded hardware runs as fast as 12 year old  
hardware - embedded systems have different hardware, which means the  
OS and software needs to support that hardware.

Most embedded hardware lacks an internal hard drive, which means  
either using flash which is slow for writing and not generally a good  
choice for temporary files or external USB hard drives which are  
significantly slower than an internal drive.

Most/all embedded hardware has a slower CPU (ARM is about 1/3 the  
instruction rate of X86 at the same clock speed) and less RAM.  
Printing to anything but PostScript printers is RAM and CPU intensive,  
especially if you use things like Ghostscript with Gutenprint or  
Foomatic drivers.

Now, CUPS is more than a print spooler (which is basically all LPRng  
is - you have to manually add/configure filters to make it do more),  
and there are a lot of non-CUPS components that get used to get dots  
on the page.

An embeddable version of CUPS would not necessarily provide everything  
that the current version of CUPS provides. In particular, we'd want to  
offer a direct print path (no spooling or queuing) since most embedded  
devices lack large quantities of high-speed storage space. And since  
the memory and CPU are typically limited as well, it would make sense  
to not do a lot of filtering or run lots of programs to convert the  
incoming print file to something the printer can handle.

So, it is no surprise that you were disappointed with CUPS on your  
embedded platform - CUPS is not designed to run there.

>>>>> Now I still need to solve an 'Unsupported format' problem.
>>>>
>>>> Sounds like you may want to enable raw printing - look at the
>>>> mime.types and mime.convs files included with CUPS.
>>>
>>> Sorry to be rude but 'Sounds like' isn't good enough for me. I want
>>> to know exactly why CUPS is giving me 'unsupported format'. Which
>>> programs it is trying to run (including paths and arguments), where
>>> parsing of a config file goes wrong, etc. According to internet
>>> forums there are several possible causes for the 'Unsupport format'
>>> error. The logfile should contain crystal clear information on what
>>> is causing the problem.
>>
>> Well, if you don't provide us with enough information about what you
>> are doing, how can you possibly expect an exact answer?!?
>
> See my answer to Helge. I'm just trying to print the test page.  
> Besides, my issue is not with the fact Cups doesn't print; I already  
> switched to LPRng which works like a charm. My issue is that Cups  
> cannot be diagnosed!

No, your issue is that you don't RTFM or ask questions with enough  
information so that you can get an answer.  Instead, you insult the  
very people you want help from.

WRT the test page, it is PostScript. The error says that that format  
is not supported for your printer, which likely means you are using a  
raw queue with no driver. The web interface is designed for DESKTOP or  
SERVER usage, which on Linux both rely on things like Ghostscript and  
the various printer drivers installed on the system.

The INSTALL.txt file in the CUPS sources says:

     **** IF YOU HAVE A NON-POSTSCRIPT PRINTER AND ARE NOT       ****
     **** RUNNING MAC OS X, YOU WILL ALSO NEED TO INSTALL GPL    ****
     **** GHOSTSCRIPT WITH THE "cups" DRIVER AFTER YOU INSTALL   ****
     **** CUPS.                                                  ****

> This is a big mistake! Every step should be logged when the log  
> level is set to maximum! Being able to trace the steps a piece of  
> software takes is essential to help system administrators solve  
> problems. I have a feeling that message is not getting thru. You  
> should work as a system administrator for a few months. I'm sure it  
> will change your perspective on how to write software that is easy  
> to maintain from a system administrator's point of view.

Um, I've done the system admin job (along with being a developer) for  
20 years.  I've also done the software support job (along with the  
admin and developer jobs) for the last 15 years, specifically for  
printing and this software.

The log messages that exist today are there specifically because they  
provide admins, developers, and tech support people the necessary  
information to identify and resolve problems. We *don't* log every  
step in debug2 anymore (look at CUPS 1.1.x's verbosity) because it was  
not found to be helpful - too much noise and you'd usually only get a  
small fraction of what you needed because the logs would be rotated  
too often with the default MaxLogSize values.

Instead, we've gone the path of reporting common problems in the log  
file ("Do you have Ghostscript installed?"), and in CUPS 1.4 we even  
have an auto-debug mode where the system can run with a low log level  
("LogLevel warn" is the default now) and when a problem happens we  
record the last N messages that were filtered out.

More logging is not the answer.

>> From what I've read on the forums most people solve Cups problems  
>> by either reinstalling Cups or moving to another printing system.  
>> That almost sounds like the way people deal with Windows.


Yeah, well we can't control how vendors package CUPS or what support  
software/drivers is bundled.  Printing is hard, we're just trying to  
make it look easy (which is what users expect when they've never  
written software to talk to a printer...)

___________________________________________________
Michael Sweet, Senior Printing System Engineer







More information about the cups mailing list