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: