qdigidoc: Explain why LD_LIBRARY_PATH is required
Contrary to libdigidocpp's libdigidocpp, qdigidoc uses Qt to load modules and thus causes different search behaviour in dlopen(3). This approach is not required on every platform; on OpenBSD[0] qdigidoc4(1) finds "opensc-pkcs11.so" due to /usr/local/lib/pkcs11/ in the main program's DT_RUNPATH. 0: https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec/ld.so/library_subr.c?annotate=1.51 (line 297)
This commit is contained in:
parent
ea62d92f63
commit
8daa103d1f
1 changed files with 7 additions and 3 deletions
|
@ -35,10 +35,14 @@ mkDerivation rec {
|
|||
qttranslations
|
||||
];
|
||||
|
||||
# replace this hack with a proper cmake variable or environment variable
|
||||
# once https://github.com/open-eid/cmake/pull/34 (or #35) gets merged.
|
||||
# qdigidoc4's `QPKCS11::reload()` dlopen()s "opensc-pkcs11.so" in QLibrary,
|
||||
# i.e. OpenSC's module is searched for in libQt5Core's DT_RUNPATH and fixing
|
||||
# qdigidoc4's DT_RUNPATH has no effect on Linux (at least OpenBSD's ld.so(1)
|
||||
# searches the program's runtime path as well).
|
||||
# LD_LIBRARY_PATH takes precedence for all calling objects, see dlopen(3).
|
||||
# https://github.com/open-eid/cmake/pull/35 might be an alternative.
|
||||
qtWrapperArgs = [
|
||||
"--prefix LD_LIBRARY_PATH : ${opensc}/lib/pkcs11/"
|
||||
"--prefix LD_LIBRARY_PATH : ${opensc}/lib/pkcs11/"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
|
Loading…
Reference in a new issue