1{
2 __splicedPackages,
3 callPackage,
4 config,
5 db,
6 lib,
7 makeScopeWithSplicing',
8 pythonPackagesExtensions,
9 stdenv,
10}@args:
11
12(
13 let
14
15 # Common passthru for all Python interpreters.
16 passthruFun = import ./passthrufun.nix args;
17
18 sources = {
19 python313 = {
20 sourceVersion = {
21 major = "3";
22 minor = "13";
23 patch = "5";
24 suffix = "";
25 };
26 hash = "sha256-k+WD8kNFTm6eRYjKLCZiIGrZYWWYYyd6/NuWgBZH1kA=";
27 };
28 };
29
30 in
31 {
32
33 python27 = callPackage ./cpython/2.7 {
34 self = __splicedPackages.python27;
35 sourceVersion = {
36 major = "2";
37 minor = "7";
38 patch = "18";
39 suffix = ".8"; # ActiveState's Python 2 extended support
40 };
41 hash = "sha256-HUOzu3uJbtd+3GbmGD35KOk/CDlwL4S7hi9jJGRFiqI=";
42 inherit passthruFun;
43 };
44
45 python310 = callPackage ./cpython {
46 self = __splicedPackages.python310;
47 sourceVersion = {
48 major = "3";
49 minor = "10";
50 patch = "18";
51 suffix = "";
52 };
53 hash = "sha256-rmZbxnir2atqbhVz0kgWJaU3GbxRfppjTtK5/vrjgX8=";
54 inherit passthruFun;
55 };
56
57 python311 = callPackage ./cpython {
58 self = __splicedPackages.python311;
59 sourceVersion = {
60 major = "3";
61 minor = "11";
62 patch = "13";
63 suffix = "";
64 };
65 hash = "sha256-j7X5+8dgn6giyzFUmIRXXbf9llfL/7iVELXXl1ljqDo=";
66 inherit passthruFun;
67 };
68
69 python312 = callPackage ./cpython {
70 self = __splicedPackages.python312;
71 sourceVersion = {
72 major = "3";
73 minor = "12";
74 patch = "11";
75 suffix = "";
76 };
77 hash = "sha256-wwuyS38emhmxG1WlRkNPdOc5u0wnGj46gP9DgNSfets=";
78 inherit passthruFun;
79 };
80
81 python313 = callPackage ./cpython (
82 {
83 self = __splicedPackages.python313;
84 inherit passthruFun;
85 }
86 // sources.python313
87 );
88
89 python314 = callPackage ./cpython {
90 self = __splicedPackages.python314;
91 sourceVersion = {
92 major = "3";
93 minor = "14";
94 patch = "0";
95 suffix = "rc1";
96 };
97 hash = "sha256-hwd4CunxnFv1ufJ4JxgboRza17spLqScrVQkMx5A7os=";
98 inherit passthruFun;
99 };
100 # Minimal versions of Python (built without optional dependencies)
101 python3Minimal =
102 (callPackage ./cpython (
103 {
104 self = __splicedPackages.python3Minimal;
105 inherit passthruFun;
106 pythonAttr = "python3Minimal";
107 # strip down that python version as much as possible
108 openssl = null;
109 readline = null;
110 ncurses = null;
111 gdbm = null;
112 sqlite = null;
113 tzdata = null;
114 libuuid = null;
115 bzip2 = null;
116 libxcrypt = null;
117 xz = null;
118 zlib = null;
119 libffi = null;
120 stripConfig = true;
121 stripIdlelib = true;
122 stripTests = true;
123 stripTkinter = true;
124 rebuildBytecode = false;
125 stripBytecode = true;
126 includeSiteCustomize = false;
127 enableOptimizations = false;
128 enableLTO = false;
129 mimetypesSupport = false;
130 withExpat = false;
131 withMpdecimal = false;
132 /*
133 The actual 'allowedReferences' attribute is set inside the cpython derivation.
134 This is necessary in order to survive overrides of dependencies.
135 */
136 allowedReferenceNames = [
137 "bashNonInteractive"
138 ];
139 }
140 // sources.python313
141 )).overrideAttrs
142 (old: {
143 # TODO(@Artturin): Add this to the main cpython expr
144 strictDeps = true;
145 pname = "python3-minimal";
146 });
147
148 pypy27 = callPackage ./pypy {
149 self = __splicedPackages.pypy27;
150 sourceVersion = {
151 major = "7";
152 minor = "3";
153 patch = "19";
154 };
155
156 hash = "sha256-hwPNywH5+Clm3UO2pgGPFAOZ21HrtDwSXB+aIV57sAM=";
157 pythonVersion = "2.7";
158 db = db.override { dbmSupport = !stdenv.hostPlatform.isDarwin; };
159 python = __splicedPackages.pythonInterpreters.pypy27_prebuilt;
160 inherit passthruFun;
161 };
162
163 pypy310 = callPackage ./pypy {
164 self = __splicedPackages.pypy310;
165 sourceVersion = {
166 major = "7";
167 minor = "3";
168 patch = "19";
169 };
170
171 hash = "sha256-p8IpMLkY9Ahwhl7Yp0FH9ENO+E09bKKzweupNV1JKcg=";
172 pythonVersion = "3.10";
173 db = db.override { dbmSupport = !stdenv.hostPlatform.isDarwin; };
174 python = __splicedPackages.pypy27;
175 inherit passthruFun;
176 };
177
178 pypy311 = callPackage ./pypy {
179 self = __splicedPackages.pypy311;
180 sourceVersion = {
181 major = "7";
182 minor = "3";
183 patch = "19";
184 };
185
186 hash = "sha256-SBfARLtGmjJ05gqjZFdw+B60+RZup/3E5sNRNFVUyNg=";
187 pythonVersion = "3.11";
188 db = db.override { dbmSupport = !stdenv.hostPlatform.isDarwin; };
189 python = __splicedPackages.pypy27;
190 inherit passthruFun;
191 };
192
193 pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix {
194 # Not included at top-level
195 self = __splicedPackages.pythonInterpreters.pypy27_prebuilt;
196 sourceVersion = {
197 major = "7";
198 minor = "3";
199 patch = "19";
200 };
201
202 hash =
203 {
204 aarch64-linux = "sha256-/onU/UrxP3bf5zFZdQA1GM8XZSDjzOwVRKiNF09QkQ4=";
205 x86_64-linux = "sha256-04RFUIwurxTrs4DZwd7TIcXr6uMcfmaAAXPYPLjd9CM=";
206 aarch64-darwin = "sha256-KHgOC5CK1ttLTglvQjcSS+eezJcxlG2EDZyHSetnp1k=";
207 x86_64-darwin = "sha256-a+KNRI2OZP/8WG2bCuTQkGSoPMrrW4BgxlHFzZrgaHg=";
208 }
209 .${stdenv.system};
210 pythonVersion = "2.7";
211 inherit passthruFun;
212 };
213
214 pypy310_prebuilt = callPackage ./pypy/prebuilt.nix {
215 # Not included at top-level
216 self = __splicedPackages.pythonInterpreters.pypy310_prebuilt;
217 sourceVersion = {
218 major = "7";
219 minor = "3";
220 patch = "19";
221 };
222 hash =
223 {
224 aarch64-linux = "sha256-ryeliRePERmOIkSrZcpRBjC6l8Ex18zEAh61vFjef1c=";
225 x86_64-linux = "sha256-xzrCzCOArJIn/Sl0gr8qPheoBhi6Rtt1RNU1UVMh7B4=";
226 aarch64-darwin = "sha256-PbigP8SWFkgBZGhE1/OxK6oK2zrZoLfLEkUhvC4WijY=";
227 x86_64-darwin = "sha256-LF5cKjOsiCVR1/KLmNGdSGuJlapQgkpztO3Mau7DXGM=";
228 }
229 .${stdenv.system};
230 pythonVersion = "3.10";
231 inherit passthruFun;
232 };
233
234 pypy311_prebuilt = callPackage ./pypy/prebuilt.nix {
235 # Not included at top-level
236 self = __splicedPackages.pythonInterpreters.pypy311_prebuilt;
237 sourceVersion = {
238 major = "7";
239 minor = "3";
240 patch = "19";
241 };
242 hash =
243 {
244 aarch64-linux = "sha256-EyB9v4HOJOltp2CxuGNie3e7ILH7TJUZHgKgtyOD33Q=";
245 x86_64-linux = "sha256-kXfZ4LuRsF+SHGQssP9xoPNlO10ppC1A1qB4wVt1cg8=";
246 aarch64-darwin = "sha256-dwTg1TAuU5INMtz+mv7rEENtTJQjPogwz2A6qVWoYcE=";
247 x86_64-darwin = "sha256-okOfnTDf2ulqXpEBx9xUqKaLVsnXMU6jmbCiXT6H67I=";
248 }
249 .${stdenv.system};
250 pythonVersion = "3.11";
251 inherit passthruFun;
252 };
253 }
254 // lib.optionalAttrs config.allowAliases {
255 pypy39_prebuilt = throw "pypy 3.9 has been removed, use pypy 3.10 instead"; # Added 2025-01-03
256 }
257)