Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / gcr / 4.nix
blob650d87958c5ea30cdf6d5d62fa38f8bcb7b290e8
1 { stdenv
2 , lib
3 , fetchurl
4 , pkg-config
5 , meson
6 , ninja
7 , gettext
8 , gnupg
9 , p11-kit
10 , glib
11 , libgcrypt
12 , libtasn1
13 , gtk4
14 , pango
15 , libsecret
16 , openssh
17 , systemd
18 , gobject-introspection
19 , wrapGAppsHook4
20 , vala
21 , gi-docgen
22 , gnome
23 , python3
24 , shared-mime-info
27 stdenv.mkDerivation rec {
28   pname = "gcr";
29   version = "4.1.0";
31   outputs = [ "out" "bin" "dev" "devdoc" ];
33   src = fetchurl {
34     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
35     sha256 = "nOqtKShLqRm5IW4oiMGOxnJAwsk7OkhWvFSIu8Hzo4M=";
36   };
38   nativeBuildInputs = [
39     pkg-config
40     meson
41     ninja
42     gettext
43     gobject-introspection
44     gi-docgen
45     wrapGAppsHook4
46     vala
47     gi-docgen
48     shared-mime-info
49   ];
51   buildInputs = [
52     gnupg
53     libgcrypt
54     libtasn1
55     pango
56     libsecret
57     openssh
58     systemd
59     gtk4
60   ];
62   propagatedBuildInputs = [
63     glib
64     p11-kit
65   ];
67   nativeCheckInputs = [
68     python3
69   ];
71   mesonFlags = [
72     # We are still using ssh-agent from gnome-keyring.
73     # https://github.com/NixOS/nixpkgs/issues/140824
74     "-Dssh_agent=false"
75   ];
77   doCheck = false; # fails 21 out of 603 tests, needs dbus daemon
79   PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = "${placeholder "out"}/lib/systemd/user";
81   postPatch = ''
82     patchShebangs gcr/fixtures/
83   '';
85   postFixup = ''
86     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
87     moveToOutput "share/doc" "$devdoc"
88   '';
90   passthru = {
91     updateScript = gnome.updateScript {
92       attrPath = "gcr_4";
93       packageName = pname;
94     };
95   };
97   meta = with lib; {
98     platforms = platforms.unix;
99     maintainers = teams.gnome.members;
100     description = "GNOME crypto services (daemon and tools)";
101     homepage = "https://gitlab.gnome.org/GNOME/gcr";
102     license = licenses.lgpl2Plus;
104     longDescription = ''
105       GCR is a library for displaying certificates, and crypto UI, accessing
106       key stores. It also provides the viewer for crypto files on the GNOME
107       desktop.
109       GCK is a library for accessing PKCS#11 modules like smart cards, in a
110       (G)object oriented way.
111     '';
112   };