Re: Policy changes which completely break apt-cross
Neil Williams <email@example.com> writes:
> On Thu, 01 Jul 2010 11:04:57 +0200
> Goswin von Brederlow <firstname.lastname@example.org> wrote:
> Please don't CC: me, I'm on the list.
>> Do i remember correctly that dpkg-cross by default skips the package if
>> the result would be empty? But yes, empty (except for /usr/share/doc/*)
>> packages have to be handled corectly.
> No, you do not remember correctly. If apt-cross gets the calculation
> wrong and downloads debconf, dpkg-cross will create an empty
> debconf-armel-cross package.
> This all happens BEFORE dpkg-cross gets involved - it has to be decided
> by the tool doing the downloading.
% dpkg-cross -b /var/cache/apt/archives/debconf_1.5.32_all.deb
dpkg-cross: package debconf doesn't provide any useful files. Skipping.
It does. You need to specify
-A|--convert-anyway: convert package even if it does not provide any
% dpkg -c debconf-i386-cross_1.5.32_all.deb
drwxr-xr-x root/root 0 2010-07-01 15:25 ./
drwxr-xr-x root/root 0 2010-07-01 15:25 ./usr/
drwxr-xr-x root/root 0 2010-07-01 15:25 ./usr/share/
drwxr-xr-x root/root 0 2010-07-01 15:25 ./usr/share/doc/
drwxr-xr-x root/root 0 2010-07-01 15:25 ./usr/share/doc/debconf-i386-cross/
-rw-r--r-- root/root 260 2010-07-01 15:25 ./usr/share/doc/debconf-i386-cross/README
.oO(Where did changelog and copyright go?)
>> >> But yes, worst case we end up pulling a -arch-cross package in that is
>> >> just empty. Apt-cross could actually do that too. But that is the tricky
>> >> part since it involves some form of guessing. I use name and
>> >> architecture from the Packages file. You suggest using the Contents
>> >> file. Using the Contents file might be better but only if you have one
>> >> and it is current.
>> > Right -- so one could use "download and attempt conversion" as a
>> > fallback method.
> This is just going round in circles and doesn't solve the other
> problems, just hides this one problem inside yet another hack.
>> Just thought about something. The contents file tells you if the package
>> contains usefull files.
> No, that is not a sufficient measure of "useful" for dpkg-cross.
> dpkg-cross needs to see the files in order to say if there are any
> useful ones.
>> It does not tell you wether the dependency chain
>> ends there or crosses into the native chain. Even if bar is an empty
>> package the architecture decides how the dependencies must be followed:
> ... and this is the ongoing problem which has not been resolved.
>> This does asume that Arch: all package do not need to be converted ever
>> like I said above.
> The whole point of this Policy change is that Arch:all packages WILL
> need to be converted, we just won't know which we can allow and which
> we cannot.
You haven't yet said why/how the package must be converted.
What files need to be moved around or altered and why? I can hardly
convince you that a conversion is not needed if you don't say what files
you think need conversion.
I believe that any file (like *.pc files) that need altering are not
actually architecture independent and will differ across architectures
with multiarch even if they are identical now. As such I would file a
bug for the file to be in the libfoo-dev instead of libfoo-dev-common.