[Printing-architecture] github.com/OpenPrinting/goipp 1.1.0 and ipp-usb 0.9.24 announce

Alexander Pevzner <[email protected]> Fri, 8 Dec 2023 19:02:19 +0300
Newsgroups dev.linux.lists.printing-architecture
Message-ID <[email protected]>
Hi,

after long delay I'm glad to announce next releases of goipp and ipp-usb

(1) goipp

goipp is the independent, fairly complete implementation of the core IPP 
protocol (per RFC 8010), written in pure Go. It was created a while ago 
as a part of the ipp-usb project, because being working on that project 
I've noticed, to my surprise, that there is no working implementation of 
the IPP protocol in Go, and was moved into the separate project in 
assumption that it can be useful by itself, as a general-purpose IPP 
library.

This implementation written from scratch. CUPS code was only consulted 
as a source of expertise, but Go implementation is 100% independent.

The 1.1.0 version adds the following things:
   - workaround for Pantum M7300FDW. This device (and, probably, many 
similar) violates IPP protocol and encodes collection members as named 
attributes instead of using memberAttrName tags to represent attribute 
names within collections
   - Groups field added to the Message structure. It allows to represent 
IPP messages with repeated groups with the same group tags (like Get-Jobs)
   - near 100% test coverage
   - few minor bugs were discovered and fixed (mostly related to more 
accurate reporting of IPP decoding errors)
   - general improvements of errors reporting, mostly in formulating 
error messages

(2) ipp-usb

1. Added support for clients authentication 
(https://github.com/OpenPrinting/ipp-usb/issues/61), requested by RedHat 
a while ago

2. Added workaround for Canon Selphy CP1500 
(https://github.com/OpenPrinting/ipp-usb/issues/73). This device returns 
invalid IPP status in the Get-Printer-Attributes. Workaround implemented 
as the ignore-ipp-status in case it will be useful for other devices.

3. Added support for HP LaserJet MFP M426fdn, HP ColorLaserJet MFP 
M278-M281 and, probably, some similar devices.

These MFPs use non-standard Class/SubClass/Protocol combination for IPP 
over USB, 255/9/1. Ideally it should be implemented as quirk, but for 
now simply hardcoded (for idVendor == 0x03f0).

4. Workaround for Pantum M7300FDW (explained above, in the goipp announce).

Please note, that fixing Pantum M7300FDW requires the similar patch in 
CUPS, which is not currently approved (see 
https://github.com/OpenPrinting/cups/pull/826).

5. User-contributed FreeBSD port (see 
https://cgit.freebsd.org/ports/commit/?id=c30e4415453a5d3c5c0cd00d253250b8f7e2054d)

6. Some other bug fixes and small improvements.

This version requires goipp 1.1.0 for building.

-- 

	Wishes, Alexander Pevzner ([email protected])