Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 pcsclite,
6 boost,
7 pkg-config,
8 testers,
9 beidconnect,
10}:
11stdenv.mkDerivation (finalAttrs: {
12 pname = "beidconnect";
13 version = "2.11";
14
15 src = fetchFromGitHub {
16 owner = "Fedict";
17 repo = "fts-beidconnect";
18 rev = finalAttrs.version;
19 hash = "sha256-4eKO2yw2Ipfu1PvebgOR+BihsLlnWIJejGWqjztPA2I=";
20 };
21
22 nativeBuildInputs = [ pkg-config ];
23
24 buildInputs = [
25 pcsclite.dev
26 boost
27 ];
28
29 strictDeps = true;
30
31 postPatch = ''
32 substituteInPlace Makefile \
33 --replace-fail '$(DESTDIR)/usr/bin' '$(DESTDIR)/bin'
34 '';
35
36 makeFlags = [ "DESTDIR=$(out)" ];
37 sourceRoot = "${finalAttrs.src.name}/linux";
38
39 postInstall = ''
40 install -d \
41 $out/etc/chromium/native-messaging-hosts \
42 $out/etc/opt/chrome/native-messaging-hosts/ \
43 $out/etc/opt/edge/native-messaging-hosts/ \
44 $out/etc/opt/vivaldi/native-messaging-hosts/ \
45 $out/etc/opt/brave/native-messaging-hosts/ \
46 $out/lib/mozilla/native-messaging-hosts \
47
48 $out/bin/beidconnect -setup $out/bin \
49 $out/etc/chromium/native-messaging-hosts \
50 $out/lib/mozilla/native-messaging-hosts
51
52 # Chrome
53 install $out/etc/chromium/native-messaging-hosts/be.bosa.beidconnect.json $out/etc/opt/chrome/native-messaging-hosts/
54
55 # Edge
56 install $out/etc/chromium/native-messaging-hosts/be.bosa.beidconnect.json $out/etc/opt/edge/native-messaging-hosts/
57
58 # Vivaldi
59 install $out/etc/chromium/native-messaging-hosts/be.bosa.beidconnect.json $out/etc/opt/vivaldi/native-messaging-hosts/
60
61 # Brave
62 install $out/etc/chromium/native-messaging-hosts/be.bosa.beidconnect.json $out/etc/opt/brave/native-messaging-hosts/
63 '';
64
65 passthru.tests.version = testers.testVersion {
66 package = beidconnect;
67 command = "${beidconnect}/bin/beidconnect -version";
68 };
69
70 meta = {
71 description = "BeIDConnect native messaging component";
72 longDescription = ''
73 The beidconnect is a program to help implementing digital signing services
74 and/or an identity service using the Belgian eID card. It provides
75 services to webbrowsers to read data from cards, and is intended to work
76 together with a WebExtension in the browser.
77
78 This package contains the native code. For the WebExtension, see your
79 webbrowser's extension store.
80 '';
81 homepage = "https://github.com/Fedict/fts-beidconnect/";
82 license = lib.licenses.mit;
83 maintainers = [ lib.maintainers.jovandeginste ];
84 platforms = lib.platforms.linux;
85 };
86})