[Xprint] GISWxprint-sparc-2004-07-07-release_009_001 Prints too large

Aleksander Adamowski aleksander.adamowski.xprint at altkom.pl
Fri Oct 22 11:48:14 EDT 2004


Thomas Dodd wrote:

> So if I use LPRng and want xprint to use PPDs?
> Write another config option so Xprint can get the PPDs from a directory?

Exactly.
That would be a third model-config source mechanism plug-in (in addition 
to classic model configs and CUPS PPDs).
Then for example, if in the future you'd switch to CUPS, the 2nd plugin 
(PPDs from CUPS) should detect CUPS availability, and provide additional 
model information form CUPS.

All info should be merged with configurable priorities (you should be 
able to decide what overrides what, with the default being 
"model-configs <- CUPS PPDs <- local manually installed PPDs").

If some other network mechanism was added in addition to CUPS PPD (e.g. 
LDAP), it should probably sit between CUPS PPDs and local PPDs (that is, 
your local PPD's should override everything else).

>> Well, it seems that the CUPS API has been here for a couple of years 
>> and it isn't going away in a few years, especially since it now ships 
>> with all major Linux distributions, Apple MacOS, and works well on 
>> other *NIX-es.
>> In fact, it is steadily replacing older spoolers everywhere.
>
>
> Slowly. And 3 years ago people said LPD wouldn't be replaced. 
> Something will happen and CUPS will no longer be the hot spooler. It 
> could be next year, or it could be 5 years. I just don't think that 
> API should be used when other, long term methods are available instead.

Well, this is the point where I do disagree with you.

The CUPS is young, that's true, but look:
   * It is based on IPP (Internet Printing Protocol), which is an 
Internet standard, documented by RFC, thus is interoperable with systems 
outside the POSIX world (Mac, Windows...)
   * It uses a widely adopted printer description format (PPD), which is:
      1) Supported by largest amount of printer vendors
      2) Based on a standard, mature Postscript language that has been 
here for almost thirty years, and PPD has been a stable standard for 15 
years
   * It's so superior that it has replaced other spoolers in all major 
Linux distros just 2 years ago and since then it shows no signs of weakening

Maybe I'm wrong, maybe I don't know something you do know. What are 
those long term methods that you have mentioned?

> That's Unix. Everything is a file. It doesn't have to be local, it 
> could be NFS, SMB, or som other networked filesystem easily. It the a 
> simple way to get info from CUPS, and LDAP, and NIS, using file commands?

Well, you can write shell and Perl scripts. That's moderately complex 
and I for example do some of this stuff. But there's no standard 
covering filesystem representation of LDAP of NIS data, so those would 
be purely ad-hoc solutions.
Most probably they would end up as some "NFS-accessible structure 
synchronised through rsync-over-SSH by a Python script getting a pipe 
from a Perl sub, launched as a CORBA method from a shell script from 
crontab", being a nightmare to support by any admin.

Besides, LDAP or CUPS are used mainly there, where ordinary filesystem 
stops to scale well; LDAP offers high performance access by queries to a 
hierarchical database by various keys, something you don't have with NFS 
(NFS doesn't offer indexing by various file properties, you just have 
directory structure and symlinks).

CUPS's value is mainly in the standardization, so it can be used 
directly through IPP from UNIX clients, Windows clients and MacOS clients.

It's a heterogenous environment godsend.

The UNIX "everything is a file" paradigm just doesn't fit well to all 
possible problems, and it's is the case here too.

> There is no reason for Xprint to know CUPS, LDAP, NIS, NFS, HTTP, ... 
> when all could be abstracted to a file which is what Xprint needs. 
> That a Windows/Microsoft mentality, all apps speak all protocols. Look 
> at the problems caused but not abstraction these already. Every mail 
> tool has to have extra, often buggy, support for LDAP and IMAP. If 
> they were abstracted to a file model, all mail tools coul use them 
> without (major) changes.

Ok, comparing with LDAP, how do you abstract a query for a telephone 
number as an attribute of a person to a filesystem?

Note that telephone number queries are specifig, since telephone numbers 
have to be compared in a special way (e.g brackets would be ignored etc.).

What filesystems implementation currently offer built-in indexing of 
such data in order to speed up searches?

You just can't use the UNIX filesystem for everything.

Now you could imagine some mapping of CUPS printers for filesystem (e.g. 
a single printer queue is a file, and printer with its various queues is 
a directory, and properly named symlinks pointing to those queues denote 
current settings, e.g. currently set default paper orientation and 
resolution and ReT settings) which could be shared through NFS.

But there's no standard on that. And probably never will be. And you 
have not only standardize on directory structure, but also on all data 
formats. E.G. "to submit a job with a non-default resolution of 600 DPI 
you open the file spool/printername/queuename, and write 'Resolution: 
600 DPI\n\nPOSTSCRIPT_DATA'".

That's just too much work that has to be done fighting inertial; even if 
a strong community started today, it would take more than 10 years to 
get this widely adopted.


> Xprint would be (is) a central server, not running on every machine if 
> there is a central CUPS server in use.
>
> If the Xprint server and cups serve are colocated, Xprint can query 
> the spooler as it currently does, and load the same PPDs as CUPS did. 
> Only "extra" step is installing/starting Xprint. 

Plus synchronisinhg the ever-changing printer data from CUPS to Xprint. 
The helpdesk guys replace broken printers, relocate them to different 
offices, rename them, change default printout settings, and they do it 
using CUPS's web interface.

There are currently no tools to populate that data to Xprint, so each 
deployment requires writing them by hand. And they'd have to be launched 
periodically from crontab (the changes wouldn't be instant), or 
modyfying the CUPS source so that it launches a synchronisation script 
after each change in printers configuration.

BTW, I couldn't find this information in the docs: does Xprint server 
require a after a change in model configs?

If yes, then when you have a couple dozen's of printers, either users 
would be denied printing access for a couple of seconds a number of 
times a day, or in the case of replacing a broken printer the users 
would have to wait with their printouts till next day. Both solutions 
are unacceptable.


-- 
Best Regards,
    Aleksander Adamowski
        GG#: 274614
        ICQ UIN: 19780575 
	http://olo.ab.altkom.pl



More information about the Xprint mailing list