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

Bug#747261: apt: Please add support for cross-architecture conflicts



Version: 0.9.7.2
Control: notfound -1 1.0.3

Hi,

On Tue, May 06, 2014 at 11:22:00PM +0200, Aurelien Jarno wrote:
> Could you please therefore add support for cross-architecture conflicts?

This is already supported – even in apt/wheezy – so I wonder how you
come to the conclusion that it is ignored. It is commit cef094c2ec8
if you want to have a look and/or don't trust me, but until further
notice I will close the bug as resolved because of this.

If you can demonstrate that it doesn't work I am all ears of course.


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! BEWARE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Just that APT is supporting it doesn't make it magically supported by
everyone or even provides even the slightest hint that anyone will
try to support it, too (MultiArch itself being the best example).

So I have no idea at the moment what the status quo is in all the other
software dealing with dependencies! Attached is a small apt testcase with
which I have checked that dpkg supports it, but I have only run it on sid.
(if you want to run it yourself, build apt and run the script in
 /path/to/apt-source-tree/test/integration/ )
Not even the slightest idea what lintian/dak/buildds/… will make of it.


Note also that to the best of my knowledge this is documented/specified
nowhere. The MultiArchSpec [1] mentions it only as future work area.
APT supports it mainly because it was ridiculously easy to do it as the
heavy lifting is actually needed to support the non-specific conflicts.
(I am reasonably sure I had support for it in 2010 already, but broke it
 while refactoring and just reintroduced it in 2012 with a test)


Best regards

David Kalnischkies

[1] https://wiki.ubuntu.com/MultiarchSpec#Architecture-specific_Conflicts.2BAC8-Replaces
#!/bin/sh
set -e

TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework
setupenvironment
configarchitecture 'amd64' 'sparc' 'armel'

buildsimplenativepackage 'libc6' 'amd64,sparc,armel' '1' 'stable' 'Multi-Arch: same'
buildsimplenativepackage 'libc6-i386' 'amd64' '1' 'stable' 'Conflicts: libc6:sparc'

setupaptarchive

testsuccess aptget install 'libc6:amd64' 'libc6:sparc' -y
testdpkginstalled 'libc6:amd64' 'libc6:sparc'
testdpkgnotinstalled 'libc6-i386' 'libc6:armel'

testsuccess aptget install libc6-i386 -y
testdpkginstalled 'libc6:amd64' 'libc6-i386'
testdpkgnotinstalled 'libc6:sparc' 'libc6:armel'

testsuccess aptget install libc6:armel -y
testdpkginstalled 'libc6:amd64' 'libc6:armel' 'libc6-i386'
testdpkgnotinstalled 'libc6:sparc'

testsuccess aptget install libc6:sparc -y
testdpkginstalled 'libc6:amd64' 'libc6:armel' 'libc6:sparc'
testdpkgnotinstalled 'libc6-i386'

testsuccess aptget purge 'libc6:*' 'libc6-i386' -y
testdpkgnotinstalled 'libc6:amd64' 'libc6:armel' 'libc6:sparc' 'libc6-i386'

# check that (the actually simpler) single arch is fine, too
configarchitecture 'amd64'
testfailure aptget install libc6:sparc -s
testsuccess aptget install libc6 libc6-i386 -y

Attachment: signature.asc
Description: Digital signature


Reply to: