On Tue, Jul 17, 2012 at 02:24:25PM +0200, Stefan Sperling wrote:
> On Tue, Jul 17, 2012 at 07:39:44AM +0000, Florian Obser wrote:
> > Hi,
> > 
> > I get the following stack trace:
> > 
> > Exception in thread Thread-48:
> > Traceback (most recent call last):
> >   File "/usr/local/lib/python2.7/threading.py", line 551, in 
> > __bootstrap_inner
> >     self.run()
> >   File "/usr/local/lib/python2.7/threading.py", line 504, in run
> >     self.__target(*self.__args, **self.__kwargs)
> >   File "/usr/local/share/gajim/src/gui_interface.py", line 2949, in 
> > thread_function
> >     output = func(*func_args)
> >   File "/usr/local/share/gajim/src/common/connection.py", line 293, in 
> > encrypt_thread
> >     return self.gpg.encrypt(msg, [keyID], always_trust)
> >   File "/usr/local/share/gajim/src/common/gpg.py", line 50, in encrypt
> >     always_trust=always_trust, passphrase=self.passphrase)
> >   File "/usr/local/share/gajim/src/common/gnupg.py", line 646, in encrypt
> >     data = _make_binary_stream(data, self.encoding)
> >   File "/usr/local/share/gajim/src/common/gnupg.py", line 148, in 
> > _make_binary_stream
> >     s = s.encode(encoding)
> > UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in 
> > position 1: ordinal not in range(128)
> > 
> 
> Seems like a perfectly sensible failure mode to me, see below.

yes, I'm noting a behaviour change. I'm not saying that there is
anything wrong with it. 

> 
> > This is on
> > OpenBSD 5.2-beta (GENERIC) #257: Wed Jul 11 11:32:34 MDT 2012
> >     t...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
> > 
> > with Information for inst:gajim-0.15p3
> > 
> > The message is not send, not added to the log and not added to the
> > local chat window.
> > 
> > I found two workarounds: Disable "OpenPGP encryption" (hm, yeah, not
> > going to happen) or start gajim with LANG set, i.e. LANG=en_US.UTF-8 gajim
> > LANG is unset on my workstation.
> 
> Why don't you use the UTF-8 locale if you want to use UTF-8?

because I'm trying to stay away from locales as far as possible :)
(And it used to work before, and it's (somewhat) unrelated to the
locale change in base, see below)

>  
> > I know this worked in 4.9, I know it's broken in a 5.1-current
> > snapshot at or around 25th of may, there is anecdotal evidence that it
> > used to work on 5.1-current in the february to march timeframe.
> 
> OpenBSD's libc used to default to latin1 semantics until september 2011.
> Since then, it's been using ASCII by default, and you have to configure
> a locale if you want anything more than ASCII.
> See http://marc.info/?l=openbsd-cvs&m=131668243124387&w=2
> and http://marc.info/?l=openbsd-cvs&m=130186491102931&w=2
> This was also mentioned on current.html at the time but that entry
> has since been shifted out.

I now have confirmation that this used to work in 5.1 so something
else changed later.

> 
> I am not sure if python follows semantics provided by libc,
> though that would definitely make sense. If it doesn't then
> you might be obversing a behaviour change in python as well,
> since it was probably upgraded during the same time frame.
> Maybe the way python selects encoding modules has changed?
> 
> However, I don't see how this behaviour is wrong.

Me neither. It's interesting that it only effects gpg in gajim (as far
as I know).

> 
> You should be configuring the correct locale for your desired character set.
> There is nothing wrong with doing this just for one application if you
> don't want every application to use UTF-8.
> 

Sure.
Ah, I see now that "work around" was a poor choice of words
"the solution is..." would have been better, sorry. 

-- 
I'm not entirely sure you are real.

Reply via email to