Commit Graph

2101 Commits

Author SHA1 Message Date
Jonas Rembser
fa6a2e8f1f python3: include ABI debug suffix d in executable (fixes FT+debug)
When instantiating an environment with the Python interpreter built
with both free threading (aka. without GIL) and `pydebug`, the value
of `passthru.executable` doesn't match any installed file. This was
noticed when building CI pipelines that require the Python interpreter
built with both debug features and free threading.

The cause is that `executable` was built from `libPrefix`, which only
tracks the `t` suffix from `--without-gil` and not the `d` suffix from
`--with-pydebug`. `libPrefix` doubles as the stdlib install directory,
and cpython deliberately shares that directory between debug and
non-debug builds of a given version, so the `d` is intentionally
absent there.

This slipped through because cpython only ever installs a
`python$VERSION -> python$LDVERSION` symlink (e.g. `python3.13 ->
python3.13d`). For debug-only builds the old code happened to ask for
`python3.13`, which is that symlink, so it worked by accident. For
FT+debug, `libPrefix` is `python3.13t`, but cpython installs no such
file; only `python3.13` (symlink) and `python3.13td` (binary).

Fix: append `d` to `executable` (and to the `cp<ver>` wheel ABI tag in
`pythonABITags`) when `enableDebug` is true.

Reproducer for the problem as a bash script:

