On Sun, Nov 09, 2014 at 05:18:10PM +0100, Johannes Schauer wrote: > > Ah okay! Somehow I misunderstood your initial email that you wanted to say: > > Depends: foo:i386, foo:amd64, ..., bar:i386, bar:amd64,... > > But instead you just want... > > Depends: foo:i386, foo:amd64, ... > > ...in one package and... > > Depends: bar:i386, bar:amd64,... > > ... in the other, right? This sounds very useful, because it does not make > sense to mark a package M-A:same if they cannot actually be co-installed > across > architectures.
Yes, exactely. > Instead of creating dummy packages for this task, you can also use > dose-deb-coinstall for this job. But this does only one co-installability check at a time, right ? Anyway, the script is very simple (attached). The raw result of a run for amd64 together with i386 can be found at [1]. What one can see from a cursery inspection of that result : We have 4415 MA=same packages that exist both in amd and i386 (main/sid). I didn't expect it to be that many. 1033 of them are not co-installable. Where they are not co-installable, the reason seems mostly to be that the packages have dependencies which are not MA-enabled. The first case in the list, for instance: audacious-dbg-pseudo is MA=same but depends on audacious which is MA=no. -Ralf. [1] https://people.debian.org/~treinen/ma-same-coinstall-amd64-i386
#!/bin/sh # finds packages with Multi-Arch=same for which the vesions in two different # architectures are not co-installable. # $1: name of the first architecture # $2: Packages file of the first architecture # $3: name of the second architecture # $4: Packages file of the second architecture arch1=$1 packages1=$2 arch2=$3 packages2=$4 archlist1=$(mktemp -t ${arch1}.XXXX) grep-dctrl -F Multi-Arch same -s Package ${packages1} -n | sort > ${archlist1} archlist2=$(mktemp -t ${arch2}.XXXX) grep-dctrl -F Multi-Arch same -s Package ${packages2} -n | sort > ${archlist2} (for p in $(comm -12 ${archlist1} ${archlist2}) do echo 'Package:' ${p}-pseudo echo 'Version: 1' echo 'Architecture:' ${arch1} echo 'Depends:' ${p}:${arch1}, ${p}:${arch2} echo done) | \ dose-debcheck\ --deb-native-arch=${arch1} --deb-foreign-archs=${arch2}\ --bg ${packages1} --bg ${packages2} -f -e rm ${archlist1} ${archlist2}