Bug 249430 - mail/thunderbird: OpenPGP support not working in 78.2.2
Summary: mail/thunderbird: OpenPGP support not working in 78.2.2
Status: Closed Not A Bug
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Christoph Moench-Tegeder
Depends on:
Reported: 2020-09-18 13:09 UTC by Ashish SHUKLA
Modified: 2020-09-21 20:18 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (gecko)


Note You need to log in before you can comment on or make changes to this bug.
Description Ashish SHUKLA freebsd_committer 2020-09-18 13:09:59 UTC
I upgraded to Thunderbird 78.2.2, built with following options:
        ALSA           : off
        CANBERRA       : on
        DBUS           : on
        DEBUG          : off
        FFMPEG         : on
        JACK           : on
        LIBPROXY       : off
        LIGHTNING      : on
        PROFILE        : on
        PULSEAUDIO     : on
        SNDIO          : on
        TEST           : off

Started it in new profile, and get following messages:

console.log: (new Error("Cannot load required RNP library", "chrome://openpgp/content/modules/RNPLib.jsm", 81))
console.error: (new Error("couldn't open library libc.so: /usr/lib/libc.so: invalid file format", "resource:///modules/CLib.jsm", 46))
JavaScript error: resource:///modules/CLib.jsm, line 46: Error: couldn't open library libc.so: /usr/lib/libc.so: invalid file format
console.debug: "mPlatform is: freebsd"
console.debug: "Checking for ical data"

λ ldd /usr/local/lib/thunderbird/librnp.so
        libbotan-2.so.15 => /usr/local/lib/libbotan-2.so.15 (0x800e00000)
        libbz2.so.4 => /usr/lib/libbz2.so.4 (0x80071d000)
        libjson-c.so.5 => /usr/local/lib/libjson-c.so.5 (0x800731000)
        libz.so.6 => /lib/libz.so.6 (0x800744000)
        libc++.so.1 => /usr/lib/libc++.so.1 (0x80139c000)
        libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x80075e000)
        libm.so.5 => /lib/libm.so.5 (0x800780000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x8007b2000)
        libthr.so.3 => /lib/libthr.so.3 (0x8007cc000)
        libc.so.7 => /lib/libc.so.7 (0x80024a000)
        libboost_system.so.1.72.0 => /usr/local/lib/libboost_system.so.1.72.0 (0x8007f9000)
        libcrypto.so.11 => /usr/local/lib/libcrypto.so.11 (0x80146c000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0x80175e000)

λ cat /usr/lib/libc.so
/* $FreeBSD: releng/12.1/lib/libc/libc.ldscript 258283 2013-11-17 22:52:17Z peter $ */
GROUP ( /lib/libc.so.7 /usr/lib/libc_nonshared.a /usr/lib/libssp_nonshared.a )

λ uname -a
FreeBSD chateau.d.if 12.1-RELEASE-p9 FreeBSD 12.1-RELEASE-p9 r365333 CHATEAU  amd64

If you need anything else to get to the bottom of this, then please let me know.

Comment 1 Jan Beich freebsd_committer 2020-09-18 14:06:55 UTC
(In reply to Ashish SHUKLA from comment #0)
> console.error: (new Error("couldn't open library libc.so: /usr/lib/libc.so: invalid file format", "resource:///modules/CLib.jsm", 46))

Looks unrelated to OpenPGP. See also https://hg.mozilla.org/releases/comm-beta/rev/c240eda98256

dlopen(3) doesn't work with ld(1) scripts like /usr/lib/libc.so (see bug 180568). Try adding "libc.so libc.so.7" (without quotes) to /etc/libmap.conf. Alternatively, submit a fix to https://github.com/arlolra/ctypes-otr then request backport on https://bugzilla.mozilla.org/enter_bug.cgi?product=Chat%20Core&component=Security:%20OTR
Comment 2 Ashish SHUKLA freebsd_committer 2020-09-18 14:22:42 UTC
(In reply to Jan Beich from comment #1)

No more of that error message after updating libmap.conf(5), although OpenPGP support is still broken:

> console.log: (new Error("Cannot load required RNP library", "chrome://openpgp/content/modules/RNPLib.jsm", 81))
> console.debug: "Successfully loaded OTR library libotr.so.5 from system's standard library locations"
> console.debug: "mPlatform is: freebsd"
> console.debug: "Checking for ical data"

Comment 3 Christoph Moench-Tegeder freebsd_committer 2020-09-18 14:37:00 UTC
OpenPGP works for me. But:
- I get
  console.debug: "Successfully loaded OpenPGP library librnp.so from /usr/local/lib/thunderbird/librnp.so"
- thunderbird here "cannot open libc.so", too - but that does not seem to impair thunderbird in any obvious manner
- here, librnp.so was linked against base openssl (/lib/libcrypto.so.111) - maybe it doesn't work with ports openssl or you got a mix between base and ports openssl somewhere?
- OpenPGP in thunderbird now only works if it has been configured and enabled for that specific mail account, else it just doesn't do anything (and it insists on building it's own keyring and trust relationships, because, you know, screw those few decades of history in your personal keyrings. yes, I hate that.)
- my keys live on smartcards, so I'm not using all of the parts of this OpenPGP implementation
Comment 4 Ashish SHUKLA freebsd_committer 2020-09-18 15:22:06 UTC
(In reply to Christoph Moench-Tegeder from comment #3)

It seems like my json-c was older, and didn't get upgraded:

λ LD_PRELOAD=/usr/local/lib/thunderbird/librnp.so thunderbird
ld-elf.so.1: /usr/local/lib/libjson-c.so.5: version JSONC_0.14 required by /usr/local/lib/thunderbird/librnp.so not defined

After upgrading `json-c', it seems to work now. The only nitpick is Thunderbird attaches public key by default (when signing/encrypting), need to explicitly disable it for every outgoing email.

Anyways, I'm sorry for the trouble, and thank you for the update.