diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2020-11-16 21:34:33 +0100 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2021-03-13 14:05:41 +0100 |
commit | 7617b03403acd7d74f8e4f21ed791543ad14bfe9 (patch) | |
tree | bd618a26c90c6e4bfae526cc6328003080eb0206 /pkgs/development/interpreters/python/cpython | |
parent | 6da245f62adc4b2cfea356769b80b929269fe9b5 (diff) | |
download | nixpkgs-7617b03403acd7d74f8e4f21ed791543ad14bfe9.tar nixpkgs-7617b03403acd7d74f8e4f21ed791543ad14bfe9.tar.gz nixpkgs-7617b03403acd7d74f8e4f21ed791543ad14bfe9.tar.bz2 nixpkgs-7617b03403acd7d74f8e4f21ed791543ad14bfe9.tar.lz nixpkgs-7617b03403acd7d74f8e4f21ed791543ad14bfe9.tar.xz nixpkgs-7617b03403acd7d74f8e4f21ed791543ad14bfe9.tar.zst nixpkgs-7617b03403acd7d74f8e4f21ed791543ad14bfe9.zip |
python39: hardcode path to tzdata
Python 3.9 has a new module `zoneinfo` which requires tzdata. By default it searches TZPATH for folders containing `zoneinfo`. This commit makes the dependency on tzdata pure.
Diffstat (limited to 'pkgs/development/interpreters/python/cpython')
-rw-r--r-- | pkgs/development/interpreters/python/cpython/default.nix | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index 6cfe2ad93b5..51043a884eb 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -11,6 +11,7 @@ , tcl ? null, tk ? null, tix ? null, libX11 ? null, xorgproto ? null, x11Support ? false , bluez ? null, bluezSupport ? false , zlib +, tzdata ? null , self , configd , autoreconfHook @@ -68,6 +69,8 @@ let buildPackages = pkgsBuildHost; inherit (passthru) pythonForBuild; + tzdataSupport = tzdata != null && passthru.pythonAtLeast "3.9"; + passthru = passthruFun rec { inherit self sourceVersion packageOverrides; implementation = "cpython"; @@ -100,7 +103,8 @@ let zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ] ++ optionals x11Support [ tcl tk libX11 xorgproto ] ++ optionals (bluezSupport && stdenv.isLinux) [ bluez ] - ++ optionals stdenv.isDarwin [ configd ]); + ++ optionals stdenv.isDarwin [ configd ]) + ++ optionals tzdataSupport [ tzdata ]; # `zoneinfo` module hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); @@ -293,6 +297,8 @@ in with passthru; stdenv.mkDerivation { # Never even try to use lchmod on linux, # don't rely on detecting glibc-isms. "ac_cv_func_lchmod=no" + ] ++ optionals tzdataSupport [ + "--with-tzpath=${tzdata}/share/zoneinfo" ] ++ optional static "LDFLAGS=-static"; preConfigure = '' @@ -348,8 +354,8 @@ in with passthru; stdenv.mkDerivation { done # Further get rid of references. https://github.com/NixOS/nixpkgs/issues/51668 - find $out/lib/python*/config-* -type f -print -exec nuke-refs -e $out '{}' + - find $out/lib -name '_sysconfigdata*.py*' -print -exec nuke-refs -e $out '{}' + + find $out/lib/python*/config-* -type f -print -exec nuke-refs -e $out ${optionalString tzdataSupport "-e ${tzdata}"} '{}' + + find $out/lib -name '_sysconfigdata*.py*' -print -exec nuke-refs -e $out ${optionalString tzdataSupport "-e ${tzdata}"} '{}' + # Make the sysconfigdata module accessible on PYTHONPATH # This allows build Python to import host Python's sysconfigdata |