Control: reassign -1 libsane-bin
Control: retitle -1 libsane-bin is wrongly marked Multi-Arch: foreign

On Sat, Apr 16, 2016 at 11:37:54AM +0200, Jakub Wilk wrote:
> $ dpkg-query -Wf '${Package}\t${Architecture}\n' libsane-{dev,bin}
> libsane-bin   i386
> libsane-dev   amd64

This is precisely the setup when e.g. cross building from i386 to amd64.
The common case would be s/amd64/armhf/;s/i386/amd64/ though.

> $ sane-config --libs
> Package sane-backends was not found in the pkg-config search path.
> Perhaps you should add the directory containing `sane-backends.pc'
> to the PKG_CONFIG_PATH environment variable
> No package 'sane-backends' found

And this is how it breaks practical cross building.

The lintian check has precisely hit the right victim!

So how to fix this? Issues of this kind are non-trivial to fix properly.
I see the following options:

1) Remove M-A:foreign from libsane-bin. At this point, you can simply
   fold it into libsane-dev and remove M-A:same from libsane-dev. This
   looks super bad until you notice that in many cases libsane-dev does
   not have to be M-A:same to make cross building work. In fact, this
   will just solve most of the issues. libgpg-error-dv is in the same
   boat and we are mostly happy about that. libicu-dev is one of the
   rare cases that we need to have M-A:same (and which is currently
   marked wrongly).

2) Remove sane-config entirely. This essentially means libsane-bin would
   go away completely. Bad for downstreams relying on sane-config.

3) Remove sane-config from the interface of libsane-dev. You could
   rename libsane-bin to libsane-legacy-dev and have libsane-dev stop
   depending on libsane-bin. libsane-legacy-dev would be M-A:no and
   depend on libsane-dev. Packages that use sane via sane-config instead
   of pkg-config would then have to change their Build-Depends from
   libsane-dev to libsane-legacy-dev. Maybe find a better name for
   "legacy". A quick codesearch indicates < 10 packages affected.

I prefer 2, but think that it is infeasible here. Next up, I'd try 1
until we run into problems (if any) and switch to 3 if necessary.

Helmut

Reply via email to