[Bug 850264] Re: given a foreign architecture of i386 on amd64 machine, and an outdated libc, apt tries to remove libc-bin
Launchpad Bug Tracker
850264 at bugs.launchpad.net
Sun Jan 29 18:25:12 UTC 2012
This bug was fixed in the package apt - 0.8.16~exp12ubuntu1
---------------
apt (0.8.16~exp12ubuntu1) precise; urgency=low
[ Michael Vogt ]
* merge from debian/experimental:
- new ABI
[ Steve Langasek ]
* apt-pkg/algorithms.cc: iterate Breaks the same way as Conflicts, so that
we resolve virtual package Breaks more effectively. Thanks to Colin
Watson for the patch. Closes: #657695, LP: #922485.
* apt-pkg/algorithms.{cc,h}: use an int to represent resolver scores, not
a signed short, because large upgrades can result in an overflow for
core packages. Thanks again to Colin Watson. Closes: #657732,
LP: #917173.
* Multi-Arch: none build-deps should be DEB_HOST_ARCH, not DEB_BUILD_ARCH.
Closes: #646288.
apt (0.8.16~exp12) experimental; urgency=low
[ Michael Vogt ]
* apt-pkg/deb/dpkgpm.cc:
- fix segfault on pkg removal
[ David Kalnischkies ]
* apt-pkg/cacheiterators.h:
- return the correct version arch for all+foreign, too
* apt-pkg/packagemanager.cc:
- ignore breaks on not-installed versions while searching for
breakage loops as we don't have to avoid them
* debian/control:
- remove APT from the short descriptions as lintian doesn't like it
and it doesn't transport any information for a reader anyway
- apply typofixes by Pascal De Vuyst, thanks! (Closes: #652834, #652835)
* debian/rules:
- apply patch to enable usage of hardning CPPFLAGS and LDFLAGS by
Moritz Muehlenhoff, thanks! (Closes: #653504)
* methods/https.cc:
- use curls list append instead of appending Range and If-Range by hand
which generates malformed requests, thanks Mel Collins for the hint!
(Closes: #646381)
* test/libapt/run-tests:
- hurd doesn't have dmesg yet and we don't really need it either,
so use with $0 a more stable data source for hashsumming
[ Pino Toscano ]
* test/libapt/globalerror_test.cc:
- errno 0 has a different strerror on hurd, so generate the expected
message dynamically instead of hardcoding 'Success' (Closes: #656530)
apt (0.8.16~exp11) experimental; urgency=low
[ David Kalnischkies ]
* apt-pkg/deb/dpkgpm.cc:
- redirect out/input of dpkg --assert-multi-arch to /dev/null
- if multi-arch is detected ensure that pkg:all is reported as pkg:all
apt (0.8.16~exp10) experimental; urgency=low
[ David Kalnischkies ]
* apt-pkg/depcache.cc:
- implicit conflicts (for multiarch) are supposed to conflict
only with real packages, not with virtual providers
* apt-pkg/pkgcache.cc:
- ignore implicit conflicts on providers in AllTarget, too
* apt-pkg/deb/dpkgpm.cc:
- check if dpkg supports multiarch with --assert-multi-arch
and if it does be always explicit about the architecture
* apt-pkg/contrib/fileutl.h:
- store the offset in the internal fd before calculate size of
the zlib-handled file to jump back to this place again
[ Michael Vogt ]
* apt-pkg/contrib/fileutl.h:
- fix segfault triggered by the python-apt testsuite
apt (0.8.16~exp9) experimental; urgency=low
[ Julian Andres Klode ]
* apt-pkg/cdrom.cc:
- Accept .bz2, .xz files in addition to .gz files (Closes: #649451)
[ Michael Vogt ]
* apt-pkg/cdrom.cc:
- use aptconfiguration to get the supported compression types
* debian/control:
- bump debhelper build-dep to debhelper (>= 8.1.3~)
- set libapt-pkg-dev to multi-arch: same too
* g++ 4.7 fixes
[ Colin Watson ]
* Convert libapt-pkg4.12 and libapt-inst1.4 to Multi-Arch: same.
[ David Kalnischkies ]
* apt-pkg/cacheset.cc:
- make the cachesets real containers which can embedding any container
to be able to use the same interface regardless of set or list usage
- provide a {Package,Version}List similar to {Package,Version}Set
* cmdline/apt-{get,cache,mark}.cc:
- use Lists instead of Sets if input order should be preserved for
commands accepting lists of packages, e.g. policy (Closes: #625960)
* apt-pkg/depcache.cc:
- prefer native providers over foreigns even if the chain is foreign.
LP: #850264.
* cmdline/apt-get.cc:
- ignore foreign architectures if we check if a provides has only one
resolver as it's basically the same for the user, so no need to choose
* cmdline/apt-config.cc:
- dump the APT::Compressor settings correctly and completely
* apt-pkg/contrib/fileutl.{h,cc}:
- implement a ModificationTime method for FileFd
- add a ReadLine method
- drop the explicit export of gz-compression handling
* apt-pkg/cdrom.cc:
- support InRelease files on cdrom
apt (0.8.16~exp8) experimental; urgency=low
[ David Kalnischkies ]
* algorithms.cc:
- show a debug why a package was kept by ResolveByKeep()
* apt-pkg/packagemanager.cc:
- do not fail on unpacked packages in SmartUnPack, just don't
shedule them for unpack, but do all checks and configure them
- do not enter an endless loop for (essential) pre-dependency loops
* apt-pkg/contrib/sha2_internal.cc:
- use a pointer-union to peace gcc strict-aliasing warning
* apt-pkg/deb/deblistparser.cc:
- M-A: foreign packages provide for other archs, too
apt (0.8.16~exp7) experimental; urgency=low
[ David Kalnischkies ]
* do not pollute namespace in the headers with using (Closes: #500198)
* use forward declaration in headers if possible instead of includes
* remove old APT_COMPATIBILITY ifdef's
* apt-pkg/deb/dpkgpm.cc:
- use std::vector instead of fixed size arrays to store args and
multiarch-packagename strings
- load the dpkg base arguments only one time and reuse them later
* cmdline/apt-get.cc:
- follow Provides in the evaluation of saving candidates, too, for
statisfying garbage package dependencies (Closes: #640590)
* apt-pkg/algorithms.cc:
- if a package is garbage, don't try to save it with FixByInstall
* apt-pkg/deb/debsrcrecords.cc:
- remove the limit of 400 Binaries for a source package (Closes: #622110)
* apt-pkg/deb/deblistparser.cc:
- fix crash when the dynamic mmap needs to be grown in
LoadReleaseInfo (LP: #854090)
* apt-pkg/deb/debmetaindex.cc:
- none is a separator, not a language: no need for Index (Closes: #624218)
* apt-pkg/aptconfiguration.cc:
- do not builtin languages only if none is forced (Closes: #643787)
* apt-pkg/pkgcachegen.cc:
- refactor MergeList by creating -Group, -Package and -Version specialist
- share description list between "same" versions (LP: #868977)
This also means that descriptions are shared across archives now.
- add implicit dependencies needed for Multi-Arch at the time a Version
struct is created and not at the end of the cache generation
* apt-pkg/pkgcache.cc:
- always prefer "en" over "" for "en"-language regardless of cache-order
[ Michael Vogt ]
* apt-pkg/contrib/configuration.cc:
- fix double delete (LP: #848907)
- ignore only the invalid regexp instead of all options
* apt-pkg/acquire-item.h, apt-pkg/deb/debmetaindex.cc:
- fix fetching language information by adding OptionalSubIndexTarget
* methods/https.cc:
- cleanup broken downloads properly
[ Colin Watson ]
* ftparchive/cachedb.cc:
- fix buffersize in bytes2hex
apt (0.8.16~exp6) experimental; urgency=low
[ Christopher Baines ]
* enable APT in unpack/configure ordering to handle loops as well
as tight dependencies between immediate packages better
enabling also the possibility to mark all packages as immediate
(at least Closes: #353290, #540227, #559733, #621836, #639290)
[ David Kalnischkies ]
* [abi-break] Support large files in the complete toolset. Indexes of this
size are pretty unlikely for now, but we need it for deb
packages which could become bigger than 4GB now (LP: #815895)
* merged the debian-sid branch
[ Michael Vogt ]
* bump ABI version
apt (0.8.16~exp5ubuntu14.2.1) UNRELEASED; urgency=low
[ Daniel Hahler ]
* doc/apt-key.8.xml: Ubuntu specific documentation changes (LP: #445903)
-- Steve Langasek <steve.langasek at ubuntu.com> Sun, 29 Jan 2012 00:44:16 +0000
** Changed in: apt (Ubuntu Precise)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/850264
Title:
given a foreign architecture of i386 on amd64 machine, and an outdated
libc, apt tries to remove libc-bin
Status in “apt” package in Ubuntu:
Fix Released
Status in “apt” source package in Precise:
Fix Released
Bug description:
This reproducer was verified to work in the live system of current
precise-dailies. It doesn't work on an installed system where
libc6:i386 is already installed!
1. Drop libc6-dev:
sudo dpkg -P libc6-dev
2. Downgrade to a previous libc:
wget https://launchpad.net/ubuntu/+source/eglibc/2.13-20ubuntu9/+build/2979954/+files/libc-bin_2.13-20ubuntu9_amd64.deb https://launchpad.net/ubuntu/+source/eglibc/2.13-20ubuntu9/+build/2979954/+files/libc6_2.13-20ubuntu9_amd64.deb
sudo dpkg -i libc*.bin
3. Ensure apt is consistent:
sudo apt-get install -f
should not complain about anything.
4. Install i386 package:
sudo apt-get install cpp:i386
This will propose to remove libc-bin and install the newer version
of libc-bin:i386 instead.
It seems that apt prefers install the foreign arch libc6-bin:i386 over
upgrading the native arch libc6-bin to the current version?
WORKAROUND
If you get this bug with Precise Alpha1 you can workaround by:
* Keeping 'install 3rd party software' _unchecked_ in the Prepare step of Ubiquity
or
* Disconnecting the system from the network before starting the installation
----
Original bug report:
Today I added i386 as a foreign architecture and then tried to install
something with apt, but was presented with a very bad plan:
$ sudo apt-get install skype:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
gcc-4.6-base:i386 libasound2:i386 libaudio2:i386 libavahi-client3:i386 libavahi-common-data:i386
libavahi-common3:i386 libc-bin:i386 libc-dev-bin libc6 libc6:i386 libc6-dbg libc6-dev libc6-i386 libcomerr2:i386
libcups2:i386 libdbus-1-3:i386 libexpat1:i386 libffi6:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
libgcrypt11:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386 libgssapi-krb5-2:i386 libice6:i386
libjpeg62:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms1:i386 libmng1:i386
libpcre3:i386 libpng12-0:i386 libqt4-dbus libqt4-dbus:i386 libqt4-declarative libqt4-declarative:i386
libqt4-network libqt4-network:i386 libqt4-opengl libqt4-script libqt4-script:i386 libqt4-sql libqt4-sql:i386
libqt4-sql-mysql libqt4-sql-sqlite libqt4-svg libqt4-xml libqt4-xml:i386 libqt4-xmlpatterns
libqt4-xmlpatterns:i386 libqtcore4 libqtcore4:i386 libqtgui4 libqtgui4:i386 libselinux1:i386 libsm6:i386
libstdc++6:i386 libtasn1-3:i386 libtiff4:i386 libuuid1:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386
libxext6:i386 libxi6:i386 libxrender1:i386 libxss1:i386 libxt6:i386 libxv1:i386 qdbus zlib1g:i386
Suggested packages:
libasound2-plugins:i386 libasound2-python:i386 nas:i386 glibc-doc glibc-doc:i386 locales:i386 cups-common:i386
rng-tools:i386 gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 liblcms-utils:i386 libqt4-declarative-folderlistmodel
libqt4-declarative-gestures libqt4-declarative-particles libqt4-declarative-shaders qt4-qmlviewer
libqt4-declarative-folderlistmodel:i386 libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev libqt4-dev:i386 qt4-qtconfig qt4-qtconfig:i386
Recommended packages:
libqt4-sql-mysql:i386 libqt4-sql-odbc:i386 libqt4-sql-psql:i386 libqt4-sql-sqlite:i386
The following packages will be REMOVED:
libc-bin
The following NEW packages will be installed:
gcc-4.6-base:i386 libasound2:i386 libaudio2:i386 libavahi-client3:i386 libavahi-common-data:i386
libavahi-common3:i386 libc-bin:i386 libc6:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386 libexpat1:i386
libffi6:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgcrypt11:i386 libglib2.0-0:i386
libgnutls26:i386 libgpg-error0:i386 libgssapi-krb5-2:i386 libice6:i386 libjpeg62:i386 libk5crypto3:i386
libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms1:i386 libmng1:i386 libpcre3:i386 libpng12-0:i386
libqt4-dbus:i386 libqt4-declarative:i386 libqt4-network:i386 libqt4-script:i386 libqt4-sql:i386 libqt4-xml:i386
libqt4-xmlpatterns:i386 libqtcore4:i386 libqtgui4:i386 libselinux1:i386 libsm6:i386 libstdc++6:i386
libtasn1-3:i386 libtiff4:i386 libuuid1:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386 libxext6:i386
libxi6:i386 libxrender1:i386 libxss1:i386 libxt6:i386 libxv1:i386 skype:i386 zlib1g:i386
The following packages will be upgraded:
libc-dev-bin libc6 libc6-dbg libc6-dev libc6-i386 libqt4-dbus libqt4-declarative libqt4-network libqt4-opengl
libqt4-script libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite libqt4-svg libqt4-xml libqt4-xmlpatterns libqtcore4
libqtgui4 qdbus
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
libc-bin
19 upgraded, 58 newly installed, 1 to remove and 274 not upgraded.
Need to get 71.5 MB of archives.
After this operation, 96.3 MB of additional disk space will be used.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] ^C
To fix this, on slangasek's advice, I did
$ sudo apt-get install skype:i386 libc-bin
This upgraded libc-bin instead of removing it.
$ sudo apt-get install skype:i386 libc-bin
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
gcc-4.6-base:i386 libasound2:i386 libaudio2:i386 libavahi-client3:i386 libavahi-common-data:i386
libavahi-common3:i386 libc-dev-bin libc6 libc6:i386 libc6-dbg libc6-dev libc6-i386 libcomerr2:i386 libcups2:i386
libdbus-1-3:i386 libexpat1:i386 libffi6:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgcrypt11:i386
libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386 libgssapi-krb5-2:i386 libice6:i386 libjpeg62:i386
libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms1:i386 libmng1:i386 libpcre3:i386
libpng12-0:i386 libqt4-dbus libqt4-dbus:i386 libqt4-declarative libqt4-declarative:i386 libqt4-network
libqt4-network:i386 libqt4-opengl libqt4-script libqt4-script:i386 libqt4-sql libqt4-sql:i386 libqt4-sql-mysql
libqt4-sql-sqlite libqt4-svg libqt4-xml libqt4-xml:i386 libqt4-xmlpatterns libqt4-xmlpatterns:i386 libqtcore4
libqtcore4:i386 libqtgui4 libqtgui4:i386 libselinux1:i386 libsm6:i386 libstdc++6:i386 libtasn1-3:i386
libtiff4:i386 libuuid1:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386 libxext6:i386 libxi6:i386
libxrender1:i386 libxss1:i386 libxt6:i386 libxv1:i386 qdbus zlib1g:i386
Suggested packages:
libasound2-plugins:i386 libasound2-python:i386 nas:i386 glibc-doc glibc-doc:i386 locales:i386 cups-common:i386
rng-tools:i386 gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 liblcms-utils:i386 libqt4-declarative-folderlistmodel
libqt4-declarative-gestures libqt4-declarative-particles libqt4-declarative-shaders qt4-qmlviewer
libqt4-declarative-folderlistmodel:i386 libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev libqt4-dev:i386 qt4-qtconfig qt4-qtconfig:i386
Recommended packages:
libqt4-sql-mysql:i386 libqt4-sql-odbc:i386 libqt4-sql-psql:i386 libqt4-sql-sqlite:i386
The following NEW packages will be installed:
gcc-4.6-base:i386 libasound2:i386 libaudio2:i386 libavahi-client3:i386 libavahi-common-data:i386
libavahi-common3:i386 libc6:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386 libexpat1:i386 libffi6:i386
libfontconfig1:i386 libfreetype6:i386 libgcc1:i386 libgcrypt11:i386 libglib2.0-0:i386 libgnutls26:i386
libgpg-error0:i386 libgssapi-krb5-2:i386 libice6:i386 libjpeg62:i386 libk5crypto3:i386 libkeyutils1:i386
libkrb5-3:i386 libkrb5support0:i386 liblcms1:i386 libmng1:i386 libpcre3:i386 libpng12-0:i386 libqt4-dbus:i386
libqt4-declarative:i386 libqt4-network:i386 libqt4-script:i386 libqt4-sql:i386 libqt4-xml:i386
libqt4-xmlpatterns:i386 libqtcore4:i386 libqtgui4:i386 libselinux1:i386 libsm6:i386 libstdc++6:i386
libtasn1-3:i386 libtiff4:i386 libuuid1:i386 libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386 libxext6:i386
libxi6:i386 libxrender1:i386 libxss1:i386 libxt6:i386 libxv1:i386 skype:i386 zlib1g:i386
The following packages will be upgraded:
libc-bin libc-dev-bin libc6 libc6-dbg libc6-dev libc6-i386 libqt4-dbus libqt4-declarative libqt4-network
libqt4-opengl libqt4-script libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite libqt4-svg libqt4-xml libqt4-xmlpatterns
libqtcore4 libqtgui4 qdbus
20 upgraded, 57 newly installed, 0 to remove and 274 not upgraded.
Need to get 43.7 MB/71.6 MB of archives.
After this operation, 96.5 MB of additional disk space will be used.
Do you want to continue [Y/n]?
libc-bin was version 2.13-17ubuntu2 at the time, and updated to
2.13-20ubuntu2
ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: apt 0.8.16~exp5ubuntu6
ProcVersionSignature: Ubuntu 3.0.0-9.14-generic 3.0.3
Uname: Linux 3.0.0-9-generic x86_64
NonfreeKernelModules: nvidia wl
ApportVersion: 1.22.1-0ubuntu2
Architecture: amd64
Date: Wed Sep 14 11:43:35 2011
InstallationMedia: Xubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101008.1)
ProcEnviron:
PATH=(custom, user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: apt
UpgradeStatus: Upgraded to oneiric on 2011-07-14 (61 days ago)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/850264/+subscriptions
More information about the foundations-bugs
mailing list