Commit Graph

1757 Commits

Author SHA1 Message Date
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
Silvan Mosberger 4f0dadbf38 treewide: format all inactive Nix files
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.

Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.

A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.

This commit was automatically created and can be verified using

    nix-build https://github.com/infinisil/treewide-nixpkgs-reformat-script/archive/a08b3a4d199c6124ac5b36a889d9099b4383463f.tar.gz \
      --argstr baseRev b32a094368
    result/bin/apply-formatting $NIXPKGS_PATH
2024-12-10 20:26:33 +01:00