about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/security/qdigidoc/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/security/qdigidoc/default.nix37
1 files changed, 27 insertions, 10 deletions
diff --git a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
index b47a2455b672..19ce14f915aa 100644
--- a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
+++ b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
@@ -1,15 +1,27 @@
-{ lib, mkDerivation, fetchurl, cmake, darkhttpd, gettext, makeWrapper
-, pkg-config, libdigidocpp, opensc, openldap, openssl, pcsclite, qtbase
-, qttranslations, qtsvg }:
+{ lib
+, mkDerivation
+, fetchurl
+, cmake
+, gettext
+, pkg-config
+, libdigidocpp
+, opensc
+, openldap
+, openssl
+, pcsclite
+, qtbase
+, qttranslations
+, qtsvg
+}:
 
 mkDerivation rec {
   pname = "qdigidoc";
-  version = "4.2.9";
+  version = "4.2.12";
 
   src = fetchurl {
     url =
       "https://github.com/open-eid/DigiDoc4-Client/releases/download/v${version}/qdigidoc4-${version}.tar.gz";
-    sha256 = "1rhd3mvj6ld16zgfscj81f1vhs2nvifsizky509l1av7dsjfbbzr";
+    hash = "sha256-6bso1qvhVhbBfrcTq4S+aHtHli7X2A926N4r45ztq4E=";
   };
 
   tsl = fetchurl {
@@ -17,7 +29,7 @@ mkDerivation rec {
     sha256 = "1cikz36w9phgczcqnwk4k3mx3kk919wy2327jksmfa4cjfjq4a8d";
   };
 
-  nativeBuildInputs = [ cmake darkhttpd gettext makeWrapper pkg-config ];
+  nativeBuildInputs = [ cmake gettext pkg-config ];
 
   postPatch = ''
     substituteInPlace client/CMakeLists.txt \
@@ -35,10 +47,15 @@ mkDerivation rec {
     qttranslations
   ];
 
-  postInstall = ''
-    wrapProgram $out/bin/qdigidoc4 \
-      --prefix LD_LIBRARY_PATH : ${opensc}/lib/pkcs11/
-  '';
+  # 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/"
+  ];
 
   meta = with lib; {
     description = "Qt-based UI for signing and verifying DigiDoc documents";