diff options
author | Mx Kookie <kookie@spacekookie.de> | 2020-10-31 19:35:09 +0100 |
---|---|---|
committer | Mx Kookie <kookie@spacekookie.de> | 2020-10-31 19:35:09 +0100 |
commit | c4625b175f8200f643fd6e11010932ea44c78433 (patch) | |
tree | bce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/development/interpreters/python/default.nix | |
parent | 49f735974dd103039ddc4cb576bb76555164a9e7 (diff) | |
parent | d661aa56a8843e991261510c1bb28fdc2f6975ae (diff) |
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie
git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7
git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/interpreters/python/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/interpreters/python/default.nix | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/interpreters/python/default.nix b/infra/libkookie/nixpkgs/pkgs/development/interpreters/python/default.nix new file mode 100644 index 000000000000..90b6e8ee0cb0 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/development/interpreters/python/default.nix @@ -0,0 +1,207 @@ +{ pkgs }: + +with pkgs; + +(let + + # Common passthru for all Python interpreters. + passthruFun = + { implementation + , libPrefix + , executable + , sourceVersion + , pythonVersion + , packageOverrides + , sitePackages + , hasDistutilsCxxPatch + , pythonForBuild + , self + }: let + pythonPackages = callPackage ../../../top-level/python-packages.nix { + python = self; + overrides = packageOverrides; + }; + in rec { + isPy27 = pythonVersion == "2.7"; + isPy35 = pythonVersion == "3.5"; + isPy36 = pythonVersion == "3.6"; + isPy37 = pythonVersion == "3.7"; + isPy38 = pythonVersion == "3.8"; + isPy39 = pythonVersion == "3.9"; + isPy2 = lib.strings.substring 0 1 pythonVersion == "2"; + isPy3 = lib.strings.substring 0 1 pythonVersion == "3"; + isPy3k = isPy3; + isPyPy = lib.hasInfix "pypy" interpreter; + + buildEnv = callPackage ./wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; }; + withPackages = import ./with-packages.nix { inherit buildEnv pythonPackages;}; + pkgs = pythonPackages; + interpreter = "${self}/bin/${executable}"; + inherit executable implementation libPrefix pythonVersion sitePackages; + inherit sourceVersion; + pythonAtLeast = lib.versionAtLeast pythonVersion; + pythonOlder = lib.versionOlder pythonVersion; + inherit hasDistutilsCxxPatch pythonForBuild; + + tests = callPackage ./tests.nix { + python = self; + }; + }; + +in { + + python27 = callPackage ./cpython/2.7 { + self = python27; + sourceVersion = { + major = "2"; + minor = "7"; + patch = "18"; + suffix = ""; + }; + sha256 = "0hzgxl94hnflis0d6m4szjx0b52gah7wpmcg5g00q7am6xwhwb5n"; + inherit (darwin) configd; + inherit passthruFun; + }; + + python36 = callPackage ./cpython { + self = python36; + sourceVersion = { + major = "3"; + minor = "6"; + patch = "12"; + suffix = ""; + }; + sha256 = "cJU6m11okdkuZdGEw1EhJqFYFL7hXh7/LdzOBDNOmpk="; + inherit (darwin) configd; + inherit passthruFun; + }; + + python37 = callPackage ./cpython { + self = python37; + sourceVersion = { + major = "3"; + minor = "7"; + patch = "9"; + suffix = ""; + }; + sha256 = "008v6g1jkrjrdmiqlgjlq6msbbj848bvkws6ppwva1ahn03k14li"; + inherit (darwin) configd; + inherit passthruFun; + }; + + python38 = callPackage ./cpython { + self = python38; + sourceVersion = { + major = "3"; + minor = "8"; + patch = "6"; + suffix = ""; + }; + sha256 = "qeC3nSeqBW65zOjWOkJ7X5urFGXe4/lC3P2yWoL0q4o="; + inherit (darwin) configd; + inherit passthruFun; + }; + + python39 = callPackage ./cpython { + self = python39; + sourceVersion = { + major = "3"; + minor = "9"; + patch = "0"; + suffix = ""; + }; + sha256 = "0m18z05nlmqm1zjw9s0ifgrn1jvjn3jwjg0bpswhjmw5k4yfcwww"; + inherit (darwin) configd; + inherit passthruFun; + }; + + # Minimal versions of Python (built without optional dependencies) + python3Minimal = (python38.override { + self = python3Minimal; + pythonForBuild = pkgs.buildPackages.python3Minimal; + # strip down that python version as much as possible + openssl = null; + readline = null; + ncurses = null; + gdbm = null; + sqlite = null; + configd = null; + stripConfig = true; + stripIdlelib = true; + stripTests = true; + stripTkinter = true; + rebuildBytecode = false; + stripBytecode = true; + includeSiteCustomize = false; + enableOptimizations = false; + }).overrideAttrs(old: { + pname = "python3-minimal"; + meta = old.meta // { + maintainers = []; + }; + }); + + pypy27 = callPackage ./pypy { + self = pypy27; + sourceVersion = { + major = "7"; + minor = "3"; + patch = "1"; + }; + sha256 = "08ckkhd0ix6j9873a7gr507c72d4cmnv5lwvprlljdca9i8p2dzs"; + pythonVersion = "2.7"; + db = db.override { dbmSupport = !stdenv.isDarwin; }; + python = python27; + inherit passthruFun; + inherit (darwin) libunwind; + inherit (darwin.apple_sdk.frameworks) Security; + }; + + pypy36 = callPackage ./pypy { + self = pypy36; + sourceVersion = { + major = "7"; + minor = "3"; + patch = "1"; + }; + sha256 = "10zsk8jby8j6visk5mzikpb1cidvz27qq4pfpa26jv53klic6b0c"; + pythonVersion = "3.6"; + db = db.override { dbmSupport = !stdenv.isDarwin; }; + python = python27; + inherit passthruFun; + inherit (darwin) libunwind; + inherit (darwin.apple_sdk.frameworks) Security; + }; + + pypy27_prebuilt = callPackage ./pypy/prebuilt.nix { + # Not included at top-level + self = pythonInterpreters.pypy27_prebuilt; + sourceVersion = { + major = "7"; + minor = "3"; + patch = "1"; + }; + sha256 = "18xc5kwidj5hjwbr0w8v1nfpg5l4lk01z8cn804zfyyz8xjqhx5y"; # linux64 + pythonVersion = "2.7"; + inherit passthruFun; + }; + + pypy36_prebuilt = callPackage ./pypy/prebuilt.nix { + # Not included at top-level + self = pythonInterpreters.pypy36_prebuilt; + sourceVersion = { + major = "7"; + minor = "3"; + patch = "1"; + }; + sha256 = "04nv0mkalaliphbjw7y0pmb372bxwjzwmcsqkf9kwsik99kg2z7n"; # linux64 + pythonVersion = "3.6"; + inherit passthruFun; + }; + + graalpython37 = callPackage ./graalpython/default.nix { + self = pythonInterpreters.graalpython37; + inherit passthruFun; + }; + +}) |