PrinterSharing

Differences between revisions 10 and 12 (spanning 2 versions)
Revision 10 as of 2006-11-07 17:46:39
Size: 4044
Editor: 207
Comment: first draft after discussion BoFs
Revision 12 as of 2006-11-14 20:52:09
Size: 4235
Editor: c-67-184-88-155
Comment: added comments section
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
 * '''Packages affected''': cupsys, printerdrake, samba  * '''Packages affected''': printerdrake, samba
Line 9: Line 9:
Edgy only offers a binary GUI control for printer sharing: Either all printers
are shared to the local network, or no sharing happened at all. We both want to
make this more flexible and also support sharing printers through Samba.
Edgy only offers a binary GUI control for printer sharing: Either all printers are shared to the local network, or no sharing happened at all. We both want to make this more flexible and also support sharing printers through Samba.
Line 15: Line 13:
Printer sharing is very common in both commercial and home environments, thus
it should be easy to set it up.
Printer sharing is very common in both commercial and home environments, thus it should be easy to set it up.
Line 20: Line 17:
 * Martin wants to make his Laser printer automatically available to other
  
Ubuntu boxes in the LAN (IPP LAN printer detection), but does not want to share
  
the color inkjet, since printing on it is expensive.
 * Martin wants to make his Laser printer automatically available to other Ubuntu boxes in the LAN (IPP LAN printer detection), but does not want to share the color inkjet, since printing on it is expensive.
Line 27: Line 22:
This applies to Ubuntu and Xubuntu. KDE has its own printer management GUI,
which is not covered here.
This applies to Ubuntu and Xubuntu. KDE has its own printer management GUI, which is not covered here.
Line 34: Line 28:
As specified in the PrinterDrake specification, we want to replace
`gnome-cups-manager` by Printerdrake. Printerdrake offers a much more flexible
configuration of ACLs and sharing:
As specified in the PrinterDrake specification, we want to replace `gnome-cups-manager` by Printerdrake. Printerdrake offers a much more flexible configuration of ACLs and sharing:
Line 40: Line 32:
 * Currently offers to hide particular printers from network
  
announcement. However, this is not strong enough, this needs to be
  
changed to forbid remote access to this printer altogether.
 * Currently offers to hide particular printers from network announcement. However, this is not strong enough, this needs to be changed to forbid remote access to this printer altogether.
Line 48: Line 38:
 * Windows 2000 and up have builtin support for the Internet Printing
  
Protocol standard (IPP). As soon as cups (which is IPP compatible)
  
allows sharing a printer, Windows clients can immediately use it by
  
specifying the URL to that printer in the "add printer" wizard (e.
 
g. `http://cups.server:631/printers/dj520`). This requires no
  
further software on either the client nor the server, but since
  
Windows does not understand the Cups browsing protocol, such
  
printers are never automatically announced to the Clients.
     An improvement here is to show the IPP URL in the configuration GUI
   so that administrators can carry it to the Windows client.
 * Windows 2000 and up have builtin support for the Internet Printing Protocol standard (IPP). As soon as cups (which is IPP compatible) allows sharing a printer, Windows clients can immediately use it by specifying the URL to that printer in the "add printer" wizard (e. g. `http://cups.server:631/printers/dj520`). This requires no further software on either the client nor the server, but since Windows does not understand the Cups browsing protocol, such printers are never automatically announced to the Clients.  
Line 60: Line 40:
 * Printers can also be shared over the SMB protocol, which all
   Windows versions support. This has the advantage of being
   automatically advertised in Windows' "Add printer" wizard, but it
   requires Samba to be installed on the cups server side.
 An improvement here is to show the IPP URL in the configuration GUI so that administrators can carry it to the Windows client.
Line 65: Line 42:
   Ubuntu's samba is linked to the cups library, so that it
   automatically picks up printer configuration changes. To make this
   work out of the box, the default samba configuration needs to be
   changed to export printers by default.
 * Printers can also be shared over the SMB protocol, which all Windows versions support. This has the advantage of being automatically advertised in Windows' "Add printer" wizard, but it requires Samba to be installed on the cups server side.
Line 70: Line 44:
In either case, the printer is not automatically available on the
Windows client, it needs to be manually added using the printer
wizard. You also need to supply a driver for it (usually by using the
driver CD shipped with the printer). Samba allows to automatically
supply printer drivers to the Windows clients, but this currently
requires shipping and installing Windows specific DLLs on the print
server. This case is not handled here; the cups developers plan a
 Ubuntu's samba is linked to the cups library, so that it automatically picks up printer configuration changes. To make this work out of the box, the default samba configuration needs to be changed to export printers by default.

