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@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to