[Printing-architecture] OpenPrinting News

Till Kamppeter till.kamppeter at gmail.com
Sun May 12 16:03:03 UTC 2019


Hi,

here is the newest development of the last month.

    Till

----------


Google Summer of Code 2019
--------------------------

Google has distributed the slots and officially announced the accepted 
proposals. The Linux Foundation has got all the 12 requested slots, so 
we can have all our 5 selected students working for OpenPrinting.

1. Generic Framework to turn legacy drivers consisting of CUPS filters 
and PPDs into Printer Applications

Student: Dheeraj Yadav
Mentor: Till Kamppeter

2. Improve the pdftoraster filter to not use undocumented/unstable APIs 
of Poppler

Student: Tanmay Anand
Mentor: Sahil Arora

3. IPP: ipptool test suite updates for IPP errata updates

Student: Sharad Shukla
Mentors: Smith Kennedy, Ira McDonald, Danny Brennan

4. ipptool test suite for IPP System Service

Student: Aakash Lahoti
Mentors: Smith Kennedy, Ira McDonald, Danny Brennan

5. Turn the scp-dbus-service of system-config-printer into C

Student: Sobhan Mondal
Mentors: Zdenek Dohnal

The students who had assignments during the selection process are 
currently finishing them and they also partially started to work on 
their projects.


Avahi
-----

Not continued yet by Trent as he has still urgent work to do.


OpenPrinting web site
---------------------

Not much done here as the 2019 students workded on cups-filters issues 
which they got as assignments during the selection process, started also 
on work for the actual GSoC project and had exams at school.

Sahil is currentyly re-initiating the process.


CUPS
----

2.3b8 released.

CUPS 2.3b8 is another bug fix release.

Changes in CUPS v2.3b8
----------------------

