Package: python3
Version: 3.5.1-2
Severity: important
Control: block 796061 by -1
Hi
apt-listchanges contains code like:
sys.stdout.write(_("Reading changelogs") + "...\n")
In pl_PL.UTF-8 locale the python3 version of apt-listchanges (from bug#796061)
such a line causes the program to fail with
TypeError: can't concat bytes to str
Surprisingly the no error is returned when locale is C.
In my opinion this is a serious mis-design of gettext.lgettext() which
prevents me from performing the migration of apt-listchanges to python3.
See also the following typescript:
/home/robert> python3
Python 3.5.1+ (default, Mar 18 2016, 15:12:19)
[GCC 5.3.1 20160307] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gettext
>>> import os
>>> import locale
>>> print (locale.getdefaultlocale())
('pl_PL', 'UTF-8')
>>> gettext.textdomain('apt-listchanges')
'apt-listchanges'
>>> gettext.lgettext("Informational notes")
b'Dodatkowe informacje'
>>> gettext.lgettext("Informational notes") + "\n"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't concat bytes to str
>>> gettext.lgettext("Unknown message") + "\n"
'Unknown message\n'
>>> os.environ['LC_ALL'] = 'C'
>>> print (locale.getdefaultlocale())
(None, None)
>>> gettext.lgettext("Informational notes") + "\n"
'Informational notes\n'
Regards,
robert
-- System Information:
Debian Release: stretch/sid
APT prefers unstable
APT policy: (990, 'unstable'), (200, 'testing')
Architecture: i386 (i686)
Kernel: Linux 4.4.0-1-686-pae (SMP w/1 CPU core)
Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
Versions of packages python3 depends on:
ii dh-python 2.20151103
ii libpython3-stdlib 3.5.1-2
ii python3-minimal 3.5.1-2
ii python3.5 3.5.1-8
python3 recommends no packages.
Versions of packages python3 suggests:
pn python3-doc <none>
pn python3-tk <none>
pn python3-venv <none>
-- no debconf information