459 Commits

Author SHA1 Message Date
Martin Weinelt 21d200b26d python312: 3.12.0a3 -> 3.12.0a5
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0-alpha-4
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0-alpha-5
2023-02-08 21:38:13 +00:00
Weijia Wang b062ec5b83 rustpython: unbreak on x86_64-darwin 2023-02-03 00:02:17 +01:00
Alyssa Ross b682fef8e9 python3.pkgs: fix splice through unsupported hosts
Previously, unless unsupported platforms were allowed, the following
would fail to evaluate (from an "x86_64-linux" system):

    pkgsCross.x86_64-freebsd.__splicedPackages.docutils.__spliced.buildHost

It shouldn't have, because the buildHost package ends up being for
Linux.  This broke evaluation of e.g. pkgsCross.x86_64-freebsd.libdrm,
because it has docutils in nativeBuildInputs.  mkDerivation would try
to go through __spliced.buildHost on docutils to get to the Linux
version, but the check in ensurePythonModules would kick in first,
triggering the meta check because of the equality check in the
implementation of hasPythonModule, which would fail because Python is
not marked as supported on FreeBSD in Nixpkgs at the moment.  Thus,
even though they're not supposed to be, the meta checks would be
triggered even though the only attribute being accessed on the
unsupported derivation was __spliced.

We can fix this by using the same mechanism used to implement the meta
checks themselves: lib.extendDerivation.  Now, attempting to access
drvPath or outPath on an attribute that fails the validity check will
produce the same error as before, but other accesses will be allowed
through, fixing splicing.

I've tested evaluation of packages that pass and fail the validity
check, and confirmed that the behaviour is still correct.
2023-01-28 21:08:50 +00:00
Alyssa Ross 02ee33a5c1 python3.pkgs: simplify ensurePythonModules logic
It wasn't clear before, but it turns out that this is just four
separate conditions, and an attribute is valid if any of the
conditions is true, so we don't need a sea of parentheses to express
it.
2023-01-28 21:08:50 +00:00
Martin Weinelt 4d65509504 Merge remote-tracking branch 'origin/master' into staging-next 2023-01-08 16:34:30 +01:00
Weijia Wang fd6ddd9923 pythonInterpreters.pypy39_prebuilt: add darwin support 2023-01-08 02:04:15 +01:00
github-actions[bot] 4bf238a8fb Merge master into staging-next 2023-01-08 00:02:31 +00:00
Thiago Kenji Okada 40db51d563 pythonInterpreters.pypy27_prebuilt: add support to darwin 2023-01-07 21:11:49 +00:00
Thiago Kenji Okada a49d01ce3f pythonInterpreters.pypy27_prebuilt: add support for aarch64-linux 2023-01-07 21:11:48 +00:00
Thiago Kenji Okada be456598db pypy38: 7.3.9 -> 7.3.11 2023-01-07 21:11:48 +00:00
Thiago Kenji Okada 797e62d503 pypy39: 7.3.9 -> 7.3.11
Also build it with pypy27 instead of python27.
2023-01-07 21:11:48 +00:00
Thiago Kenji Okada 284d9a1067 pypy27: 7.3.9 -> 7.3.11
Also build it with pythonInterpreters.pypy27_prebuilt instead of
python27, to avoid it being broken after #201859 is merged.

Keep in mind that the above change will make this derivation only work
with x86_64-linux for now (since pypy27_prebuilt is only packaged for
that platform). However support for newer platforms can be added later,
and a working package for one platform is better than a broken package
in 4 platforms.
2023-01-07 21:11:48 +00:00
Thiago Kenji Okada 6339c29710 pypy37: remove 2023-01-07 21:11:48 +00:00
Thiago Kenji Okada 5dbf9ca20c pythonInterpreters.pypy39_prebuilt: 7.3.9 -> 7.3.11 2023-01-07 21:11:48 +00:00
Thiago Kenji Okada 525588440a pythonInterpreters.pypy27_prebuilt: 7.3.9 -> 7.3.11 2023-01-07 21:11:48 +00:00
github-actions[bot] 3b3114f45d Merge master into staging-next 2023-01-07 18:01:08 +00:00
Artturi f56de234bb Merge pull request #207652 from Artturin/splicenixfmt 2023-01-07 17:42:25 +02:00
Martin Weinelt afd962b51c Merge remote-tracking branch 'origin/master' into staging-next 2023-01-05 17:16:26 +01:00
Martin Weinelt e75f5e8efa python37: drop
The package set hasn't been working for a long time now, due to infinite
recursions, that nobody was going to fix.

