diff --git a/pkgs/tools/security/eid-mw/default.nix b/pkgs/tools/security/eid-mw/default.nix index a11b70917c8..eb886148674 100644 --- a/pkgs/tools/security/eid-mw/default.nix +++ b/pkgs/tools/security/eid-mw/default.nix @@ -1,20 +1,30 @@ { stdenv, fetchFromGitHub , autoreconfHook, pkgconfig -, gtk3, nssTools, pcsclite }: +, gtk3, nssTools, pcsclite +, libxml2, libproxy +, openssl, curl +, makeWrapper }: stdenv.mkDerivation rec { name = "eid-mw-${version}"; - version = "4.1.19"; + version = "4.4.1"; src = fetchFromGitHub { - sha256 = "191c74kxfrfb894v8y4vi2iygyffjy9jjq5fj7cnnddgwai5n3c5"; + sha256 = "0an7xgj5rzl75kq6qfrmm886v639hhlh7c9yfs8iihc47wghpma8"; rev = "v${version}"; repo = "eid-mw"; owner = "Fedict"; }; - nativeBuildInputs = [ autoreconfHook pkgconfig ]; - buildInputs = [ gtk3 pcsclite ]; + nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper ]; + buildInputs = [ gtk3 pcsclite libxml2 libproxy curl openssl ]; + preConfigure = '' + mkdir openssl + ln -s ${openssl.out}/lib openssl + ln -s ${openssl.bin}/bin openssl + ln -s ${openssl.dev}/include openssl + export SSL_PREFIX=$(realpath openssl) + ''; postPatch = '' sed 's@m4_esyscmd_s(.*,@[${version}],@' -i configure.ac @@ -22,41 +32,48 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-dialogs=yes" ]; - enableParallelBuilding = true; - - doCheck = true; - postInstall = '' install -D ${./eid-nssdb.in} $out/bin/eid-nssdb substituteInPlace $out/bin/eid-nssdb \ --replace "modutil" "${nssTools}/bin/modutil" - # Only provides a useless "about-eid-mw.desktop" that segfaults anyway: - rm -r $out/share/applications $out/bin/about-eid-mw + rm $out/bin/about-eid-mw + wrapProgram $out/bin/eid-viewer --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/$name" ''; + enableParallelBuilding = true; + + doCheck = true; + meta = with stdenv.lib; { description = "Belgian electronic identity card (eID) middleware"; homepage = http://eid.belgium.be/en/using_your_eid/installing_the_eid_software/linux/; license = licenses.lgpl3; longDescription = '' Allows user authentication and digital signatures with Belgian ID cards. - Also requires a running pcscd service and compatible card reader. + Also requires a running pcscd service and compatible card reader. + eid-viewer is also installed. + + **TO FIX:** + The procedure below did not work for me, I had to install the .so directly in firefox as instructed at + https://eid.belgium.be/en/log-eid#7507 + and specify + /run/current-system/sw/lib/libbeidpkcs11.so + as the path to the module. + + This package only installs the libraries. To use eIDs in Firefox or + Chromium, the eID Belgium add-on must be installed. This package only installs the libraries. To use eIDs in NSS-compatible browsers like Chrom{e,ium} or Firefox, each user must first execute: - ~$ eid-nssdb add - (Running the script once as root with the --system option enables eID support for all users, but will *not* work when using Chrom{e,ium}!) - Before uninstalling this package, it is a very good idea to run - ~$ eid-nssdb [--system] remove - and remove all ~/.pki and/or /etc/pki directories no longer needed. ''; platforms = platforms.linux; + maintainers = with maintainers; [ bfortz ]; }; } diff --git a/pkgs/tools/security/eid-viewer/default.nix b/pkgs/tools/security/eid-viewer/default.nix deleted file mode 100644 index 10cc314fe1d..00000000000 --- a/pkgs/tools/security/eid-viewer/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ stdenv, fetchurl, makeWrapper, jre, pcsclite }: - -stdenv.mkDerivation rec { - name = "eid-viewer-${version}"; - version = "4.1.9"; - - src = fetchurl { - url = "https://downloads.services.belgium.be/eid/eid-viewer-${version}-v${version}.src.tar.gz"; - sha256 = "0bq9jl4kl97j0dfhz4crcb1wqhn420z5vpg510zadvrmqjhy1x4g"; - }; - - buildInputs = [ jre pcsclite ]; - nativeBuildInputs = [ makeWrapper ]; - - unpackPhase = "tar -xzf ${src} --strip-components=1"; - - preConfigure = '' - substituteInPlace eid-viewer.sh.in --replace "exec java" "exec ${jre}/bin/java" - ''; - - postInstall = '' - wrapProgram $out/bin/eid-viewer --suffix LD_LIBRARY_PATH : ${pcsclite}/lib - cat >> $out/share/applications/eid-viewer.desktop << EOF - # eid-viewer creates XML without a header, making it "plain text": - MimeType=application/xml;text/xml;text/plain - EOF - ''; - - doCheck = true; - - meta = with stdenv.lib; { - description = "Belgian electronic identity card (eID) viewer"; - homepage = http://eid.belgium.be/en/using_your_eid/installing_the_eid_software/linux/; - license = licenses.lgpl3; - longDescription = '' - A simple, graphical Java application to view, print and save data from - Belgian electronic identity cards. Independent of the eid-mw package, - which is required to actually use your eID for authentication or signing. - ''; - platforms = platforms.linux; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 01f666d37fc..1c4d182d2d3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2108,8 +2108,6 @@ with pkgs; eid-mw = callPackage ../tools/security/eid-mw { }; - eid-viewer = callPackage ../tools/security/eid-viewer { }; - mcrcon = callPackage ../tools/networking/mcrcon {}; tealdeer = callPackage ../tools/misc/tealdeer/default.nix { };