Introduction of the Common Print Dialog Backends into Debian
Hi,
in 2017 I had created a new concept to maintain the printing technology
support in GUI toolkits and applications centralized and separate from
the GUI toolkits and applications, the Common Print Dialog Backends (CPDB).
The problem is that the print dialogs in GUI toolkits (GTK/Qt) and GUI
applications with own print dialogs (Firefox, Chromium, LibreOffice,
...) do not catch up quickly when something changes in CUPS, like
introduction of temporary queues for IPP printers for example. Also if a
new print technology, like a cloud printing service appears, the GUI
developers do not provide support in a timely manner. Especially most of
these projects do not have enough (voluntary) people-power to keep up
with this.
To solve this, we move the responsibility on keeping up with the print
technologies away from the GUI/app/desktop developers to the creators of
the print technologies, OpenPrinting for CUPS and print-to-file, any
provider of a cloud printing technology only needs to make their backend
to get their technology into all print dialogs. And the CPDB are also
easily snappable so that such a backend could be distributed by the Snap
Store.
Also for the New Architecture the CPDB are important, as the changes are
performed in the CPDB CUPS backend and so the GUI dialog maintainers do
not need to adapt their dialogs if the adopt the CPDB.
See
https://openprinting.github.io/achievements/#common-print-dialog-backends
After 2017, I had problems to find volunteers or GSoC contributors to
implement the support for the CPDB in the actual GTK and Qt print
dialogs, but last year, 2022 I finally succeeded to find a great
contributor and he succeeded to implement the CPDB support in the GTK
and Qt print dialogs. Along with this he also vastly improved the CPDB
framework, especially with support for human-readable and translated
option and choice names, option groups/categories (like Media, Quality,
Finishing, ...), and a modern CUPS backend using up-to-date CUPS APIs
and not handling PPD files at all (so perfectly prepared for the New
Architecture).
See
https://openprinting.github.io/OpenPrinting-News-November-2022/#google-summer-of-code-2022
https://github.com/TinyTrebuchet/gsoc22/
and
https://openprinting.github.io/OpenPrinting-News-December-2022/#google-summer-of-code-2022
The principal pull/merge requests in the GUI projects are
GTK:
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4930/diffs?commit_id=b17001b101e3dc14b262c955e428481c11b8d4c3
https://gitlab.freedesktop.org/cups-pk-helper/cups-pk-helper/-/merge_requests/7
Qt:
https://codereview.qt-project.org/c/qt/qtbase/+/437301
And this was leading to the mentioned improvements in the CPDB and
therefor a second generation of them:
https://openprinting.github.io/Common-Print-Dialog-Backends-Second-Generation-First-Beta-Release/
And therefore I want to ask you to introduce the components of the CPDB
into the Debian distributions. It does not need to be in Bookworm, an
introduction into Experimental for now and moving it up to unstable
after the Bookworm release would be good enough.
In addition to getting Debian smoothly into the New Architecture and
sharing as much as possible of the printing stack between Debian and
Ubuntu it is also helpful for me to get the MIR (Main Inclusion Request)
for cpdb-libs approved:
https://bugs.launchpad.net/ubuntu/+source/cpdb-libs/+bug/1747759
And for an easy start, Debian packages (at least of 1.x versions)
already exist in Ubuntu Universe. They could be the base. The needed
packages are cpdb-libs, cpdb-backend-cups, and cpdb-backend-file. The
package cpdb-backend-gcp is discontinued as Google Cloud Print got given
up by Google.
Thanks in advance.
Till
Reply to: