Bug#683917: apt-get build-dep ignores source package architecture restrictions
Package: apt
Version: 0.9.7.3
Severity: normal
Hi,
apt-get build-dep does not honor the Architecture field of source
packages and installs (cross) build dependencies anyways even if the
source package in question cannot be compiled for that architecture.
Example #1 (native build)
-------------------------
The source package flash-kernel is Architecture: armel armhf. I'm
executing the following on amd64 Debian Sid:
josch@hoothoot> sudo chroot debian-sid-minbase apt-get -s build-dep flash-kernel
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
binutils bsdmainutils build-essential bzip2 cpp cpp-4.7 debhelper devio dpkg-dev file g++ g++-4.7 gcc gcc-4.7 gettext gettext-base
groff-base html2text intltool-debian libasprintf0c2 libc-dev-bin libc6-dev libclass-isa-perl libcroco3 libdpkg-perl libffi5 libgdbm3
libgettextpo0 libglib2.0-0 libgmp10 libgomp1 libitm1 libmagic1 libmpc2 libmpfr4 libpcre3 libpipeline1 libquadmath0 libstdc++6-4.7-dev
libswitch-perl libtimedate-perl libunistring0 libxml2 linux-libc-dev make man-db patch perl perl-modules po-debconf
0 upgraded, 50 newly installed, 0 to remove and 0 not upgraded.
Example #2 (cross build)
------------------------
The source package ikarus is Architecture: i386 amd64. I'm trying to
install cross build dependencies for armel:
josch@hoothoot> sudo chroot debian-sid-minbase apt-get -s -a armel build-dep ikarus
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
autoconf automake autotools-dev binutils bsdmainutils build-essential bzip2 cpp cpp-4.7 debhelper dh-autoreconf dpkg-dev file g++ g++-4.7
gcc gcc-4.7 gcc-4.7-base:armel gettext gettext-base groff-base html2text intltool-debian libasprintf0c2 libc-dev-bin libc6:armel
libc6-dev libclass-isa-perl libcroco3 libdpkg-perl libffi-dev:armel libffi5 libffi5:armel libgcc1:armel libgdbm3 libgettextpo0
libglib2.0-0 libgmp-dev:armel libgmp10 libgmp10:armel libgmpxx4ldbl:armel libgomp1 libitm1 libmagic1 libmpc2 libmpfr4 libpcre3
libpipeline1 libquadmath0 libstdc++6:armel libstdc++6-4.7-dev libswitch-perl libtimedate-perl libtool libunistring0 libxml2
linux-libc-dev m4 make man-db patch perl perl-modules po-debconf
0 upgraded, 64 newly installed, 0 to remove and 0 not upgraded.
Conclusion
----------
In neither of the two situations above should apt-get install the build
dependencies. In the first situation it is requested to natively build a
source package for architectures different from the native one. In the
second situation it is requested to cross build a package for an
architecture it doesnt exist for.
It would also be nice if there was a separate exit status for this
special situation.
cheers, josch
Reply to: