From Fedora Project Wiki

< Changes

Revision as of 17:20, 4 January 2023 by Zdohnal (talk | contribs) (WIP: ipp-usb)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Important.png
Comments and Explanations
The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To read it, choose the "view source" link.
Copy the source to a new page before making changes! DO NOT EDIT THIS TEMPLATE FOR YOUR CHANGE PROPOSAL.
Idea.png
Guidance
For details on how to fill out this form, see the documentation.
Idea.png
Report issues
To report an issue with this template, file an issue in the pgm_docs repo.


IPP-USB as a weak dependency of CUPS and sane-airscan

Important.png
This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

Add ipp-usb as a weak dependency of packages which provide support for driverless printing (cups) and driverless scanning (sane-airscan) for USB devices capable of using driverless functionality (how to find out whether your USB device is driverless here), so such devices will work without a specific driver. ipp-usb design conflicts with the way how drivers work with the device, so a user intervention is required after upgrade.

Owner


Current status

  • Targeted release: Fedora Linux 38
  • Last updated: 2023-01-04
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

Nowadays most printers and scanners from common vendors provide a way how to work without a specific driver. This way relies on driverless standards implemented in device's firmware and their support in the operating system user has. At first (in 2010) network driverless standards were implemented in devices and widely spread, such as AirPrint, IPP Everywhere for printers or eSCL (sometimes called AirScan) and WSD (Windows Service Discovery) for scanners. Those network driverless standards and others are already supported in cups (for printing) and sane-airscan packages. Two years later USB devices got their own driverless standard - IPP over USB - which is now implemented by ipp-usb.

The ipp-usb package contains ipp-usb daemon, which works as an HTTP proxy over the claimed USB devices, provides printing (via IPP 2.0+ protocol), scanning (via eSCL and WSD) and fax (via IPP Faxout) support and advertises them on localhost by mDNS protocol. mDNS is the key feature for automatic printer discovery, but it is not required to used it - the virtual device provided by ipp-usb can be accessed by URI ipp://localhost:60000/ipp/print and the URI can be used for permanent queue installation - here is the manual. Once ipp-usb is in place and has claimed the driverless USB device, CUPS and sane-airscan can pick up the virtual device shared by the daemon and then they communicate with it via network driverless protocols.

As mentioned above, the ipp-usb daemon claims the USB interface of the device which supports IPP over USB standard. This behavior conflicts with the previous driver approach, where the discovery mechanism only scans USB ports for available devices, but doesn't try to claim the device, which is unavailable because ipp-usb has claimed it already. The result is the device can be discovered by classic driver tools, but it won't work once user wants to print or scan. In such cases user intervention is needed, where user has to make a decision whether to use driverless USB printing or classic printing with drivers. The way how to do it will be explained later in this proposal.

As the last resort for opt-out from driverless USB printing the ipp-usb package will be added as a weak dependency of cups and sane-airscan, so it can be uninstalled without losing the rest of the printing and scanning stack.

Feedback

I've investigated possible solutions for two biggest concerns which adding ipp-usb has raised and consulted it upstream:

1.

Benefit to Fedora

Scope

  • Proposal owners:
  • Other developers:
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives:

Upgrade/compatibility impact

How To Test

User Experience

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation

N/A (not a System Wide Change)

Release Notes