Commit Graph

558 Commits

Author SHA1 Message Date
DavHau
9edd40908d python3Minimal: remove pkg-config dependency
Removes the build time dependency on pkg-config if python3 is build with the `withMinimal` flag enabled

This change is driven by the motivation to use python3 earlier in stdenv for hooks.
2025-08-09 19:04:52 +02:00
DavHau
bce0bb82a0 python3Minimal: refactor - add withMinimal flag
simplifies the interface of building cpython minimally
2025-08-09 19:04:51 +02:00
Emily
5ba6a021b5 python3: fix build directory scrubbing 2025-08-03 20:52:24 +01:00
Ross Smyth
bb7c7900e1 rocksdb, s7, python3, flint, release-cross: mingw_w64_pthreads -> pthreads 2025-08-01 15:47:52 -04:00
Wolfgang Walther
5a0711127c treewide: run nixfmt 1.0.0 2025-07-24 13:55:40 +02:00
Guillaume Girol
2ab3ac5c2b separateDebugInfo: add symlinks to executable and source for debuginfod support (#394674) 2025-06-20 23:09:03 +02:00
nixpkgs-ci[bot]
93aa3b82df Merge master into staging-next 2025-06-18 00:17:19 +00:00
Martin Weinelt
79558756d1 python314: 3.14.0b2 -> 3.14.0b3
https://docs.python.org/3.14/whatsnew/changelog.html#python-3-14-0-beta-3
2025-06-18 00:40:46 +02:00
Guillaume Girol
832e521ef9 python: __structuredAttrs = true
needed by separateDebugInfo = true
2025-06-14 22:14:56 +02:00
K900
7479f39034 Merge remote-tracking branch 'origin/master' into staging-next 2025-06-09 18:08:45 +03:00
natsukium
94552b6dbd python314: address CVE-2025-4517, CVE-2025-4330, CVE-2025-4138, CVE-2024-12718, CVE-2025-4435
https://mail.python.org/archives/list/security-announce@python.org/thread/MAXIJJCUUMCL7ATZNDVEGGHUMQMUUKLG/

https://www.cve.org/CVERecord?id=CVE-2025-4517
https://www.cve.org/CVERecord?id=CVE-2025-4330
https://www.cve.org/CVERecord?id=CVE-2025-4138
https://www.cve.org/CVERecord?id=CVE-2024-12718
https://www.cve.org/CVERecord?id=CVE-2025-4435
2025-06-09 19:43:43 +09:00
Martin Weinelt
4fa55ce14d Merge remote-tracking branch 'origin/master' into staging-next 2025-05-31 13:30:35 +02:00
Kamil Monicz
554c97036d python314: add zstd dependency (#409307) 2025-05-31 16:18:46 +09:00
nixpkgs-ci[bot]
3025596725 Merge master into staging-next 2025-05-31 00:16:33 +00:00
Alyssa Ross
cc5ca4513f python313: fix static for x86_64-linux
Tries to build a shared library.
2025-05-30 20:44:09 +02:00
Peder Bergebakken Sundt
851756b3af treewide: remove unreferenced patch files 2025-05-25 00:46:53 +02:00
Martin Weinelt
eda65094fb python313Packages.aiodns: 3.3.0 -> 3.4.0
https://github.com/saghul/aiodns/releases/tag/v3.4.0
2025-05-23 16:27:47 +02:00
Martin Weinelt
9ed0a391e0 cpython: drop leftover CVE-2025-0398 patch
Fixes: 090848175d
2025-05-23 16:27:21 +02:00
nixpkgs-ci[bot]
93d5cbe07b Merge staging-next into staging 2025-05-23 06:06:33 +00:00
Guillermo Rodriguez
12b46122bc cpython: add enableDebug argument to enable "--with-pydebug" during build (#409943) 2025-05-23 03:18:56 +02:00
DavHau
b634edb1a4 python3Minimal: make it truly minimal
Make python3 minimal truly minimal by disabling some more dependencies.

This makes it easy to bootstrap python.

After this, the only remaining runtime deps for python3Minimal are:
- bash (for launching subprocesses with shell=True)
- libc
- libgcc
- libffi

All remaining deps seem to be fundamental and cannot be further reduced, except bash which could potentially be removed and replaced with `$SHELL` at runtime.

Done:
- add some more withXXX switches to the cpython package
- use new switches in python3Minimal to disable some deps
- set some other deps to null in python3Minimal
- Set `allowedReferences` to guarantee that the closure remains minimal in the future.
2025-05-13 01:02:39 +07:00
K900
f96ac2dcd6 Merge remote-tracking branch 'origin/master' into staging-next 2025-04-26 09:07:48 +03:00
Fernando Rodrigues
05580f4b44 treewide: switch instances of lib.teams.*.members to the new meta.teams attribute
Follow-up to #394797.

Signed-off-by: Fernando Rodrigues <alpha@sigmasquadron.net>
2025-04-25 22:20:17 -03:00
Ihar Hrachyshka
dd0f03a56c treewide: remove usage of deprecated apple_sdk framework stubs
They are not doing anything right now. This is in preparation for their
complete removal from the tree.

Note: several changes that affect the derivation inputs (e.g. removal of
references to stub paths in build instructions) were left out. They will
be cleaned up the next iteration and will require special care.

Note: this PR is a result of a mix of ugly regex (not AST) based
automation and some manual labor. For reference, the regex automation
part was hacked in: https://github.com/booxter/nix-clean-apple_sdk

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-04-19 20:28:20 -04:00
K900
73a91e9c9d Merge remote-tracking branch 'origin/staging-next' into staging 2025-04-13 09:07:29 +03:00
Martin Weinelt
8e93fb0f32 python39: drop before the 25.05 branch-off
End of security support is scheduled for 2025-10-31, which does not cover
the complete 25.05 release cycle.
2025-04-13 01:26:42 +02:00
Martin Weinelt
090848175d python311: 3.11.11 -> 3.11.12
https://docs.python.org/release/3.11.11/whatsnew/changelog.html
2025-04-09 14:21:21 +02:00
Martin Weinelt
2eeda516c8 python310: 3.10.16 -> 3.10.17
https://docs.python.org/release/3.10.16/whatsnew/changelog.html
2025-04-09 14:21:20 +02:00
Martin Weinelt
51b69a3198 python39: 3.9.21 -> 3.9.22
https://docs.python.org/release/3.9.22/whatsnew/changelog.html
2025-04-09 14:21:20 +02:00
Winter
a19cd4ffb1 Revert "treewide: replace rev with tag"
This reverts commit 65a333600d.

This wasn't tested for correctness with something like fodwatch [0],
and should not have been (self-)merged so quickly, especially without
further review.

It also resulted in the breakage of at least one package [1] (and that's
the one we know of and was caught).

A few packages that were updated in between this commit and this revert
were not reverted back to using `rev`, but other than that, this is a
1:1 revert.

[0]: https://codeberg.org/raphaelr/fodwatch
[1]: https://github.com/NixOS/nixpkgs/pull/396904 / 758551e458
2025-04-08 02:57:25 -04:00
Pol Dellaiera
65a333600d treewide: replace rev with tag 2025-04-07 16:57:22 +02:00
Martin Weinelt
175fb278c1 python3: Fixing excessive memory usage for overriden python in cross-compile (#394541) 2025-04-04 23:26:37 +02:00
Timothy Gallion
c59bac08bd python3: Fixing excessive memory usage for overriden python
An attempt to address #338231. The current release of nixpkgs takes over
20GB of memory to evaluate python when the interpreter is overriden.
This adds memoization to the spliced python packages to avoid
evaluating all the commbinations of overrides.
2025-04-02 06:39:02 -04:00
Jörg Thalheim
5bf39d5b41 python3: disable static darwin builds 2025-04-02 11:17:56 +02:00
Silvan Mosberger
374e6bcc40 treewide: Format all Nix files
Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:

  nix-build ci -A fmt.check

This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).

This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).

Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase).

If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
2025-04-01 20:10:43 +02:00
Ihar Hrachyshka
ef35af3b1a python311: fix _ctypes build on darwin
In Python 3.12+, the -DUSING_APPLE_OS_LIBFFI=1 macro is always set:
25590eb5de

Fixes #390348

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-03-16 17:38:59 -04:00
Luka Blašković
964b5727cb python310/python311: fix failing tests with openssl >= 3.4 2025-02-18 21:31:14 +00:00
nixpkgs-ci[bot]
fc7fa5f568 Merge master into staging-next 2025-02-17 00:15:35 +00:00
Sandro Jäckel
4c468efa40 python3{9,10}.doc: fix build 2025-02-16 23:13:44 +01:00
Martin Weinelt
58cab06b5e python314: 3.14.0a4 -> 3.14.0a5
https://docs.python.org/3.14/whatsnew/changelog.html#python-3-14-0-alpha-5
2025-02-13 01:44:10 +01:00
K900
f81ec80ff8 bash: Make interactive by default (#379368) 2025-02-09 09:31:22 +03:00
Martin Weinelt
e641f79cd1 cpython: provide libuuid for the _uuid module (#377458)
* util-linuxMinimal: build without pam and shadow

These depend on python via audit preventing the use of libuuid from
util-linux in python builds.

* cpython: provide libuuid for the _uuid module

Relying on libuuid offers synchronization primitives, so that "no two
processes can obtain the same UUID"¹.

[1] https://docs.python.org/3/library/uuid.html#module-uuid
2025-02-08 16:16:43 +01:00
Silvan Mosberger
e3491c9e40 bash: Make interactive the default
The status quo of `bash` not being interactive is frustrating for many users,
because trying to use it interactively is just messed up, and
`bashInteractive` is not intuitive and barely discoverable.

This was brought to my (and many others) attention by @stahnma in his
[talk at CfgMgmtCamp 2025](https://cfp.cfgmgmtcamp.org/ghent2025/talk/YUVUTN/),
where he highlighted this as one of the frustrations he ran into when
learning Nix.

Why this is fine:
- No reason for not making interactive the default was given in the original commit (6c6ff6f36f), but probably it was due to the increase in closure size
- The closure size only increases by 6.9MiB (19.5%) today, with the
  added dependency on the store paths for readline and ncurses, which
  are needed on systems in almost all cases anyways
- If somebody really needs to get a more minimal system, they can use
  the newly-introduced `bashNonInteractive` instead now
- Though to apply it consistently, they'll need to do that in an
  overlay like
  ```
  final: prev: {
    bash = self.bashNonInteractive;
  }
  ```

  Or alternatively using the `system.replaceDependencies.replacements`
  NixOS option approach.

While there's also other such `*Interactive` packages that could use the
same treatment, `bash` is a great start.

This was already attempted before in
https://github.com/NixOS/nixpkgs/pull/151227, but was not continued for
unknown reason.

To avoid stdenv becoming bigger, all uses of bash in the (working)
stdenv's are changed to the explicitly non-interactive version here.

This commit will however still cause a mass rebuild for all packages (and reverse deps)
making use of the default bash.
2025-02-05 00:31:46 +01:00
Martin Weinelt
5628a3fb23 python312: 3.12.8 -> 3.12.9
https://docs.python.org/release/3.12.9/whatsnew/changelog.html
2025-02-04 23:56:43 +01:00
Martin Weinelt
0690e42a7c python313: 3.13.1 -> 3.13.2
https://docs.python.org/release/3.13.2/whatsnew/changelog.html
2025-02-04 23:56:42 +01:00
Martin Weinelt
c0a7f07a63 cpython: patch CVE-2025-0938
https://www.cve.org/CVERecord?id=CVE-2025-0938
2025-02-01 02:59:24 +01:00
Martin Weinelt
94e717e8ff cpython: provide libuuid for the _uuid module
Relying on libuuid offers synchronization primitives, so that "no two
processes can obtain the same UUID"¹.

[1] https://docs.python.org/3/library/uuid.html#module-uuid
2025-01-29 03:00:56 +01:00
Martin Weinelt
b734fd2caf python314: 3.14.0a2 -> 3.14.0a3
https://docs.python.org/3.14/whatsnew/changelog.html#python-3-14-0-alpha-3
2025-01-17 19:47:29 +09:00
FliegendeWurst
6658ddfa50 python311: fix mingwW64 cross, mark as broken for other versions 2025-01-08 18:39:21 +01:00
github-actions[bot]
8c5656aa89 Merge master into staging-next 2024-12-15 00:17:27 +00:00