Meeting called to order by Ira McDonald at 1pm US Eastern. Minutes taken by Ira McDonald.
Note: New GoToMeeting account was used for this meeting.
Attendees
Agenda
- Progress report - The second generation of cups-filters has made it into Ubuntu, version 23.04, the Lunar Lobster! After a lot of hard work adding missing requirements, especially programs and scripts for automatic testing of each build and each upload, and after getting the all the code security-audited, the new packages landed in time on Friday (24 March 2023), 3 days before the Beta Freeze on Monday (27 March 2023).
- Progress report - For the Linux App Summit 2023 in Brno in the Czech Republic the schedules are published! - Till's talk with demos of the state of the art of the Common Print Dialog Backends (CPDB) support in print dialogs and the "Printers" module of the GNOME Control Center, and discussion with the audience, will take place on Saturday, 22 April 2023, at 16:35 CEST. - Unfortunately, due to the huge amount of great submissions and the limited time slots in only 2 rooms on 2 days, Till's Snap workshop and his OpenPrinting BoF did not get accepted. - But it is not such a big problem of the BoF not being accepted, we will have our own one. To have more time to discuss with Till's colleagues and contributors on the printing area, Zdenek Dohnal (Red Hat), Marek Kasik (GNOME/GTK), Albert Astals Sid (KDE/Qt), Harald Sitter (KDE/Qt), Till will have a meeting with them on Saturday, 22 April 2023, at some hour (TBD) during the day. Till will announce the exact time next month, so everyone who likes can join.
- Progress report - After a great first GUADEC for me in Mexico last year, Till will continue attending GUADECs. This year Till does not need to cross the ocean, since GUADEC takes place in Riga, in Latvia on 26-31 July 2023, formatted as last year with 3 days of talks, 2 days of BoFs and workshops, and 1 day of touristing. - The Call for Proposals already had its original deadline but, as there were not enough proposals to comfortably fill all the time slots, the submissions were re-opened until 4 April 2023. - So think in the next few days about what you like to tell to the GNOME folks in Riga, what you want to teach in a workshop, what you want to discuss in a BoF,... It is your chance now... - Also here Till has submitted a talk to demo the printing-related GUI changes in GNOME/GTK and to discuss them with the audience. - And if all works fine it will get snappy on the GUADEC...
- Progress report - The time window for GSoC contributor candidates to submit proposals has opened and the deadline is 4 April 2023. This means for our candidates to write their proposals and mentors to review them. Also mentors have to register and mark in the already submitted proposals whether they want to step up as a mentor for the respective project. - Now all our candidates have decided on the project they want to do and are familiarizing with them and also have written drafts of their proposals. - The most enthusiastic of them have already started on their projects weeks ago and worked with me and other mentors, often contributors of the previous years, on investigating of what has to be done and planning how to do it. - Especially, Akarshan Kapoor, who is doing the scanning support in PAPPL, has started off very well with his mentors Till, Rishabh Maheshwari (GSoC 2022 contributor on eSCL support), Deepak Patankar (GSoC 2022 mentor on PAPPL scanning). - First, Akarshan updated PAPPL's documentation with the scanning API Bhavna Kosta had added in GSoC 2021. - As the next step, Akarshan created a list of all the printing-related functions of PAPPL and the ones of Bhavna’s scanning-related API functions and added for all printing functions which had no scanning counterpart the appropriate scanning function. All this is now posted as a pull request on PAPPL. - Now, Arkashan is working on integrating Rishabh’s eSCL parser and make incoming requests be distinguished between IPP for printing, eSCL for scanning, and general HTTP for the web admin interface.
- Progress report - As reported last month all new packeges which are put into the Canonical-supported core part of Ubuntu ("Main") need a build test and an autopkgtest which are run on 6 architectures everytime when a new release of the package itself or any package depending on it gets uploaded. - cups-browsed was still lacking both tests and the Common Print Dialog Backends (CPDB) packages were missing a build test. So Till created appropriate scripts and added them to cups-browsed and to the three CPDB packages. All these tests are run by make check called after building the respective package. - The challenge for the build test for cups-browsed was to exercise cups-browsed in the way it is actually used without needing root access and ideally independent of the configuration of the system, so that make check also works on build servers for example and not only on fully equipped desktop machines. cups-browsed needs 4 further daemons around itself: CUPS to create print queues on, avahi-daemon to collect DNS-SD broadcasts of printers, dbus-daemon to receive notifications about new jobs from CUPS so that it can dispatch them to their destination printers, and ippeveprinter to emulate IPP printers. - Till has taken the (very sophisticated) build test script of CUPS (test/run-stp-tests.sh) as example for his test script. There Till copy/link the system's CUPS files into separate directories out of which Till is running his own CUPS instance on port 8631, as normal user. Till especially had to copy the CUPS daemon executable (/usr/sbin/cupsd) into the separate directory so that AppArmor does not act on it. cups-browsed does not need to run as root, it only needs to have admin access to CUPS, so it is easy to run it attached to our separate CUPS instance. And for a private D-Bus there us the dbus-run-session utility. - Till was not able to create a private instance of avahi-daemon though, ending up with the need of a system's avahi-daemon. This works in most situations, especially as one can register services without being root, but on Canonical's build servers there is no avahi-daemon running and so Till had to skip make check in the Debian/Ubuntu package of cups-browsed. Due to this special nature of cups-browsed and the fact that Till runs the same test script as autopkgtest (run on virtual machine with all needed packages installed), the Ubuntu MIR (Main Inclusion Request) approval team accepted the package into Main. - And the tests also showed already what they are good for, by finding bugs in cups-browsed, including even some crashes, which Till has fixed now. - Till also got asked to try to run cups-browsed as normal user, which the tests showed that this actually works. cups-browsed only needs to be allowed to do adminstrative requests on the CUPS daemon, meaning the system user running cups-browsed has to be in the "lpadmin" group. It also needs a cache directory writable by the system user. The current Ubuntu package is now running cups-browsed as a normal user. - But not only tests are needed: the code of each package promoted from Universe into Main is thoroughly security-audited by Canonical's security team: Coverity runs, code reviews, have daemons to run as root, SETUID,... (see report in the MIR). This takes several hours of work for each package and when many new packages arrive close to Feature Freeze (1 month before beta, 2 months before release) the queue gets long. A package cannot easily make it into Main for the desired Ubuntu version and it stays for the next version 6 months later. - And we got lucky with the security checks, they got finished in time for the Beta Freeze on Monday, 27 March 2023. Thanks, Sebastien Bacher, for nagging the security team, thanks, Seth Arnold and Alex Burrage from the security team for expediting these packages, and especially thanks, Mark Esler, for your patience on the last package, cups-browsed. - So Ubuntu 23.04, the Lunar Lobster, will contain a first piece of the software for the New Architecture. We will not be running in the New Architecture, still using Debian packages of CUPS (2.4.2) and classic CUPS drivers installed as Debian packages, but we use everything with the 2nd generation of cups-filters. So we will most probably have some more bug fixes, as not every fix got backported to cups-filters 1.x. But the most important is that we have 2 "small" (non-LTS) releases of Ubuntu in which the new cups-filters will get used and tested, this helps a lot for a safer transition into the New Architecture in 23.10 (based on the CUPS Snap) and to CUPS 3.x in 24.04 LTS. - The packages for the Common Print dialog Backends, cpdb-libs, cpdb-backend-cups, and cpdb-backend-file, did not make it into Main yet. Therefore CPDB is not yet used in GTK's print dialog. This will happen, together with the general switchover into the New Architecture in Ubuntu 23.10, to be released in October 2023. Till will try to set up a Sneak Preview of the New Architecture (CUPS Snap, CPDB, GNOME Control Center) via a PPA (Personal Package Arquive) sooner, though.
- Progress report - With libcups 3.0b1 available, Till has investigated on how well the code of libcupsfilters 2.x is prepared for the new CUPS library, and it seems that we are in a good shape. - First, Michael Sweet has prepared the migration to the new library very well, by his always excellent documentation, here the MIGRATING.md file in the new library's source package. The file describes everything what changed, which functions and data types got renamed, which got removed, also what the new names are. - The removal of features is no problem at all for us, as the 2 removed areas are PPD support and non-destination-based listing of queues or printing. For the former, we are perfectly prepared, as all PPD support is removed from libcupsfilters and so none of the PPD-supporting functions of libcups get called. And functions of the latter area were never used by libcupsfilters. - So the main part of the migration is the renaming, but one can, after converting the code of libcupsfilters completely to the new API, easily create something like a libcups2.h file and let configure.ac set HAVE_LIBCUPS2 if the code is built with the old CUPS library. - Another point are interface variants. The old library (cups/array.h) had various API functions. - So there are 3 interface variants for creating a CUPS array. This is because Michael Sweet has started with the first one and later on realised that one can make (sorted) CUPS arrays better if the user can, in addition to a function for comparing two items, also specify functions for copying and freeing items, and also a hash function. So he added the other two interface variants, giving them new names, with added small integer numbers, to keep the original variant to avoid breaking the API. - In the new API, Michael has cleaned up, doing away with the variants and only keeping the most sophisticated one, with the simplest, original name, without number. This serves everyone: simply set parameters for functionality you do not want to NULL. - Here we will have to define some wrapper functions, simply defined inline in our libcups2.h file (or an accompanying libcups2.c file). - There is still one oversight in MIGRATING.md: the APIs in cups/backend.h and cups/sidechannel.h will go away. The latter is not used in libcupsfilters (Till removed an unnecessary inclusion here) and the former only by the function cfResolveURI() in cupsfilters/ipp.c, but this can be easily fixed by using the new libcups3 API function httpResolveURI() (cups/http-support.h). In this case we also will not have to unset the DEVICE_URI environment variable. Here one can create a wrapper function in libcups2.c/libcups2.h, named httpResolveURI() which unsets DEVICE_URI and calls httpBackendResolveURI(). - With all this libcupsfilters should work perfectly well in the new CUPS 3.x world.
- Progress report - cups-browsed got a 4th beta release centered in getting test scripts. - Till has created a script which serves both as build test (make check) to be run as non-root, with its own CUPS instance, and as CI or autopkgtest running as root with installed packages. It runs emulations of IPP printers to be picked up by cups-browsed to auto-create CUPS queues on them. On these queues a test job is printed and cups-browsed has to dispatch the job to the printer. - This naturally made Till do several test runs and they revealed several bugs, which Till has fixed in this release: - implicitclass backend: If no destination got reported by cups-browsed, retry after one minute, not the standard 5 minutes of CUPS. - debug_printf(): Check for need of log rotation only if log file is set and opened, to avoid a crash. - on_printer_modified(): Added NULL check to avoid a crash. - ipp_discoveries_add(): Ignore duplicate entries. These are most probably caused by a bug in Avahi, having certain discoveries of a printer reported twice and others not. When the printer disappears Avahi reports the disappearal of each discovery correctly, leaving the duplicate entry untreated (removing only one instance of it) and cups-browsed assumes that the printer is still there, keeping its CUPS queue. - update_cups_queues(): Reset counter for pausing CUPS queue updates. Otherwise after having updated the number of queues supposed to be the maximum for one run of update_cups_queues(), cups-browsed will never update any queue again. - resolve_callback()/resolver_wrapper(): New thread only when printer found, we move the check which resolver event we have (found/failure) already in the main thread (resolver_wrapper()) and launch a new thread only if we have found a new printer and have to investigate whether to add a queue for it or not. resolve_callback() only initiates this investigation now. This way we do not need to pass the resolver data structure (of type AvahiServiceResolver*) into the new thread, which caused segfaults. - create_remote_printer_entry(): Corrected some memory freeing when a printer data structure is deleted, but this has not caused a segfault in the recent tests. - Fixed issues reported by Red Hat Coverity tool (Pull request #6) - There are more issues resulting from a Coverity run by Canonical's security team. They will get checked and fixed soon.
- Progress report - The 4th beta release towards 2.0.0 was all about getting build tests (make check) added to fulfill the requirements for getting into Ubuntu Main. The tests of the backends start the backend and also the text-based sample frontend of cpdb-libs to check whether printers appear in the frontend’s list and whether one can print on them. The test of the CUPS backend even runs its own instance of cupsd (like the tests of CUPS and cups-browsed also do) to let the backend discover the CUPS queues. - In addition, cpdb-libs facilitates creating test scripts by installing its text-based demo frontend as a developer utility, with the name cpdb-text-frontend and by allowing to search for backends in an alternative directory, specified by an environment variable. - And the work on test scripts revealed some crash bugs which are all fixed now.
- Progress report - No update
- Progress report - 625 printers certified for IPP Everywhere v1.0 - 372 printers certified for IPP Everywhere v1.1
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Progress report - No update
- Project report - No update
- CUPS (Mike and Zdenek) - Current v2.x stable release is OP CUPS v2.4.2 on 26 May 2022. - There will be further bug fix releases in the 2.4.x series. - CUPS Filters (Till) - Current v1.x stable release is v1.28.17 on 24 January 2023 - Current v2.x beta release is v2.0b4 on 21 March 2023.
- PWG Virtual F2F - 7-9 February 2023 - Ira attended - https://www.pwg.org/chair/meeting-info/february-2023-virtual.html - Joint PWG/Open Printing Summit Virtual F2F - 16-18 May 2023 - Ira/Till/Aveek to attend - https://www.pwg.org/chair/meeting-info/meetings.html - Status of AMSC and ISO liaisons w/ PWG (Paul Tykodi) - http://ftp.pwg.org/pub/pwg/general/sc/pwg-sc-call-minutes-20230123.htm - http://ftp.pwg.org/pub/pwg/general/sc/pwg-sc-call-minutes-20230306.htm - http://ftp.pwg.org/pub/pwg/general/sc/pwg-sc-call-minutes-20230306.htm - see PWG Steering Committee minutes from 01/23/23, 03/06/23, 03/20/23 - IPP Everywhere v1.1 Printer Self-Certification Tools Update 4 (Mike) - https://www.pwg.org/archives/ipp/2022/021227.html - v1.1 Tools Update 4 fourth last call started 19 August 2022 - PWG F2F discussion on 16 August 2022 - IPP WG discussion on 1 September 2022 - IPP WG Last Call started on 19 August 2022 and ended on 2 September 2022 - Approved and Released on 2 September 2022 - IPP Workgroup Charter (Ira) - PWG Approved - http://ftp.pwg.org/pub/pwg/ipp/charter/ch-ipp-charter-20210409.pdf - updated for new IPP WG projects - PWG Approved on 9 April 2021 - to be updated for more recent IPP WG projects in Q2 2023 - IPP Production Printing Ext v2.0 (Mike) - PWG Approved - https://ftp.pwg.org/pub/pwg/candidates/cs-ippppx20-20230131-5100.3.pdf - for a Candidate Standard - major update of PWG 5100.3-2001 - Schedule - PWG Candidate Standard 5100.3-2023 published - IPP Job Extensions v2.1 (Mike) - PWG Approved - https://ftp.pwg.org/pub/pwg/candidates/cs-ippjobext21-20230210-5100.7.pdf - for a Candidate Standard - minor update of PWG 5100.7-2019 - Schedule - PWG Candidate Standard 5100.7-2023 published - IPP Driver Replacement Extensions v2.0 (Smith) - PWG Approved - https://ftp.pwg.org/pub/pwg/candidates/cs-ippnodriver20-20230301-5100.13.pdf - for a Candidate Standard - major update of PWG 5100.13-2012 - PWG Formal Vote started 1 February ended 1 March 2023 - two votes w/ comments - Schedule - PWG Candidate Standard 5100.13-2023 published - IPP IPP OAuth Extensions v1.0 - Initial draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippoauth10-20230310.pdf - for a Candidate Standard - IPP WG review on 30 March 2023 - Schedule - Prototype draft in Q3/Q4 2023 - IPP Enterprise Printing Ext v2.0 (Smith) - Prototype draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippepx20-20230208-rev.pdf - for a Candidate Standard - major update of PWG 5100.11-2019 - IPP WG review completed on 16 February 2022 - Schedule - Stable draft in Q2/Q3 2023 - IPP Encrypted Jobs and Documents (Mike/Smith) - Prototype draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ipptrustnoone10-20210519-rev.pdf - for a Candidate Standard - PWG status at PWG Virtual F2F on 15 November 2022 - Waiting for prototyping - Schedule - Stable draft in Q2/Q3 2023 - IPP 2.x (Mike/Ira) - Interim draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippbase23-20220809.pdf - major update of PWG 5100.12-2015 - PWG discussion at PWG Virtual F2F on 15 November 2022 - Schedule - Prototype draft in Q2/Q3 2022 - IPP Everywhere v2.0 (Mike/Ira) - Prototype draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippeve20-20221107-rev.pdf - major update - for a Candidate Standard - PWG discussion at PWG Virtual F2F on 15 November 2022 - Schedule - Stable draft in Q2/Q3 2023
- ISO JTC1/SC27 and TC22/SC32 JWG6 Hybrid F2F (Redmond, WA) - 20-21 April 2023 - Ira to attend - https://www.iso.org/standard/81805.html - GP/SAE Hybrid F2F (Troy, MI) - 21 April 2023 - Ira to attend - https://globalplatform.org/ - ISO/SAE JWG Hybrid F2F (Troy, MI) - 24-27 April 2023 - Ira to attend - https://www.iso.org/standard/70918.html - ISO TC204 61st Plenary Hybrid F2F (San Antonio, USA) - 15-19 May 2023 - Ira cannot attend - https://www.iso.org/committee/54706.html - Joint PWG/Open Printing Summit Virtual F2F - 16-18 May 2023 - Ira/Till/Aveek to attend - https://www.pwg.org/chair/meeting-info/meetings.html - Global Platform Cybersecurity Vehicle Forum Hybrid F2F (Plymouth, MI) - 20 June 2023 - Ira to attend - to be announced - ESCAR USA Physical F2F (Detroit, MI) - 21-22 June 2023 - Ira to attend - https://www.escar.info/escar-usa.html - Uptane Hybrid F2F (Southfield, MI) – Ira to attend - https://uptane.github.io/ - IETF 117 Hybrid F2F (San Francisco, USA) 24-28 July 2023 – Ira to attend - https://www.ietf.org/how/meetings/117/
Open Action Items
Next OP US/Europe/Brazil/India Conference Calls
- Tuesday 4 April 2022, Daytime - Note - ISO JTC1/SC27 and TC22/SC32 JWG6 Hybrid F2F (Redmond, WA) - 20-21 April 2023 - Note - GP/SAE Hybrid F2F (Troy, MI) - 21 April 2023 - Note - ISO/SAE JWG Hybrid F2F (Troy, MI) - 24-27 April 2023 - US 8am in San Francisco - US PDT (Pacific Daylight Time) 9am in Colorado - US MDT (Mountain Daylight Time) 10am in Chicago - US CDT (Central Daylight Time) 11am in New York - US EDT (Eastern Daylight Time) - Europe 5pm in Berlin - CEST (Central Europe Summer Time) - Brazil 2pm in Belo Horizonte - BRT (Brasilia Time) - India 10:30pm in New Delhi - IST (India Standard Time)
- Tuesday 9 May 2022, Daytime - Note - ISO TC204 61st Plenary Hybrid F2F (San Antonio, USA) - 15-19 May 2023 - Note - Joint PWG/Open Printing Summit Virtual F2F - 16-18 May 2023 - US 8am in San Francisco - US PDT (Pacific Daylight Time) 9am in Colorado - US MDT (Mountain Daylight Time) 10am in Chicago - US CDT (Central Daylight Time) 11am in New York - US EDT (Eastern Daylight Time) - Europe 5pm in Berlin - CEST (Central Europe Summer Time) - Brazil 2pm in Belo Horizonte - BRT (Brasilia Time) - India 10:30pm in New Delhi - IST (India Standard Time)
- Tuesday 6 June 2022, Daytime - Note - ISO TC204 61st Plenary Hybrid F2F (San Antonio, USA) - 15-19 May 2023 - Note - Joint PWG/Open Printing Summit Virtual F2F - 16-18 May 2023 - US 8am in San Francisco - US PDT (Pacific Daylight Time) 9am in Colorado - US MDT (Mountain Daylight Time) 10am in Chicago - US CDT (Central Daylight Time) 11am in New York - US EDT (Eastern Daylight Time) - Europe 5pm in Berlin - CEST (Central Europe Summer Time) - Brazil 2pm in Belo Horizonte - BRT (Brasilia Time) - India 10:30pm in New Delhi - IST (India Standard Time)