about summary refs log tree commit diff
path: root/pkgs/by-name/dc/dconf-editor/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/dc/dconf-editor/package.nix')
-rw-r--r--pkgs/by-name/dc/dconf-editor/package.nix79
1 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/by-name/dc/dconf-editor/package.nix b/pkgs/by-name/dc/dconf-editor/package.nix
new file mode 100644
index 0000000000000..44fca17bec32c
--- /dev/null
+++ b/pkgs/by-name/dc/dconf-editor/package.nix
@@ -0,0 +1,79 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, desktop-file-utils
+, meson
+, ninja
+, vala
+, libxslt
+, pkg-config
+, glib
+, gtk3
+, libhandy
+, gnome
+, dconf
+, libxml2
+, gettext
+, docbook-xsl-nons
+, wrapGAppsHook3
+, gobject-introspection
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dconf-editor";
+  version = "45.0.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-EYApdnju2uYhfMUUomOMGH0vHR7ycgy5B5t0DEKZQd0=";
+  };
+
+  patches = [
+    # Fix crash with GSETTINGS_SCHEMA_DIR env var.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/dconf-editor/-/commit/baf183737d459dcde065c9f8f6fe5be7ed874de6.patch";
+      hash = "sha256-Vp0qjJChDr6IarUD+tZPLJhdI8v8r6EzWNfqFSnGvqQ=";
+    })
+
+    # Look for compiled schemas in NIX_GSETTINGS_OVERRIDES_DIR
+    # environment variable, to match what we patched GLib to do.
+    ./schema-override-variable.patch
+  ];
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    meson
+    ninja
+    vala
+    libxslt
+    pkg-config
+    wrapGAppsHook3
+    gettext
+    docbook-xsl-nons
+    libxml2
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    libhandy
+    dconf
+  ];
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "GSettings editor for GNOME";
+    mainProgram = "dconf-editor";
+    homepage = "https://apps.gnome.org/DconfEditor/";
+    license = licenses.gpl3Plus;
+    maintainers = teams.gnome.members;
+    platforms = platforms.unix;
+  };
+}