John (J5) Palmieri johnp at
Thu Feb 3 22:16:29 UTC 2005

Oh, one more thing I forgot:

I would like to see an easy way for the backend to mark and configure a
local queue for sharing. 

On Thu, 2005-02-03 at 15:02 -0500, John (J5) Palmieri wrote:
> Ok,
> Now that I have outlined the current process I would like to make some
> suggestions on what I would like to see in terms of a printer
> configuration architecture in the future.
> * Kill hal_lpadmin - I originally wrote this so I could create queues
> using IPP[1] and it worked up to the point that I needed to create an
> actual PPD[2] file.  I ended up changing it to just exec printconf.  In
> theory all the functionality in here should move to the new printing
> backend.
> * Eventually get rid of cups-config-daemon - We need to keep it for now
> since it takes up minimal resources.  cups-config-daemon should become a
> liaison for translating dbus messages to the new printconf backend
> commands.  Once system service activation is developed we can dump cups-
> config-daemon and place all the D-BUS functionality directly into the
> printconf backend.   Activation will then be able to start up the
> backend which can in turn service D-BUS requests directly.  Resource
> usage is less important when activation is in play because the resources
> can be returned after printconf services the request (unlike the
> situation now where cups-config-daemon need to run all time on the off
> chance it will be called upon to configure a printer).
> * Enhancements to the backend:
> 	- Make it more knowledgeable - have it use hal to track printers
> 	- Make it more intelligent
> 		- Give it one command to auto-configure a printer.  
> 		- Have it determine if it has the drivers it needs 
> 		  and automatically create a queue and name it.  
> 		- If it can't find the driver have it talk to the
> 	  	  console session so that it can get the user configured
> 		  driver.
> 		- Give it the ability to have queue's renamed and 
> 		  remember those queue names the next time the printer
> 		  is plugged in.
> 		- Give it the ability to accept and install 3rd party
> 		  PPD files and use that PPD file whenever the printer
> 		  shows up again (How secure is this? Can PPD files
> 		  execute code it shouldn't?)
> 		- Have the ability to lock down specific printers from
> 		  being auto-configured and also the ability to not
> 		  allow any printers to be auto-configured.
> 		- Have the ability to delete queues by name or hal udi
> 	- Have it talk CUPS' language - CUPS speaks IPP and since it
> 	  will be hard to get D-BUS patches upstream we should just
> 	  use IPP to do live configurations of auto-configured
> 	  printers.  I was successfully doing this in hal_lpadmin
> 	  sans the PPD files.  This works great because CUPS gets
> 	  the configuration on the fly so it doesn't have to 
> 	  refresh its printer list like it does now when we send 
> 	  the HUP signal.  We will use the D-BUS protocol where
> 	  authentication is a problem (user session) and translate
> 	  those D-BUS calls to IPP calls. 
> 	- Allow an admin to change or add configuration to the foomatic 
> 	  database just in case things are wrong or nonexistent.  
> 	  Perhaps add a way to export these changes for attachment 
> 	  to a bug report.
> 	- Make sure the system-config tools and the desktop tools play
> 	  nice with the queues.  (i.e. the two should not step on each
> 	  others feet. If a printer is already statically added via the
> 	  admin tool auto-configure should not create a new queue.  Also
> 	  if the admin tool made changes to an auto-configured queue
> 	  those changes should be honored the next time the printer is
> 	  plugged in)
> 	- Figure out a way to have this all still work in a stateless 
> 	  environment (read only root)
> Ok, that is all I can think of for now.  It is enough to discuss.  Would
> like input on what everyone thinks about this and anything they would
> add, remove or tweak.
> [1] The Internet Printing Protocol (IPP) is a sanctioned Internet
> Engineering Task Force (IETF) standard for printing documents over the
> web. IPP defines basic handshaking and communication methods, but does
> not enforce the format of the print data stream. Typically, a standard
> page description language, such as HP PCL or Adobe PostScript, would be
> used.
> [2] PostScript Printer Description file. A file that contains
> information on screen angle, resolution, page size and device-specific
> information for a file to be printed on a PostScript device.

John (J5) Palmieri
Associate Software Engineer
Desktop Group
Red Hat, Inc.

More information about the fedora-devel-list mailing list