[issue304] wrong default encoding hinders python-rpm to install packages if the system locale is wrong

Peter Warasin at Labix Tracker tracker at labix.org
Mon May 21 06:29:14 PDT 2007


New submission from Peter Warasin <peter at endian.com>:

the rpm backend gets the preferred encoding from the system environment
(locale.getpreferredencoding()).

if within system environment has been set no or a wrong enconding, this method
raises an exception, which will be caught and set "C" as standard value for the
variable ENCODING.

But "C" is no encoding, it's a locale. The corresponding encoding is IMHO "ascii".

If "C" will be used as encoding, installing rpm's will fail sometimes, because
codecs.getwriter(ENCODING) later in grabOutput() will raise an uncaught
exception, since the "C" encoding does not exist.

Here is the traceback:

Upgrading packages (1): efw-network-1:2.0.24-0.endian14 at i386
Upgrades: efw-network-1:2.0.23-0.endian14 at i386 (upgraded)  44.7kB of package
files are needed. 19B will be used.   Fetching packages...  -> (url)
efw-network-2.0.24-0.endian14.. ######################################## [100%]
 Traceback (most recent call last):
File "/usr/bin/smart", line 194, in ? main(sys.argv[1:])
File "/usr/bin/smart", line 167, in main exitcode = iface.run(opts.command,
opts.argv)
File "/usr/lib/python2.4/site-packages/smart/interface.py", line 53, in run
result = _command.main(self._ctrl, opts)
File "/usr/lib/python2.4/site-packages/smart/commands/upgrade.py", line 198, in
main ctrl.commitTransaction(trans, confirm=confirm)
File "/usr/lib/python2.4/site-packages/smart/control.py", line 505, in
commitTransaction return self.commitChangeSet(trans.getChangeSet(), caching,
confirm)
File "/usr/lib/python2.4/site-packages/smart/control.py", line 563, in
commitChangeSet pmclass().commit(pmcs, pkgpaths) File
"/usr/lib/python2.4/site-packages/smart/backends/rpm/pm.py", line 215, in commit
cb.grabOutput(True)
File "/usr/lib/python2.4/site-packages/smart/backends/rpm/pm.py", line 244, in
grabOutput writer = codecs.getwriter(ENCODING)
File "/usr/lib/python2.4/codecs.py", line 752, in getwriter
LookupError: unknown encoding: C

----------
files: smart-0.50-default_encoding.patch
messages: 1140
nosy: peter-endian
priority: bug
project: smart
status: unread
title: wrong default encoding hinders python-rpm to install packages if the system locale is wrong

_______________________________________
Labix issue tracker <tracker at labix.org>
<http://tracker.labix.org/issue304>
_______________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smart-0.50-default_encoding.patch
Type: text/x-patch
Size: 339 bytes
Desc: not available
URL: <http://lists.labix.org/pipermail/smart-labix.org/attachments/20070521/fa2d058f/attachment-0002.bin>


More information about the Smart mailing list