In either case, the printer is not automatically available on the Windows client, it needs to be manually added using the printer wizard. You also need to supply a driver for it (usually by using the driver CD shipped with the printer). Samba allows to automatically supply printer drivers to the Windows clients, but this currently requires shipping and installing Windows specific DLLs on the print server. This case is not handled here; the cups developers plan a
Line 83: Line 53:
 * When disabling sharing of a particular printer, this not only has
  
to disable browsing announcement, but also needs to add a
  
localhost-only ACL to this printer.
 * When disabling sharing of a particular printer, this not only has to disable browsing announcement, but also needs to add a localhost-only ACL to this printer.
Line 91: Line 59:
 * Change the default configuration according to `man cupsaddsmb`. No
  
dynamic configuration changes are necessary.
 * Change the default configuration according to `man cupsaddsmb`. No dynamic configuration changes are necessary.
Line 96: Line 63:
None required. Printers are never switched to be shared automatically
on upgrades.
None required. Printers are never switched to be shared automatically on upgrades.

== Comments ==

How about linking to http://localhost:631/ for users to configure CUPS? You can share printers quite easily that way, but only between Linux/BSD/Mac/Solaris/whatever else uses CUPS. It'd be useful to add some Samba-related printer options to the CUPS page if possible. -Junx

Summary

Edgy only offers a binary GUI control for printer sharing: Either all printers are shared to the local network, or no sharing happened at all. We both want to make this more flexible and also support sharing printers through Samba.

Rationale

Printer sharing is very common in both commercial and home environments, thus it should be easy to set it up.

Use cases

  • Martin wants to make his Laser printer automatically available to other Ubuntu boxes in the LAN (IPP LAN printer detection), but does not want to share the color inkjet, since printing on it is expensive.
  • John wants to share his printer with others using Windows Sharing Protocol, so that Windows automatically finds the printer.

Scope

This applies to Ubuntu and Xubuntu. KDE has its own printer management GUI, which is not covered here.

Design

Configuration GUI

As specified in the PrinterDrake specification, we want to replace gnome-cups-manager by Printerdrake. Printerdrake offers a much more flexible configuration of ACLs and sharing:

  • Also offers global on/off switch for the common home user use case.
  • Can configure arbitrary network ACLs.
  • Currently offers to hide particular printers from network announcement. However, this is not strong enough, this needs to be changed to forbid remote access to this printer altogether.

Sharing printers to Windows

There are two principal methods of sharing a printer to Windows:

  • Windows 2000 and up have builtin support for the Internet Printing Protocol standard (IPP). As soon as cups (which is IPP compatible) allows sharing a printer, Windows clients can immediately use it by specifying the URL to that printer in the "add printer" wizard (e. g. http://cups.server:631/printers/dj520). This requires no further software on either the client nor the server, but since Windows does not understand the Cups browsing protocol, such printers are never automatically announced to the Clients. An improvement here is to show the IPP URL in the configuration GUI so that administrators can carry it to the Windows client.

  • Printers can also be shared over the SMB protocol, which all Windows versions support. This has the advantage of being automatically advertised in Windows' "Add printer" wizard, but it requires Samba to be installed on the cups server side. Ubuntu's samba is linked to the cups library, so that it automatically picks up printer configuration changes. To make this work out of the box, the default samba configuration needs to be changed to export printers by default.

In either case, the printer is not automatically available on the Windows client, it needs to be manually added using the printer wizard. You also need to supply a driver for it (usually by using the driver CD shipped with the printer). Samba allows to automatically supply printer drivers to the Windows clients, but this currently requires shipping and installing Windows specific DLLs on the print server. This case is not handled here; the cups developers plan a free solution for this in a future version.

Implementation

Printerdrake

  • When disabling sharing of a particular printer, this not only has to disable browsing announcement, but also needs to add a localhost-only ACL to this printer.
  • Show IPP URL when switching on sharing of a printer.

samba

  • Change the default configuration according to man cupsaddsmb. No dynamic configuration changes are necessary.

Data preservation and migration

None required. Printers are never switched to be shared automatically on upgrades.

Comments

How about linking to http://localhost:631/ for users to configure CUPS? You can share printers quite easily that way, but only between Linux/BSD/Mac/Solaris/whatever else uses CUPS. It'd be useful to add some Samba-related printer options to the CUPS page if possible. -Junx


CategorySpec

PrinterSharing (last edited 2008-08-06 16:29:23 by localhost)