[MIR] sane-airscan

Bug #1891682 reported by Till Kamppeter
30
This bug affects 3 people
Affects Status Importance Assigned to Milestone
sane-airscan (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Driverless Scanning
-------------------

TL;DR: sane-airscan provides perfect support for driverless scanning, making thousands of devices working

Printer manufacturers have introduced driverless printing standards to allow easy use of their (usually network) printers also from mobile phones, tablets, and IoT devices and not only from desktop computers which in most cases run Windows or Mac OS. This we have made use of to be able to print on a huge amount of printers from Linux and other free software operating systems.

But multi-function devices with a scanner do also allow scanning from mobile devices and have a scan standard for that. Every device which supports Apple's AirPrint supports also AirScan and AirScan means that the device either scans via eSCL (from HP and Apple) or via WSD (from Microsoft and W3C).

Also of this we make use to get a wide range of devices "just" working under Linux. This covers practically any modern network multi-function device, thousands of models. Finally we can also scan on multi-function devices which are not from HP (but scanning on the HP ones gets also easier, without needing HPLIP). And we even have discovered a USB-only stand-alone scanner doing driverless scanning, the Canon Lide 400.

sane-airscan is the a SANE backend for supporting this. It supports both eSCL and WSD to their full extent, especially also for scanners with extra functionality like an Automatic Document Feeder (ADF). It is designed as a universal SANE backend for high-level scanning protocols, as much of the code as possible is shared between protocols, the protocol-specific parts are small. So easily new protocols, like TWAIN Direct or IPP Scan, can get added later. IPP Scan is especially important as it will help us to make scanner drivers snappable in the future.

Why not sane-escl which sane-backends already ships?
----------------------------------------------------

TL;DR: sane-escl is deprecated in favor of sane-airscan

The first approach of driverless scanning which made it into Ubuntu was the sane-escl SANE backend, as part of the sane-backends package which we already include. This was easier to get in before Feature Freeze of 20.04 back in February, not requiring to get sane-airscan through NEW and then through a MIR. Also it was unclear in that time whether sane-airscan would be integrated into sane-backends.

Now a lot has changed with the time:

The authors of sane-escl and sane-airscan started their projects independently both also only supporting eSCL and not yet WSD. They were competing with each other and had some different priorities in their developments. I talked with them and asked them why they would not collaborate and succeeded to make them agree with each other. Now development of sane-escl has stopped and all effort goes into sane-airscan.

In addition, WSD support was added to sane-airscan and sane-airscan has matured a lot, with a lot of users reporting their devices working and the author having fixed a lot of bugs based on reports and logs from users.

sane-airscan supports both WSD and eSCL, sane-escl only eSCL.

sane-airscan supports ADF scanning, sane-escl only scanning from the glass.

Why not add sane-airscan to sane-backends upstream?
---------------------------------------------------

Tl;DR: Developemnt and release pace is much faster than of SANE, with the IPP-Scan-based scanning architecture in the future only sane-airscan and not the scanner driver arsenal of sane-backends will be needed by applications.

The author of sane-airscan asked for adding his backend to sane-backends in the beginning:

https://gitlab.com/sane-project/backends/-/issues/202

In the end it seems that they have settled to keep sane-airscan separate, mainly due to its much faster development pace. sane-backends is only released one or two times per yer and in these intervals a lot is happening with sane-airscan. Therefore it gets released much more often.

I also think that it is good that it is separate, as soon the scanning architecture will change to allow snapping everything. Scanner drivers will get hidden in a so-called Scanner Application, an emulation of an IPP scanner. As IPP is a network protocol with only IP communication and no need of dropping driver files into certain directories of the system the scanner driver can be easily snapped this way. User Applications will only need to support IPP scanners than, nothing else. As sane-airscan will get added IPP Scan in the future, this will be the only SANE backend needed to be available, so sane-backends does not need to be installed. User Applications can also be snapped with sane-airscan include in the Snap.

[Availability]

sane airscan is available in Universe:

https://launchpad.net/ubuntu/+source/sane-airscan/0.99.12-1ubuntu2

It made it also into Debian Unstable. The packaging is practically the same. There are only slight differences in the build dependencies due to different software versions available in Debian and Ubuntu.

It builds on all currently supported architectures.

[Rationale]

See introduction above. Replaces sane-escl in sane-backends. As soon as sane-airscan makes it into Main I recommend building sane-backends without sane-escl and also let it recommend sane-airscan, to guide the user to the correct backend.

[Security]

No CVE on http://cve.mitre.org/cve/search_cve_list.html

No mention on https://www.openwall.com/lists/oss-security/

Not listed on http://people.ubuntu.com/~ubuntu-security/cve/universe.html

No SUID/SGID

sane-airscan is a SANE backend, a scanner driver in the form of a shared library which gets dynamically linked by SANE clinets (SANE frontends). It runs always as the user running the client, whee the cleint is usually some GUI application, like simple-scan or XSane which is run as ordinary user. As the scanning protocols this backend supports are all network (IP) protocols no special group ownerships (SUID/SGID).

The package also contains the diagnostic utility /usr/bin/airscan-discover which is also run as ordinary user only, manually for debugging purposes. It lists supported scanners, also only using network (IP) communication.

[Quality assurance]

To use sane-airscan one simply installs it and starts any SANE frontend, like simple-scan or XSane. The frontend lists all available driverless scanners then and the user can select a device and scan as with any other scanner. No configuration is required, all absolutely intuitive. The config file /etc/sane.d/airscan.conf is only for debugging and rare corner cases. To use it with USB devices ipp-usb (MIR bug 1891157) needs to be installed in addition, also no configuration by the user required.

sane-airscan does not use debconf at all.

sane-airscan is maintained upstream very well and actively developed, by the same author as ipp-usb.

Upstream site:
https://github.com/alexpevzner/sane-airscan

Recent commits:
https://github.com/alexpevzner/sane-airscan/commits/master

Bugs:
https://github.com/alexpevzner/sane-airscan/issues
(Only 2 open ones, 47 closed, issues mainly concerning certain hardware model)

The author of sane-airscan, Alexander Pevzner, is very responsive, usually answers on the same day. He is actively working on driverless scanning (will mentor 2 students in LFMP on IPP Scan in Sep-Nov). He works closely together with OpenPrinting.

No known open bugs in Debian and Ubuntu (Launchpad only lists this MIR).

Debian maintainer OdyX also very responsive.

No exotic hardware required, is for supporting the absolute standard hardware, most modern multi-function devices and several modern stand-alone scanners, even very cheap ones. See introduction above.

The package has a debian/watch file and the content of the file seems to be correct.

No dependencies on obsolete stuff.

[Dependencies]

Build-depends only on standard packages in Main: libavahi-..., libxml, libjpeg, libpng, libgnutls, also build-depends on libsane-dev

For USB scanners Avahi needs to support localhost, but Ubuntu's Avahi does this already for some years.

The ipp-usb needed for USB scanners is treated in bug 1891157.

For network scanners everything is readily available in Main.

[Standards compliance]

Package fulfills the standards concerning FHS. Files are at the expected location. Especially the SANE backend and its config files are where Ubuntu's SANE packages expect them.

The package declares Debian's "Standards-Version" as 4.5.0, Debian maintainer takes care of verifying and updating this. debian/ directory and debian/rules file are simple, fairly standard.

[Maintenance]

See [Quality assurance] above for upstream and Debian maintenance. I have subscribed myself to bugs in both packages and also the Ubuntu Printing Team. Also "Desktop Packages" (~desktop-packages) is subscribed to this package.

[Background information]

See introduction above.

Changed in sane-airscan (Ubuntu):
assignee: nobody → Didier Roche (didrocks)
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

"Ubuntu Desktop Bugs" (~desktop-bugs) is now also subscribed to sane-airscan.

description: updated
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

"Desktop Packages" (~desktop-package) is now also subscribed to sane-airscan.

description: updated
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

[Summary]
- What is going to happen to sane-escl? Can we remove it from sans-backends, not shipping if or separate it to demote it to universe?
- Can we remerge the version against latest upstream? (We lag one version behind compared to debian testing).
- Related to above: can we resync with debian using an alternative build-dep? (debian-build-dep | ubuntu-build-dep)?
- Will this package be brought as a recommends of another package or seeded directly?
- Once all those questions are answered, happy to forward it to the security team for a security review.

[Duplication]
Nothing to add over the top request if sane-escl can be removed from main.

[Dependencies]
OK:
- nothing outside main

[Embedded sources and static linking]
OK:
- no embedded source present
- no static linking

[Security]
OK:
- no CVEs, but really fresh new package.
- does not use webkit2,2
- does not use lib*v9 directly
- does not process arbitrary web content
- does not use centralized online accounts
- does not integrate arbitrary javascript into the desktop
- does not deal with system authentication (eg, pam), etc)
- does not open a port directly (but will communicate through opened port via sane and zeroconf subcription)
- does not run a daemon as root

