From 9b5cfd41d86b1bbc8c9b7406760154b4832ebb76 Mon Sep 17 00:00:00 2001 From: Mats Date: Fri, 24 Nov 2023 14:31:19 +0100 Subject: [PATCH] samba: fix samba-tool This commit addresses the following issues: - samba-tool requiring python built with libxcrypt-legacy - adding the missing markdown python package - fixing the shebang patching so disallowedReferences passes --- pkgs/servers/samba/4.x.nix | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix index 4dfa8657224d..37e98de2591b 100644 --- a/pkgs/servers/samba/4.x.nix +++ b/pkgs/servers/samba/4.x.nix @@ -27,6 +27,7 @@ , tdb , tevent , libxcrypt +, libxcrypt-legacy , cmocka , rpcsvc-proto , bash @@ -49,6 +50,15 @@ with lib; +let + # samba-tool requires libxcrypt-legacy algorithms + python = python3Packages.python.override { + libxcrypt = libxcrypt-legacy; + }; + wrapPython = python3Packages.wrapPython.override { + inherit python; + }; +in stdenv.mkDerivation rec { pname = "samba"; version = "4.19.2"; @@ -69,7 +79,7 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ - python3Packages.python + python wafHook pkg-config bison @@ -93,8 +103,8 @@ stdenv.mkDerivation rec { buildInputs = [ bash - python3Packages.wrapPython - python3Packages.python + wrapPython + python readline popt dbus @@ -165,7 +175,7 @@ stdenv.mkDerivation rec { # module, which works correctly in all cases. PYTHON_CONFIG = "/invalid"; - pythonPath = [ python3Packages.dnspython tdb ]; + pythonPath = [ python3Packages.dnspython python3Packages.markdown tdb ]; preBuild = '' export MAKEFLAGS="-j $NIX_BUILD_CORES" @@ -208,12 +218,12 @@ stdenv.mkDerivation rec { # Samba does its own shebang patching, but uses build Python find $out/bin -type f -executable | while read file; do isScript "$file" || continue - sed -i 's^${lib.getBin buildPackages.python3Packages.python}/bin^${lib.getBin python3Packages.python}/bin^' "$file" + sed -i 's^${lib.getBin buildPackages.python3Packages.python}^${lib.getBin python}^' "$file" done ''; disallowedReferences = - lib.optionals (buildPackages.python3Packages.python != python3Packages.python) + lib.optionals (buildPackages.python3Packages.python != python) [ buildPackages.python3Packages.python ]; passthru = {