--- Begin Message ---
Package: apt
Version: 0.9.7.9+deb7u1
Severity: normal
unattended-upgrades was unable to upgrade the fglrx family of packages
from one version to the next on SteamOS, and I've been able to reproduce
a simpler form of the same situation with both apt-get and
unattended-upgrades, in a Debian stable or testing chroot.
== preconditions ==
The test set of packages are created by the attached files (put them all
in the same directory and run make), and are a simplified version of the
original situation involving fglrx:
foo-driver amd64 installed
Depends: libfoo (= VERSION)
Recommends: libgl1-foo-glx (= VERSION)
Breaks: libgl1-foo-glx (<< VERSION)
Breaks: libgl1-foo-glx (>> VERSION)
libgl1-foo-glx both amd64 and i386 installed
Depends: libfoo (= VERSION)
libfoo both amd64 and i386 installed
The only configured apt repository at the time of the upgrade contains
packages of the same names, with the same relationships, but a higher
version. The Makefile rules for "test_apt_in_chroot" and
"test_uu_in_chroot" indicate the specifics of how I tested this, in a
small chroot environment (build-essential + aptitude + sudo + vim).
== expected result ==
I would expect the problem resolution to involve temporarily
deconfiguring foo-driver and libgl1-foo-glx, upgrading both flavours of
libfoo, configuring libgl1-foo-glx, and finally configuring foo-driver.
== actual result ==
However, what actually happens is that apt gets part-way through the
upgrade, but does not deconfigure foo-driver in favour of the new
libgl1-foo-glx:
> The following packages will be upgraded:
> foo-driver libfoo libfoo:i386 libgl1-foo-glx libgl1-foo-glx:i386
> 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
> Need to get 0 B/3538 B of archives.
> After this operation, 0 B of additional disk space will be used.
> Do you want to continue? [Y/n]
[...]
> (Reading database ... 16779 files and directories currently
> installed.)
> Preparing to unpack .../foo/libgl1-foo-glx_2_amd64.deb ...
> De-configuring libgl1-foo-glx:i386 (1) ...
> Unpacking libgl1-foo-glx:amd64 (2) over (1) ...
> Preparing to unpack .../foo/libgl1-foo-glx_2_i386.deb ...
> Unpacking libgl1-foo-glx:i386 (2) over (1) ...
> Preparing to unpack .../main/f/foo/libfoo_2_i386.deb ...
> De-configuring libfoo:amd64 (1) ...
> Unpacking libfoo:i386 (2) over (1) ...
> Preparing to unpack .../main/f/foo/libfoo_2_amd64.deb ...
> Unpacking libfoo:amd64 (2) over (1) ...
> Setting up libfoo:amd64 (2) ...
> Setting up libfoo:i386 (2) ...
> dpkg: dependency problems prevent configuration of
> libgl1-foo-glx:amd64:
> foo-driver (1) breaks libgl1-foo-glx (>> 1) and is installed.
> Version of libgl1-foo-glx:amd64 to be configured is 2.
>
> dpkg: error processing package libgl1-foo-glx:amd64 (--configure):
> dependency problems - leaving unconfigured
> dpkg: dependency problems prevent configuration of
> libgl1-foo-glx:i386:
> foo-driver (1) breaks libgl1-foo-glx (>> 1) and is installed.
> Version of libgl1-foo-glx:i386 to be configured is 2.
>
> dpkg: error processing package libgl1-foo-glx:i386 (--configure):
> dependency problems - leaving unconfigured
> Errors were encountered while processing:
> libgl1-foo-glx:amd64
> libgl1-foo-glx:i386
This seems to be multiarch-related: not installing the i386 packages
leads to the upgrade working fine.
== applicability to "real life" ==
In the real situation on SteamOS, "foo" is replaced with "fglrx"
throughout, the packages contain files, and there are additional
dependencies on packages that are not involved in the problematic
transaction. The failure mode appears to be the same.
Package versions etc. below are from a wheezy/amd64 chroot that can
reproduce the bug.
S
-- Package-specific info:
-- apt-config dump --
APT "";
APT::Architecture "amd64";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Install-Recommends "1";
APT::Install-Suggests "0";
APT::NeverAutoRemove "";
APT::NeverAutoRemove:: "^firmware-linux.*";
APT::NeverAutoRemove:: "^linux-firmware$";
APT::NeverAutoRemove:: "^linux-image.*";
APT::NeverAutoRemove:: "^kfreebsd-image.*";
APT::NeverAutoRemove:: "^linux-restricted-modules.*";
APT::NeverAutoRemove:: "^linux-ubuntu-modules-.*";
APT::NeverAutoRemove:: "^gnumach$";
APT::NeverAutoRemove:: "^gnumach-image.*";
APT::Never-MarkAuto-Sections "";
APT::Never-MarkAuto-Sections:: "metapackages";
APT::Never-MarkAuto-Sections:: "restricted/metapackages";
APT::Never-MarkAuto-Sections:: "universe/metapackages";
APT::Never-MarkAuto-Sections:: "multiverse/metapackages";
APT::Never-MarkAuto-Sections:: "oldlibs";
APT::Never-MarkAuto-Sections:: "restricted/oldlibs";
APT::Never-MarkAuto-Sections:: "universe/oldlibs";
APT::Never-MarkAuto-Sections:: "multiverse/oldlibs";
APT::Architectures "";
APT::Architectures:: "amd64";
APT::Architectures:: "i386";
APT::Compressor "";
APT::Compressor::. "";
APT::Compressor::.::Name ".";
APT::Compressor::.::Extension "";
APT::Compressor::.::Binary "";
APT::Compressor::.::Cost "1";
APT::Compressor::gzip "";
APT::Compressor::gzip::Name "gzip";
APT::Compressor::gzip::Extension ".gz";
APT::Compressor::gzip::Binary "gzip";
APT::Compressor::gzip::Cost "2";
APT::Compressor::gzip::CompressArg "";
APT::Compressor::gzip::CompressArg:: "-9n";
APT::Compressor::gzip::UncompressArg "";
APT::Compressor::gzip::UncompressArg:: "-d";
APT::Compressor::bzip2 "";
APT::Compressor::bzip2::Name "bzip2";
APT::Compressor::bzip2::Extension ".bz2";
APT::Compressor::bzip2::Binary "bzip2";
APT::Compressor::bzip2::Cost "3";
APT::Compressor::bzip2::CompressArg "";
APT::Compressor::bzip2::CompressArg:: "-9";
APT::Compressor::bzip2::UncompressArg "";
APT::Compressor::bzip2::UncompressArg:: "-d";
APT::Compressor::xz "";
APT::Compressor::xz::Name "xz";
APT::Compressor::xz::Extension ".xz";
APT::Compressor::xz::Binary "xz";
APT::Compressor::xz::Cost "4";
APT::Compressor::xz::CompressArg "";
APT::Compressor::xz::CompressArg:: "-6";
APT::Compressor::xz::UncompressArg "";
APT::Compressor::xz::UncompressArg:: "-d";
APT::Compressor::lzma "";
APT::Compressor::lzma::Name "lzma";
APT::Compressor::lzma::Extension ".lzma";
APT::Compressor::lzma::Binary "xz";
APT::Compressor::lzma::Cost "5";
APT::Compressor::lzma::CompressArg "";
APT::Compressor::lzma::CompressArg:: "--format=lzma";
APT::Compressor::lzma::CompressArg:: "-9";
APT::Compressor::lzma::UncompressArg "";
APT::Compressor::lzma::UncompressArg:: "--format=lzma";
APT::Compressor::lzma::UncompressArg:: "-d";
APT::Compressor::::Name "";
APT::Compressor::::Extension ".";
APT::Compressor::::Binary "";
APT::Compressor::::Cost "100";
APT::Compressor::::CompressArg "";
APT::Compressor::::CompressArg:: "-9";
APT::Compressor::::UncompressArg "";
APT::Compressor::::UncompressArg:: "-d";
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "lists/";
Dir::State::cdroms "cdroms.list";
Dir::State::mirrors "mirrors/";
Dir::State::extended_states "extended_states";
Dir::State::status "/var/lib/dpkg/status";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::sourceparts "sources.list.d";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::netrc "auth.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Etc::preferencesparts "preferences.d";
Dir::Etc::trusted "trusted.gpg";
Dir::Etc::trustedparts "trusted.gpg.d";
Dir::Bin "";
Dir::Bin::methods "/usr/lib/apt/methods";
Dir::Bin::solvers "";
Dir::Bin::solvers:: "/usr/lib/apt/solvers";
Dir::Bin::dpkg "/usr/bin/dpkg";
Dir::Bin::bzip2 "/bin/bzip2";
Dir::Bin::xz "/usr/bin/xz";
Dir::Media "";
Dir::Media::MountPath "/media/apt";
Dir::Log "var/log/apt";
Dir::Log::Terminal "term.log";
Dir::Log::History "history.log";
Dir::Ignore-Files-Silently "";
Dir::Ignore-Files-Silently:: "~$";
Dir::Ignore-Files-Silently:: "\.disabled$";
Dir::Ignore-Files-Silently:: "\.bak$";
Dir::Ignore-Files-Silently:: "\.dpkg-[a-z]+$";
Dir::Ignore-Files-Silently:: "\.save$";
Dir::Ignore-Files-Silently:: "\.orig$";
Acquire "";
Acquire::cdrom "";
Acquire::cdrom::mount "/media/cdrom/";
Acquire::http "";
Acquire::http::Proxy "http://localhost:3142";
Acquire::Pdiffs "false";
Acquire::Languages "";
Acquire::Languages:: "en";
Acquire::Languages:: "none";
Unattended-Upgrade "";
Unattended-Upgrade::Origins-Pattern "";
Unattended-Upgrade::Origins-Pattern::
"origin=Debian,archive=stable,label=Debian-Security";
DPkg "";
DPkg::Pre-Install-Pkgs "";
DPkg::Pre-Install-Pkgs:: "/usr/sbin/dpkg-preconfigure --apt || true";
CommandLine "";
CommandLine::AsString "apt-config dump";
-- (no /etc/apt/preferences present) --
-- /etc/apt/sources.list --
deb [trusted=yes] file:///home/smcv/tmp/out/2.apt foo main
-- System Information:
Debian Release: 7.4
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.13-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Versions of packages apt depends on:
ii debian-archive-keyring 2012.4
ii gnupg 1.4.12-7+deb7u3
ii libapt-pkg4.12 0.9.7.9+deb7u1
ii libc6 2.13-38+deb7u1
ii libgcc1 1:4.7.2-5
ii libstdc++6 4.7.2-5
apt recommends no packages.
Versions of packages apt suggests:
pn apt-doc <none>
ii aptitude 0.6.8.2-1
ii dpkg-dev 1.16.12
ii python-apt 0.8.8.2
ii xz-utils 5.1.1alpha+20120614-2
-- no debconf information
Origin: my archive
Label: my label
Suite: inadvisable
Codename: foo
Version: 1.0
Architectures: amd64 i386
Components: main
Source: foo
Section: misc
Priority: optional
Maintainer: me <me@example.com>
Package: foo-driver
Architecture: @ARCH@
Version: @VERSION@
Depends: libfoo (= @VERSION@)
Recommends: libgl1-foo-glx (= @VERSION@)
Breaks: libgl1-foo-glx (<< @VERSION@),
libgl1-foo-glx (>> @VERSION@)
Description: dummy package analogous to fglrx-driver
Source: foo
Section: misc
Priority: optional
Maintainer: me <me@example.com>
Package: libfoo
Multi-Arch: same
Architecture: @ARCH@
Version: @VERSION@
Description: dummy package analogous to libfglrx
Source: foo
Section: misc
Priority: optional
Maintainer: me <me@example.com>
Package: libgl1-foo-glx
Multi-Arch: same
Architecture: @ARCH@
Version: @VERSION@
Depends: libfoo (= @VERSION@)
Description: dummy package analogous to libgl1-fglrx-glx
all:
test_apt_in_chroot:
test -e /etc/debian_chroot
sudo eatmydata apt-get update
sudo eatmydata apt-get dist-upgrade
sudo eatmydata apt-get install unattended-upgrades
sudo dpkg --add-architecture i386
sudo eatmydata dpkg -i \
out/1.apt/pool/main/f/foo/foo-driver_1_amd64.deb \
out/1.apt/pool/main/f/foo/lib*_1_*.deb
echo "deb [trusted=yes] file://$(CURDIR)/out/2.apt foo main" | \
sudo tee /etc/apt/sources.list
sudo eatmydata apt-get update
sudo eatmydata apt-get upgrade
test_uu_in_chroot:
test -e /etc/debian_chroot
sudo eatmydata apt-get update
sudo eatmydata apt-get dist-upgrade
sudo eatmydata apt-get install unattended-upgrades
sudo dpkg --add-architecture i386
sudo eatmydata dpkg -i \
out/1.apt/pool/main/f/foo/foo-driver_1_amd64.deb \
out/1.apt/pool/main/f/foo/lib*_1_*.deb
echo "deb [trusted=yes] file://$(CURDIR)/out/2.apt foo main" | \
sudo tee /etc/apt/sources.list
printf 'Unattended-Upgrade::Origins-Pattern {\n"a=inadvisable";\n};\n' | \
sudo tee /etc/apt/apt.conf.d/50unattended-upgrades
sudo eatmydata apt-get update
sudo unattended-upgrade --debug --minimal_upgrade_steps
set -e && for x in /var/log/unattended-upgrades/*; do echo "=== $$x ==="; cat "$$x"; done
control_in := $(wildcard *.control.in)
control := \
$(patsubst %.control.in,tmp/%_1_amd64/DEBIAN/control,$(control_in)) \
$(patsubst %.control.in,tmp/%_2_amd64/DEBIAN/control,$(control_in)) \
$(patsubst %.control.in,tmp/%_1_i386/DEBIAN/control,$(control_in)) \
$(patsubst %.control.in,tmp/%_2_i386/DEBIAN/control,$(control_in)) \
$(NULL)
debs := $(patsubst %/DEBIAN/control,%.deb,$(control))
all: out/1.apt out/2.apt
out/%.apt: $(debs) distributions
install -d $@/conf
install -m644 distributions $@/conf/distributions
reprepro -b $@ includedeb foo tmp/*_$(*)_amd64.deb tmp/*_$(*)_i386.deb
clean:
rm -fr out tmp
$(debs): tmp/%.deb: tmp/%/DEBIAN/control
dpkg-deb -b tmp/$*
tmp/%_1_amd64/DEBIAN/control: %.control.in
install -d $(dir $@)
sed -e 's/@VERSION@/1/' -e 's/@ARCH@/amd64/' < $< > $@
tmp/%_1_i386/DEBIAN/control: %.control.in
install -d $(dir $@)
sed -e 's/@VERSION@/1/' -e 's/@ARCH@/i386/' < $< > $@
tmp/%_2_amd64/DEBIAN/control: %.control.in
install -d $(dir $@)
sed -e 's/@VERSION@/2/' -e 's/@ARCH@/amd64/' < $< > $@
tmp/%_2_i386/DEBIAN/control: %.control.in
install -d $(dir $@)
sed -e 's/@VERSION@/2/' -e 's/@ARCH@/i386/' < $< > $@
--- End Message ---
--- Begin Message ---
Source: apt
Source-Version: 0.9.16
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.
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 740843@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@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Fri, 14 Mar 2014 09:45:05 +0100
Source: apt
Binary: apt libapt-pkg4.12 libapt-inst1.5 apt-doc libapt-pkg-dev libapt-pkg-doc apt-utils apt-transport-https
Architecture: source all amd64
Version: 0.9.16
Distribution: unstable
Urgency: medium
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 management related utility programs
libapt-inst1.5 - 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 management runtime library
Closes: 661537 740673 740843 741056
Changes:
apt (0.9.16) unstable; urgency=medium
.
[ Michael Vogt ]
* add hashsum support in apt-helper download-file and
add more tests
.
[ Trần Ngọc Quân ]
* l10n: vi.po (624t): Update Vietnamese translation
.
[ David Kalnischkies ]
* propagate a negative score point along breaks/conflicts
* check version before adding scores in resolver
* autogenerate makefile for vendor system
* add default and override handling for Cnf::FindVector
* support DEB_BUILD_PROFILES and -P for build profiles
* do not configure already unpacked packages needlessly (Closes: 740843)
* if mountpoint has a ".disk" directory it is mounted
* no error for non-existing mountpoints in MountCdrom
* apt-cdrom ident shouldn't be interactive (Closes: 740673)
* support very long mtab entries in mountpoint discovery
* msgstr with elipses need three dots
* cmdline parsing: apt-config is not apt-cdrom
* use a configurable list of versioned kernel packages
* support kfreebsd and hurd in the kernel hook
* add ".*-{kernel,modules}-$KERVER" matcher for hook
* ensure that a dot is a dot in the hook
* use liblzma-dev to provide xz/lzma support
* use the pretty fullname of a pkg as download desciption
.
[ Johannes Schauer ]
* implement BuildProfileSpec support as dpkg has in 1.17.2 (Closes: 661537)
.
[ Wojciech Górski ]
* fix polish --install-suggests text in apt-get manpage (Closes: 741056)
Checksums-Sha1:
131078a4e5bff780a8d5bfd5aac196a8a8177025 1638 apt_0.9.16.dsc
88f89e8cec134b951371013ceb706ce1373771bd 1734784 apt_0.9.16.tar.xz
c4e4720044a0434ccf803d7cb0cd9c261a0906bc 270724 apt-doc_0.9.16_all.deb
d78931fa7027bc61c6fa96f1fc1693bcb117323e 766790 libapt-pkg-doc_0.9.16_all.deb
d494798e128855de9735b5c5a1e415b616ffa880 743384 libapt-pkg4.12_0.9.16_amd64.deb
dc1504c2f88e6d66439189d669603e2017fb96db 162490 libapt-inst1.5_0.9.16_amd64.deb
81eedba06f88dcd121ab65354c7f552f266ace98 1062452 apt_0.9.16_amd64.deb
64e38f60c3d90a35e53c67047f05c87de6190b33 186468 libapt-pkg-dev_0.9.16_amd64.deb
2dfedef00f9920e14c78cbdd327841ee24c50069 349466 apt-utils_0.9.16_amd64.deb
97530050b15f2d8f9b0f0cec4264d81f0b51ffc5 129148 apt-transport-https_0.9.16_amd64.deb
Checksums-Sha256:
c5f080a8f80ed969a5527a326b638f96ba4b26e4792710359a25d2e4d34916ac 1638 apt_0.9.16.dsc
d6578c1510dcad6d63630e385e998384512da3c64fb09f8a381364e11f01c513 1734784 apt_0.9.16.tar.xz
b4a348de3caa1a95ad11a8ce8496d0a4b0e496c020de764a627820708d7100e3 270724 apt-doc_0.9.16_all.deb
02bbc61e603e3d299d9f42790c095fe58d586775a821273e0f5487b390e441df 766790 libapt-pkg-doc_0.9.16_all.deb
184a24d86a7b2378ec3b16fb35a6b1ff8787697ced13214c28347ce42c94be5e 743384 libapt-pkg4.12_0.9.16_amd64.deb
33ec9ac43621d9b3beba31f377641e60175f0b4e07f6c6928730201e63141140 162490 libapt-inst1.5_0.9.16_amd64.deb
4751b238e7b06605fa159862b1595df856944f99ab6ce1a70f9642675e354d37 1062452 apt_0.9.16_amd64.deb
a7ca0ea54f6e8a1f8edc13766bc038dc1f8be9707c41e826456f82443f77a048 186468 libapt-pkg-dev_0.9.16_amd64.deb
c60caeb5519111acc151adb4c27d9ee281a279186f583ddfd25835b04d380ecb 349466 apt-utils_0.9.16_amd64.deb
5c98075ba411007c11b6824ed0e5e903e89fa9a18bf2447a1ab0e14257d4c313 129148 apt-transport-https_0.9.16_amd64.deb
Files:
9d0f3f359fd7cbe973526c88e39ced44 1638 admin important apt_0.9.16.dsc
9ebe9a76dac4fb453c030ee584756f6d 1734784 admin important apt_0.9.16.tar.xz
bba391e04ef93fe3d7298981a0d9eb3d 270724 doc optional apt-doc_0.9.16_all.deb
082f4caf75dc54e691a64ba5df570bce 766790 doc optional libapt-pkg-doc_0.9.16_all.deb
3c413ad5c5fdabe0fb76035d76afac5f 743384 libs important libapt-pkg4.12_0.9.16_amd64.deb
0aadeff033c0f147671938cf10ee6d0b 162490 libs important libapt-inst1.5_0.9.16_amd64.deb
9bb168f072739ba11938c5e499d3f956 1062452 admin important apt_0.9.16_amd64.deb
fde072f19e881b614ece35b4d1791cf5 186468 libdevel optional libapt-pkg-dev_0.9.16_amd64.deb
098f3d2a85e9ec23f71670b45a69e8f8 349466 admin important apt-utils_0.9.16_amd64.deb
ab1fcac9195fa6b2a6c0a491b52b9b84 129148 admin optional apt-transport-https_0.9.16_amd64.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEARECAAYFAlMixlcACgkQliSD4VZixzR8vQCfYggVmYiKG6ARbCwY8mChZTQU
S6UAn2gzGj23sBbN2MeKTtSREilvYZAx
=aFHK
-----END PGP SIGNATURE-----
--- End Message ---