[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