I’ve been investigating the problems with trying to print to a Windows print share from Fedora. The main problems are to do with authentication, both when browsing to find the printer and when submitting a print job. See below for the problems and the steps required to fix them.
- Authentication details need to be requested from the user at job submission time rather than at queue creation time. As a result of fixing this, IPP authentication will be possible as well as SMB authentication. This involves some smaller steps:
- CUPS needs an auth-info-required bug fixed, so that when a print job requires authentication details from the user, it is possible to find out what sort of details are needed.
- The pycups Python bindings for libcups need to have an authenticateJob() function added.
- The system-config-printer applet needs to display a window for the user to fill in credentials when a job requires it, and use authenticateJob() to let it continue processing.
- UPDATED: Oh, and the samba CUPS backend needs to use the auth-info mechanism when the URI does not contain the information.
- The current SMB browsing code in system-config-printer needs to be replaced with something based on libsmbclient. This, in turn, involves:
- Creating Python bindings for libsmbclient.
- Re-writing the system-config-printer SMB browser to use that.
- Testing it a lot.