Loading pkgs/development/interpreters/python/python2/mk-python-derivation.nix +258 −238 Original line number Diff line number Diff line Loading @@ -27,7 +27,24 @@ eggBuildHook, eggInstallHook, }: lib.extendMkDerivation { constructDrv = stdenv.mkDerivation; excludeDrvArgNames = [ "disabled" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format" "disabledTestPaths" ]; extendDrvArgs = finalAttrs: { name ? "${attrs.pname}-${attrs.version}", Loading Loading @@ -173,23 +190,8 @@ let in inputs: map checkDrv inputs; # Keep extra attributes from `attrs`, e.g., `patchPhase', etc. self = toPythonModule ( stdenv.mkDerivation ( (removeAttrs attrs [ "disabled" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format" "disabledTestPaths" "outputs" ]) // { in { name = namePrefix + name_; Loading Loading @@ -272,6 +274,21 @@ let outputs = outputs ++ lib.optional withDistOutput "dist"; passthru = { inherit disabled ; updateScript = let filename = builtins.head (lib.splitString ":" finalAttrs.finalPackage.meta.position); in [ update-python-libraries filename ]; } // passthru; meta = { # default to python's platforms platforms = python.meta.platforms; Loading @@ -286,19 +303,22 @@ let } // lib.optionalAttrs (disabledTestPaths != [ ]) { disabledTestPaths = lib.escapeShellArgs disabledTestPaths; } ) ); }; passthru.updateScript = transformDrv = let filename = builtins.head (lib.splitString ":" self.meta.position); in attrs.passthru.updateScript or [ update-python-libraries filename ]; in # Workaround to make the `lib.extendDerivation`-based disabled functionality # respect `<pkg>.overrideAttrs` # It doesn't cover `<pkg>.<output>.overrideAttrs`. disablePythonPackage = drv: lib.extendDerivation ( disabled -> throw "${name} not supported for interpreter ${python.executable}" ) passthru self drv.disabled -> throw "${lib.removePrefix namePrefix drv.name} not supported for interpreter ${python.executable}" ) { } drv // { overrideAttrs = fdrv: disablePythonPackage (drv.overrideAttrs fdrv); }; in drv: disablePythonPackage (toPythonModule drv); } Loading
pkgs/development/interpreters/python/python2/mk-python-derivation.nix +258 −238 Original line number Diff line number Diff line Loading @@ -27,7 +27,24 @@ eggBuildHook, eggInstallHook, }: lib.extendMkDerivation { constructDrv = stdenv.mkDerivation; excludeDrvArgNames = [ "disabled" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format" "disabledTestPaths" ]; extendDrvArgs = finalAttrs: { name ? "${attrs.pname}-${attrs.version}", Loading Loading @@ -173,23 +190,8 @@ let in inputs: map checkDrv inputs; # Keep extra attributes from `attrs`, e.g., `patchPhase', etc. self = toPythonModule ( stdenv.mkDerivation ( (removeAttrs attrs [ "disabled" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format" "disabledTestPaths" "outputs" ]) // { in { name = namePrefix + name_; Loading Loading @@ -272,6 +274,21 @@ let outputs = outputs ++ lib.optional withDistOutput "dist"; passthru = { inherit disabled ; updateScript = let filename = builtins.head (lib.splitString ":" finalAttrs.finalPackage.meta.position); in [ update-python-libraries filename ]; } // passthru; meta = { # default to python's platforms platforms = python.meta.platforms; Loading @@ -286,19 +303,22 @@ let } // lib.optionalAttrs (disabledTestPaths != [ ]) { disabledTestPaths = lib.escapeShellArgs disabledTestPaths; } ) ); }; passthru.updateScript = transformDrv = let filename = builtins.head (lib.splitString ":" self.meta.position); in attrs.passthru.updateScript or [ update-python-libraries filename ]; in # Workaround to make the `lib.extendDerivation`-based disabled functionality # respect `<pkg>.overrideAttrs` # It doesn't cover `<pkg>.<output>.overrideAttrs`. disablePythonPackage = drv: lib.extendDerivation ( disabled -> throw "${name} not supported for interpreter ${python.executable}" ) passthru self drv.disabled -> throw "${lib.removePrefix namePrefix drv.name} not supported for interpreter ${python.executable}" ) { } drv // { overrideAttrs = fdrv: disablePythonPackage (drv.overrideAttrs fdrv); }; in drv: disablePythonPackage (toPythonModule drv); }