Meeting called to order by Ira McDonald at 1pm US Eastern. Minutes taken by Ira McDonald.
Attendees
Agenda
- Discussion - 4-hour OP slot - discussion format, rather than presentation - CDT timing - Aveek has invited Mike and Ira to present during OP session - TBD due to overlap w/ PWG Virtual F2F 25-27 August 2020
- Discussion - Joint PWG/OP Summit Virtual F2F (PWG Host) - 25-27 August 2020 - Ira to attend - Ira invited Aveek and Till to present on GSoC/GSoD status - TBD due to overlap w/ Linux Plumbers
- Progress report - Excellent content and rapid maintenance - OP News - https://openprinting.github.io/news/ - new comment section added recently - OP Driverless Printing - https://openprinting.github.io/driverless/ - We need to go through the new OP website now and look for things which are still missing or need improving. Please report any issue here: - https://github.com/OpenPrinting/openprinting.github.io/issues
- Progress report - ippusbxd got some bug fixes and improvements from Fletcher Woodruff (PR #38 and #43) and Thierry Hucahrd (PR #41). Thanks very much to the contributors. - In ipp-usb, Alexander Pevzner added lots of bug fixes and hardware workarounds/quirks. Thanks to all the users who have tested with their devices and reported their problems. Probably many more users will have their device just work due to that testing. - ipp-usb is on the way into Red Hat (according to Alexander Pevzner) and also into Debian. Above is the link to the packaging request and Didier "OdyX" Raboud, printing maintainer of Debian, has taken it up and uploaded the appropriate package. Also thanks to Brian Potkin for posting the request.
- Progress report - See IPP over USB below.
- Progress report - Jai Luthra is our OP GSoC 2020 student. - Device discovery via DNSSD, SNMP. - Command line interface (papplMainloop) - PCL driver (CUPS rastertohp) example - Next for work is the packaging and documenting the driver.
- Progress report - Alexander Pevzner, author of the IPP-over-USB daemon ipp-usb and of the AirScan/eSCL/WSD scanner driver sane-airscan asked us to post this news of his work - sane-aiscan - Though sane-airscan is not included into any any major distro, its popularity among users grows, and it receives more testing on a growing variety of hardware. - Most of newly discovered issues are either firmware bugs that require workarounds, or certain corner cases, like not running Avahi daemon or device announces 2 IP addresses, one of them is not reachable from host. - A couple of hard to reproduce crash bugs were found and fixed with the help of clang static analyzer. - Added packaging for ARM32 and ARM64, targeting Raspberry Pi users. - There are already 7 devices in the list that support WSD, but don't support eSCL, so the idea to implement WSD was useful. - Integration into SANE project seems to be finally stuck. Meanwhile Alexander works directly with Benjamin Gordon on integration into ChromeOS and Zdenek Dohnal on integration into Fedora. - ipp-usb - Initially ipp-usb was targeting distro maintainers. That is why its initial documentation is rather short technical and no binary packaging was provided. - Recently Alexander has discovered certain interest among end users to install and use ipp-usb. So Alexander has provided packages for many distros, including ARM32/ARM64. - ipp-usb is also known to work on mipsel Linux, but Alexander can't provide packaging for this platform due to OBS limitations. - As with sane-airscan, growing popularity implies more testing, and some issues were discovered and fixed. - Some users were interested in directly exporting printer into local network segment, which is safe and reliable with ipp-usb. In result, incompatibilities with iOS devices were found and fixed (Android devices were always working). This fix was ported to ippusbxd too. - Most of other issues are of the same class: device returns truncated HTTP response, and ipp-usb stuck forever, waiting for missed part of response, which effectively blocks the USB connection. - The solution is the same in all cases: properly set "Connection: close" or "Connection: keep-alive" header in outgoing HTTP request. Unfortunately, different devices require different settings of this header. - As it is hard to organize testing on hundreds of devices, a more generic solution of this problem is required. - Zdenek Dohnal seems to begin working on integration of the ipp-usb into Fedora. - The projects are not only on their way into Red Hat but also into Debian. Packaging requests for both ipp-usb and sane-airscan have been posted and Didier "OdyX" Raboud, printing maintainer of Debian, has taken up both and uploaded the appropriate packages. Also thanks to Brian Potkin for posting the request for ipp-usb.
- Progress report - The Snap is now renamed to simply be the "cups-snap" project on the OpenPrinting GitHub and "cups" in the Snap Store. - The build service of the Snap Store is now attached to our GitHub repository and builds the CUPS Snap for 6 architectures (amd64, i386, armhf, arm64, ppc64el, and s390x). Note that the CUPS Snap cannot be downloaded and installed through the Snap Store yet as it will need new "cups" and "cups-control" interfaces (https://github.com/snapcore/snapd/pull/8920) which are not yet added to snapd. Till has already tested them and they work as expected. - Till has tested the CUPS Snap a lot during the last month and fixed a lot of bugs, especially making all components build on all the 6 architectures supported by the Snap Store, making utilities like lpoptions, cupsfilter, and driverless work correctly, making DNS-SD-service-name-based URIs correctly resolve if the service is local (Printer Application or IPP-over-USB), and updating the README.md to reflect the renaming and the current use of interfaces.
- CUPS source code and bug reports are handled on GitHub now - https://github.com/apple/cups/ - CUPS Summary (Till) - Current CUPS release is still v2.3.3 on 24 April 2020 (Apple) - Security fixes - No further releases or GIT commits. Also 79 open issues and 18 open Pull requests. Only a few answers from upstream developers. - Till has asked several people about what is happening here but did not get really clear answers. But it seems that the learning needed by the new Apple CUPS engineers, COVID-19, and the switch of Apple from Intel to ARM architecture have much influence on this. - Till is thinking about, as a last resort, temporarily forking CUPS so that distribution maintainers can collaborate on fixing bugs there. - CUPS Filters Summary (Till) - Currently release is v1.27.5 on 9 April 2020. - No new release, due to the fact that Till is currently working on a major feature addition which he wants to complete before releasing v1.28.0 and which is important for the switch over to Printer Applications: - libppd - One important point for the CUPS Snap is that it does not support classic printer drivers, consisting of PPD files and filters. So for using CUPS Snap as the default CUPS implementation in a Linux distribution, all existing printer drivers need to be turned into Printer Applications, and this with a minimum effort of coding. - Most of these drivers (probably all except Gutenprint) are difficult to get converted by their original authors, as they are not maintaining the drivers any more, supported printers are old and no one wants to code for them any more, drivers are simply only a big bunches of PPD files, no source code, driver is proprietary, closed source, ... - So we need a way to retro-fit these drivers by wrapping them into Printer Applications with the lowest coding effort possible and also without needing to modify the original driver executables. - This works best if we use the driver's PPD files inside the Printer Application and so we need to handle PPD files, although the PPD handling support was removed from CUPS and especially libcups. - To avoid inventing the wheel again, writing a lot of handling code for a totally obsolete file format, Till has grabbed all the PPD handling functions from libcups (current GitHub state, CUPS 2.3.3) and put them into the new libppd which Till has added to cups-filters. - libppd has the following properties - All PPD-handling-related functions from libcups (except loading the PPD from a CUPS queue or polling a PPD repository on a CUPS server) are overtaken. - Also the CUPS-private functions related to PPDs are overtaken and added to libppd's public API. - Other private or internal functions are overtaken from libcups as they are needed for the PPD-related functions to work. They are not added to the API. - Some functions of tools and utilities like ippeveprinter and ippeveps are overtaken. - All API functions have names starting with "ppd" and written in camel-case, some needed to get renamed for that. - libppd is separate from libcupsfilters, so it does not need to get included in a Printer Application which uses the functionality of cups-filters but does not use PPD files. - NOTE: This is NOT to encourage printer driver developers to continue to create new PPD files for new printers. It is ONLY meant to be used for retro-fitting existing classic CUPS drivers and PostScript PPD files. There will be no further development on the library's code, especially no new PPD format extensions. - The next release of cups-filters, v1.28.0, will contain libppd for the first time. It is already, shortly before completion for v1.28.0, in the GitHub repository in the ppd/ subdirectory. - Further work: - pclmtoraster - GSoC student Vikrant Malik's project is to extract raster data from PDf files which only consist of embedded raster images, not containing text, fonts, or vector graphics. This allows for higher print quality of such PDFs as input files (for example scanned files) and also to convert PDF output of scanners into dedicated raster formats like TIFF, PWG Raster, ... - One known raster-only PDF format is HP PCLm and therefore Vikrant has started his work by adding the new pclmtoraster filter to cups-filters. He also worked a lot on converting raster formats between color spaces an bit depths. - Bug fixes - Many bug fixes in cups-browsed, the filters, and the sample PPDs have been performed, often with the help of our GSoC students or candidates doing assignments. Thanks to all of them. - Note also that the sample PPD files have moved to the new ppdfiles/ subdirectory. - CUPS release v1.28.0 planned changes (Till) - Build system: Remove '-D_PPD_DEPRECATED=""' from the compiling command lines of the source files which use libcups. The flag is not supported any more for longer times already and all the PPD-related functions deprecated by CUPS have been moved into libppd now. - libcupsfilters, libppd: Older versions of libcups (< 2.3.1) had the enum name for fold-accordion finishings mistyped. Added a workaround. - cups-browsed: Remove left-over local queues from the previous session more quickly when CUPS legacy browsing is turned on. - cups-browsed: Left-over local queues from the previous session for which the corresponding remote printer did not appear again did not get removed as they were considered externally overwritten. - gstoraster, gstopdf: Add option "-dDoNumCopies" to Ghostscript command line if we are outputting PDF (called via gstopdf wrapper) and the number of copies supplied to CUPS is 1 (4th command line argument). In this case we convert incoming PostScript to PDF and need to respect embedded PostScript commands to implement the number of copies (Issue #255, CUPS Issue #5796, OpenSUSE bug #1173345). - imagetoraster: Potential null dereference fix (when no valid PPD is supplied, Pull request #256). - libppd: Added the new libppd library overtaking all the PPD handling functions from libcups as they are deprecated there and will probably get removed with the next CUPS version. This form of conversion is mainly intended for converting classic printer drivers which use PPDs into Printer Applications without completely rewriting them. Side effect that all the compiler warnings about deprecated libcups functions went away and so cups-filters is free of warnings again. The library still needs some testing and optimization. - Sample PPDs: Renamed source directory from "ppd/" to "ppdfiles/" - cups-browsed: Call cupsGetNamedDest() only if "OnlyUnsupportedByCUPS No" - Sample PPDs: Corrected ColorModel default for Generic PWG Raster PPD to Color (Pull request #247). - cups-browsed: Mark the temp queue as cups-browsed-generated during setting printer-is-shared (Pull request #246). - cups-browsed: Remove mentions of README and AUTHORS files in the man page (Pull request #244). - pclmtoraster: Added new filter to extract Raster data from raster-only PDF files, here for the special case of PCLm files (Pull request #243, #257). - Sample PPDs: In Generic-PDF_Printer-PDF.ppd add option to switch between color and grayscale printing (Pull request #237).
- GSoC 2020 Status - On 1 June 2020 the coding period of this year's Google Summer of Code started! - The first evaluations have ended and all the 15 students for Linux Foundation have passed, including the 7 students for OpenPrinting. - Most of our 7 students also gave short introductions to their projects during this month's OpenPrinting teleconference. - These are the 7 student projects this summer: - Linux GUI application (can be part of GNOME printer tool) to admin MF devices using IPP System Service - Student: Lakshay Bandlish - Mentors: Rithvik Patibandla, Michael Sweet, Ira McDonald, Smith Kennedy, Danny Brennan - Common Print Dialog Backends (CPDB) Qt implementation - Student: Priydarshi Singh - Mentors: Dongxu Li, Nilanjana Lodh, Till Kamppeter, Deepak Patankar - IPP scan (or virtual MF device) server (Scanner Application) - Student: Aakash Lahoti - Mentors: Alexander Pevzner, Thierry Hucahrd, Michael Sweet, Ira McDonald, Smith Kennedy, TIll Kamppeter - General Printer Application SDK (PAPPL-based) - Student: Jai Luthra - Mentors: Dheeraj Yadav, Michael Sweet, Ira McDonald, Till Kamppeter - Make Printer Applications configurable (via PAPPL) - Student: Sambhav Dusad - Mentors: Michael Sweet, Dheeraj Yadav, Ira McDonald, Till Kamppeter, Sahil Arora - Speed/scaling optimization of cups-browsed - Student: Mohit Mohan - Mentors: Till Kamppeter, Deepak Patankar - Extract raster data from PDFs for direct printing - Student: Vikrant Malik - Mentors: Sahil Arora, Alexander Pevzner, Thierry Hucahrd, Till Kamppeter - Some GSoC 2020 student work reports for the first month (June): - Mohit Mohan - Hi everyone, I am Mohit Mohan, junior at IIT Kanpur in the CSE department. I am a GSoC student this year, working with Open Printing on the project "Speed/Scaling optimisation of cups-browsed". As the first coding period completed a few days back, I wanted to inform you all about what I did in that time. - But first a bit about the problem with cups-browsed. cups-browsed is a very useful tool for networks with large numbers of printers but, as it discovers the printers on the network one by one, as the number of printers increases, the time taken to create a queue for all of the printers greatly increases. - To understand more about this issue, I tested cups-browsed with different numbers of printers, to find out how much time it takes to create queues. Next thing to find out was where it was taking most time. To do that, I found out time taken by some of the important functions during a queue creation. From the results, it was quite clear that update_cups_queues() was taking the most time. This function actually creates the queue. - As my mentors Till Kamppeter and Deepak Patankar suggested, I looked at where it was taking most of the time in update_cups_queues(), and found out that it was cupsGetNamedDest(), which is a part of the CUPS API to get a specific destination from the list of available destinations. We tried all available alternatives, but none of them worked faster, so in the end we decided to stay with cupsGetNamedDest(). You can find the results at the link above. - I also created a design document for implementing multi-threading in cups-browsed. You can find that design document at the link above. - In the next phase, I am working on implementing multi-threading in cups-browsed. - Jai Luthra - ...here’s my progress with PAPPL. - Device discovery via DNS-SD, SNMP. - Command line interface (papplMainloop) - PCL driver (CUPS rastertohp) example - Next work is for the packaging and documenting the driver. - GSoC 2020 Timeline (*updated by Google) - DONE - 14 January - Mentoring organization applications submissions start - DONE - 5 February - Mentoring organization application submissions end - DONE - 5-19 February - Google program administrators review organization applications - DONE - 20 February - List of accepted mentoring organizations published - DONE - 20 February to 16 March - Potential student participants discuss ideas w/ mentors - DONE - 16 March - Student application submissions start - DONE - 31 March - Student application submissions end - DONE - 21 April* - Student slot requests due from Org Admins - DONE - 30 April* - Student Project selections due from Org Admins - DONE - 4 May* - Accepted student projects announced - DONE - 1 June* - Coding officially begins! - DONE - 29 June* - Mentors and students can begin submitting Phase 1 evaluations - DONE - 3 July* - Phase 1 Evaluation deadline - 27 July* - Mentors and students can begin submitting Phase 2 evaluations - 31 July* - Phase 2 Evaluation deadline - 24-31 August* - Final week: Students submit their final work and mentor evaluations - 31 August to 7 September* - Mentors submit final student evaluations - 8 September* - Final results of Google Summer of Code 2020 announced
- GSoD 2020 Status - During June was also the time window for the technical writers' applications and we got actually many applications, including for the 2 OpenPrinting projects. Some of the candidates were already interacting with us while writing up their proposals. - GSoD 2020 Timeline - DONE - 11 May 2020 – Accepted mentoring organizations announced - DONE - 9 July 2020 – Technical writer applications deadline - 16 August 2020 – Accepted technical writer projects announced - 14 September 2020 – Doc development officially begins - 30 November to 5 December 2020 – Final week for standard length - 6 January 2021 – GSoD 2020 standard length results announced - 1-8 March 2021 – Final week for long-running projects - 15 March 2021 – GSoD 2020 long-running results announced
- Project status - We got accepted in the LFMP for a 2-student project, letting one student create a framework for converting existing proprietary printer drivers intp Printer Applications and the other student integrating IPP FaxOut support into the Linux desktop. - The project is currently open for student applications and the work period will be 1 August 2020 to 31 October 2020. Several students have already applied and, to introduce them to OpenPrinting and to select them, we gave the cups-filters issues to work on as assignments.
- PWG Virtual F2F - 25-27 August 2020 - Ira to attend - https://www.pwg.org/chair/meeting-info/august-2020-virtual.html - changed to 3 days (4 hours each) per PWG Steering Committee on 05/18/20 - Status of AMSC and ISO liaisons w/ PWG (Paul Tykodi) - http://ftp.pwg.org/pub/pwg/general/sc/pwg-sc-call-minutes-20200601.htm - http://ftp.pwg.org/pub/pwg/general/sc/pwg-sc-call-minutes-20200615.htm - http://ftp.pwg.org/pub/pwg/general/sc/pwg-sc-call-minutes-20200629.htm - see PWG Steering Committee minutes from 06/01/20, 06/15/20, 06/29/20 - PWG Hardcopy Device Security Guidelines v1.0 - Interim draft - https://ftp.pwg.org/pub/pwg/ids/wd/wd-idshcdsec10-20200120-rev.pdf - for a Best Practice - PWG F2F review on 6 February 2020 - PWG/OP Summit Virtual F2F status on 7 May 2020 - Schedule - next Interim draft in Q3 2020 - Schedule - Prototype draft in Q4 2020 / Q1 2021 - IPP Everywhere v1.0 Printer Self-Cert Tools Update 5 (Mike) - https://www.pwg.org/archives/ipp/2020/020590.html - Fixed support for the `-m` option of the `ippevesubmit` command - Made output JSON from the `ippevesubmit` command pass as standalone JSON - Fixed Windows TLS client support - Increased the timeout for the browse tests to 5 seconds - IPP Everywhere 1.1 Printer Self-Certification Tools Update 1 (Mike) - https://www.pwg.org/archives/ipp/2020/020590.html - Fixed support for the `-m` option of the `ippevesubmit` command - Made output JSON from the `ippevesubmit` command pass as standalone JSON - Fixed Windows TLS client support - Increased the timeout for the browse tests to 5 seconds - IPP Driverless Printing Extensions v2.0 (Smith) - Interim draft - https://ftp.pwg.org/pub/pwg/ipp/wd-ippnodriver20-20200204-rev.pdf - for a Candidate Standard - major update of PWG 5100.13-2012 - IPP WG review on 19 March 2020 - completed! - PWG/OP Summit Virtual F2F discussion on print-quality on 08 May 2020 - IPP WG discussion on print-quality on 22 May 2020 and 4 June 2020 - Schedule - Prototype draft in Q4 2020 - IPP Production Printing Ext v2.0 (Mike) - Prototype draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippppx20-20200429-rev.pdf - for a Candidate Standard - major update of PWG 5100.3-2001 - PWG F2F review on 5-6 February 2020 - PWG/OP Summit Virtual F2F status on 8 May 2020 - prototype in ippserver (newly REQUIRED and RECOMMENDED attributes) - Schedule - Stable draft in Q4 2020 - IPP Enterprise Printing Extensions v2.0 (Smith) - Interim draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippepx20-20200630-rev.pdf - for a Candidate Standard - major update of PWG 5100.11-2010 - IPP WG review on 18 June 2020 - Schedule - Prototype draft Q3/Q4 2020 - Job Accounting for IPP v1.0 (Mike) - Interim draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ippaccounting10-20200608-rev.pdf - for a Best Practice - PWG F2F review on 5 February 2020 - IPP WG status on 18 June 2020 - Schedule - Prototype draft in Q3 2020 - IPP Encrypted Jobs and Documents (Mike/Smith) - Interim draft - https://ftp.pwg.org/pub/pwg/ipp/wd/wd-ipptrustnoone10-20200218-rev.pdf - for a Candidate Standard - PWG F2F review on 6 February 2020 - Schedule - Prototype draft in Q4 2020 / Q1 2021
- ISO TC22/SC32/WG12 Virtual F2F 13-17 July 2020 - Ira to attend - https://www.iso.org/standard/77796.html - ISO 24089 Road Vehicles Software Update - IETF 108 Virtual F2F – 25-31 July 2020 - Ira to attend - https://www.ietf.org/how/meetings/108/ - physical F2F was canceled - IEEE 1609 Virtual F2F - 4-5 August 2020 - Ira to attend - https://www.standards.its.dot.gov/Factsheets/Factsheet/80 - 3GPP SA3#100 Virtual F2F - 17-28 August 2020 - Ira to monitor - https://www.3gpp.org/specifications-groups/sa-plenary/sa3-security - PWG Virtual F2F - 25-27 August 2020 - Ira to attend - http://www.pwg.org/chair/meeting-info/meetings.html - IEEE 1609 Virtual F2F - 22-23 September 2020 - Ira to attend - https://www.standards.its.dot.gov/Factsheets/Factsheet/80 - IEEE 1609 Virtual F2F - 6 October 2020 - Ira to attend - https://www.standards.its.dot.gov/Factsheets/Factsheet/80 - 3GPP SA3#100bis Virtual F2F - 12-16 October 2020 - Ira to monitor - https://www.3gpp.org/specifications-groups/sa-plenary/sa3-security - TCG Members Meeting Virtual F2F - 12-16 October 2020 - Ira to attend - https://trustedcomputinggroup.org/ - 3GPP SA3#101 Virtual F2F - 9-20 November 2020 - Ira to monitor - https://www.3gpp.org/specifications-groups/sa-plenary/sa3-security - PWG Virtual F2F - 10-12 November 2020 - Ira to attend - http://www.pwg.org/chair/meeting-info/meetings.html - IETF 109 Virtual F2F - 16-20 November 2020 - Ira to attend - https://www.ietf.org/how/meetings/109/ - original physical F2F in Bangkok, Thailand will be canceled
Open Action Items
Next OP US/Europe/Brazil/India Conference Calls
- Tuesday 11 August 2020, Daytime - Bluejeans.com web conference to be announced - Note - IEEE 1609 Virtual F2F - 4-5 August 2020 - Note - PWG Virtual F2F - 25-27 August 2020 - US 10am in San Francisco - US PDT (Pacific Daylight Time) 11am in Colorado - US MDT (Mountain Daylight Time) 12am in Chicago - US CDT (Central Daylight Time) 1pm in New York - US EDT (Eastern Daylight Time) - Europe 7pm 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 1 September 2020, Daytime - Bluejeans.com web conference to be announced - Note - US Labor Day holiday - 7 September 2020 - US 10am in San Francisco - US PDT (Pacific Daylight Time) 11am in Colorado - US MDT (Mountain Daylight Time) 12am in Chicago - US CDT (Central Daylight Time) 1pm in New York - US EDT (Eastern Daylight Time) - Europe 7pm 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 20 October 2020, Daytime - Bluejeans.com web conference to be announced - Note - IEEE 1609 Virtual F2F - 6 October 2020 - Note - TCG Virtual F2F 12-16 October 2020 - Note - EU Summer Time ends 25 October 2020 - Note - US Daylight Time ends 1 November 2020 - US 10am in San Francisco - US PDT (Pacific Daylight Time) 11am in Colorado - US MDT (Mountain Daylight Time) 12am in Chicago - US CDT (Central Daylight Time) 1pm in New York - US EDT (Eastern Daylight Time) - Europe 7pm 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)