Created: 2005-04-24 by MattZimmerman
Establish a strategy for improving support for printers in Ubuntu.
Currently there are still some printing related tasks in Ubuntu which require unnecessary user interaction, and some tasks that just do not work.
Scope and Use Cases
- A user connects his new printer to his computer. He should be asked whether to configure this printer; configuration should happen with asking as few questions as possible.
- Printing should "just work" in all applications we support.
- Andres is reading a Thai, Russian or Arabic news site in Firefox, and wants to print out the exciting news he's just seen to show all his friends. Currently support for complex international languages (e.g. Japanese/Traditional Chinese) is patchy.
- Anna want to use a draft mode. Why not automaticaly adding draft pseudo-printer to all installed printer. Example : printerxxx and draft-printerxxx.
LionelDricot suggests also those Use Cases :
- John has a printer attached to his computer. He wants to share it with others using Windows Sharing Protocol. (SAMBA, but he's not aware of that name)
- Terry, an other Ubuntu user in the John office, want to configure the printer shared by John. He doesn't know anything about Samba nor about the name of the shared printer. He's not sure about the model of the printer.
- Michael want to use a printer connected to a windows box. The printer is shared with the "Unix shared printer" system of Windows XP but Michael is not aware of that fact. He also doesn't know the model printer nor if a Linux driver is available.
Make hpoj work automatically out of the box.
- (More) automatic installation of USB printers.
- Improvements for CUPS browsing configuration.
- International font support in Firefox.
Users seem to report many problems with printers, compared to other types of hardware (missing drivers, bugs in ghostscript, etc.). These cannot be approached in a generic way; instead, these bugs should be handled in Bugzilla.
Data Preservation and Migration
Relative to Hoary we do not intend to change any configuration nor data files.
Right now an user has to manually call the configuration program of hpoj.
Automatically detect and setup parallel printers: Run the parallel port part of the setup program in the postinst and init.d scripts.
- Automatically detect and setup USB printers: Run the USB port part of the setup program in a hotplug script. We recently added a hotplug script during derooting anyway, so this can be used for this purpose.
DanielStone will try out hplip if it works any better/worse than hpoj.
- Already detects USB printer names, but does not choose a sane default for the vendor and model.
- We should find heuristics that try to determine vendor and model name from the USB name and skip those questions if the heuristics are successful.
- Convert the USB identifier to a normalized form for comparisons: vendor and model names to lower case, replace all non-alphanumeric characters by spaces.
- A vendor or model name matches the USB identifier if all words of the vendor/model name occur in the normalized USB identifier.
- The heuristics are successful if there is exactly one vendor (or model name, respectively) that matches the USB identifier.
Automatically start gnome-cups-add if the logged in user has lpadmin and the printer is not configured yet. This should be hooked in to event-notifier (formerly known as update-notifier).
gnome-cups-add shoud work directly with foomatic printer drivers database (see http://www.linuxprinting.org/foomatic.html ). Other printer configuration utils, like Foomatic-GUI can use foomatic printer drivers database directly. You steal some code from such projects, look at http://savannah.nongnu.org/projects/foomatic-gui/ and http://blog.lordsutch.com/?topic=13 . If foomatic support would be added to gnome-cups-manager, then users don't need to generate .ppd files manually or through www.linuxprinting.org web interface and adding new printer will be more user-friendly. Look at http://bugzilla.gnome.org/show_bug.cgi?id=171047 for more info about this bug
- Currently gnome-cups-manager offers an option to enable browsing.
In the future this could be generalized to a general "discover service" switch if we use MDNS/ZeroConf.
Firefox is normally unable to print international characters to PostScript printers; with our current patch it at least works with PostScript level 3, but not with levels 1 or 2.
- Idea: do a level 3 to 2 conversion in Firefox.
User Interface Requirements
gnome-cups-add, gnome-cups-manager: See above.
update-notifier needs to be generalized to event notifier (which is planned anyway).
Existing Red Hat Work
Achieving most of this may just require integration of existing work by Red Hat. They've done some hal/d-bus/cups integration so that printing (particularly USB printing) becomes very close to plug and play. The SRPMS we need to look at are cups (for patches), hal-cups-utils (for unprivileged configuration changes) and desktop-printing (for eggcups notification, which would replace gnome-cups-manager's nicons). John (J5) Palmieri and Colin Walters are the dudes to talk to about collaborating on this stuff. Easy Software aren't that interested in integrating this with CUPS (yet).
UDU BOF Agenda
hplip vs. hpoj
- Determine to which extend network printer capabilities could be queried with SNMP.