[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: