Public bug reported:

CUPS upstream dropped the CUPS broadcasting/browsing mechanism to automatically
discover shared remote printers beginning from 1.6.x. Replacement is
Bonjour-based broadcasting odf the shared printers by CUPS and on the client
side the application's print dialogs are responsible for browsing these
broadcasts and listing the remote printers appropriately. CUPS even provides a
library function for that now.

See

https://blueprints.launchpad.net/ubuntu/+spec/desktop-r-cups-bonjour-
browsing

I wrote there:

----------
The CUPS Browsing/Broadcasting mechanism which made print queues shared on
remote CUPS servers automatically visible for the local CUPS daemon and so for
local applications got dropped upstream from CUPS 1.6.x on. Ubpstream has
replaced this functionality by Bonjour-based broadcasting (under Linux
implemented via Avahi), an OS-indpendent PWG (Printing Working Group) standard,
but this lacks the implementation of browsing on the client side making the
printers on remote CUPS servers not automatically appearing any more.

Ubuntu Quantal's CUPS has a mega patch to forward-port this functionality from
the old CUPS for one cycle, to avoid regressions. We cannot carry such a patch
eternally, and we should follow upstream and the PWG standards.

So in Ubuntu Raring we need the real solution which means that the print
dialogs (upstream-recommended solution) or the CUPS daemon (how I like to have
it) takes the new Bonjour (Avahi) broadcasts to display the shared remote CUPS
queues automatically. The browsing functionality is implemented in the CUPS
library (libcups) from CUPS 1.6.x on, but there is currently no production code
using these functions.

Upstream expects the print dialogs to use the new library functions for
displaying the new queues. This would require modifications and upstream
submissions for GTK, Qt, and LibreOffice at least and this does not safely
cover all existing applications which have CUPS-aware print dialogs and
therefore listed the remote queues before. Especially printing from the command
line would not be covered.

The better approach would be modifying the CUPS daemon so that it uses the new
library function to find the remote queues and advertize them like its own
local queues. Where the CUPS daemon needs to be patched for that we could
probably derive from Quantal's CUPS Broadcasting/Browsing forward port patch.
The new Bonjour browsing patch being based on the new standard way of Bonjour
broadcasting has probably good chances to be accepted upstream.

This feature does not only prevent a regression, but it also helps to more
easily access printers connected to Mac OS X machines (they broadcasted
Bonjour-only all the time) and also for mobile Ubuntu devices. Usually you do
not have connected printers to tablets or phones and you carry them around
between different local networks, so here it is especially important that they
automatically pick up the print queues in the local network.
----------

Such a patch to the CUPS daemon or an extra daemon to do the browsing and
add/remove queues appropriately in the local CUPS environment is also not the
best solution but a way to avoid regressions with legacy apps.

The real intention from upstream is that all print dialogs browse the print
queues available on the local network via Bonjour (under Linux implemented by
Avahi), where print queues on the local network are CUPS queues from Linux and
Mac OS X but also IPP printers which broadcast themselves via Bonjour (IPP
Everywhere printers). Printing on iOS devices (iPhone, iPad, iPod Touch)
already works this way. These devices do not allow the setup of local queues at
all and they discovcer available print queues via Bonjour.

For this the CUPS library has even special functions, see as sample code the
program

cups/testcups.c

to be called as follows:

cups/testcups enum 1

"enum" makes it enumerating printers and the number is the number of seconds to
Bonjour-browse for network printers.

The library function is the function cupsEnumDests() in cups/dest.c. For
Bonjour browsing it must be called with a non-zero value for the msec
parameter.

This feature in the print dialogs is VERY urgent because:

- This is how CUPS upstream and also the PWG (Printing Working Group,
  http://www.pwg.org/) expects how network printing with automatic
  queue discovery works.

- This is less resource-consuming on mobile devices which do not have
  local print queues. avahi-daemon is running anyway and the CUPS
  daemon does not need to be running when there are no local queues.

- CUPS upstream would not most probably not accept patches on the CUPS
  daemon to browse for Bonjour-advertized queues and let them appear
  like local queues.

** Affects: gtk
     Importance: Unknown
         Status: Unknown

** Affects: gtk+2.0 (Ubuntu)
     Importance: High
         Status: New

** Affects: gtk+3.0 (Ubuntu)
     Importance: High
         Status: New

** Changed in: gtk+3.0 (Ubuntu)
   Importance: Undecided => High

** Bug watch added: GNOME Bug Tracker #688956
   https://bugzilla.gnome.org/show_bug.cgi?id=688956

** Also affects: gtk via
   https://bugzilla.gnome.org/show_bug.cgi?id=688956
   Importance: Unknown
       Status: Unknown

** Also affects: gtk+2.0 (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: gtk+2.0 (Ubuntu)
   Importance: Undecided => High

** Summary changed:

- Print dialog needs to support Bonjour broadcasting of remote printers
+ GTK Print dialog needs to support Bonjour broadcasting of remote printers

** Description changed:

  CUPS upstream dropped the CUPS broadcasting/browsing mechanism to 
automatically
  discover shared remote printers beginning from 1.6.x. Replacement is
  Bonjour-based broadcasting odf the shared printers by CUPS and on the client
  side the application's print dialogs are responsible for browsing these
  broadcasts and listing the remote printers appropriately. CUPS even provides a
  library function for that now.
  
  See
  
  https://blueprints.launchpad.net/ubuntu/+spec/desktop-r-cups-bonjour-
  browsing
  
  I wrote there:
  
  ----------
  The CUPS Browsing/Broadcasting mechanism which made print queues shared on
  remote CUPS servers automatically visible for the local CUPS daemon and so for
  local applications got dropped upstream from CUPS 1.6.x on. Ubpstream has
  replaced this functionality by Bonjour-based broadcasting (under Linux
  implemented via Avahi), an OS-indpendent PWG (Printing Working Group) 
standard,
  but this lacks the implementation of browsing on the client side making the
  printers on remote CUPS servers not automatically appearing any more.
  
  Ubuntu Quantal's CUPS has a mega patch to forward-port this functionality from
  the old CUPS for one cycle, to avoid regressions. We cannot carry such a patch
  eternally, and we should follow upstream and the PWG standards.
  
  So in Ubuntu Raring we need the real solution which means that the print
  dialogs (upstream-recommended solution) or the CUPS daemon (how I like to have
  it) takes the new Bonjour (Avahi) broadcasts to display the shared remote CUPS
  queues automatically. The browsing functionality is implemented in the CUPS
  library (libcups) from CUPS 1.6.x on, but there is currently no production 
code
  using these functions.
  
  Upstream expects the print dialogs to use the new library functions for
  displaying the new queues. This would require modifications and upstream
  submissions for GTK, Qt, and LibreOffice at least and this does not safely
  cover all existing applications which have CUPS-aware print dialogs and
  therefore listed the remote queues before. Especially printing from the 
command
  line would not be covered.
  
  The better approach would be modifying the CUPS daemon so that it uses the new
  library function to find the remote queues and advertize them like its own
  local queues. Where the CUPS daemon needs to be patched for that we could
  probably derive from Quantal's CUPS Broadcasting/Browsing forward port patch.
  The new Bonjour browsing patch being based on the new standard way of Bonjour
  broadcasting has probably good chances to be accepted upstream.
  
  This feature does not only prevent a regression, but it also helps to more
  easily access printers connected to Mac OS X machines (they broadcasted
  Bonjour-only all the time) and also for mobile Ubuntu devices. Usually you do
  not have connected printers to tablets or phones and you carry them around
  between different local networks, so here it is especially important that they
  automatically pick up the print queues in the local network.
  ----------
  
  Such a patch to the CUPS daemon or an extra daemon to do the browsing and
  add/remove queues appropriately in the local CUPS environment is also not the
  best solution but a way to avoid regressions with legacy apps.
  
  The real intention from upstream is that all print dialogs browse the print
  queues available on the local network via Bonjour (under Linux implemented by
  Avahi), where print queues on the local network are CUPS queues from Linux and
  Mac OS X but also IPP printers which broadcast themselves via Bonjour (IPP
  Everywhere printers). Printing on iOS devices (iPhone, iPad, iPod Touch)
  already works this way. These devices do not allow the setup of local queues 
at
  all and they discovcer available print queues via Bonjour.
  
  For this the CUPS library has even special functions, see as sample code the
  program
  
  cups/testcups.c
  
  to be called as follows:
  
  cups/testcups enum 1
  
  "enum" makes it enumerating printers and the number is the number of seconds 
to
  Bonjour-browse for network printers.
  
  The library function is the function cupsEnumDests() in cups/dest.c. For
  Bonjour browsing it must be called with a non-zero value for the msec
  parameter.
  
  This feature in the print dialogs is VERY urgent because:
  
  - This is how CUPS upstream and also the PWG (Printing Working Group,
-   http://www.pwg.org/) expects how network printing with automatic
-   queue discovery works.
+   http://www.pwg.org/) expects how network printing with automatic
+   queue discovery works.
  
  - This is less resource-consuming on mobile devices which do not have
-   local print queues. avahi-daemon is running anyway and the CUPS
-   daemon does not need to be running when there are no local queues.
+   local print queues. avahi-daemon is running anyway and the CUPS
+   daemon does not need to be running when there are no local queues.
  
  - CUPS upstream would not most probably not accept patches on the CUPS
-   daemon to browse for Bonjour-advertized queues and let them appear
-   like local queues.
- 
- Therefore I want to ask you to add this feature with priority.
- 
- This is urgently needed so that Linux distributions accept CUPS 1.6.x.
- See also
- 
- https://bugzilla.novell.com/show_bug.cgi?id=735404
- 
- Could you manage to implement this before the Feature Freeze of Ubuntu 13.04
- (Raring) on March 7, 2013? I (and probably also the CUPS maintainers of all 
the
- other distros) would appreciate this very much.
+   daemon to browse for Bonjour-advertized queues and let them appear
+   like local queues.

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to gtk+2.0 in Ubuntu.
https://bugs.launchpad.net/bugs/1082519

Title:
  GTK Print dialog needs to support Bonjour broadcasting of remote
  printers

To manage notifications about this bug go to:
https://bugs.launchpad.net/gtk/+bug/1082519/+subscriptions

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to