python37: apply distutils patch

This commit is contained in:
Dmitry Kalinkin 2018-07-03 13:29:07 -04:00
parent 29c3f32841
commit ea08cf9e6c

View File

@ -39,6 +39,8 @@ let
++ optionals x11Support [ tcl tk libX11 xproto ] ++ optionals x11Support [ tcl tk libX11 xproto ]
++ optionals stdenv.isDarwin [ CF configd ]; ++ optionals stdenv.isDarwin [ CF configd ];
hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "python3-${version}"; name = "python3-${version}";
pythonVersion = majorVersion; pythonVersion = majorVersion;
@ -63,6 +65,15 @@ in stdenv.mkDerivation {
patches = [ patches = [
./no-ldconfig.patch ./no-ldconfig.patch
] ++ optionals hasDistutilsCxxPatch [
# Fix for http://bugs.python.org/issue1222585
# Upstream distutils is calling C compiler to compile C++ code, which
# only works for GCC and Apple Clang. This makes distutils to call C++
# compiler when needed.
(fetchpatch {
url = "https://bugs.python.org/file47669/python-3.8-distutils-C++.patch";
sha256 = "0s801d7ww9yrk6ys053jvdhl0wicbznx08idy36f1nrrxsghb3ii";
})
]; ];
postPatch = '' postPatch = ''
@ -147,7 +158,7 @@ in stdenv.mkDerivation {
passthru = let passthru = let
pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;}; pythonPackages = callPackage ../../../../../top-level/python-packages.nix {python=self; overrides=packageOverrides;};
in rec { in rec {
inherit libPrefix sitePackages x11Support; inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
executable = "${libPrefix}m"; executable = "${libPrefix}m";
buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; }; buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;}; withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};