about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libsecret
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libsecret')
-rw-r--r--nixpkgs/pkgs/development/libraries/libsecret/default.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libsecret/default.nix b/nixpkgs/pkgs/development/libraries/libsecret/default.nix
new file mode 100644
index 000000000000..18f00a0933c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libsecret/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchurl, fetchpatch, glib, pkg-config, gettext, libxslt, python3
+, docbook_xsl, docbook_xml_dtd_42 , libgcrypt, gobject-introspection, vala
+, gtk-doc, gnome, gjs, libintl, dbus, xvfb-run }:
+
+stdenv.mkDerivation rec {
+  pname = "libsecret";
+  version = "0.20.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij";
+  };
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  outputs = [ "out" "dev" "devdoc" ];
+
+  propagatedBuildInputs = [ glib ];
+  nativeBuildInputs = [
+    pkg-config gettext libxslt docbook_xsl docbook_xml_dtd_42 libintl
+    gobject-introspection vala gtk-doc glib
+  ];
+  buildInputs = [ libgcrypt ];
+  # optional: build docs with gtk-doc? (probably needs a flag as well)
+
+  configureFlags = [
+    "--with-libgcrypt-prefix=${libgcrypt.dev}"
+  ];
+
+  enableParallelBuilding = true;
+
+  installCheckInputs = [
+    python3 python3.pkgs.dbus-python python3.pkgs.pygobject3 xvfb-run dbus gjs
+  ];
+
+  # needs to run after install because typelibs point to absolute paths
+  doInstallCheck = false; # Failed to load shared library '/force/shared/libmock_service.so.0' referenced by the typelib
+  installCheckPhase = ''
+    export NO_AT_BRIDGE=1
+    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      make check
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      # Does not seem to use the odd-unstable policy: https://gitlab.gnome.org/GNOME/libsecret/issues/30
+      versionPolicy = "none";
+    };
+  };
+
+  meta = {
+    description = "A library for storing and retrieving passwords and other secrets";
+    homepage = "https://wiki.gnome.org/Projects/Libsecret";
+    license = lib.licenses.lgpl21Plus;
+    inherit (glib.meta) platforms maintainers;
+  };
+}