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

Re: inconsistent versions of M-A: same packages



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} 

Reply to: