diff --git a/pkgs/development/libraries/gcr/4.nix b/pkgs/development/libraries/gcr/4.nix new file mode 100644 index 000000000000..0346c20f1211 --- /dev/null +++ b/pkgs/development/libraries/gcr/4.nix @@ -0,0 +1,115 @@ +{ stdenv +, lib +, fetchurl +, pkg-config +, meson +, ninja +, gettext +, gnupg +, p11-kit +, glib +, libgcrypt +, libtasn1 +, gtk3 +, gtk4 +, pango +, libsecret +, openssh +, systemd +, gobject-introspection +, wrapGAppsHook +, vala +, gi-docgen +, gnome +, python3 +, shared-mime-info +}: + +stdenv.mkDerivation rec { + pname = "gcr"; + version = "3.90.0"; + + outputs = [ "out" "dev" "devdoc" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "5ZB0nsh2A38LDimVDCyyCIEnDAX0fsUmlSCog9iTSE4="; + }; + + nativeBuildInputs = [ + pkg-config + meson + ninja + gettext + gobject-introspection + gi-docgen + wrapGAppsHook + vala + gi-docgen + shared-mime-info + ]; + + buildInputs = [ + gnupg + libgcrypt + libtasn1 + pango + libsecret + openssh + systemd + ]; + + propagatedBuildInputs = [ + glib + gtk3 + gtk4 + p11-kit + ]; + + checkInputs = [ + python3 + ]; + + mesonFlags = [ + # We are still using ssh-agent from gnome-keyring. + # https://github.com/NixOS/nixpkgs/issues/140824 + "-Dssh_agent=false" + ]; + + doCheck = false; # fails 21 out of 603 tests, needs dbus daemon + + PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = "${placeholder "out"}/lib/systemd/user"; + + postPatch = '' + patchShebangs gcr/fixtures/ + ''; + + postFixup = '' + # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. + moveToOutput "share/doc" "$devdoc" + ''; + + passthru = { + updateScript = gnome.updateScript { + attrPath = "gcr_4"; + packageName = pname; + }; + }; + + 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. + ''; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6ffd4ccdb9cb..15f0867c9f86 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18547,6 +18547,8 @@ with pkgs; gcr = callPackage ../development/libraries/gcr { }; + gcr_4 = callPackage ../development/libraries/gcr/4.nix { }; + gdl = callPackage ../development/libraries/gdl { }; gdome2 = callPackage ../development/libraries/gdome2 { };