Hi all,

I attended PWG virtual meetup 2021 yesterday and today and created
reported about it.

Highlights:

- CUPS got into OpenPrinting group from Apple

- still working on upgrade path for non-driverless printers after
removing printer drivers and raw queues:

 1) printer application library was created - PAPPL (already in Fedora)

 2) the first printer application library created by Till Kamppeter -
ps-printer-app - which supports postscript printers in the wild

- ippusbxd is dead for ipp-over-usb standard - standard for driverless
printing via usb [1] - we use ipp-usb (already in Fedora, how to find
out my device is supported [2])


[1]
https://fedoraproject.org/wiki/How_to_debug_printing_problems#Driverless_printing_.28USB.29

[2]
https://fedoraproject.org/wiki/How_to_debug_printing_problems#How_to_find_out_if_my_USB_device_supports_IPP_over_USB

==========================================================================

-- 
Zdenek Dohnal
Software Engineer
Red Hat Czech - Brno TPB-C

PWG 2021
========

PWG Plenary
-----------
- 692 printers IPP Everywhere certified! https://www.pwg.org/printers/
- standards - IPP Everywhere 2.0 on the way, IPP Enterprise Printing Extensions 
2.0, IPP Production Printing Extensions 2.0,
  IPP driverless printing extensions 2.0 etc.
- IDS (Image Device Security) - now focus on hard copy devices protection 
profiles, hard copy devices security guidelines and standards
- IPP - maintenance of the protocol and SNMP MIBs - recently published Job 
Accounting with IPP v1.0, in working IPP 2.0 (fourth edition),
  IPP driverless printing extensions 2.0, IPP encrypted jobs and documents 1.0, 
IPP enterprise printing extensions 2.0, IPP finishings 3.0,
  IPP production printing extensions 2.0
  - pending IANA registrations https://www.pwg.org/ipp/ipp-registrations.xml
- 3D printing - reaching 3D printer manufacturers about IPP to convince them to 
use IPP instead of drivers

OpenPrinting Plenary
--------------------
- linux markets - windows lost to linux in public server market share, web 
server market share
- linux distro popularity on distrowatch - 5th Fedora, 7th CentOS
- cups-filters - highlights - clustering, dns-sd enhancing, filters
- cups in SNAP - no drivers, working out of the box
- participated in GSOC, GSOD abd LFMP (Linux Foundation Mentorship Program)
- took over CUPS, released 2.3.3op1 and 2.3.3op2, working on 2.4.x
- pappl - recent v1.0.3, written by Mike Sweet, library for printer applications
- ps-printer-app - the first printerapp for postscript printers, written by 
Till Kamppeter
- driverless - IPP Faxout support implemented in cups-filters
- ipp over usb - ippusbxd removed, now we use ipp-usb written in Golang
- scanning - Mopria released eSCL specification publicly, IPP scan service 
isn't supported by devices, so we go with eSCL and
  WSD
- GSoC 2021 - halfed hours for projects, now only 5 students for us
- GSoD 2021 - more complicated than before (legal stuff, payments to tech 
writer)... - cups-filters docs wasn't accepted
- LFMP 2021 - currently considering projects which will go into LFMP - only 
technical projects (no bug fixing, maintenance, web creation, docs)

GSOC, GSOD, LFMP updates
------------------------
- 2020 - CPDB and IPP scan projects weren't completed, but other students works 
on bugs in printer applications and cups-filters
- LFMP 2020 - 4 students, none of them finished because LFMP started when 
universities in India started to have classes, so students were busy
- GSoC 2021 - topics - create a single universal filter
                     - firmware and other file handling in PAPPL
                     - GUI for listing and managing available IPP Print/Scan 
services - modern IPP printers will be as IPP services, and printer
                       applications will be drivers
                     - converting filters to functions instead of executables
                     - all filters must work without PPD files