Problems:
- does parse a lot of data in different formats (xml, via http…): needing a security review

[Common blockers]
OK:
- does not FTBFS currently
- does have a test suite that runs at build time (good size)
  - test suite fails will fail the build upon error.
- no translation on CLI tool (but this is only a debugging discover command, common to not have them here). Messages returned to Sane are translated though.
- not a python package, no extra constraints to consider int hat regard
- C package that uses dh standard tool
- Team subscription is OK

[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- symbols tracking not applicable for this kind of code.
- d/watch is present and looks ok
- Upstream update history is good
- Debian/Ubuntu update history is good, but short
- upstream do regular releasse (upstream tarball are created via CI)
- promoting this does not seem to cause issues for MOTUs that so far maintained the package
- no lintian issue
- d/rules is clean and minimal

[Upstream red flags]
OK:
- no Errors/warnings during the build
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH
- no use of user nobody
- no use of setuid
- no important open bugs (crashers, etc) in Debian or Ubuntu
- no dependency on webkit, qtwebkit, seed or libgoa-*
- no embedded source copies
- no upstream bug opened at this date (51 bugs opened closed, so good upstream hygiene)

Changed in sane-airscan (Ubuntu):
status: New → Incomplete
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

- What is going to happen to sane-escl? Can we remove it from sans-backends, not shipping if or separate it to demote it to universe?

There are no special ./configure options to suppress a backend in sane-backends, one could build without libcurl dependency, as sane-escl needs it, but there is the risk that in later sane-backends versions libcurl is needed by something else. Or libcurl can be present on the build server due to another dependency.

So perhaps the best is either

  o to install sane-escl into a separate package which is not seeded or
    pulled in by another package's dependency
  o simply to comment out "escl" in /etc/sane.d/dll.conf

- Can we remerge the version against latest upstream? (We lag one version behind compared to debian testing).

Yes, I have skipped the 0.99.13 as it did not work with my scanner. I will update the package to one of the later versions.

- Related to above: can we resync with debian using an alternative build-dep? (debian-build-dep | ubuntu-build-dep)?

I will ask the Debian guys

- Will this package be brought as a recommends of another package or seeded directly?

Could be recommended from sane-backends.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

> So perhaps the best is either
> o to install sane-escl into a separate package which is not seeded or
> pulled in by another package's dependency
> o simply to comment out "escl" in /etc/sane.d/dll.conf

I would go with option 1, do you mind organizing that?

The rest looks good to me, let’s subcribe the security team now, thanks!

Changed in sane-airscan (Ubuntu):
assignee: Didier Roche (didrocks) → Canonical Security Team (canonical-security)
status: Incomplete → New
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

I will prepare the sane-backends package appropriately:

1. Spin out sane-escl into its own binary package

2. Recommend sane-airscan

One remark:

sane-escl is actually not developed any more due to sane-airscan, so I am looking into whether there is an easy and maintainable way to (3) remove it altogether? WDYT?

See also

https://openprinting.github.io/OpenPrinting-News-April-2020/#driverless-scanning

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Syncable sane-airscan 0.99.15-1 is uploaded to Debian.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

sane-airscan 0.99.15-1 has arrived in Debian, I have synced it now to Ubuntu.

Alex Murray (alexmurray)
Changed in sane-airscan (Ubuntu):
assignee: Canonical Security Team (canonical-security) → Ubuntu Security Team (ubuntu-security)
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

I have prepared a sane-backends package to recommend sane-airscan and remove sane-escl:

----------
sane-backends (1.0.30-1~experimental2ubuntu2) groovy; urgency=medium

  * Suppress building the "escl" backend, we will use the more
    versatile "airscan" (in separate package) instead
  * Recommend the sane-airscan package (for AirPrint/eSCL/WSD scanners
    and in the future also for IPP Scan).

 -- Till Kamppeter <email address hidden> Tue, 25 Aug 2020 22:57:00 +0200
----------

When should I upload it? Has it to be before Feature Freeze? Or only when this MIR got completely accepted?

Revision history for this message
Thierry FR (thierry-f) wrote :

Hi Till,

The escl backend is not abandoned!
It is being maintained and will continue to be maintained as long as sane-airscan does not offer the full functionality of the escl backend.
Support for the escl backend is complete, ADF, Brightness, Threshold, Sharpen and Contrast.
Some devices require PDF to work.
Unix socket support is present.

Revision history for this message
Thierry FR (thierry-f) wrote :

sane-backends is in version 1.0.31

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Thierry, thanks for the update. That is good news and so we know that the eSCL protocol is well investigated by you and Alex and so we can improve the support for it more and more. So I hope also that Alex will take you newest additions as base to complete the eSCL part of sane-airscan, to make it a universal backend making all AirScan scanners fully working. AFAIR sane-airscan does not have all of Brightness, Threshold, Sharpen, and Contrast yet.
For the devices which require PDF to work, do they work with current sane-escl and/or sane-airscan? For Scanner Applications we will be able to convert forth and back between PDF and raster formats as I have made library functions out of all CUPS filters.

Revision history for this message
Thierry FR (thierry-f) wrote :

Currently only sane-escl supports PDF. My PDF solution is not perfect (I use Poppler).
I resumed development when I realized that sane-airscan would not merge with Sane.
As a reminder, Sane is a free project, you just have to propose a pull-request to integrate the project.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

sane-airscan can also work around bug 1897962, but independent of this we should also backport the fix in the "escl" backend.

Revision history for this message
Gunnar Hjalmarsson (gunnarhj) wrote :

@Till: Interesting info. Do you think it would be possible to backport sane-airscan? -backports is more useful for new packages than it is for already existing ones, since the low priority doesn't matter if there is nothing in -release or -updates.

Revision history for this message
Gunnar Hjalmarsson (gunnarhj) wrote :

My comment was intended for bug #1897962. Please disregard it in this MIR context.

Revision history for this message
Alexander Pevzner (pzz) wrote :

@gunnarhj,

My own builds for sane-airscan exist for Ubuntu starting from the version 16.04, so I think that technically "backporting" is a trivial task.

Regarding PDF, I purposely trade it off in a favor of lower memory footprint. PDF decompression requires allocation of а full-size buffer for the decompressed image (~1/2Gb for Color A4 at 1200 DPI!), which I'm trying to avoid.

I will reconsider my opinion regarding PDF support, if there are really some devices in existence that cannot scan without it. But so far I'm not convinced that such devices exist.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in sane-airscan (Ubuntu):
status: New → Confirmed
Revision history for this message
Simon Iremonger (ubuntu-iremonger) wrote :

For what its' worth -- r.e. groovy release..

libsane1 (1.0.31-2) seems to include libsane-escl listed normally in dll.conf (i.e. likely a reasonable version of escl, better than focal known-buggy version).

sane-airscan 0.99.15-1 is in gusty universe, so will require an SRU in order to be changed to 0.99.18 etc. Not sure how much difference that makes [maybe maintainer can comment!].

Not clear to me that installing sane-airscan package will 'just work' to take-over from escl when installed, by default (or if manual modding dll.conf needed), however.

Maybe, the way this works, is such that users will see scanner listed twice, both driver options offered, or maybe airscan should take over escl if installed....

Revision history for this message
Thierry FR (thierry-f) wrote :

The two backends are not in conflict.
sane will list an additional backend.

Before :
PIXMA TS-3100 SERIES
ESCL TS-3100 SERIES

After :
PIXMA TS-3100 SERIES
ESCL TS-3100 SERIES
AIRSCAN TS-3100 SERIES

Without certitiude on the order.

Revision history for this message
Simon Iremonger (ubuntu-iremonger) wrote :

Fwiw, this is likely to be such a common usability problem, LinuxMint decided to provide more useful sane-airscan version directly in their repositories for mint20.1 based open focal20.04.
https://github.com/linuxmint/linuxmint/issues/327

Since, Focal 20.04LTS does not have 'sane-airscan' package I think ubuntu should look at providing/backporting this more easily for focal users -- that is, not requiring a convoluted hidden process requiring manual search for bug-reports/PPAs, with no clue to the user this may be needed, and so-on.

Any "Driver-manager" etc could assist with the sane-airscan adding / sane-backends+escl-backport options.

Revision history for this message
Alex Murray (alexmurray) wrote :
Download full text (4.3 KiB)

I reviewed sane-airscan 0.99.24-1 as checked into hirsute. This shouldn't be
considered a full audit but rather a quick gauge of maintainability.

sane-airscan is a package that provides a sane backend which supports
driverless network-connected scanners.

- CVE History:
  - No CVE history, this is a relatively new package that was only first
    released in December 2019 and only exists in Ubuntu since groovy.
- Build-Depends
  - gnutls, libavahi, libxml2 and libjpeg-turbo are all depedencies
- No pre/post inst/rm scripts
- No init scripts
- No systemd units
- No dbus services
- No setuid binaries
- 1 binary in PATH
  - -rwxr-xr-x root/root 175312 2021-02-08 01:49 ./usr/bin/airscan-discover
- No sudo fragments
- No polkit files
- No udev rules
- unit tests / autopkgtests
  - unit tests are compiled in the build log but do not appear to be run
    during the build - these appear to just do simple testing of image
    decoding, URI parsing and HTTP multipart decoding. There are also tests
    for the zeroconf handling and these appear to be more extensive. These
    should be executed during the build itself.
  - there are no autopkgtests
- No cron jobs
- Build logs are quite clean

- No processes spawned
- Memory management
  - sane-airscan is all in C so there is a fair amount of dynamic memory
    management - this all appears to be done quite carefully, Coverity only
    found a couple issues (detailed below) but in general this is quite
    good quality code.
- File IO
  - Loads inifile from /etc/sane.d or from path specified in environment
    variable CONFIG_PATH_ENV - this appears to be quite defensive and safe
- Extensive logging but this all appears safe
- Environment variable usage:
  - CONFIG_PATH_ENV - as noted above for the path to the configuration directory
  - HOME - use of this is safely, checking length etc before use - this is
    used to be able to expand ~ in configuration settings to $HOME etc
  - CONFIG_ENV_AIRSCAN_DEBUG - this is used to be able to turn on debug
    logging
- No use of privileged functions
- Use of cryptography / random number sources
  - Uses /dev/urandom to generate random value for retransmit timer - this
    is not security sensitive but /dev/urandom is a good choice since this
    is non-blocking
  - Uses gnutls for SHA256 hash and TLS for HTTPS - but doesn't perform any
    certificate verification of the remote host - but this is expected
    since scanners on a local network are not going to have FQDN nor
    appropriately issued certificates (ie they are likely to just be
    self-signed)
- No use of temp files
- Use of networking is generally defensive but relies on dependent
  libraries to do parsing of image formats etc so this risk is delegated
- No use of WebKit
- No use of PolicyKit

- No significant cppcheck results
- A couple significant Coverity results which should be relatively easy to
  fix - I have reported these upstream at
  https://github.com/alexpevzner/sane-airscan/issues/131 but the two most
  important ones are:

-----
airscan-http.c:1275
  Type: Uninitialized pointer read (UNINIT)

airscan-http.c:1261:
  1. var_decl: Declaring variable "parser" without initializer.
air...

Read more...

Changed in sane-airscan (Ubuntu):
assignee: Ubuntu Security Team (ubuntu-security) → nobody
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Alexander P,

for sane-aiscane getting promoted into the Main part of Ubuntu, its Debian/Ubuntu package needs unit tests run during package build (usually triggered by one of "make test" or "make check").

Currently "make test" builds a battery of test programs but does not start any of them.

We need that either there are unit tests triggered by "make test" or "make check" or a so-called autopkgtest which the build server runs after installing sane-airscan on a well-defined virtual machine.

My thought here is to make some or all of your test programs being run as unit tests, meaning that "make test" does not only build them but also runs them, one after the other and exits with non-zero status if one fails.

For that we need tests whose results are

- Independent of the presence or absence of supported scanner devices

- Independent of the presence or absence of the internet and of any content in the internet

This is required as the tests will run on isolated virtual machines on the build servers for Debian and Ubuntu.

Could you tell which tests of yours are fulfilling these conditions (so that we can explicitly call them during package build), or better, make "make test" run all of your tests which fulfill these conditions (skipping the ones which need devices or something in the internet).

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Alexander m,

thanks for the review. There are tests in the upstream code, they are only not auto-started by "make test". I will find out with Alexander P which ones are suitable to make them run during package build.

Revision history for this message
Alexander Pevzner (pzz) wrote :

Hi Alex, Till,

I've fixed Coverity warnings (as much as I could) and added "make check" to run automated tests. Please confirm that everybody are happy with whatever now we have, and I will issue the next, 0.99.25 release.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Alexander, am I right that you did the "make check" fixes today and the Coverity fixes on March 17?

For me this looks OK, so you could release this.

Alex Murray, are the fixes committed upstream here

https://github.com/alexpevzner/sane-airscan/commits/master

from March 17 and April 11 OK?

Revision history for this message
Alexander Pevzner (pzz) wrote :

Yes, Till.

If you plan to test something, it is better to is do before release. As soon as you confirm that everything is OK, I'll issue the new release. If no further testing is planned, I can issue new release immediately.

I'm trying to avoid unneeded releases with nearly no noticeable changes between them, as every new release affects many people.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Alexander, I think I do not need to do any testing, probably it is much easier for Alex Murray to check whether the Coverity problems are fixed.

From my side you could release.

Revision history for this message
Alexander Pevzner (pzz) wrote :

Alex Murray,

do I need to fix something else before we can release?

Revision history for this message
Alex Murray (alexmurray) wrote :

No, thanks again for your work in addressing these (sorry I didn't realise you were blocked on me responding)

Revision history for this message
Alexander Pevzner (pzz) wrote :

Till, Alex,

0.99.25 released. Thank you for feedback!

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Thanks to you all.

I have uploaded the new release now as sane-airscan_0.99.25-0ubuntu1 to hirsute.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

@Till - If I might ask to know where to expect it. What will be the packaging (adding a dependency) or seed change that will make this show up as component mismatch?

Revision history for this message
Alexander Pevzner (pzz) wrote :

Till,

yet another question: will ipp-usb reach the Ubuntu Main?

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

@Alexander P, ipp-usb is already in Main.

@Christian, I could add a Recommends to ipp-usb, to sane-backends, or we could add it to the ubuntu-desktop seed. I think sane-backends is the best place for the Recommends: as for scanning one would install sane-backends and the Recommends: would then complete the scanner driver set with this important driver.

WDYT?

By the way, the upload is not yet visible in LP, as Universe seems to need manual approval because of post-Beta, too.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote : Re: [Bug 1891682] Re: [MIR] sane-airscan

> @Christian, I could add a Recommends to ipp-usb, to sane-backends, or we
> could add it to the ubuntu-desktop seed. I think sane-backends is the
> best place for the Recommends: as for scanning one would install sane-
> backends and the Recommends: would then complete the scanner driver set
> with this important driver.
>
> WDYT?

There is no right/wrong to this, mostly only opinion.
I'd prefer a recommends over a seed change, but that is opinion.

If sane-backends is the right place is up to you, but what you
described sounded plausible to me.
I checked and sane-backends is only the source package.

saine-airscan provides
/usr/lib/x86_64-linux-gnu/sane/libsane-airscan.so.1

Which plugs into pkg:libsane1 - so from src:sane-backends a recommends
most likely would be added to binary package libsane1 I guess?

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

sane-airscan_0.99.25-0ubuntu1 got accepted into hirsute-proposed now.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

@Christian, while waiting for your answer I already decided for adding the Recommends to libsane1. I am currently preparing the package and will upload it soon.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

@Christian, sane-backends 1.0.32-0ubuntu2 with libsane1 recommending sane-airscan is uploaded.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

@Christian, sane-backends_1.0.32-0ubuntu2 got approved into hirsute-proposed.

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

I see it now, thanks Till!

sane-airscan: sane-airscan
MIR: #1891682 (Confirmed)
[Reverse-Recommends: libsane1 (MAIN)]

Thereby moving this along to be ready for an Archive admin to promote.

Changed in sane-airscan (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

$ ./change-override -c main -S sane-airscan
Override component to main
sane-airscan 0.99.25-0ubuntu1 in hirsute: universe/misc -> main
sane-airscan 0.99.25-0ubuntu1 in hirsute amd64: universe/graphics/optional/100% -> main
sane-airscan 0.99.25-0ubuntu1 in hirsute arm64: universe/graphics/optional/100% -> main
sane-airscan 0.99.25-0ubuntu1 in hirsute armhf: universe/graphics/optional/100% -> main
sane-airscan 0.99.25-0ubuntu1 in hirsute ppc64el: universe/graphics/optional/100% -> main
sane-airscan 0.99.25-0ubuntu1 in hirsute riscv64: universe/graphics/optional/100% -> main
sane-airscan 0.99.25-0ubuntu1 in hirsute s390x: universe/graphics/optional/100% -> main
Override [y|N]? y
7 publications overridden.

Changed in sane-airscan (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

@Alexander P, thank you very much for your fixes and the quick release! sane-airscan made it into Ubuntu Main now, 2 days before Final Freeze and less than 2 weeks before release of 21.04.

@Alexander M, @Christian, @Didier, thank you very much for the quick finalization of this MIR!

Revision history for this message
Alexander Pevzner (pzz) wrote :

Till,

nice to hear, thank you for the good news!

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

@Alexander P, this especially means that sane-airscan is included with the default Ubuntu Desktop installation from 21.04 Hirsute on, meaning that the scanners of thousands multi-function devices will just work with Ubuntu.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.