Commit Graph

2158 Commits

Author SHA1 Message Date
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
Wolfgang Walther
b19d0f6d3d treewide: replace substituteAll with replaceVars 2025-02-10 22:51:56 +01:00
K900
f81ec80ff8 bash: Make interactive by default (#379368) 2025-02-09 09:31:22 +03:00
Martin Weinelt
d15ca73b55 buildPython*: make name-related attributes overridable via overrideAttrs (#376714) 2025-02-08 18:07:59 +01:00
Martin Weinelt
534cbec4c4 buildPython*: Enable direct attribute overriding via overrideAttrs (the staging ones) (#377057) 2025-02-08 18:07:30 +01: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
05a564a0d0 cpython: add isPy313, isPy314 helpers 2025-02-04 23:54:32 +01:00
Yueh-Shun Li
4134fdc75c buildPython*: always specify attributes catchConflicts and dontWrapPythonPrograms
Always specify catchConflicts and dontWrapPythonPrograms.

Make them overrideAttrs-overridable.
2025-02-04 06:36:24 +08:00
Yueh-Shun Li
c540331279 buildPython*: make name-relaed attributes overridable via overrideAttrs
Make name, pname and version overridable via overrideAttrs
for Python packgaes constructed with buildPython*.
2025-02-04 02:11:22 +08:00
nixpkgs-ci[bot]
c721a7fb35 Merge staging-next into staging 2025-02-03 18:05:46 +00:00
K900
51575400a3 buildPython*: fix mismerge 2025-02-03 19:11:59 +03:00
nixpkgs-ci[bot]
c9f5d2d21e Merge staging-next into staging 2025-02-03 12:06:27 +00:00
K900
5c3fd0ab9f Merge remote-tracking branch 'origin/master' into staging-next 2025-02-03 09:17:01 +03:00
OTABI Tomoya
82887d0b89 cpython: patch CVE-2025-0938 (#378410) 2025-02-02 18:59:00 +09:00
K900
c15f4ee007 Merge remote-tracking branch 'origin/master' into staging-next 2025-02-02 09:47:44 +03:00
Yueh-Shun Li
3678c2ea8d buildPython*: format expression after restructuring 2025-02-02 14:26:22 +08:00
Yueh-Shun Li
6d2625c64b buildPython*: remove redundant parenthesis
This commit is intentionally unformatted
for smoother merging and rebasing experience.
2025-02-02 14:26:22 +08:00
Yueh-Shun Li
2b6cde5354 buildPython*: move argument-dependent let-in variables down below finalAttrs
This commit is intentionally unformatted
for smoother merging and rebasing experience.
2025-02-02 14:26:22 +08:00
Yueh-Shun Li
04c39df325 buildPython*: abstract out transformDrv 2025-02-02 14:26:22 +08: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
Yueh-Shun Li
cbd527c8ad buildPython*: use finalAttrs.finalPackage for passthru attribute values 2025-01-24 21:04:31 +08:00
Yueh-Shun Li
617bc74413 buildPython*: move the format'-related assertion down to its value 2025-01-24 21:04:31 +08:00
Yueh-Shun Li
d6a757bb01 buildPython*: prioritize user-specified passthru attrs 2025-01-24 21:04:31 +08:00
nixpkgs-ci[bot]
df755a5e9c Merge staging-next into staging 2025-01-17 18:04:58 +00:00
natsukium
6c7c9055de python314: 3.14.0a3 -> 3.14.0a4
https://docs.python.org/3.14/whatsnew/changelog.html#python-3-14-0-alpha-4
2025-01-17 19:53:00 +09: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
github-actions[bot]
f9082802a1 Merge staging-next into staging 2025-01-13 18:05:19 +00:00
Arne Keller
c9e6f18fac python311: fix mingwW64 cross, mark as broken for other versions (#372190) 2025-01-13 17:02:49 +01:00
github-actions[bot]
af90f480db Merge staging-next into staging 2025-01-11 06:04:46 +00:00
Palmer Cox
a7f1305bc1 Fix optional-dependencies in mkPythonEditablePackage
The problem is that optional-dependencies looks something like:

    optional-dependencies = {
        extra1 = [ package1 package2 ];
    };

And the goal is to transform that into some JSON that works as a
pyproject file. So, its supposed to look something like:

    {
        "optional-dependencies": {
            "extra1": [ "package1" "package2" ]
        }
    }

Previously, we were trying to do that converstion with:

    optional-dependencies = lib.mapAttrs (_: lib.getName) optional-dependencies;

The problem is that we're calling lib.getName on the array of
dependencies. Instead, we convert the code to call lib.getName on each
individual dependency in the array.
2025-01-10 23:16:32 -05:00
Yueh-Shun Li
9b07602c8e unittestCheckHook: lint with ShellCheck 2025-01-09 18:36:39 +08:00
Yueh-Shun Li
1e8f39148a unittestCheckHook: handle unittestFlagsArray __structuredAttrs-agnostically
Take unittestFlags as the new and conforming interface.

Keep unittestFlagsArray as is.
2025-01-09 18:36:39 +08:00
Yueh-Shun Li
76f6a3b292 setuptoolsBuildHook: lint with ShellCheck 2025-01-09 18:36:38 +08:00
Yueh-Shun Li
d8c36cb252 setuptoolsBuildHook: support __structuredAttrs
Handle flags with appendToVar and concatTo.

Stop Bash-expanding elements of
setupPyGlobalFlags and setupPyBuildFlags.
2025-01-09 18:36:38 +08:00
Yueh-Shun Li
ec6f585f05 pytestCheckHook: lint with ShellCheck 2025-01-09 18:36:37 +08:00
Yueh-Shun Li
26f09762a8 pytestCheckHook: support __structuredAttrs
Add flag pytestFlags as the new, conforming interface
replacing pytestFlagsArray.

Stop Bash-expanding disabledTests and disabledTestPaths.

Handle disabledTestPaths with `pytest --ignore-glob <path>`
to keep globbing support.
Check if each path glob matches at least one path
using the `glob` module from the Python standard library.

Also make buildPythonPackage and buildPythonApplication
stop escaping the elements of disabledTests and disabledTestPaths.
2025-01-09 18:36:37 +08:00
Peder Bergebakken Sundt
8fd082ed7f mk-python-derivation: passthru disabled
Enables outside testing of whether a package is supported for the current interpreter
2025-01-09 00:37:17 +01:00
FliegendeWurst
6658ddfa50 python311: fix mingwW64 cross, mark as broken for other versions 2025-01-08 18:39:21 +01:00
FliegendeWurst
a104720c3e pypy310: 7.3.12 -> 7.3.17 2025-01-03 11:53:27 +01:00
FliegendeWurst
98f7e5a8b0 pypy27: 7.3.12 -> 7.3.17 2025-01-03 11:53:27 +01:00
Gaetan Lepage
8ea14f4ba1 rustpython: move to by-name 2024-12-30 22:28:02 +01:00
github-actions[bot]
8c5656aa89 Merge master into staging-next 2024-12-15 00:17:27 +00:00
sternenseemann
a0a35b6c24 Fix cross eval issues (#362546) 2024-12-14 22:14:52 +01:00