- coding period is reduced to half :(

CUPS Plenary
------------
- future 2.4 - working on oauth 2.0 instead of kerberos, added compatibility 
with airprint and mopria (already done),
    added pkg-config support, kerberos and cups-config deprecated, snapcraft 
support mostly done, working on job-sheets-col
    and media-col (like using different output trays without postscript 
commands), working on TLS and X.509 (bringing OpenSSL
    back as an option, better X509 for servers - sharing certificates between 
devices instead of locally generated self-signed
    certs)
- oauth - don't need root, Mike uses its own version - moauth, bearer and 
refresh tokens cached per-user/auth-server, asking for
  OAUTH server already implemented in IPP protocol
- deprecations:
 - already removed in past:
  - due security issues - moving directives to cups-files.conf, interface script
  - performance and design issues - CUPS browsing (removed mainly because of 
wifi)
 - deprecated, will go away in the future:
  - printer drivers - now we can use standards instead of drivers
  - raw queues
  - kerberos
  - cups-config

- future 3.0 after 2.4.0 - user apps + CUPS + printer (or printer app + printer)
- splitting - cupsd into 2 parts (one for local, second for sharing)
- local server - communication with printers and its discovery, AAA, converting 
files for printer, no web UI, can configure printers outside of LAN
  - profiles, have dbus
- sharing server - have web ui, accounting, configuration as current cups, 
oauth support, ACLs, communications with printers

Printer applications
--------------------
- replacement for printer drivers - options replaced by IPP
- it's IPP everywhere printer implementation, compatible with cups 1.4 and later
- support for PWG Raster plus JPEG for color printers
- pappl - library for printer applications  supports jpeg, png, pwg raser, 
apple raster, raw printing via usb and network
        - works with airprint, IPP everywhere, Mopria
        - ipp-usb support, disabling TLS
  - API - see manual - five main objects - system (IPP system service, has web 
ui), clients, devices (manage printer connections), 
    printers (manage printers), jobs (manage jobs)
    - IPP system service in PAPPL - support old USB, USB serial, IPP-USB, 
listen on TCP/IP or domain sockets, logging to file/systemd, resources
      can be dynamic or static (from files) - can be printer or system specific
    - client - created by system, for connections - support auth, html forms, 
default page header and footer
    - device - handles communication with printer - the same as in cups - 
socket://IP, file://tmp, snmp, usb, dnssd - no IPP (obviously) and no LPD
    - printer - implements IPP everywhere and some extensions, connected to 
device and uses driver to process document data - driver has a required
      raster interface to support apple or pwg raster, optionally raw 
(ZPL/EPL), and other formats (JPEG and PNG already in, PDF can be done)
    - job - it is job object in IPP model - PWG and Apple rasters are streamed 
(because they are big and can influence your memory), others
      formats are spooled - so printer can take only one Apple/PWG raster job 
at time (for others it returns 'busy'), other formats aren't limited
  - mainloop api - provides web ui and command line commands - like 'drivers', 
'devices', '-d printer -o option=valuie filename', 'options -d printer'
- lprint - support for label printers
- gutenprint printer application - GSoC student worked on this, but currently 
no results
- postscript printer application - for standard A4/Letter office printers, 
retrofitting printer application (uses PPD inside)
  based on pappl, pa for high level vector graphics output formats, works for 
postscript printers
    - autoassign PPD to make/model from device ID, associate standard options 
with IPP attrs, modifies printing defaults based on your installed
      stuff
    - user can add his PPD - runs checks from libppd on it (PPD can be 
rejected) and prefers the PPD when autoassigning to printer, can be removed
    - future - human readable for vendor options, localization, ink level 
check, creating library for other retro-fitting printer applications

Openprinting - cups-filters
---------------------------
- filters now called as functions and not just a special binary - now works 
with PPD, in the future with IPP job/printer attributes
- new pclmtoraster filter
- planned one generic filter for all conversion (GSoC)

Openprinting - libppd
---------------------
- ppd file handling library for retro fitting classic drivers
- taken from libcups, because it is deprecated there
- don't use it in for new drivers!

Openprinting - driverless utility
--------------------------------
- now supports IPP Fax Out - shows Fax ppds in printer setup tools, support for 
IPPs and DNS-SD-service-name-based URIS

Openprinting - cups-browsed
---------------------------
- multithreaded now, can keep queues installed even when cups-browsed is stopped

Openprinting - cups-filters future
----------------------------------
- license change to Apache 2.0 + (L)GPL2 in 2.0, cups-browsed in separate 
project, libqpdf dependency will be optional (no pdftopdf filter)

OpenPrinting - CUPS in SNAP
--------------------------
- no support for classic drivers - all printer applications, sorting out snap 
related stuff, available on snap store https://snapcraft.io/cups
- three run modes - standalone (only snap cups), proxy (classic cups + snap 
cups - snap clones the queues and acts as a proxy), parallel (debug mode from 
  config switch)
- cups listens on snap's domain socket and apps prints on it (for proxy and 
parallel modes), snap in standalone mode listens on both domain sockets - 
/run/cups/cups.sock
  and snap one
- all command line tools and cups-browsed (for now)
- security concept - when snap is connected, it uses only safe interfaces, 
'dangerous' are off, can be connected manually 
  - so for cups there are two interfaces - cups and cups-control

Openprinting - printer applications
-----------------------------------
- pappl and ps-printer-app we talk about
- planning to convert hplip, splix, foo2zjs to printer apps
- for unmaintained - they will be wrapped into printer application

Openprinting - driverless scanning
---------------------------------
- 3 standard protocols - IPP scan, eSCL, WSD - we support eSCL and WSD in 
sane-airscan
- eSCL works with ipp-over-usb (ipp-usb)
- we will try sandbox scanners - current sane-backends cannot be used, so they 
need to be scanner applications
- scan support maybe in pappl in the future

Openprinting - ipp-usb
----------------------
- ippusbxd no more, long live ipp-usb!

Openprinting - GUIs
-------------------
- CPDB - has dbus interface, so can it be used in GTK?
- printer setup tool - will show IPP services for IPP devices
- printer wizard for nondriverless, which will offer printer applications

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

_______________________________________________
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