diff options
author | Jonas Heinrich <onny@project-insanity.org> | 2023-03-03 19:31:18 +0100 |
---|---|---|
committer | Jonas Heinrich <onny@project-insanity.org> | 2023-03-08 10:20:47 +0100 |
commit | 22fd05adeeae38dd23be4b4c0ffb18f3f1fd264c (patch) | |
tree | e583baa93e4cfa002e560157f76b32538ef23852 /pkgs/tools/networking/networkd-dispatcher | |
parent | 26e14e57af344f61d8adc37ce4f6f1fe554861bc (diff) |
networkd-dispatcher: Add patch support store files
Diffstat (limited to 'pkgs/tools/networking/networkd-dispatcher')
-rw-r--r-- | pkgs/tools/networking/networkd-dispatcher/default.nix | 6 | ||||
-rw-r--r-- | pkgs/tools/networking/networkd-dispatcher/support_nix_store_path.patch | 13 |
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 b8812cb678deb..161772ed4819c 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 0000000000000..6d32548f18838 --- /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: |