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