found 591457 0.13.4
severity 591457 grave
tag 591457 - unreproducible
tag 591457 - moreinfo
tag 591457 + wontfix
tag 591457 + confirmed
quit

Justification: renders package unusable in locales other than C/POSIX

> Reporting against apt-cross 0.12.0 this time since that's in a clean
> Debian 5.0 32 bit install that I did with debootstrap not three days
> ago. In this environment I generated the log below by running the
> following command as root:

> (set -x; ls -la /etc/apt/sources.list.d && rm -rf /root/.apt-cross &&
> apt-cross -a amd64 --update && apt-cross -v -v -v -a amd64 -n -i
> libpopt-dev && LANG= apt-cross -v -v -v -a amd64 -n -i libpopt-dev)
> >/tmp/apt-cross.log 2>&1

-a amd64?? You are trying to install cross-building libraries to
cross-build for an amd64 target? Also, running apt-cross as root is not
recommended - apt-cross will use sudo when necessary, it is not meant
to be called under sudo itself.

That's not an issue though, I've now replicated this bug with the more
usual user case of -a armel and as a normal user.

> The following NEW packages will be built and installed:
>  gcc-4.3-base libc6 libc6-dev libgcc1 libpopt-dev libpopt0
> linux-libc-dev 0 to be upgraded, 7 to be newly installed.

That indicates that apt-cross does work with the locale in the chroot.

However, I have now been able to reproduce the failure - when asking
for libpopt-dev in LANGUAGE=C, it works. In LANGUAGE=fr it fails to
calculate a dependency on libpopt0. It would also fail in any locale
where apt has a translation of "Depends".

It does not appear to be a problem that apt-cross can solve,
unfortunately. The apt perl bindings assert their own locale handling
which results in the Depends: field being translated. IMHO that is a
bug in apt because that is a label, not a description - a piece of
data, not a piece of user-text. i.e. The name of the control field,
"Depends" is translated inside the binary apt cache which is used by
the apt perl bindings and therefore apt-cross cannot use this control
field to calculate the dependencies of any package unless that binary
cache file is created and maintained solely under the LC_ALL=C locale.
I have so far failed to persuade the apt perl bindings to do this if
the external locale is anything other than LC_ALL=C or LC_ALL=en*.

xapt does exist in Squeeze, just not as a separate package. It is part
of pdebuild-cross (/usr/share/pdebuild-cross/xapt).

apt-cross has been RFH for sometime, it is mostly abandoned and doesn't
work properly with the version of apt in Squeeze anyway. All current
work is on a replacement for apt-cross but xapt might not make it into
Squeeze as a separate package.

So the options are:

1: live with this bug using the workaround you found. This is not
likely to be acceptable to the release team.

2: reassign this bug to apt if there is a chance it can be fixed,
bearing in mind that the number of current bugs in apt is over
700 and apt-cross still has issues with apt >= 0.8.x.

3: Remove apt-cross from Squeeze and persuade the release team to allow
xapt to migrate out of /usr/share into a new package in /usr/bin/

xapt is *not* a drop-in replacement for apt-cross but the command line
options are similar and there would be no reverse dependencies in
Squeeze if emdebian-crush 2.2.6 was allowed a freeze exception.
The reverse dependencies which do exist in unstable and experimental
should be able to migrate in due course.

http://packages.qa.debian.org/m/mlton-cross.html
http://packages.qa.debian.org/b/buildcross.html

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/

Attachment: pgpRvjvB7BWXg.pgp
Description: PGP signature

Reply via email to