diff options
author | adisbladis <adisbladis@gmail.com> | 2020-01-08 13:29:03 +0000 |
---|---|---|
committer | adisbladis <adisbladis@gmail.com> | 2020-01-08 13:59:04 +0000 |
commit | 2d6f1ff4dd2ce208fce624466b4eeae54eafd61f (patch) | |
tree | 4c10fda6b6e45505f9845ceb80725c63a3ebbd26 /pkgs/development/interpreters | |
parent | 380220c237d479b81182884afec76e77685e9a36 (diff) | |
download | nixpkgs-2d6f1ff4dd2ce208fce624466b4eeae54eafd61f.tar nixpkgs-2d6f1ff4dd2ce208fce624466b4eeae54eafd61f.tar.gz nixpkgs-2d6f1ff4dd2ce208fce624466b4eeae54eafd61f.tar.bz2 nixpkgs-2d6f1ff4dd2ce208fce624466b4eeae54eafd61f.tar.lz nixpkgs-2d6f1ff4dd2ce208fce624466b4eeae54eafd61f.tar.xz nixpkgs-2d6f1ff4dd2ce208fce624466b4eeae54eafd61f.tar.zst nixpkgs-2d6f1ff4dd2ce208fce624466b4eeae54eafd61f.zip |
python: Add support for installing Python eggs
Diffstat (limited to 'pkgs/development/interpreters')
5 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix index 861cb38c060..f05b3b1eec6 100644 --- a/pkgs/development/interpreters/python/hooks/default.nix +++ b/pkgs/development/interpreters/python/hooks/default.nix @@ -11,6 +11,27 @@ let setuppy = ../run_setup.py; in rec { + eggBuildHook = callPackage ({ }: + makeSetupHook { + name = "egg-build-hook.sh"; + deps = [ ]; + } ./egg-build-hook.sh) {}; + + eggInstallHook = callPackage ({ setuptools }: + makeSetupHook { + name = "egg-install-hook.sh"; + deps = [ setuptools ]; + substitutions = { + inherit pythonInterpreter pythonSitePackages; + }; + } ./egg-install-hook.sh) {}; + + eggUnpackHook = callPackage ({ }: + makeSetupHook { + name = "egg-unpack-hook.sh"; + deps = [ ]; + } ./egg-unpack-hook.sh) {}; + flitBuildHook = callPackage ({ flit }: makeSetupHook { name = "flit-build-hook"; diff --git a/pkgs/development/interpreters/python/hooks/egg-build-hook.sh b/pkgs/development/interpreters/python/hooks/egg-build-hook.sh new file mode 100644 index 00000000000..d5abc8d55e5 --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/egg-build-hook.sh @@ -0,0 +1,15 @@ +# Setup hook to use for eggs +echo "Sourcing egg-build-hook" + +eggBuildPhase() { + echo "Executing eggBuildPhase" + runHook preBuild + + runHook postBuild + echo "Finished executing eggBuildPhase" +} + +if [ -z "${dontUseEggBuild-}" ] && [ -z "${buildPhase-}" ]; then + echo "Using eggBuildPhase" + buildPhase=eggBuildPhase +fi diff --git a/pkgs/development/interpreters/python/hooks/egg-install-hook.sh b/pkgs/development/interpreters/python/hooks/egg-install-hook.sh new file mode 100644 index 00000000000..ae894fb1bde --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/egg-install-hook.sh @@ -0,0 +1,21 @@ +# Setup hook for eggs +echo "Sourcing egg-install-hook" + +eggInstallPhase() { + echo "Executing eggInstallPhase" + runHook preInstall + + mkdir -p "$out/@pythonSitePackages@" + export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH" + + find + @pythonInterpreter@ -m easy_install --prefix="$out" *.egg + + runHook postInstall + echo "Finished executing eggInstallPhase" +} + +if [ -z "${dontUseEggInstall-}" ] && [ -z "${installPhase-}" ]; then + echo "Using eggInstallPhase" + installPhase=eggInstallPhase +fi diff --git a/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh b/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh new file mode 100644 index 00000000000..c8ed3dee83b --- /dev/null +++ b/pkgs/development/interpreters/python/hooks/egg-unpack-hook.sh @@ -0,0 +1,17 @@ +# Setup hook to use in case an egg is fetched +echo "Sourcing egg setup hook" + +eggUnpackPhase(){ + echo "Executing eggUnpackPhase" + runHook preUnpack + + cp "$src" "$(stripHash "$src")" + +# runHook postUnpack # Calls find...? + echo "Finished executing eggUnpackPhase" +} + +if [ -z "${dontUseEggUnpack-}" ] && [ -z "${unpackPhase-}" ]; then + echo "Using eggUnpackPhase" + unpackPhase=eggUnpackPhase +fi diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index 700894eda6d..020298cc8e9 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -20,6 +20,9 @@ , setuptoolsBuildHook , setuptoolsCheckHook , wheelUnpackHook +, eggUnpackHook +, eggBuildHook +, eggInstallHook }: { name ? "${attrs.pname}-${attrs.version}" @@ -119,6 +122,8 @@ let pipBuildHook ] ++ lib.optionals (format == "wheel") [ wheelUnpackHook + ] ++ lib.optionals (format == "egg") [ + eggUnpackHook eggBuildHook eggInstallHook ] ++ lib.optionals (!(format == "other") || dontUsePipInstall) [ pipInstallHook ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ |