Package: autopkgtest
Version: 5.22
Severity: normal

It turns out that the lxc containers built by autopkgtest-build-lxc
depend on the LANG setting.  An example of where this made a
difference is below.

Suggested patch: just add "export LANG=C.UTF-8" somewhere early in
/usr/bin/autopkgtest-build-lxc


Here's an example of where this caused an issue.

I was trying to patch pymca.  Version 5.7.1+dfsg-1 was in the archive
and was recorded as passing its autopkgtests on ci.debian.net.  But
when I tried to run autopkgtest on it on my system (using an lxc
container created with autopkgtest-build-lxc), it failed.

The reason for this was that one of the Python test scripts
effectively did the following:

import locale

current_locale = locale.getlocale()
locale.setlocale(locale.LC_ALL, current_locale)

Now, the autopkgtest script is run with LANG, LANGUAGE and LC_* all
unset, so Python sets current_locale to the default, which would be
C.UTF-8, except that this is translated into en_US.UTF-8.  Then
locale.setlocale() failed because I don't have the en_US.UTF-8 locale
in my container: it was built with LANG=en_GB.UTF-8, so the only
locale I had was this (and C.UTF-8).

Presumably, therefore, the ci.debian.net containers were built with
either LANG unset or set to C.UTF-8 or to en_US.UTF-8 (see line 128
onwards of /usr/share/lxc/templates/lxc-debian), so they ran this
Python code with no difficulty, whereas I couldn't.

A solution for this package was for the tests to depend on
locales-all, but it just highlighted the sensitivity of the tests to
the locale installed in the container.

Best wishes,

   Julian

Reply via email to