The release is going to go EOL in 2023/06 and we don't want to ship it
in NixOS 23.05 anyway.
2023-01-05 13:20:49 +01:00
Thiago Kenji Okada b0ac530007 python27: 2.7.18.5 -> 2.7.18.6 2023-01-04 21:12:03 +00:00
Artturin 58fa78077c treewide: use splicing convenience functions 2022-12-25 14:05:03 +02:00
Vladimír Čunát 9c497bb8d6 Merge branch 'staging-next' into staging 2022-12-09 10:27:46 +01:00
Martin Weinelt bdb82dffc0 Merge pull request #204902 from mweinelt/cpython-39-310-312 2022-12-07 17:55:35 +01:00
Martin Weinelt e824b21ba7 python310: 3.10.8 -> 3.10.9
https://docs.python.org/release/3.10.9/whatsnew/changelog.html
https://pythoninsider.blogspot.com/2022/12/python-3111-3109-3916-3816-3716-and.html

Fixes: CVE-2022-37454, CVE-2022-45061, CVE-2022-42919
2022-12-07 16:41:58 +01:00
Martin Weinelt 2fce48831c python39: 3.9.15 -> 3.9.16
https://docs.python.org/release/3.9.16/whatsnew/changelog.html
https://pythoninsider.blogspot.com/2022/12/python-3111-3109-3916-3816-3716-and.html

Fixes: CVE-2022-37454, CVE-2022-42919, CVE-2022-45061, CVE-2015-20107
2022-12-07 16:40:42 +01:00
Martin Weinelt 1328f79d81 python312: 3.12.0a2 -> 3.12.0a3
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0-alpha3
https://pythoninsider.blogspot.com/2022/12/python-3111-3109-3916-3816-3716-and.html

Fixes: CVE-2022-45061
2022-12-07 02:37:58 +01:00
Martin Weinelt f1433e66f9 python38: 3.11.0 -> 3.11.1
https://www.python.org/downloads/release/python-3111/
https://docs.python.org/release/3.11.1/whatsnew/changelog.html#python-3-11-1
https://pythoninsider.blogspot.com/2022/12/python-3111-3109-3916-3816-3716-and.html

Fixes: CVE-2022-45061
2022-12-07 01:26:55 +01:00
Martin Weinelt 71c4a3a0b1 python38: 3.8.15 -> 3.8.16
https://www.python.org/downloads/release/python-3816/
https://pythoninsider.blogspot.com/2022/12/python-3111-3109-3916-3816-3716-and.html

Fixes: CVE-2022-37454, CVE-2022-45061, CVE-2015-20107
2022-12-07 01:25:30 +01:00
Martin Weinelt 10bab2150c python37: 3.7.15 -> 3.7.16
https://www.python.org/downloads/release/python-3716/
https://pythoninsider.blogspot.com/2022/12/python-3111-3109-3916-3816-3716-and.html

Fixes: CVE-2022-37454, CVE-2022-45061, CVE-2015-20107
2022-12-07 01:23:29 +01:00
Martin Weinelt adae7334e4 python312: init at 3.12.0a2
https://blog.python.org/2022/10/python-3120-alpha-1-released.html
https://blog.python.org/2022/11/python-3120-alpha-2-released.html
2022-11-29 01:55:35 +01:00
Martin Weinelt b5a4d7760d cpython: drop leftover 3.5/3.6 logic and patches 2022-11-29 01:34:59 +01:00
Thiago Kenji Okada 14334cb683 python27: switch to ActiveState's fork for Python 2
ActiveState is a company that is maintaining a fork of Python 2 to fixes
its security issues. Their support is paid, however the code is
open-source. See the details here:
https://www.activestate.com/products/python/python-2-end-of-life-security-updates/

This enable us to drop a bunch of CVE's patches for Python 2.7 and also
it should be easier to maintain, since we can just bump the version once
ActiveState tags a new version.
2022-11-28 09:41:57 +00:00
github-actions[bot] 6e5f43a5bd Merge master into staging-next 2022-10-28 18:01:29 +00:00
Frederik Rietdijk cb445d527b python3Packages: stdenv does not have to be a Python module
stdenv is included in the package set. It does not provide a Python
module however and was therefore catched by the test. Because we do need
it we provide an exception for it.
2022-10-28 19:11:31 +02:00
Frederik Rietdijk d3ca664b6a Merge staging-next into staging 2022-10-27 10:06:54 +02:00
Frederik Rietdijk 33d12e5f0b pythonPackages: ensure all derivations provide python modules
This adds a test to ensure no new uses of `buildPythonApplication` can
be added to `python-packages.nix`.

Python packages can be grouped into two groups: 1) applications and 2)
packages providing importable modules. In `python-packages.nix` we only
want to have 2). 1) should be in the top-level package set.

To achieve this, all setup hooks need to be marked as being a setup hook.
For the setup hooks in the Python packages set this is done by creating
a new builder, `makePythonHook`.

