Hi all,
I've joined annual PWG+OpenPrinting virtual meetup where the news and
statuses from the current printing development are discussed.
The main points are:
- cups-filters 2.0 betas and release candidates are released and present
in Fedora 38
- since new cups-filters are in Fedora 38, nothing stands in the way of
packaging pappl-retrofit and printer applications based on it into
Fedora as RPMs - any volunteers are welcome!
- CUPS 2.4.x, CUPS 2.5 and CUPS 3.0 are delayed:
- 2.4.x - there are several regressions I haven't able to tackle
yet, but I hope there is a new version in a month
- 2.5 - OAuth support took lot of time to implement
- 3.0 - libcups (its version 3.0) has a beta which developers which
uses libcups 2.0 can compile and link their applications and see what
changed between major release
- GTK (its version 4) has merged support for Common Print Dialog
Backends - universal print dialog, which can work not only with cups,
but with other possible backends (like google cloud print)
- WIP on Printer Setup Tool for GNOME Control Center - full support for
driverless printers and printers via printer applications
The full report is attached.
Zdenek
--
Zdenek Dohnal
Software Engineer
Red Hat, BRQ-TPBC
PWG 2023
========
PWG Plenary
===========
- now we are accepting only IPP Everywhere 1.1 certifications (no 1.0)
- IPP group - approved IPP Job Extensions 2.1, IPP Production Printing Extensions 2.0, IPP Driver replacement extensions 2.0
- pending IANA registrations for standard names for medias
- development - IPP OAuth 1.0, IPP Enterprise printing extensions 2.0, IPP Encrypted jobs and documents 1.0, IPP Eve 2.0, IPP Everywhere SelfCert manual 2.0
- Liaisons
- OpenPrinting
- NEW: Mopria as liason to PWG (via Anthony Suarez from Kyocera) - open to collaboration
- 3MF Consortium - Mike Sweet is PWG liaison to 3MF - 3D related work
- America Makes & ANSI Additive Manufacturing Standardization Collaborative (AMSC) - liaison for 3D printing
OpenPrinting Plenary
====================
- Linux servers takes 39% of market share
- Android went down by 3% of market share on mobiles
- distrowatch about Linux distro popularity - Fedora went up :)
- works on CUPS, cups-filters, PAPPL, and various printer apps, ipp-usb (Google Chrome has its own daemon written in Rust), driverless scanning
- results of GSOC 2022 - almost all passed, one partially failed
- highlights 2023 - cups-filters 2.0rc1 released, pappl 1.3.2, GTK (only GTK4) and QT Common print dialog backends are on the way (GTK4 part is in upstream already)
- gutenprint printer app is on the way to being native printer application, hplip native printer application waits on scanning support in PAPPL (and then ask HP to write it)
- plans - CUPS dev and evolutions, cups-filters 2.0 dev and evolution, GSOC implementation of PWG IPP specs, Driverless printing+scanning development
- Linux Plumbers now conflicts with PWG meetup this year - so trying to get into Open Source Summit (ticket 800$ in September) or only a virtual meetup with Canonical infra
- probably only virtual meetup
GSOC Projects
=============
2022:
GUI for discovering non-driverless printers and finding suitable Printer Applications - Mohit Verma - worked with Marek Kasik on integration to GNOME Control Center
CPDB (common print dialog backends) support to existing print dialogs - Gaurav Guleria - worked with Marek Kasik as well on CPDB integration to GTK4
Scanning support in PAPPL with eSCL
Converting Braille driver into printer application
2023:
CPDB support for Firefox, Chromium, Libreoffice
Sand Boxed Scanner application Framework
GNOME Control Center - list and handle IPP services
CI for our packages
Adding IPP Everywhere 2.x functionality to libcupsfilters and CPDB
Native Gutenprint Printer application
CUPS Plenary
============
- 26 years old now :)
- CUPS 2.4.x - in one month new release
- CUPS 2.5 - discovery improvements, conf profiles, cert improvements, JWT and JSON for OAuth and OAuth support as additional auth in 2.5, and replace Kerberos in 3.0
- we will need to create auth UI
- may use OAuth implementation from Mike - moauth
- new arch CUPS 3.0:
- commands
- local server
- discovery, AAA, notifications, conversions, job history to thte current session
- sharing server
- web interfaces, AAA, infrastructre printer support, OAuth token introspection
- tools - ippeveprinter, ippfind, ipptool, ipptransform
- libcups
- new beta on the way, based on C99 standard, new hard requirements on mDNS, TLS, ZLIB and POSIX threading
- new API - IPP test file, HTML form (parsing), JSON (parsing), JWT (parsing) and X509 APIs
- 3.0 challenges - we need more desktop support - support for CUPS dBUS API for printing, authorization, consent UIs in various desktops, Auth+Notification UIs
- graphical libraries and its incompatible licenses... - so we mostly rasterize documents because of it
Printer apps, retrofitting printer apps
=======================================
- PAPPL framework, hp-printer-app and lprint
- replacement for CUPS drivers - IPP Eve interface, IPP attrs instead of options - the driver can be defined internally, or via PPD+filter
- PAPPL - used worldwide, f.e. in shipping printers, localization via Weblate - current version 1.3.2, working on 1.4 (OAuth, IPP Proxy supports, CLI improvements, PAPPL-Create-Printers
for remote creation)
- hp-printer-app - supports variety PCL 3/5, current 1.2.0, 1.2.1 on the way (based on pappl 1.3)
- lprint - printer app for common label printers - DYMO, EPL, Zebra - new dithering algorithm (replacing rastertolabel from old CUPS) - current 1.2.0, 1.2.1 on the way
- retrofitting printer apps - all in SNAPs, packaging into Fedora on the way (packagers are welcomed!)
- use pappl-retrofit library - based on pappl and libppd to have the old printers working - version 1.0b2
- all printer drivers from Ubuntu is covered by printer apps
cups-filters 2.0
================
- the initial change which caused 2.x is introduction of filter functions instead of filter binaries, so most code is now a library (executables stayed for backward compatibility and testing)
- code cleanup and code style adjustment into one style.
- old cups-filters project splitted into 5 projects:
- libcupsfilters (filter functions and more for printer apps),
- libppd (PPD support from CUPS),
- braille-printer-app,
- cups-browsed (printer clusters, browsing print servers),
- cups-filters (filters and backends for CUPS 2.x)
Libcupsfilters
- filter functions
- takes printer IPP attrs (as PPD options in the past) and job IPP attrs (as job options in the past)
- new PWGtoRaster function, cfFilterUniversal() - runs only one executable instead of chain, cfFilterExternal() - can run external filter
- takes less resources than starting executable
- raster data handling, IPP get-printer-attributes functions, handling DeviceID/MakeModel for auto assigning drivers, human readable strings/translations from CUPS and IPP services
- workaround over firmware bugs for printers which is not able to do correct IPP response for 'all, media-col-database'
- libfontembed added to libcupsfilters and removed its public API, Perl, PHP API removed, legacy image formats removed (PNG, JPG, TIFF stays)
Libppd
- PPD support from CUPS - ppdc, cups-driverd, cupstestppd
- wrapper over filter functions, which does PPD -> IPP conversion
- filter functions converting to PS and JCL/PJL support have been moved here
- only for retrofitting support! - for new drivers write a printer application
Ghostscript :)
- urf and appleraster devices implemented
- pclm output implemented for sRGB and sGray ICC (international color consortium) output profiles
cups-filters
- filters, backends for CUPS 2.x, driverless binary
- support for filter-streaming-mode
- removed sys5ippprinter, urftopdf (supported by CUPS now)
cups-browsed
- originally for workaround of outdated print dialogs
- now load balancing, clustering, browsing and broadcasting
- has internal test suite now
Braille printer app
- hasn't been moved migrated yet, started in GSOC 2022, GSOC 2023 proposal was rejected
Development:
- working on 2.0.0 GA - code style fixed, bumped soname, unified license Apache 2.0 with LLVM exception
Fedora 38 and Ubuntu 23.04 is working with cups-filters 20rc1 :)
- working on libcups3 support
CUPS snaps, driverless scanning/Scanner applications, Printing GUI
==================================================================
- Scanning support in PAPPL is WIP, currently implementing eSCL parser
Scanning
- we decided to use eSCL (WSD not published, IPP Scan was not adopted by industry)
- plan is to make sane-backends retrofitting scanning application, scanning application is eSCL client
GUI Print dialogs
- CUPS CPDB backends got into GTK4, merge request for Qt WIP, Firefox feature request posted, Libreoffice contacted via dev mailing list,
creating design document for Chromium
- Printer Setup tool - listing IPP print services, printer wizard in Gnome Control Center
_______________________________________________
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, report it: https://pagure.io/fedora-infrastructure/new_issue