summary refs log tree commit diff
path: root/pkgs/tools/networking/networkd-dispatcher
diff options
context:
space:
mode:
authorJonas Heinrich <onny@project-insanity.org>2023-03-03 19:31:18 +0100
committerJonas Heinrich <onny@project-insanity.org>2023-03-08 10:20:47 +0100
commit22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c (patch)
treee583baa93e4cfa002e560157f76b32538ef23852 /pkgs/tools/networking/networkd-dispatcher
parent26e14e57af344f61d8adc37ce4f6f1fe554861bc (diff)
downloadnixpkgs-22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c.tar
nixpkgs-22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c.tar.gz
nixpkgs-22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c.tar.bz2
nixpkgs-22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c.tar.lz
nixpkgs-22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c.tar.xz
nixpkgs-22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c.tar.zst
nixpkgs-22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c.zip
networkd-dispatcher: Add patch support store files
Diffstat (limited to 'pkgs/tools/networking/networkd-dispatcher')
-rw-r--r--pkgs/tools/networking/networkd-dispatcher/default.nix6
-rw-r--r--pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch13
2 files changed, 19 insertions, 0 deletions
diff --git a/pkgs/tools/networking/networkd-dispatcher/default.nix b/pkgs/tools/networking/networkd-dispatcher/default.nix
index b8812cb678d..161772ed481 100644
--- a/pkgs/tools/networking/networkd-dispatcher/default.nix
+++ b/pkgs/tools/networking/networkd-dispatcher/default.nix
@@ -19,6 +19,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-yO9/HlUkaQmW/n9N3vboHw//YMzBjxIHA2zAxgZNEv0=";
   };
 
+  patches = [
+    # Support rule files in NixOS store paths. Required for the networkd-dispatcher
+    # module to work
+    ./support_nix_store_path.patch
+  ];
+
   postPatch = ''
     # Fix paths in systemd unit file
     substituteInPlace networkd-dispatcher.service \
diff --git a/pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch b/pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch
new file mode 100644
index 00000000000..6d32548f188
--- /dev/null
+++ b/pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch
@@ -0,0 +1,13 @@
+diff --git a/networkd-dispatcher b/networkd-dispatcher
+index ef877ce..8c341f2 100755
+--- a/networkd-dispatcher
++++ b/networkd-dispatcher
+@@ -171,6 +171,8 @@ def check_perms(path, mode=0o755, uid=0, gid=0):
+ 
+     if not os.path.exists(path):
+         raise FileNotFoundError
++    if re.search('^/nix/store/.*', str(path)):
++        return True
+     st = os.stat(path, follow_symlinks=False)
+     st_mode = st.st_mode & 0x00FFF
+     if st.st_uid == uid and st.st_gid == gid and st_mode == mode: