PWG+OpenPrinting meetup 2023

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux