nixpkgs/pkgs/by-name/au/auto-patchelf/package.nix
adisbladis 687371ab28 auto-patchelf: Don't use buildPythonApplication
https://github.com/NixOS/nixpkgs/pull/340162 introduced `autoPatchelfHook` as it's own top-level attribute.
This also made it use the Nixpkgs Python build infrastructure, which relies on dependency propagation, leaking Python as a dependency into many builds erroneously.

This change uses a `withPackages` constructed environment instead, and manually patches the script shebangs, not triggering the `buildPython*` dependency propagation mechanism
2024-11-03 03:44:26 +00:00

44 lines
872 B
Nix

{
stdenv,
python3,
lib,
}:
let
pythonEnv = python3.withPackages (ps: [ ps.pyelftools ]);
in
# Note: Not using python3Packages.buildPythonApplication because of dependency propagation.
stdenv.mkDerivation {
pname = "auto-patchelf";
version = "0-unstable-2024-08-14";
buildInputs = [ pythonEnv ];
src = ./source;
buildPhase = ''
runHook preBuild
substituteInPlace auto-patchelf.py --replace-fail "@defaultBintools@" "$NIX_BINTOOLS"
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm755 auto-patchelf.py $out/bin/auto-patchelf
runHook postInstall
'';
meta = {
description = "Automatically patch ELF binaries using patchelf";
mainProgram = "auto-patchelf";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ Scrumplex ];
};
}