- Media size matching now uses a tolerance of 0.5mm (rdar://33822024)
- The lpadmin command would hang with a bad PPD file (rdar://41495016)
- Fixed a potential crash bug in cups-driverd (rdar://46625579)
- Fixed a performance regression with large PPDs (rdar://47040759)
- Fixed a memory reallocation bug in HTTP header value expansion
   (rdar://problem/50000749)
- Restored minimal support for the `Emulators` keyword in PPD files to
   allow old Samsung printer drivers to continue to work (Issue #5562)
- The scheduler did not encode octetString values like "job-password"
   correctly for the print filters (Issue #5558)
- The `cupsCheckDestSupported` function did not check octetString values
   correctly (Issue #5557)
- Added support for `UserAgentTokens` directive in "client.conf" (Issue
   #5555)
- Updated the systemd service file for cupsd (Issue #5551)
- The `ippValidateAttribute` function did not catch all instances of
   invalid UTF-8 strings (Issue #5509)
- Fixed an issue with the self-signed certificates generated by GNU TLS
   (Issue #5506)
- Fixed a potential memory leak when reading at the end of a file (Issue
   #5473)
- Fixed potential unaligned accesses in the string pool (Issue #5474)
- Fixed a potential memory leak when loading a PPD file (Issue #5475)
- Added a USB quirks rule for the Lexmark E120n (Issue #5478)
- Updated the USB quirks rule for Zebra label printers (Issue #5395)
- Fixed a compile error on Linux (Issue #5483)
- The lpadmin command, web interface, and scheduler all queried an IPP
   Everywhere printer differently, resulting in different PPDs for the
   same printer (Issue #5484)
- The web interface no longer provides access to the log files (Issue
   #5513)
- Non-Kerberized printing to Windows via IPP was broken (Issue #5515)
- Eliminated use of private headers and some deprecated macOS APIs
   (Issue #5516)
- The scheduler no longer stops a printer if an error occurs when a job
   is canceled or aborted (Issue #5517)
- Added a USB quirks rule for the DYMO 450 Turbo (Issue #5521)
- Added a USB quirks rule for Xerox printers (Issue #5523)
- The scheduler's self-signed certificate did not include all of the
   alternate names for the server when using GNU TLS (Issue #5525)
- Fixed compiler warnings with newer versions of GCC (Issue #5532, Issue
   #5533)
- Fixed some PPD caching and IPP Everywhere PPD accounting/password bugs
   (Issue #5535)
- Fixed `PreserveJobHistory` bug with time values (Issue #5538)
- The scheduler no longer advertises the HTTP methods it supports (Issue
   #5540)
- Localization updates (Issue #5461, Issues #5471, Issue #5481, Issue
   #5486, Issue #5489, Issue #5491, Issue #5492, Issue #5493, Issue
   #5494, Issue #5495, Issue #5497, Issue #5499, Issue #5500, Issue
   #5501, Issue #5504)
- The scheduler did not always idle exit as quickly as it could.
- Added a new `ippeveprinter` command based on the old ippserver sample
   code.

2.22.11 released.

CUPS 2.2.11 is a bug fix release that addresses issues in the scheduler, 
IPP Everywhere support, CUPS library, and USB printer support.

Changes in CUPS v2.2.11
-----------------------

- Running ppdmerge with the same input and output filenames did not work
   as advertised (Issue #5455)
- Fixed a potential memory leak when reading at the end of a file (Issue
   #5473)
- Fixed potential unaligned accesses in the string pool (Issue #5474)
- Fixed a potential memory leak when loading a PPD file (Issue #5475)
- Added a USB quirks rule for the Lexmark E120n (Issue #5478)
- Updated the USB quirks rule for Zebra label printers (Issue #5395)
- Fixed a compile error on Linux (Issue #5483)
- The lpadmin command, web interface, and scheduler all queried an IPP
   Everywhere printer differently, resulting in different PPDs for the
   same printer (Issue #5484)
- Fixed an issue with the self-signed certificates generated by GNU TLS
   (Issue #5506)
- The `ippValidateAttribute` function did not catch all instances of
   invalid UTF-8 strings (Issue #5509)
- Non-Kerberized printing to Windows via IPP was broken (Issue #5515)
- The scheduler no longer stops a printer if an error occurs when a job
   is canceled or aborted (Issue #5517)
- Added a USB quirks rule for the DYMO 450 Turbo (Issue #5521)
- Added a USB quirks rule for Xerox printers (Issue #5523)
- The scheduler's self-signed certificate did not include all of the
   alternate names for the server when using GNU TLS (Issue #5525)
- Fixed compiler warnings with newer versions of GCC (Issue #5532, Issue
   #5533)
- Fixed some PPD caching and IPP Everywhere PPD accounting/password bugs
   (Issue #5535)
- Fixed `PreserveJobHistory` bug with time values (Issue #5538)
- Media size matching now uses a tolerance of 0.5mm (rdar://33822024)
- The lpadmin command would hang with a bad PPD file (rdar://41495016)
- Fixed a potential crash bug in cups-driverd (rdar://46625579)
- Fixed a performance regression with large PPDs (rdar://47040759)
- The scheduler did not always idle exit as quickly as it could.


cups-filters
------------

Currently released is 1.22.5.

1.22.5 is also the cups-filters release in Ubuntu 19.04 (Disco).

Deepak Patankar has finished his GSoC 2018 project of auto-selection
of the destination printer by job content and options with cups-browsed. 
Together with this he has also made cups-browsed not downloading PPD 
files of remote CUPS queues from the servers any more and treating 
remote CUPS queues and native IPP network printers equally, working 
towards the deprecation of PPD files.

He has posted a pull request with all his code:

https://github.com/OpenPrinting/cups-filters/pull/116

Before merging this pull request I will release 1.22.6 with all the bug 
fixes which came together during the last month and also with some fixes 
coming up in the next days of the last assignments getting finished.

After that I will merge the pull request and after some testing release 
1.23.0 as the next feature release ending a feature-less year for 
cups-browsed.

1.22.5:

Bug fix release, to make foomatic-rip working with Ghostscript 9.27 and 
later.

CHANGES IN V1.22.6

	- Build system: ENABLE_DRIVERLESS got only defined with CUPS
	  1.6 and newer, not with older CUPS versions (Issue #111).
	- pdftopdf, imagetopdf, imagetoraster: Silenced compiler
           warnings.
	- cups-browsed, driverless: Replaced httpConnect() calls by
	  httpConnect2() calls as the former CUPS library function is
	  deprecated.
	- Build system: Compile everything using the CUPS libraries
	  with '-D_PPD_DEPRECATED=""' for the time being until the
	  deprecated PPD API calls get replaced, to stop the flooding
	  with PPD API deprecation warnings making more important
	  warnings being overlooked.
	- cups-browsed: When removing a local queue on shutdown or
	  when DNS-SD reports the printer as disappeared check whether
	  the local queue got overwritten by an external process as
	  sometimes the shutdown or disappearing event comes too close
	  for cups-browsed receiving a printer-modified notification
	  from CUPS before (Ubuntu bug #1731417).

CHANGES IN V1.22.5

	- foomatic-rip: Changed Ghostscript call to count pages in a
	  PDF file to use "runpdfbegin" and not the undocumented
	  Ghostscript internal "pdfdict", so that it works with
	  Ghostscript 9.27 and later (Debian bug #926576, Arch Linux
	  bug #62251).


ippusbxd
--------

On the Summit I have talked about the following two issues in ippusbxd 
with Sean Kau from Google (and also mailed to David Valleau from Google, 
no answer yet):

First, if I have a printer/scanner multi-function device connected via 
USB and ippusbxd is connected to it I can print perfectly, driverless 
via IPP, but I cannot scan as, unfortunately, the industry did not adopt 
the PWG driverless IPP scanning standard yet. And if I want to scan via 
a classic SANE driver accessing via USB conventionally, it does not work 
because ippusbxd occupies all USB interfaces/channels.

So I am asking whether one could modify ippusbxd to dynamically occupy 
channels, so that, at least when no print job is running, one can scan 
the conventional USB/SANE way. Is this possible?

One should note that not all multi-function devices have a scanning UI 
in their admin web interface and that these UIs are rather restricted 
compared to typical SANE frontends.

The second issue is

https://github.com/tillkamppeter/ippusbxd/pull/12

Adding Support for Unix Domain Sockets

I have asked whether this is still used in Chrome OS? If so, I asked for 
re-posting this pull request to the now official repo 
https://github.com/OpenPrinting/ippusbxd of ippusbxd.

No actual changes on the code.


More information about the Printing-architecture mailing list