about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2022-12-15 20:25:32 +0100
committerJan Tojnar <jtojnar@gmail.com>2022-12-19 17:17:32 +0100
commit35d24b51f536cf3ead96b284e862ef8d9fe47edc (patch)
tree63f6dfcf86ba9ee843d3263302cfd99da779a87d
parent04f574a1c0fde90b51bf68198e2297ca4e7cccf4 (diff)
makeHardcodeGsettingsPatch: Rename from glib.mkHardcodeGsettingsPatch
glib expression is messy enough as is.

Also rename the `glib-schema-to-var` argument to `schemaIdToVariableMapping` to better match Nixpkgs coding style.
-rw-r--r--.github/CODEOWNERS1
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix5
-rw-r--r--pkgs/build-support/make-hardcode-gsettings-patch/default.nix60
-rw-r--r--pkgs/build-support/make-hardcode-gsettings-patch/hardcode-gsettings.cocci (renamed from pkgs/development/libraries/glib/hardcode-gsettings.cocci)0
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/default.nix5
-rw-r--r--pkgs/development/libraries/glib/default.nix62
-rw-r--r--pkgs/top-level/all-packages.nix2
7 files changed, 81 insertions, 54 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 195f534e7c806..5385e4a1e0a7c 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -270,6 +270,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
 # GNOME
 /pkgs/desktops/gnome                              @jtojnar
 /pkgs/desktops/gnome/extensions       @piegamesde @jtojnar
+/pkgs/build-support/make-hardcode-gsettings-patch @jtojnar
 
 # Cinnamon
 /pkgs/desktops/cinnamon @mkg20001
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index ba5f5d10226f4..78a647bf0152b 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -17,6 +17,7 @@
 , substituteAll
 , _experimental-update-script-combinators
 , glib
