On 12.07.17 02:55, Daniel Kahn Gillmor wrote:
> Control: severity 867542 normal
> 
> Hi Jörg--
> 
> Over in https://bugs.debian.org/867542, you wrote:
> 
>> decryption of messages in thunderbird fails.
> 
> how does it fail?  does it hang?  show you an error message?
> 
>> The log of enigmail shows this:
>>
>> --- %< ---
>> 2017-07-07 08:34:46.501 [DEBUG] errorHandling.jsm: parseErrorOutputWith:
>> statusFlags = 00000020
>> 2017-07-07 08:34:46.501 [DEBUG] errorHandling.jsm: parseErrorOutputWith: 
>> return
>> with c.errorMsg =
>> 2017-07-07 08:34:46.501 [DEBUG] execution.jsm: EnigmailExecution.fixExitCode:
>> agentType: gpg exitCode: 0 statusFlags undefined
>> 2017-07-07 08:34:46.502 [CONSOLE]
>> 2017-07-07 08:34:46.502 [DEBUG] keyRing.jsm: createAndSortKeyList()
>> 2017-07-07 08:34:46.504 [ERROR] enigmailMessengerOverlay.js: 
>> messageDecryptCb:
>> caught exception: RangeError
>> Message: 'invalid language tag: en-US.UTF-8'
>> File:    resource://enigmail/time.jsm
>> Line:    48
>> Stack:   EnigmailTime.getDateTime@resource://enigmail/time.jsm:48:14
>> KeyObject@resource://enigmail/keyRing.jsm:1607:19
>> appendKeyItems@resource://enigmail/keyRing.jsm:1436:20
>> createKeyObjects@resource://enigmail/keyRing.jsm:1411:3
>> createAndSortKeyList@resource://enigmail/keyRing.jsm:1560:3
>> loadKeyList@resource://enigmail/keyRing.jsm:1283:3
>> EnigmailKeyRing.getAllKeys@resource://enigmail/keyRing.jsm:151:7
>> EnigmailKeyRing.getKeyById@resource://enigmail/keyRing.jsm:222:7
>> EnigmailDecryption.decryptMessageEnd@resource://enigmail/decryption.jsm:348:26
>> EnigmailDecryption.decryptMessage@resource://enigmail/decryption.jsm:553:20
>> Enigmail.msg.messageParseCallback@chrome://enigmail/content/enigmailMessengerOverlay.js:1005:19
>> Enigmail.msg.messageParse@chrome://enigmail/content/enigmailMessengerOverlay.js:926:5
>> Enigmail.msg.messageDecryptCb@chrome://enigmail/content/enigmailMessengerOverlay.js:764:9
>> _f@chrome://enigmail/content/enigmailMessengerOverlay.js:555:9
>> callbackWrapper@resource://enigmail/timer.jsm:38:9
>> --- >% ---
> 
> thanks for the logs.  Was it repeatable reliably with 1.9.8-1 ?  Are you
> able to get this to repeat with 1.9.8.1-1 (the version i uploaded to
> unstable today)?
> 
>> Something seems odd with the language tag "en-US.UTF-8".
>>
>> The command "locale -a" shows on this system among others "en_US.utf8".
> 
> I am used to seeing en_US.UTF-8 for LANG, but not en-US.UTF-8.  Are you
> setting NSILOCALE_TIME anywhere in your environment?
> 
>> For the moment I will revert back to the last working version 2:1.9.7-2.
> 
> The line you're getting an error on was definitely changed between 1.9.7
> and 1.9.8 (it was changed in 30c1fe69a7c62007f925d760efc832884aed4412,
> which overhauls the time calculations).
> 
> Maybe upstream (cc'ed here) can shed some light on this?

We had to change this for Thunderbird 52 due to the following Mozilla
bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1367672

The correct locale format in Thunderbird is xx-yy (not xx_yy). However,
Thunderbird seems to be unable to cope with additional parameters in the
locale like ".UTF-8".

I would expect that the following patch fixes the issue.

-Patrick


--- a/package/time.jsm
+++ b/package/time.jsm
@@ -52,7 +52,10 @@ const EnigmailTime = {
         options.minute = DATE_2DIGIT;
       }

-      return new
Intl.DateTimeFormat(appLocale.getCategory("NSILOCALE_TIME"),
options).format(dat);
+      let useLocale = appLocale.getCategory("NSILOCALE_TIME").substr(0, 5);
+      useLocale = useLocale.replace(/_/g, "-");
+
+      return new Intl.DateTimeFormat(useLocale, options).format(dat);
     }
     else {
       return "";

Reply via email to