nixpkgs/pkgs/development/libraries/gcr/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

122 lines
2.4 KiB
Nix

{ stdenv
, lib
, fetchurl
, pkg-config
, meson
, ninja
, gettext
, gnupg
, p11-kit
, glib
, libgcrypt
, libtasn1
, gtk3
, pango
, libsecret
, openssh
, systemd
, gobject-introspection
, wrapGAppsHook
, gi-docgen
, vala
, gnome
, python3
, shared-mime-info
}:
stdenv.mkDerivation rec {
pname = "gcr";
version = "3.41.1";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "u3Eoo8L+u/7pwDuQ131JjQzrI3sHiYAtYBhcccS+ok8=";
};
nativeBuildInputs = [
pkg-config
meson
python3
ninja
gettext
gobject-introspection
gi-docgen
wrapGAppsHook
vala
shared-mime-info
gnupg
openssh
];
buildInputs = [
libgcrypt
libtasn1
pango
libsecret
openssh
] ++ lib.optionals stdenv.isLinux [
systemd
];
propagatedBuildInputs = [
glib
gtk3
p11-kit
];
nativeCheckInputs = [
python3
];
mesonFlags = [
# We are still using ssh-agent from gnome-keyring.
# https://github.com/NixOS/nixpkgs/issues/140824
"-Dssh_agent=false"
] ++ lib.optionals (!stdenv.isLinux) [
"-Dsystemd=disabled"
];
doCheck = false; # fails 21 out of 603 tests, needs dbus daemon
PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = "${placeholder "out"}/lib/systemd/user";
postPatch = ''
patchShebangs gcr/fixtures/
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
substituteInPlace meson_post_install.py --replace ".so" "${stdenv.hostPlatform.extensions.sharedLibrary}"
'';
postFixup = ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
moveToOutput "share/doc" "$devdoc"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
freeze = true;
};
};
meta = with lib; {
platforms = platforms.unix;
maintainers = teams.gnome.members;
description = "GNOME crypto services (daemon and tools)";
homepage = "https://gitlab.gnome.org/GNOME/gcr";
license = licenses.lgpl2Plus;
longDescription = ''
GCR is a library for displaying certificates, and crypto UI, accessing
key stores. It also provides the viewer for crypto files on the GNOME
desktop.
GCK is a library for accessing PKCS#11 modules like smart cards, in a
(G)object oriented way.
'';
};
}