```bash
set -euo pipefail

nixpkgs="${1:-<nixpkgs>}" # Either custom path if provided, or just <nixpkgs>

read -r -d '' expr <<EOF || true
let
  pkgs = import ${nixpkgs} { };
  py = pkgs.python313FreeThreading.override {
    enableDebug = true;
    self = py;
    pythonAttr = "python313FreeThreading";
  };
in py
EOF

executable=$(nix-instantiate --eval --json --expr "($expr).executable" | tr -d '"')
echo "passthru.executable = ${executable}"

out=$(nix-build --no-out-link --expr "$expr")
echo "store path:           ${out}"

if [[ -e "${out}/bin/${executable}" ]]; then
  echo "result:               OK (binary exists)"
  exit 0
fi

echo "result:               FAIL (${out}/bin/${executable} not found)"
echo "actually installed:"
ls "${out}/bin/" | grep '^python3\.' | sed 's/^/  /'
exit 1
```
2026-06-03 13:22:42 +02:00
Martin Weinelt
2f6fa7d7fb pythonDocs: init at 3.14, drop 3.10 (#526551) 2026-06-04 22:40:13 +00:00
Nicolas Benes
cb40bc2538 pythonDocs: drop 3.10 2026-06-03 00:44:06 +02:00
Nicolas Benes
2f031afd37 pythonDocs: init at 3.14, add panicgh as maintainer 2026-06-03 00:40:09 +02:00
Martin Weinelt
b04a32132e python315: 3.15.0b1 -> 3.15.0b2
https://docs.python.org/3.15/whatsnew/changelog.html#python-3-15-0-beta-2
2026-06-02 22:21:41 +02:00
Martin Weinelt
002ad5f042 python3Packages.buildPythonPackage: Don't copy input list when checking inputs (#519252) 2026-06-02 19:51:26 +00:00
Aliaksandr
574bf7de39 treewide: remove isPy27 and isPy2 flags 2026-05-31 15:15:50 +03:00
Aliaksandr
e6871d9800 python2: move cpython, mkPythonDerivation into resholve 2026-05-31 15:14:59 +03:00
Aliaksandr
2c87389c6f python2-packages: move into resholve 2026-05-31 15:14:58 +03:00
Ethan Carter Edwards
0f11b5770b python3: set meta.donationPage
Signed-off-by: Ethan Carter Edwards <ethan@ethancedwards.com>
2026-05-27 15:40:31 -07:00
adisbladis
54bea898fa python3Packages.buildPythonPackage: Don't copy input list when checking inputs 2026-05-21 15:08:32 +12:00
nixpkgs-ci[bot]
42e06c8075 Merge master into staging-next 2026-05-19 13:06:20 +00:00
adisbladis
887fe9af74 python3Packages.mkPythonEditablePackage: use structuredAttrs instead of passAsFile (#515851) 2026-05-19 12:46:27 +00:00
nixpkgs-ci[bot]
1bd182852d Merge master into staging-next 2026-05-12 07:00:02 +00:00
Eman Resu
bc3ca125eb python/wrapper: use the python that's already added
requiredPythonModules always adds a python element.
2026-05-11 21:54:30 -04:00
Eman Resu
0f027769b2 buildPythonPackage: use nullable attr keys instead 2026-05-11 21:54:29 -04:00
Eman Resu
b57eb40ea7 buildPythonPackage: avoid validating python itself 2026-05-11 21:38:03 -04:00
Eman Resu
ce3dc05a4c buildPythonPackage: save a function call 2026-05-11 21:38:03 -04:00
K900
7a535c8c93 Merge remote-tracking branch 'origin/master' into staging-next 2026-05-08 09:27:15 +03:00
Martin Weinelt
de92bac908 python315: 3.15.0a7 -> 3.15.0b1
https://docs.python.org/3.15/whatsnew/changelog.html#python-3-15-0-beta-1
2026-05-07 23:13:33 +02:00
Stefan Frijters
8df0eff0a2 python3Packages.mkPythonEditablePackage: keep attrs structured 2026-05-03 23:52:17 +02:00
Stefan Frijters
d5c79513d9 python3Packages.mkPythonEditablePackage: use structuredAttrs instead of passAsFile 2026-05-02 13:38:54 +02:00
nixpkgs-ci[bot]
690b686828 Merge staging-next into staging 2026-04-30 00:37:57 +00:00
Matt Sturgeon
e712497e5d python2Packages.buildPytonPackage: restructure with lib.extendMkDerivation (#481423) 2026-04-29 21:51:33 +00:00
nixpkgs-ci[bot]
f8f95c9be8 Merge staging-next into staging 2026-04-28 12:37:48 +00:00
Arne Keller
37a293265f pypy: Fix changelog URL (#514182) 2026-04-28 09:55:53 +00:00
Anders Kaseorg
7088c26f44 pypy: Fix changelog URL
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2026-04-27 13:30:14 -07:00
nixpkgs-ci[bot]
189c6bd465 Merge staging-next into staging 2026-04-27 06:55:30 +00:00
Yueh-Shun Li
82da9cf45c python3Packages.buildPythonPackage: ban pytestFlagsArray 2026-04-27 03:59:04 +08:00
nixpkgs-ci[bot]
3897d11ea5 Merge staging-next into staging 2026-04-26 18:16:05 +00:00
Martin Weinelt
1658480360 overridePythonAttrs: support extension-style newArgs (finalAttrs: previousArgs: { }) (#479258) 2026-04-26 13:47:23 +00:00
nixpkgs-ci[bot]
b23e6c6674 Merge staging-next into staging 2026-04-26 12:16:51 +00:00
Yueh-Shun Li
521c09a80b buildPythonPackage: overrideStdenvCompat: show position in its warning message (#481980) 2026-04-26 10:46:40 +00:00
Yueh-Shun Li
e7eb6868d5 overridePythonAttrs: support extension-style newArgs
Allow overridePythonAttrs to take `finalAttrs: args: { }`.
2026-04-26 17:44:11 +08:00
Yueh-Shun Li
397f1ecdb0 python2Packages.buildPythonPackage: format expression after lib.extendMkDerivation restructuring 2026-04-26 15:06:54 +08:00
Yueh-Shun Li
ea28d03e33 python2Packages.buildPytonPackage: restructure with lib.extendMkDerivation
Port to python2/mk-python-derivation.nix commit 0969c66247
(buildPython*: support fixed-point arguments via lib.extendMkDerivation")

Postpone formatting to minimize diff.
2026-04-26 15:05:42 +08:00
Yueh-Shun Li
66e4524989 python2Packages.buildPythonPackage: remove ineffective outputs cleanAttrs
Port to python2/mk-python-derivation.nix commit bc122a602a
("python3Packages.buildPythonPackage:
remove ineffective outputs cleanAttrs").
2026-04-26 15:05:42 +08:00
Yueh-Shun Li
e05bc0af96 python2Packages.buildPythonPackage: preserve disabled after <pkg>.overrideAttrs
Port to python2/mk-python-derivation.nix commit bb3a41f312
("buildPython*: fix the disabled functionality for overrideAttrs-")
2026-04-26 15:05:42 +08:00
Yueh-Shun Li
bd2285a8a5 python2Packages.buildPythonPackage: passthru disabled
Port to python2/mk-python-derivation.nix commit 8fd082ed7f
("mk-python-derivation: passthru disabled").

Co-authored-by: Peder Bergebakken Sundt <pbsds@hotmail.com>
2026-04-26 15:05:42 +08:00
Yueh-Shun Li
f2efb32a79 python2Packages.buildPythonPackage: port respect user-specified passthru attrs
Port to python2/mk-python-derivation.nix commit d6a757bb01
("buildPython*: prioritize user-specified passthru attrs").
2026-04-26 15:05:41 +08:00
Yueh-Shun Li
57c0190caf python2Packages.buildPythonPackage: handle passthru with mkDerivation
Port to python2/mk-python-derivation.nix commit 21a1cf9686
("mkPythonPackage, mkPythonApplication:
handle passthru with mkDerivation").
2026-04-26 15:05:41 +08:00
nixpkgs-ci[bot]
0a57913992 Merge staging-next into staging 2026-04-21 00:32:45 +00:00
nixpkgs-ci[bot]
dcaefd38ef Merge master into staging-next 2026-04-21 00:32:14 +00:00
Ben Siraphob
5fadc89f02 treewide: remove empty buildInputs assignments 2026-04-20 10:34:26 -07:00
Martin Weinelt
634df81a6b python313: 3.13.12 -> 3.13.13
https://docs.python.org/release/3.13.13/whatsnew/changelog.html

Fixes: CVE-2026-4224, CVE-2026-3644, CVE-2026-2297
2026-04-08 23:32:08 +02:00
Martin Weinelt
e5a825f3cb python314: 3.14.3 -> 3.14.4
https://docs.python.org/release/3.14.4/whatsnew/changelog.html

Fixes: CVE-2026-4224, CVE-2026-3644, CVE-2026-2297
2026-04-08 02:51:10 +02:00
Martin Weinelt
51c6e5d2b4 python315: 3.15.0a7 -> 3.15.0a8
https://docs.python.org/3.15/whatsnew/changelog.html#python-3-15-0-alpha-8

Fixes: CVE-2026-4224, CVE-2026-3644
2026-04-08 02:49:46 +02:00
Ihar Hrachyshka
b624ca79ab python: apply hacl patch unconditionally 2026-03-22 14:16:04 -04:00
Martin Weinelt
bbfd20b61d pkgsStatic.python314: fix build (#502058) 2026-03-22 13:11:33 +00:00
Ihar Hrachyshka
5e45722b67 pkgsStatic.python314: fix build 2026-03-21 19:12:33 -04:00