Icedove, external OpenGPG configuration and ld path

  • Open
  • quality assurance status badge
Details
3 participants
  • Josselin Poiret
  • Jonathan Brielmaier
  • Liliana Marie Prikler
Owner
unassigned
Submitted by
Josselin Poiret
Severity
normal
J
J
Josselin Poiret wrote on 4 May 2022 10:43
(address . bug-guix@gnu.org)
87zgjx6631.fsf@jpoiret.xyz
Hello everyone,

Currently, if you want to use a smart card with icedove, you have to
enable mail.openpgp.allow_external_gnupg in the config editor, but on
Guix, icedove will still not find the key that's on your smart card,
because it's unable to dlopen the GPGME library (understandably).

For now, my workaround is to launch icedove via

`LD_LIBRARY_PATH="$(guix build gpgme)/lib" icedove`

I outlined something similar to get icecat to be able to share desktops
under wayland [1], this time with the pipewire libraries. This doesn't
seem like a great out-of-the-box experience for users, especially since
nothing indicates that this is the root of the problem. Is there
anything we could do about this?

Adding all possible optional deps to LD_LIBRARY_PATH in a wrapper seems
a bit overkill, since for example PipeWire's closure is ~800 MiB,
depending for example on X libraries, and packagers won't always be able
to find 100% of the optional deps that are dlopen'd.

WDYT?

(8735hx74qw.fsf@jpoiret.xyz)

--
Josselin Poiret
L
L
Liliana Marie Prikler wrote on 4 May 2022 14:19
757b52686b44fc81ca71bccfbbf5ee156091aeeb.camel@ist.tugraz.at
Am Mittwoch, dem 04.05.2022 um 10:43 +0200 schrieb Josselin Poiret:
Toggle quote (16 lines)
> Hello everyone,
>
> Currently, if you want to use a smart card with icedove, you have to
> enable mail.openpgp.allow_external_gnupg in the config editor, but on
> Guix, icedove will still not find the key that's on your smart card,
> because it's unable to dlopen the GPGME library (understandably).
>
> For now, my workaround is to launch icedove via
>
> `LD_LIBRARY_PATH="$(guix build gpgme)/lib" icedove`
>
> I outlined something similar to get icecat to be able to share
> desktops under wayland [1], this time with the pipewire libraries. 
> This doesn't seem like a great out-of-the-box experience for users,
> especially since nothing indicates that this is the root of the
> problem.  Is there anything we could do about this?
Rather than adjusting LD_LIBRARY_PATH, we typically patch the dlopen()
call to point to the store. Would this be a workable solution for your
problem?

Toggle quote (4 lines)
> Adding all possible optional deps to LD_LIBRARY_PATH in a wrapper
> seems a bit overkill, since for example PipeWire's closure is ~800
> MiB, depending for example on X libraries, and packagers won't always
> be able to find 100% of the optional deps that are dlopen'd.
True, in the general case we do rely on both rgrep and the package
developer making sane decisions, which might not always work out in our
favour. As for debugging, strace might be useful to see what the
program is trying to do and should be able to detect a failing dlopen
call.

Cheers
J
J
Jonathan Brielmaier wrote on 29 Sep 2022 00:25
Icedove, external OpenGPG configuration and ld path
(address . 55258@debbugs.gnu.org)
e20a40d5-f971-7d17-6dad-7efa84d67062@web.de
In case of gpgme the size isn't a real problem as it increases the
closure of Icedove by about 2-3 MiB.

Does it help to set `mail.openpgp.alternative_gpg_path` to something
meaningful?
J
J
Josselin Poiret wrote on 29 Sep 2022 11:31
8735cabk7i.fsf@jpoiret.xyz
Hi Jonathan,

Jonathan Brielmaier <jonathan.brielmaier@web.de> writes:
Toggle quote (6 lines)
> In case of gpgme the size isn't a real problem as it increases the
> closure of Icedove by about 2-3 MiB.
>
> Does it help to set `mail.openpgp.alternative_gpg_path` to something
> meaningful?

IIUC, this variable only denotes the location of the gpg executable, not
of the gpgme library itself. I think the only option would be to add
LD_LIBRARY_PATH=/gnu/store/xxx-gpgme/lib/:$LD_LIBRARY_PATH to the
wrapper unfortunately.

Best,
--
Josselin Poiret
?