[Multiarch-devel] Bug#676653: tor: please add Multi-Arch: foreign to the tor package

Helmut Grohne helmut at subdivi.de
Wed Jan 9 08:53:26 UTC 2013


Hi,

I looked into this again. Pulling in multiarch-devel at l.a.d.o because
this is kind of a general issue.

On Mon, Jun 25, 2012 at 12:46:16AM +0200, Carsten Hey wrote:
> weasel noted that tor-dbg exists and depends on tor.  Since dpkg
> currently handles arch all packages as if they were native for
> dependency resolution [1], this leads to this situation:
> 
>  * tor-dbg requires tor to be installed for the same arch as tor-dbg.

Can you give a technical reason for this? Why would taking a core file
on a different system and debugging it with just the tor-dbg image using
gdb-multiarch not work?

Indeed it should be possible to turn tor-dbg into Multi-Arch:same with
some more effort (i.e. not for wheezy).

> According to [2] and in theory, the fix for this bug is:
> 
>     Package: tor
>     Architecture: any
>     Depends: ...
>     Multi-Arch: allowed

We should notice that Multi-Arch:allowed was not intended for this case.
"Abusing" allowed here just for a debug dependency sounds just wrong.

So what are other packages doing?

avahi-daemon is M-A:foreign. avahi-dbg has no dependencies.
bluez is M-A:foreign. bluez-dbg depends on bluez (= ${binary:Version}).
cmake is M-A:foreign. cmake-dbg depends on cmake (= ${binary:Version}).
cups is M-A:foreign. cups-dbg depends on cups (= ${binary:Version}).
daisy-player is M-A:foreign. daisy-player-dbg depends on daisy-player
  (= ${binary:Version}).
dbus is M-A:foreign. dbus-1-dbg depends on dbus (= ${binary:Version}).
e2fsprogs is M-A:foreign. e2fsprogs depends on e2fsprogs
  (= ${binary:Version}).
ebook-speaker is M-A:foreign. ebook-speaker-dbg depends on ebook-speaker
  (= ${binary:Version}).
espeak is M-A:foreign. espeak-dbg depends on espeak
  (= ${binary:Version}).
ghostscript is M-A:foreign. ghostscript-dbg seems to be a cumulative
  debug package. One alternative of the dependencies is ghostscript
  (= ${binary:Version}).
gpsd is M-A:foreign. gpsd-dbg seems to be a cumulative debug package.
  One alternative of the dependencies is gpsd (= ${binary:Version}).
imagemagick is M-A:foreign. imagemagick-dbg depends on imagemagick
  (= ${binary:Version}).

I believe we can already spot a pattern. Debug packages tend to depend
on M-A:foreign packages. This does not seem like the ultimately best
solution, but a reasonable compromise for the time being.

Helmut



More information about the Multiarch-devel mailing list