+, makeHardcodeGsettingsPatch
 }:
 
 stdenv.mkDerivation rec {
@@ -64,9 +65,9 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    hardcodeGsettingsPatch = glib.mkHardcodeGsettingsPatch {
+    hardcodeGsettingsPatch = makeHardcodeGsettingsPatch {
       inherit src;
-      glib-schema-to-var = {
+      schemaIdToVariableMapping = {
         "org.gnome.evolution.mail" = "evo";
         "org.gnome.evolution.calendar" = "evo";
       };
diff --git a/pkgs/build-support/make-hardcode-gsettings-patch/default.nix b/pkgs/build-support/make-hardcode-gsettings-patch/default.nix
new file mode 100644
index 0000000000000..a1d2de21c4cb3
--- /dev/null
+++ b/pkgs/build-support/make-hardcode-gsettings-patch/default.nix
@@ -0,0 +1,60 @@
+{
+  runCommand,
+  git,
+  coccinelle,
+  python3,
+}:
+
+/*
+  Can be used as part of an update script to automatically create a patch
+  hardcoding the path of all GSettings schemas in C code.
+  For example:
+  passthru = {
+    hardcodeGsettingsPatch = makeHardcodeGsettingsPatch {
+      inherit src;
+      schemaIdToVariableMapping = {
+         ...
+      };
+    };
+
+    updateScript =
+      let
+        updateSource = ...;
+        updatePatch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-ews.hardcodeGsettingsPatch" ./hardcode-gsettings.patch;
+      in
+      _experimental-update-script-combinators.sequence [
+        updateSource
+        updatePatch
+      ];
+    };
+  }
+  takes as input a mapping from schema path to variable name.
+  For example `{ "org.gnome.evolution" = "EVOLUTION_SCHEMA_PATH"; }`
+  hardcodes looking for `org.gnome.evolution` into `@EVOLUTION_SCHEMA_PATH@`.
+  All schemas must be listed.
+*/
+{
+  src,
+  schemaIdToVariableMapping,
+}:
+
+runCommand
+  "hardcode-gsettings.patch"
+  {
+    inherit src;
+    nativeBuildInputs = [
+      git
+      coccinelle
+      python3 # For patch script
+    ];
+  }
+  ''
+    unpackPhase
+    cd "''${sourceRoot:-.}"
+    set -x
+    cp ${builtins.toFile "glib-schema-to-var.json" (builtins.toJSON schemaIdToVariableMapping)} ./glib-schema-to-var.json
+    git init
+    git add -A
+    spatch --sp-file "${./hardcode-gsettings.cocci}" --dir . --in-place
+    git diff > "$out"
+  ''
diff --git a/pkgs/development/libraries/glib/hardcode-gsettings.cocci b/pkgs/build-support/make-hardcode-gsettings-patch/hardcode-gsettings.cocci
index bedacf846bc49..bedacf846bc49 100644
--- a/pkgs/development/libraries/glib/hardcode-gsettings.cocci
+++ b/pkgs/build-support/make-hardcode-gsettings-patch/hardcode-gsettings.cocci
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index 3b0a5caa59f6d..bdde8160ca503 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -45,6 +45,7 @@
 , boost
 , protobuf
 , libiconv
+, makeHardcodeGsettingsPatch
 }:
 
 stdenv.mkDerivation rec {
@@ -150,8 +151,8 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    hardcodeGsettingsPatch = glib.mkHardcodeGsettingsPatch {
-      glib-schema-to-var = {
+    hardcodeGsettingsPatch = makeHardcodeGsettingsPatch {
+      schemaIdToVariableMapping = {
         "org.gnome.Evolution.DefaultSources" = "EDS";
         "org.gnome.evolution.shell.network-config" = "EDS";
         "org.gnome.evolution-data-server.addressbook" = "EDS";
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 12f46af022fc6..39a372fe1436a 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -18,8 +18,7 @@
 , coreutils, dbus, libxml2, tzdata
 , desktop-file-utils, shared-mime-info
 , darwin
-# update script
-, runCommand, git, coccinelle
+, makeHardcodeGsettingsPatch
 }:
 
 assert stdenv.isLinux -> util-linuxMinimal != null;
@@ -271,55 +270,18 @@ stdenv.mkDerivation (finalAttrs: {
       packageName = "glib";
       versionPolicy = "odd-unstable";
     };
-    /*
-      can be used as part of an update script to automatically create a patch
-      hardcoding the path of all gsettings schemas in C code.
-      For example:
-      passthru = {
-        hardcodeGsettingsPatch = glib.mkHardcodeGsettingsPatch {
-          inherit src;
-          glib-schema-to-var = {
-             ...
-          };
-        };
-
-        updateScript =
-          let
-            updateSource = ...;
-            patch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-ews.hardcodeGsettingsPatch" ./hardcode-gsettings.patch;
-          in
-          _experimental-update-script-combinators.sequence [
-            updateSource
-            patch
-          ];
-        };
-      }
-      takes as input a mapping from schema path to variable name.
-      For example `{ "org.gnome.evolution" = "EVOLUTION_SCHEMA_PATH"; }`
-      hardcodes looking for `org.gnome.evolution` into `@EVOLUTION_SCHEMA_PATH@`.
-      All schemas must be listed.
-    */
-    mkHardcodeGsettingsPatch = { src, glib-schema-to-var }:
-      runCommand
-        "hardcode-gsettings.patch"
-        {
+
+    mkHardcodeGsettingsPatch =
+      {
+        src,
+        glib-schema-to-var,
+      }:
+      builtins.trace
+        "glib.mkHardcodeGsettingsPatch is deprecated, please use makeHardcodeGsettingsPatch instead"
+        (makeHardcodeGsettingsPatch {
           inherit src;
-          nativeBuildInputs = [
-            git
-            coccinelle
-            python3 # For patch script
-          ];
-        }
-        ''
-          unpackPhase
-          cd "''${sourceRoot:-.}"
-          set -x
-          cp ${builtins.toFile "glib-schema-to-var.json" (builtins.toJSON glib-schema-to-var)} ./glib-schema-to-var.json
-          git init
-          git add -A
-          spatch --sp-file "${./hardcode-gsettings.cocci}" --dir . --in-place
-          git diff > "$out"
-        '';
+          schemaIdToVariableMapping = glib-schema-to-var;
+        });
   };
 
   meta = with lib; {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8ccdec4f55737..97e5ba04c0ca9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1085,6 +1085,8 @@ with pkgs;
     { deps = [ lcov enableGCOVInstrumentation ]; }
     ../build-support/setup-hooks/make-coverage-analysis-report.sh;
 
+  makeHardcodeGsettingsPatch = callPackage ../build-support/make-hardcode-gsettings-patch { };
+
   # intended to be used like nix-build -E 'with import <nixpkgs> {}; enableDebugging fooPackage'
   enableDebugging = pkg: pkg.override { stdenv = stdenvAdapters.keepDebugInfo pkg.stdenv; };