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

Bug#723586: apt thinks :any dependencies are satisfied but dpkg doesn't



Package: apt
Version: 0.9.7.9
Severity: normal

The introduction of the dependency "python3:any (>= 3.2.3-3~)" in a number of
python3 packages should require that python3 be upgraded to at least version
3.3.0-2 since that is the first version that is marked as Multi-Arch: allowed.

$ grep-dctrl --exact-match -P python3 /var/lib/apt/lists/*Packages \
      -s Package,Version,Multi-Arch
Package: python3
Version: 3.3.2-15
Multi-Arch: allowed

Package: python3
Version: 3.2.3-6

However, wheezy's apt appears to think that the non-multi-arch'd python3
package in wheezy satisfies this dependency (the version is sufficient but the
:any requires a Multi-Arch: allowed package). Unfortunately, dpkg disagrees and
so complains that it is not able to configure the package because all
dependencies are not yet satisfied.

This has obvious consequences for wheezy→jessie upgrades: if apt tells dpkg to
configure the packages in the wrong order then the configure step will fail. An
example of this is shown below.

Given we know that the python3 package in wheezy won't satisfy the dependency
of python3-gnupg (and the dozen or so other packages we already have with
Depends: python3:any (>= 3.2.3-3~)), it would be feasible to just bump the
version number in this relationship to the Multi-Arch'd version of the package
(i.e. make it python3:any (>= 3.3.0) or similar). I altered the python-gnupg3
package used below to have this dependency instead and apt decided to upgrade
python3 as well and completed without error. This inelegantly solves the
problem for python3 but might be the best we can do for wheezy→jessie.

cheers
Stuart

(PS: I have illustrated this below with aptitude but apt-get does the same,
as just pointed out by Jakub Wilk in
http://lists.debian.org/20130917153638.GA3419@jwilk.net)

(wheezy[cow.25887])root@huma:/# apt-get install python3-gnupg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libffi5 python3 python3-minimal python3.2 python3.2-minimal
Suggested packages:
  python3-doc python3-tk python3.2-doc binfmt-support
The following NEW packages will be installed:
  libffi5 python3 python3-gnupg python3-minimal python3.2 python3.2-minimal
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/4478 kB of archives.
After this operation, 14.7 MB of additional disk space will be used.
Do you want to continue [Y/n]? 
Selecting previously unselected package libffi5:i386.
(Reading database ... 18897 files and directories currently installed.)
Unpacking libffi5:i386 (from .../libffi5_3.0.10-3_i386.deb) ...
Selecting previously unselected package python3.2-minimal.
Unpacking python3.2-minimal (from .../python3.2-minimal_3.2.3-7_i386.deb) ...
Selecting previously unselected package python3.2.
Unpacking python3.2 (from .../python3.2_3.2.3-7_i386.deb) ...
Selecting previously unselected package python3-minimal.
Unpacking python3-minimal (from .../python3-minimal_3.2.3-6_all.deb) ...
Selecting previously unselected package python3.
Unpacking python3 (from .../python3_3.2.3-6_all.deb) ...
Selecting previously unselected package python3-gnupg.
Unpacking python3-gnupg (from .../python3-gnupg_0.3.0-1.1_all.deb) ...
Processing triggers for man-db ...
Setting up libffi5:i386 (3.0.10-3) ...
Setting up python3.2-minimal (3.2.3-7) ...
Setting up python3.2 (3.2.3-7) ...
Setting up python3-minimal (3.2.3-6) ...
Setting up python3 (3.2.3-6) ...
Setting up python3-gnupg (0.3.0-1.1) ...

(wheezy[cow.25887])root@huma:/# sed -i 's/wheezy/sid/' /etc/apt/sources.list

(wheezy[cow.25887])root@huma:/# apt-get update
Ign file: ./ Release.gpg
Ign file: ./ Release
Ign file: ./ Translation-en
Hit http://ftp.iinet.net.au sid Release.gpg  
Hit http://ftp.iinet.net.au sid Release
Hit http://ftp.iinet.net.au sid/main i386 Packages
Get:1 http://ftp.iinet.net.au sid/main Translation-en [4390 kB]
Fetched 4390 kB in 3s (1275 kB/s)       
Reading package lists... Done

(wheezy[cow.25887])root@huma:/# apt-cache policy python3-gnupg
python3-gnupg:
  Installed: 0.3.0-1.1
  Candidate: 0.3.5-2+swp
  Version table:
     0.3.5-2+swp 0
        500 file:/tmp/pkgs/ ./ Packages
     0.3.5-2 0
        500 http://ftp.iinet.net.au/debian/debian/ sid/main i386 Packages
 *** 0.3.0-1.1 0
        100 /var/lib/dpkg/status

(wheezy[cow.25887])root@huma:/# aptitude upgrade !$
aptitude upgrade python3-gnupg
Resolving dependencies...                
The following NEW packages will be installed:
  dh-python{a} libffi6{a} libpython3-stdlib{a} libpython3.3-minimal{a} 
  libpython3.3-stdlib{a} python3.3{a} python3.3-minimal{a} 
The following packages will be REMOVED:
  libffi5{u} python3.2{u} python3.2-minimal{u} 
The following packages will be upgraded:
  libc-dev-bin libc6 libc6-dev python3 python3-gnupg python3-minimal 
The following packages are RECOMMENDED but will NOT be installed:
  libc6-i686 
6 packages upgraded, 7 newly installed, 3 to remove and 149 not upgraded.
Need to get 0 B/10.8 MB of archives. After unpacking 4703 kB will be used.
Do you want to continue? [Y/n/?] 
WARNING: untrusted versions of the following packages will be installed!

Untrusted packages could compromise your system's security.
You should only proceed with the installation if you are certain that
this is what you want to do.

  python3-gnupg 

Do you want to ignore this warning and proceed anyway?
To continue, enter "Yes"; to abort, enter "No": yes
93% [Working]Preconfiguring packages ... 
(Reading database ... 19725 files and directories currently installed.)
Preparing to replace libc6-dev:i386 2.13-38 (using .../libc6-dev_2.17-92+b1_i386.deb) ...
Unpacking replacement libc6-dev:i386 ...
Preparing to replace libc-dev-bin 2.13-38 (using .../libc-dev-bin_2.17-92+b1_i386.deb) ...
Unpacking replacement libc-dev-bin ...
Preparing to replace libc6:i386 2.13-38 (using .../libc6_2.17-92+b1_i386.deb) ...
Checking for services that may need to be restarted...
Checking init scripts...
Unpacking replacement libc6:i386 ...
Processing triggers for man-db ...
Setting up libc6:i386 (2.17-92+b1) ...
Checking for services that may need to be restarted...
Checking init scripts...
Nothing to restart.
Selecting previously unselected package libpython3.3-minimal.
(Reading database ... 19750 files and directories currently installed.)
Unpacking libpython3.3-minimal (from .../libpython3.3-minimal_3.3.2-5_i386.deb) ...
Selecting previously unselected package python3.3-minimal.
Unpacking python3.3-minimal (from .../python3.3-minimal_3.3.2-5_i386.deb) ...
Preparing to replace python3 3.2.3-6 (using .../python3_3.3.2-16_i386.deb) ...
Unpacking replacement python3 ...
Preparing to replace python3-minimal 3.2.3-6 (using .../python3-minimal_3.3.2-16_i386.deb) ...
Unpacking replacement python3-minimal ...
Selecting previously unselected package libffi6:i386.
Unpacking libffi6:i386 (from .../libffi6_3.0.13-4_i386.deb) ...
Selecting previously unselected package libpython3.3-stdlib.
Unpacking libpython3.3-stdlib (from .../libpython3.3-stdlib_3.3.2-5_i386.deb) ...
Selecting previously unselected package python3.3.
Unpacking python3.3 (from .../python3.3_3.3.2-5_i386.deb) ...
Selecting previously unselected package libpython3-stdlib:i386.
Unpacking libpython3-stdlib:i386 (from .../libpython3-stdlib_3.3.2-16_i386.deb) ...
Selecting previously unselected package dh-python.
Unpacking dh-python (from .../dh-python_1.20130913-1_all.deb) ...
Processing triggers for man-db ...
(Reading database ... 20587 files and directories currently installed.)
Removing python3.2 ...
Removing libffi5:i386 ...
Removing python3.2-minimal ...
Processing triggers for man-db ...
(Reading database ... 19815 files and directories currently installed.)
Preparing to replace python3-gnupg 0.3.0-1.1 (using .../python3-gnupg_0.3.5-2+swp_all.deb) ...
Unpacking replacement python3-gnupg ...
Setting up libc-dev-bin (2.17-92+b1) ...
Setting up libc6-dev:i386 (2.17-92+b1) ...
Setting up libpython3.3-minimal (3.3.2-5) ...
Setting up python3.3-minimal (3.3.2-5) ...
Setting up libffi6:i386 (3.0.13-4) ...
Setting up libpython3.3-stdlib (3.3.2-5) ...
Setting up python3.3 (3.3.2-5) ...
Setting up python3-minimal (3.3.2-16) ...
Setting up libpython3-stdlib:i386 (3.3.2-16) ...
Setting up python3 (3.3.2-16) ...
Setting up dh-python (1.20130913-1) ...
Setting up python3-gnupg (0.3.5-2+swp) ...
                                         
Current status: 149 updates [-6].

(wheezy[cow.25887])root@huma:/# apt-cache show !$
apt-cache show python3-gnupg
Package: python3-gnupg
Source: python-gnupg
Version: 0.3.5-2+swp
Architecture: all
Maintainer: Elena Grandi <elena.valhalla@gmail.com>
Installed-Size: 85
Depends: python3 (>= 3.1), python3:any (>= 3.3.2), gnupg
Filename: ./python3-gnupg_0.3.5-2+swp_all.deb
Size: 14312
MD5sum: 95bf7abd2153a9b900654e7f815c1d05
SHA1: fd9c6a4edba63b8da69bea0b792ffc2903c54724
SHA256: db2b7238272e5a2fca4eb05aaa07008c6a19b8e31c8849ddbf556defd0643c08
Section: python
Priority: optional
Homepage: http://code.google.com/p/python-gnupg/
Description-en: Python wrapper for the Gnu Privacy Guard (Python 3.x)
 Python-GnuPG allows easy and well-documented access to basic GnuPG
 functionality such as generating and managing keys, encrypting and
 decrypting data, signing and verifying messages.
 .
 This package provides Python 3.x version of python-gnupg.

Package: python3-gnupg
Source: python-gnupg
Version: 0.3.5-2
Installed-Size: 85
Maintainer: Elena Grandi <elena.valhalla@gmail.com>
Architecture: all
Depends: python3 (>= 3.1), python3:any (>= 3.2.3-3~), gnupg
Description-en: Python wrapper for the Gnu Privacy Guard (Python 3.x)
 Python-GnuPG allows easy and well-documented access to basic GnuPG
 functionality such as generating and managing keys, encrypting and
 decrypting data, signing and verifying messages.
 .
 This package provides Python 3.x version of python-gnupg.
Homepage: http://code.google.com/p/python-gnupg/
Description-md5: 090e2a4e40e2dd33c69008e104f768cc
Tag: implemented-in::python, security::cryptography
Section: python
Priority: optional
Filename: pool/main/p/python-gnupg/python3-gnupg_0.3.5-2_all.deb
Size: 14304
MD5sum: 66be804d679017d91663021e01f845b4
SHA1: bdf191bc09f8348dd3a028259972ce17134a7b26
SHA256: 75b50d06e777b817c72aa5d2de66d09991a2e9beb9eba37e280339c76f24d354


Reply to: