Hi all,
it is another year and we have an aggregated report of what changed in
the printing world since the last year.
The whole notes are as the attachment, but highlights are:
- myself (Zdenek Dohnal) being release manager for CUPS 2.4.x series
- Till Kamppeter wrote printer applications which covers all printer
drivers in Debian distribution - we don't have any additional printer
driver package in Fedora, so all our driver packages are covered as well
- printer applications (the solution for driver-only printers how to
work with IPP-only CUPS) are available as SNAPs in Fedora (feel free to
try them and leave feedback at the respective OpenPrinting project
https://github.com/orgs/OpenPrinting/repositories ), packaging them as
RPMs is blocked due dependency on cups-filters 2.0, which is not
released yet (though IIRC someone from Fedora community - maybe Brandon
Nielsen - has them in copr)
- in case of proprietary drivers which aren't packaged in OS there is a
legacy printer application inside of pappl-retrofit project, which, once
you install the printer in this printer application with the proprietary
driver you need, gives the printer IPP Everywhere interface, which makes
it visible for CUPS
- flatpak isn't designed for system services such as CUPS and printer
applications, so Till will investigate shipping containerized printer
applications via OCI containers on dockerhub
Enjoy!
--
Zdenek Dohnal
Software Engineer
Red Hat, BRQ-TPBC
PWG May 2022 Face-to-Face Meeting
=================================
PWG Plenary
-----------
- steering commitee updates
- Jeremy Leber from lexmark is main chair, Smith Kennedy vice chair
- next meetings - August, November, February, May
- IPP Everywhere self-certification - !!854!! certified printers! - printers from Digital Check, OKI, HP, LExmark, Samsung and others on the way :)
- IPP Everywhere self certification 1.1 Update 4 on the way, in beta
- no IPP Everywhere v1.0 certifications are no longer accepted
- updated PWG IPP Everywhere Logo policy - longer grace period to have ippeve logo in materials before certification
- creating several PWG policies - antitrust, press release review, namespace
- https://github.com/istopwg
- IPP - working on several standards - IPP Driverless printing extensions 2.0, IPP Everywhere 2.0, IPP Finishings 3.0 etc.
- secretary Mike Sweet, Co-chair Paul Tykodi and Ira McDonald, editors Mike Sweet and Smith Kennedy
- IDS (Image Device Security)
- focus on common criteria for HCD (hard copy devices - printers/scanners)
- developing HCD security guidelines
- liaison status
- openprinting - coming next
- Mopria alliance - liaison agreement and auto-renews until one or both parties cancel it, no collaboration right now
- 3D/Additive manufacturing
OpenPrinting Plenary
--------------------
- markets and distros - distrowatch says the most popular is Linux Mint, Manjaro, Ubuntu, Debian, Fedora, openSuse, CentOS
- OpenPrinting highlights 2022:
- CUPS - latest release 2.4.1
- cups-filters - 1.28.15, working on 2.0
- PAPPL - printer application library 1.2.0
- ps-printer-app - currently in SNAP, waiting for cups-filters 2.0
- gutenprint-printer-app - in SNAP
- hplip-gutenprint-app - in SNAP
- pappl-retrofit - common functions for printer apps
- driverless printing on all major OS platforms
- ipp-usb - Google Chrome OS has its own in Rust
- driverless scanning - more info later
- GSOC 2022 - now we have contributors instead of students - standard period ends Sep 12 2022, extended Nov 13 2022
- monthly meeting on the first Tuesday in a month, invitation on printing-architecture mailing list
GSoC Project Updates
--------------------
- ideas 2022 - we will see which will be selected by Google:
- Add avahi calls for discovering and resolving driverless IPP printers and optimize the process
- Gui for discovering non-driverless printers and finding suitable Printer app for them
- Adding CPDB support to existing Print Dialogs
- Convert Braille embosser into printer application
- Scanning Support in PAPPL with eSCL Support
- Scanning Support in PAPPL with IPP Scan Interface
- Create new printer setup tool for the GNOME Control Center
- Make a native Printer Application for Gutenprint
- GSOC 2021:
- Pranshu - Create a universal filter function instead of chain filtering
- to save resources executables are migrated to functions
- Divyasheel - GUI for listing and managing available IPP Print/Scan services
- combo of gtk+ library and avahi-client backend for getting IPP services into GNOME Control Center
CUPS Plenary
------------
- Apple doesn't respond, we support it in OpenPrinting for two years now under ASL 2.0 with exceptions for GPL2-only
- CUPS 2.4.x - I hope I manage 2.4.2 soon
- CUPS 2.5.x - new features as centralized localization, oauth, wide-area dns-sd look-up and profiles, better certificate management
(several printer applications on isolate environment cannot share local certificates)
- oauth - instead of kerberos, maybe use "moauth" from Mike
- Future CUPS:
- from drivers to IPP and Printer applications
- modular CUPS
- commands - for both local and sharing server
- local server - temp queues, discovery automatic, local domain socket, dbus API, job history for current session/login, authorization and authentication, profiles
- sharing server - centralized control, permanent queue, no local domain socket, web interface, only for outside communication, no dbus, support for shared infrastructure
- libcups
- tools - used from both sides - both local and sharing server
- challenges - desktop support, more developers, graphic libraries with difficult licenses
- progress - new cups-local project, cups-sharing project, libcups
- local and sharing servers can live separately
- changing default options will work through profiles
Printer Applications
--------------------
- replacement and enhancement for drivers - options are attributes, driver specific ui is in printer app
- IPP Everywhere interface for driver
- pappl
- printer application library, supports JPEG, PNG, PWG Raster, Apple Raster and raw printing
- runs on desktop, servers, works with IPP Everywhere, AirPrint and Mopria
- devs Mike Sweet, Jai Luthra, Sambhav Dusad, Didier Raboud
- recent 1.2.0 release - localization, mainloop API improvements, new SNMP supply/state API, IPP notifications, OpenSSL support, enabling/disabling printers,
client limits API (set to 500 - for big server we can help with shared infrastracture feature), job persistence API
- future - 1.3 - by end of 2022 - IPP proxy support, oauth client support
- hp-printer-app
- PCL printer app via network and USB - just package it :) v.1.2.0, SNAP exists
- lprint
- support for several common label and receipt printers via network and USB, release 1.1.0 with PAPPL, working on 1.2.0
- we don't want to support ATM printers etc, only common label printers which we can buy at home
Retrofitting printer applications
---------------------------------
- all printer driver packages from Debian are covered by printer applications
- helper library pappl-retrofit
- for PPD file handling is libppd library (copy of PPD API from CUPS) - lists PPDs, auto-assigned PPD from deviceID or make/model, lists all options
- no executables upload from users, only PPDs to prevent security issues
- legacy printer application in pappl-retrofit is ideal of other old drivers which are not in Linux repos - it can see the drivers as CUPS does so it can load backends
and filters as CUPS does
- ps-printer-app, hplip-printer-app, gutenprint-printer-app, gs-printer-app (foo2zjs, pnm2ppa, etc), gutenprint-printer-app
cups-filters, CUPS Snap, Printer Applications, Driverless Scanning
------------------------------------------------------------------
- cups-filters
- libcupsfilters
- all filters were converted into filter function, work without PPD, log function instead of stderr
- cffilterpwgtoraster() - streamed filtering line by line, from Apple/PWG raster to CUPS/Apple/PWG raster
- cffilteruniversal() - universal filter which converts from a format to any other - decides which functions are called
- cffilterexternalcups() - call classic filters and backends, emulates complete CUPS environment - helper for legacy printer application
- fixes:
- improvement of auto selection of color space
- all driverless formats done by gs
- new filter option filter-streaming-mode to bypass loading whole file and enable streaming of data
- cffilterpdftopdf, cffilterimageto - fixes for page geometry, landscapes
- libppd:
- not for new drivers
- autoselecting the best PPD option
- added PPD compiling of .drv files for retrofitting
- cups-browsed:
- implicitclass backend started to use filter functions -
- implicitclass started to query printer via IPP for correct properties, right now works only for raster printers
- to be planned - optimization with avahi, moving into a separate project, and into SNAP
- cups-filters 2.0
- new license ASL 2.0 + (L)GPL2 exception
- cleanup of naming style
- soname bumped
- using log function instead of stderr
- restructuring because of libppd - PPD support is removed from libcupsfilters, but wrapper filter functions in libppd are available
- CUPS 2.x and retro printer apps will work with libppd filters - currently on track - once it is finished, cups-filters 2.0 is ready
- optional: separate cups-browsed and libppd from cups-filters, move from qpdf to pdfio for pdftopdf filtering and then optional building
- CUPS in SNAP
- complete printing stack - cups, cups-filters, gs, qpdf
- three modes - standalone (SNAP Cups only), proxy (classic CUPS exists, SNAP CUPS clones the queues and is firewall for system CUPS), parallel (classic CUPS present and SNAP CUPS is independent)
- listens on SNAP domain socket
- investigated flatpak - cannot be used for CUPS and printer app, maybe OCI containers via docker?
- printing GUI - print dialog CPDB, print setup tools and printer wizard on the track
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure