Tasks for fixing SMB printer browsing

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.

One Response to “Tasks for fixing SMB printer browsing”

  1. [...] just put together some minimal Python bindings for libsmbclient, following on from what I said earlier. All that’s wrapped is enough for it to be useful for discovering printer shares, so [...]