Because there were issues with splicing, the file importing all the hooks
is converted to an extension. All non-packages were moved out of `python-packages.nix`
into `python-packages-base.nix`. The `keep` argument to `makeScopeWithSplicing
was cleaned up as well; there is no need to keep this one manually in sync
reducing the risk of breaking cross-compilation.
2022-10-27 10:03:16 +02:00
github-actions[bot] 81a6c5a54c Merge staging-next into staging 2022-10-25 18:16:24 +00:00
Martin Weinelt 4932ed92a4 python311: 3.11.0-rc2 -> 3.11.0
https://www.python.org/downloads/release/python-3110/
https://discuss.python.org/t/python-3-11-0-final-is-now-available/20291
2022-10-25 00:30:25 +02:00
github-actions[bot] bcfb4956fd Merge staging-next into staging 2022-10-17 12:01:57 +00:00
Jörg Thalheim ea13f7cd4c pypy: 7.3.7 -> 7.3.9 2022-10-17 10:21:06 +02:00
github-actions[bot] ec95041d85 Merge staging-next into staging 2022-10-16 00:04:36 +00:00
Artturin c86122e5bd pythonInterpreters: get self from __splicedPackages
BEFORE:

the python derivation did not contain .nativeDrv and .crossDrv because
it was not from the __splicedPackages set

the python used in mk-python-derivation.nix was for host

```
nix-repl> pkgsCross.aarch64-multiplatform.python3Packages.xpybutil.nativeBuildInputs
[ «derivation /nix/store/bhz39ds4v02hn6x4py4mzjyilw4a589h-python3-aarch64-unknown-linux-gnu-3.10.7.drv» «derivation /nix/store/v880cnh4ml7czmivfbk3cdh93hz9yvbn-hook.drv» «derivation /nix/store/f243ab7wv92gqsmc9h7gr0qcnj0xcgdb-hook.drv» «derivation /nix/store/880lf8895bzn8d94lrr2y7ilgkxq0lc4-python-remove-tests-dir-hook.drv» «derivation /nix/store/fzjnhawfs1wpw58hcd1vxd9y750dc08y-python-remove-bin-bytecode-hook.drv» «derivation /nix/store/n8l59iparx98yfw8g5ydqmzmk3fdic75-setuptools-setup-hook.drv» «deri→
```

AFTER:

the python derivation does contain .nativeDrv and .crossDrv because
it is from the __splicedPackages set

those 2 are what makes nativeBuildInputs and buildInputs function
properly

the python used in mk-python-derivation.nix is for build

```
nix-repl> pkgsCross.aarch64-multiplatform.python3Packages.xpybutil.nativeBuildInputs
[ «derivation /nix/store/hvb9yxgv1133cfhxxd869sibldvv2vdx-python3-3.10.7.drv» «derivation /nix/store/v880cnh4ml7czmivfbk3cdh93hz9yvbn-hook.drv» «derivation /nix/store/f243ab7wv92gqsmc9h7gr0qcnj0xcgdb-hook.drv» «derivation /nix/store/880lf8895bzn8d94lrr2y7ilgkxq0lc4-python-remove-tests-dir-hook.drv» «derivation /nix/store/fzjnhawfs1wpw58hcd1vxd9y750dc08y-python-remove-bin-bytecode-hook.drv» «derivation /nix/store/n8l59iparx98yfw8g5ydqmzmk3fdic75-setuptools-setup-hook.drv» «derivation /nix/store/7vyhynla→
```
2022-10-15 09:35:29 +02:00
Artturin 19d04b5f47 pythonInterpreters: don't use with pkgs 2022-10-15 09:35:29 +02:00
github-actions[bot] 92e8a46d79 Merge staging-next into staging 2022-10-15 06:08:33 +00:00
Martin Weinelt 87761da934 python37: 3.7.14 -> 3.7.15
https://docs.python.org/release/3.7.15/whatsnew/changelog.html
2022-10-14 22:50:59 +02:00
Martin Weinelt 997b80d632 python39: 3.9.14 -> 3.9.15
http://docs.python.org/release/3.9.15/whatsnew/changelog.html
2022-10-14 19:03:55 +02:00
Martin Weinelt a88ce6dc0b python310: 3.10.7 -> 3.10.8
https://docs.python.org/release/3.10.8/whatsnew/changelog.html
2022-10-14 19:03:50 +02:00
Martin Weinelt 8444183652 python38: 3.8.14 -> 3.8.15
http://docs.python.org/release/3.8.15/whatsnew/changelog.html
2022-10-14 18:13:25 +02:00
github-actions[bot] 86dee601b1 Merge staging-next into staging 2022-09-13 18:01:48 +00:00
Martin Weinelt 1a1cd4b6cd python311: 3.11.0rc1 -> 3.11.0rc2
https://docs.python.org/3.11/whatsnew/changelog.html#python-3-11-0-release-candidate-2
2022-09-13 18:19:34 +02:00