From c7c8da035d8cc5c5cf0c12d76dedf25d6520f2d5 Mon Sep 17 00:00:00 2001 From: Leorize Date: Fri, 9 Dec 2022 14:14:41 -0600 Subject: [PATCH] nftables: fix python module lookup for libnftables The default parameter for Nftables class relies on Python looking via default search path, which will not work with Nix. This commit hardcode the path into the module to handle software using this default parameter (eg. firewalld). --- pkgs/os-specific/linux/nftables/default.nix | 7 +++++++ .../linux/nftables/fix-py-libnftables.patch | 13 +++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 pkgs/os-specific/linux/nftables/fix-py-libnftables.patch diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix index 4482170d346b..03e99441ec67 100644 --- a/pkgs/os-specific/linux/nftables/default.nix +++ b/pkgs/os-specific/linux/nftables/default.nix @@ -35,6 +35,13 @@ stdenv.mkDerivation rec { python3.pkgs.setuptools ]; + patches = [ ./fix-py-libnftables.patch ]; + + postPatch = '' + substituteInPlace "py/src/nftables.py" \ + --subst-var-by "out" "$out" + ''; + configureFlags = [ "--with-json" (lib.withFeatureAs withCli "cli" "editline") diff --git a/pkgs/os-specific/linux/nftables/fix-py-libnftables.patch b/pkgs/os-specific/linux/nftables/fix-py-libnftables.patch new file mode 100644 index 000000000000..3ab1e5363019 --- /dev/null +++ b/pkgs/os-specific/linux/nftables/fix-py-libnftables.patch @@ -0,0 +1,13 @@ +diff --git a/py/src/nftables.py b/py/src/nftables.py +index f1e43ade..9adcd1be 100644 +--- a/py/src/nftables.py ++++ b/py/src/nftables.py +@@ -69,7 +69,7 @@ class Nftables: + + validator = None + +- def __init__(self, sofile="libnftables.so.1"): ++ def __init__(self, sofile="@out@/lib/libnftables.so.1"): + """Instantiate a new Nftables class object. + + Accepts a shared object file to open, by default standard search path