Your message dated Tue, 06 Mar 2012 17:32:36 +0000 with message-id <E1S4yFY-0005hi-Hk@franck.debian.org> and subject line Bug#646288: fixed in apt 0.8.16~exp13 has caused the Debian Bug report #646288, regarding apt-get build-dep -a $arch: wrong tradeoff for the default? to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 646288: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646288 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: apt-get build-dep -a $arch: wrong tradeoff for the default?
- From: Steve Langasek <vorlon@debian.org>
- Date: Sat, 22 Oct 2011 14:58:01 -0700
- Message-id: <20111022215801.GA10288@virgil.dodds.net>
Package: apt Version: 0.8.16~exp5 Severity: wishlist User: multiarch-devel@lists.alioth.debian.org Usertags: multiarch I've been having lots of fun playing with the 'apt-get build-dep -a $arch' support added to apt in version 0.8.15.3 (fixing bug #632221). As I do so, however, I think we've made a wrong trade-off in terms of the default behavior for packages. I've actually thought this for a while, but it's become enough of a hassle now that I think I need to raise it as a bug and agitate for getting the behavior changed. :) apt accurately implements the behavior requested on <https://wiki.ubuntu.com/MultiarchCross>, which says that for a package which is Multi-Arch: no, the build-dependency will be satisfied using the package for the build architecture. The rationale for this is that, whereas library -dev packages are likely to be touched anyway in order to make them Multi-Arch: same, the random other non-library packages that are used as build dependencies would not otherwise be updated to be marked Multi-Arch: foreign, so by defaulting to the build-arch packages we can focus on just getting the -dev packages marked Multi-Arch: same. This is correct as far as it goes, but there are a number of complications. - Unlike marking a package Multi-Arch: foreign, which is just adding metadata, converting a -dev package to be Multi-Arch: same is not always easy. There are no best practice guidelines yet for converting a -dev package to be Multi-Arch: same when it contains a mix of architecture-dependent and architecture-independent headers, so many of these -dev packages are not getting converted right now. Of 696 packages that have been tagged Multi-Arch: same in unstable[1], only 74 of them are -dev packages. Since some of the affected packages are pretty low in the dependency tree, this effectively stops us from reaching critical mass of cross-build-friendly multiarch -dev packages. - Whereas cross-installability of -dev packages is a must for cross-building, for the vast majority of libraries, *co*installability is merely a nice to have. There are very few libraries that you need to build against both the host and build versions of as part of a single package build; so while it's inconvenient to have to swap -dev packages out in a build environment when switching target architectures, it's tolerable... especially since it would enable uses that aren't possible today. Only the apt implementation makes M-A: same a requirement. - There are a lot more library -dev packages as build-dependencies than there are non-dev packages as build-dependencies, at least for the cases that are interesting for cross-compilation. If we ignore build-dependencies on python, java, ruby, perl, gir, haskell, and erlang packages[3], approximately[4] 60% of all build-dependencies are on library -dev packages; and of the ones that are not -dev packages, there are already more Multi-Arch tags set in the archive (91) than there are on the -dev packages[5]! This implies to me that many of these packages will be marked Multi-Arch: foreign anyway because the tag is needed for runtime. So for the above reasons I think it would be better for apt-get build-dep to require the DEB_HOST_ARCH package for M-A: no build-depends. Cc:ed to multiarch-devel and debian-embedded for comments. Since this proposal implies pushing more patches to packages to make them Multi-Arch: foreign, perhaps this should be discussed on debian-devel to get a consensus there? -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ slangasek@ubuntu.com vorlon@debian.org [1] grep-dctrl -FMulti-Arch same /var/lib/apt/lists/_mirror_dists_sid_main_binary-amd64_Packages \ | grep -c Package [2] grep-dctrl -FMulti-Arch same /var/lib/apt/lists/_mirror_dists_sid_main_binary-amd64_Packages \ | grep -c Package.*-dev [3] grep-dctrl -sBuild-Depends -r '.' -n /var/lib/apt/lists/debian.osuosl.org_debian_dists_sid_main_source_Sources \ | sed -e's/([^)]\+)//g; s/\[[^]]\+\]//g; s/[,|]//g; s/ \+/\n/g' | sort -u \ | grep -vE 'python|java|ruby|-perl|^gir|^libghc|haskell|erlang' [4] "approximately" - because included in this count are some packages like x11proto-dev packages, which are Arch: all (and Multi-Arch: foreign), and a few packages like autotools-dev which aren't headers/libs at all [5] grep-dctrl -sBuild-Depends -r '.' -n /var/lib/apt/lists/debian.osuosl.org_debian_dists_sid_main_source_Sources \ | sed -e's/([^)]\+)//g; s/\[[^]]\+\]//g; s/[,|]//g; s/ \+/\n/g' | sort -u \ | grep -vE 'python|java|ruby|-perl|^gir|^libghc|haskell|erlang' \ | grep -v -- -dev | xargs apt-cache show |grep -c Multi-ArchAttachment: signature.asc
Description: Digital signature
--- End Message ---
--- Begin Message ---
- To: 646288-close@bugs.debian.org
- Subject: Bug#646288: fixed in apt 0.8.16~exp13
- From: Michael Vogt <mvo@debian.org>
- Date: Tue, 06 Mar 2012 17:32:36 +0000
- Message-id: <E1S4yFY-0005hi-Hk@franck.debian.org>
Source: apt Source-Version: 0.8.16~exp13 We believe that the bug you reported is fixed in the latest version of apt, which is due to be installed in the Debian FTP archive: apt-doc_0.8.16~exp13_all.deb to main/a/apt/apt-doc_0.8.16~exp13_all.deb apt-transport-https_0.8.16~exp13_amd64.deb to main/a/apt/apt-transport-https_0.8.16~exp13_amd64.deb apt-utils_0.8.16~exp13_amd64.deb to main/a/apt/apt-utils_0.8.16~exp13_amd64.deb apt_0.8.16~exp13.dsc to main/a/apt/apt_0.8.16~exp13.dsc apt_0.8.16~exp13.tar.gz to main/a/apt/apt_0.8.16~exp13.tar.gz apt_0.8.16~exp13_amd64.deb to main/a/apt/apt_0.8.16~exp13_amd64.deb libapt-inst1.4_0.8.16~exp13_amd64.deb to main/a/apt/libapt-inst1.4_0.8.16~exp13_amd64.deb libapt-pkg-dev_0.8.16~exp13_amd64.deb to main/a/apt/libapt-pkg-dev_0.8.16~exp13_amd64.deb libapt-pkg-doc_0.8.16~exp13_all.deb to main/a/apt/libapt-pkg-doc_0.8.16~exp13_all.deb libapt-pkg4.12_0.8.16~exp13_amd64.deb to main/a/apt/libapt-pkg4.12_0.8.16~exp13_amd64.deb A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 646288@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Michael Vogt <mvo@debian.org> (supplier of updated apt package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@debian.org) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.8 Date: Tue, 06 Mar 2012 18:12:57 +0100 Source: apt Binary: apt libapt-pkg4.12 libapt-inst1.4 apt-doc libapt-pkg-dev libapt-pkg-doc apt-utils apt-transport-https Architecture: source all amd64 Version: 0.8.16~exp13 Distribution: experimental Urgency: low Maintainer: APT Development Team <deity@lists.debian.org> Changed-By: Michael Vogt <mvo@debian.org> Description: apt - commandline package manager apt-doc - documentation for APT apt-transport-https - https download transport for APT apt-utils - package managment related utility programs libapt-inst1.4 - deb package format runtime library libapt-pkg-dev - development files for APT's libapt-pkg and libapt-inst libapt-pkg-doc - documentation for APT development libapt-pkg4.12 - package managment runtime library Closes: 619646 646288 649314 650513 657560 657695 657732 657902 658096 658346 662762 Changes: apt (0.8.16~exp13) experimental; urgency=low . [ David Kalnischkies ] * apt-pkg/acquire-item.cc: - remove 'old' InRelease file if we can't get a new one before proceeding with Release.gpg to avoid the false impression of a still trusted repository by a (still present) old InRelease file. Thanks to Simon Ruderich for reporting this issue! (CVE-2012-0214) - add Debug::pkgAcqArchive::NoQueue to disable package downloading * apt-pkg/deb/dpkgpm.cc: - chroot if needed before dpkg --assert-multi-arch - ensure that dpkg binary doesn't have the chroot-directory prefixed - call dpkg --assert-multi-arch with execvp instead of execv - save the universe by not printing messages about apport if a package with this name is not installed (Closes: #619646) - handle a SIGINT in all modes as a break after the currently running dpkg transaction instead of ignoring it completely * apt-pkg/depcache.cc: - if a M-A:same package is marked for reinstall, mark all it's installed silbings for reinstallation as well (LP: #859188) * apt-pkg/contrib/configuration.cc: - do not stop parent transversal in FindDir if the value is empty * methods/http{s,}.cc: - if a file without an extension is requested send an 'Accept: text/*' header to avoid that the server chooses unsupported compressed files in a content-negotation attempt (Closes: #657560) - remove the arbitrary MAXLEN limit for response lines (Closes: #658346) * apt-pkg/aptconfiguration.cc: - chroot if needed before calling dpkg --print-foreign-architectures - ensure that architectures are not added multiple times * cmdline/apt-mark.cc: - detect if dpkg has multiarch support before calling --set-selections - correctly ignore already (un)hold packages * apt-pkg/cachefile.cc: - clean up lost atomic cachefiles with 'clean' (Closes: #650513) * apt-pkg/indexrecords.cc: - do not create empty Entries as a sideeffect of Lookup() * apt-pkg/acquire-item.cc: - drop support for i18n/Index file (introduced in 0.8.11) and use the Release file instead to get the Translations (Closes: #649314) - use pdiff for Translation-* files if available (Closes: #657902) * ftparchive/writer.cc: - add 'Translation-*' to the default patterns * cmdline/apt-get.cc: - if a package can't be removed as it is not installed, suggest to the user an (installed) multiarch silbing with 'Did you mean?' - improve 'error' message for packages which are only referenced e.g. in a Depends line and are now requested for removal * cmdline/apt-cache.cc: - correct --pre-depends option by using dash consistently (LP: #940837) * apt-pkg/packagemanager.cc: - do not try to a void a breaks if the broken package pre-depends on the breaker, but let dpkg auto-deconfigure it * apt-pkg/contrib/fileutl.cc: - do not warn about the ignoring of directories (Closes: #662762) . [ Steve Langasek ] * cmdline/apt-get.cc: - for cross-build-dependencies M-A: none should be DEB_HOST_ARCH, not DEB_BUILD_ARCH (Closes: #646288) . [ Colin Watson ] * apt-pkg/algorithms.cc: - don't break out of the main-resolver loop for Breaks to deal with all of them in a single iteration (Closes: #657695, LP: #922485) - use a signed int instead of short for score calculation as upgrades become so big now that it can overflow (Closes: #657732, LP: #917173) * Fix IndexCopy::CopyPackages and TranslationsCopy::CopyTranslations to handle compressed files again (LP: #924182, closes: #658096) . [ Michael Vogt ] * apt-pkg/deb/dpkgpm.cc: - fix crash when a package is in removed but residual config state (LP: #923807) * apt-pkg/contrib/fileutl.h: - fix compat with FileFd::OpenDescriptor() in ReadOnlyGzip mode * apt-pkg/packagemanager.cc: - fix bug in predepends handling - ensure that packages that needs unpackaging are unpacked before they are configured (LP: #927993) . [ Julian Andres Klode ] * apt-pkg/deb/deblistparser.cc: - Set the Essential flag on APT instead of only Important * apt-pkg/packagemanager.cc: - Do not use immediate configuration for packages with the Important flag * Treat the Important flag like the Essential flag with those differences: - No Immediate configuration (see above) - Not automatically installed during dist-upgrade - No higher score for installation ordering Checksums-Sha1: 32ba0d502d1e73af5918b5b7dd06a6a62cb73a0a 1690 apt_0.8.16~exp13.dsc 7601a34f5ca64bf7ff45b6daf8266f2c473dd06b 3402230 apt_0.8.16~exp13.tar.gz 3b4edc5ff5e77ebf0b124c3055489db8bdca72e5 251982 apt-doc_0.8.16~exp13_all.deb 70f37715459d2834474358745080d36e51d0bd46 829466 libapt-pkg-doc_0.8.16~exp13_all.deb e5799a01fa7c917f3376f25868883f2c6342d50a 1015192 libapt-pkg4.12_0.8.16~exp13_amd64.deb bdb04d9f4c7679a7f40b8e615f92e939ed6a7421 186948 libapt-inst1.4_0.8.16~exp13_amd64.deb 623fd35eb83dba3fffc0b5263aad211c0a5024e4 1164922 apt_0.8.16~exp13_amd64.deb 4572ec2c4eeaf146dad9ef40b4d0c0794bfedc68 175832 libapt-pkg-dev_0.8.16~exp13_amd64.deb dbedaabb89b071234c9891df79a5f4d7f3a1f269 272420 apt-utils_0.8.16~exp13_amd64.deb f4b6b505783c4cfdcb5cbda6a590b3d95345f20c 98362 apt-transport-https_0.8.16~exp13_amd64.deb Checksums-Sha256: 752fe0120e4b5be7d8bb065fa903c082ddc09330894d404d3b385097631939f1 1690 apt_0.8.16~exp13.dsc 5cde730a24638ccbcfac5089644db56388d3650f7c61bf768555fa3db308ce59 3402230 apt_0.8.16~exp13.tar.gz adeacff9bbd89cfee1c1faf4a966c36ea006a4c554980b1e1b90cc3e8018bff5 251982 apt-doc_0.8.16~exp13_all.deb 7a6e1410de78715e82d57a7deb8a86ef80610cad0ded4979d768ca54a52021e1 829466 libapt-pkg-doc_0.8.16~exp13_all.deb 013d26a664eea5e3624415f0664c38ca955f0cbbc106776d5e3215dd5769c07e 1015192 libapt-pkg4.12_0.8.16~exp13_amd64.deb 9e8d23220bb22eef341619c2fbfc0c8ccc508eaded82fea9bcc38798f5171bd8 186948 libapt-inst1.4_0.8.16~exp13_amd64.deb 928bd77863b9edd67f83a5300d0fbf81bba2cf84743a7716d9c0676267730927 1164922 apt_0.8.16~exp13_amd64.deb 30dad707728310b160f4a31d9ce7219ec3c48e23d5bd389ccc30a7861cee79b7 175832 libapt-pkg-dev_0.8.16~exp13_amd64.deb 0f14b7537e66d43a7e4dd5fdf41eaf52bebec12a975a9fa53a075603bcfe76c1 272420 apt-utils_0.8.16~exp13_amd64.deb 690ea82b8a05baed990abe72b14e5781cc1a6ff2da7678d4c0c258b13e5656a2 98362 apt-transport-https_0.8.16~exp13_amd64.deb Files: 36fec50713ebb62b5f8d0457e433029d 1690 admin important apt_0.8.16~exp13.dsc 64d460c47b1b58e42e1f70be86ddb250 3402230 admin important apt_0.8.16~exp13.tar.gz 2efa431d666c7e7cf5d66b8ef4d337b4 251982 doc optional apt-doc_0.8.16~exp13_all.deb 2769797e1e9c27ae54a6784d8e20761b 829466 doc optional libapt-pkg-doc_0.8.16~exp13_all.deb 4964a90d91f9bdbacf7a77de1d85ebf1 1015192 admin important libapt-pkg4.12_0.8.16~exp13_amd64.deb 6d0f84a70da94ece33a6529dc005626a 186948 admin important libapt-inst1.4_0.8.16~exp13_amd64.deb 5062a82fde1e0bd3a0875051f01022e1 1164922 admin important apt_0.8.16~exp13_amd64.deb cd77bd303d6f44d8097b318910096d3f 175832 libdevel optional libapt-pkg-dev_0.8.16~exp13_amd64.deb e499a62db417c3251e93401bcd24ff5b 272420 admin important apt-utils_0.8.16~exp13_amd64.deb 9eebcaa60ccb01dd3828e278f4e632d8 98362 admin optional apt-transport-https_0.8.16~exp13_amd64.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAk9WRsgACgkQliSD4VZixzR7hgCfXYmM1w1sxB463L18bu/M9L9t StsAni0R4HU3lhuIozpuwZiVkxm0MSJh =6Tva -----END PGP SIGNATURE-----
--- End Message ---