Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.2 kB · 75 lines
Nix
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576{ stdenv, python, build, flit-core, installer, packaging, pyproject-hooks, tomli, makeWrapper,}:let buildBootstrapPythonModule = basePackage: attrs: stdenv.mkDerivation ( { pname = "${python.libPrefix}-bootstrap-${basePackage.pname}"; inherit (basePackage) version src meta;
nativeBuildInputs = [ makeWrapper ];
buildPhase = '' runHook preBuild
PYTHONPATH="${flit-core}/${python.sitePackages}" \ ${python.interpreter} -m flit_core.wheel
runHook postBuild '';
installPhase = '' runHook preInstall
PYTHONPATH="${installer}/${python.sitePackages}" \ ${python.interpreter} -m installer \ --destdir "$out" --prefix "" dist/*.whl
runHook postInstall ''; } // attrs );
bootstrap-packaging = buildBootstrapPythonModule packaging { };
bootstrap-pyproject-hooks = buildBootstrapPythonModule pyproject-hooks { };
bootstrap-tomli = buildBootstrapPythonModule tomli { };
sitePkgs = python.sitePackages;inbuildBootstrapPythonModule build { # like the installPhase above, but wrapping the pyproject-build command # to set up PYTHONPATH with the correct dependencies. # This allows using `pyproject-build` without propagating its dependencies # into the build environment, which is necessary to prevent # pythonCatchConflicts from raising false positive alerts. # This would happen whenever the package to build has a dependency on # another version of a package that is also a dependency of pyproject-build. installPhase = '' runHook preInstall
PYTHONPATH="${installer}/${python.sitePackages}" \ ${python.interpreter} -m installer \ --destdir "$out" --prefix "" dist/*.whl
wrapProgram $out/bin/pyproject-build \ --prefix PYTHONPATH : "$out/${sitePkgs}" \ --prefix PYTHONPATH : "${bootstrap-pyproject-hooks}/${sitePkgs}" \ --prefix PYTHONPATH : "${bootstrap-packaging}/${sitePkgs}" \ --prefix PYTHONPATH : "${bootstrap-tomli}/${sitePkgs}"
runHook postInstall '';}