Commit Graph

1455 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
Artturin
4e3dcf364e treewide: makeSetupHook deps -> propagatedBuildInputs 2023-02-07 21:02:00 +02:00
Artturin
9a9c42e19f makeSetupHook: support depsTargetTargetPropagated 2023-02-07 21:00:18 +02:00
github-actions[bot]
dfee1a3150
Merge staging-next into staging 2023-02-05 00:03:15 +00:00
superherointj
a411b337d6
Merge pull request #209622 from NickCao/python311-cross
python311: fix cross compilation
2023-02-04 18:04:43 -03:00
Artturi
dcc7df7fe6
Merge pull request #211685 from Artturin/splicingstuff1-split 2023-02-03 12:49:08 +02:00
Weijia Wang
b062ec5b83 rustpython: unbreak on x86_64-darwin 2023-02-03 00:02:17 +01:00
Alyssa Ross
d608fbb9f6 buildPython*: allow overriding disabled packages
Previously:

	nix-repl> python3.pkgs.WSME
	error: WSME-0.11.0 not supported for interpreter python3.10

	nix-repl> python3.pkgs.WSME.overridePythonAttrs (_: { disabled = false; })
	error: WSME-0.11.0 not supported for interpreter python3.10

Now:

	nix-repl> python3.pkgs.WSME
	error: WSME-0.11.0 not supported for interpreter python3.10
	«derivation

	nix-repl> python3.pkgs.WSME.overridePythonAttrs (_: { disabled = false; })
	«derivation /nix/store/cxkiwdfm146zvl573s2hahlbjd1wfrrp-python3.10-WSME-0.11.0.drv»
2023-02-02 16:49:27 +01:00
github-actions[bot]
d7f991bb53
Merge master into staging-next 2023-01-29 00:02:27 +00: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
Vladimír Čunát
8a77ed60ac
Merge branch 'master' into staging-next 2023-01-27 09:36:55 +01:00
Shawn8901
a59dda942c treewide: remove global with lib; statements in pkgs/development 2023-01-26 18:31:02 +01:00
github-actions[bot]
d8bfd0a059
Merge master into staging-next 2023-01-23 06:01:12 +00:00
Nick Cao
6ad4d75364
Merge pull request #211079 from NickCao/py37
python37: remove leftovers
2023-01-23 11:22:35 +08:00
Guillaume Girol
33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00
Guillaume Girol
339a5491bb buildPythonPackage: support nativeCheckInputs 2023-01-21 16:42:09 +01:00
Guillaume Girol
90c78aee6c Merge branch 'nativeCheckInputs' into staging-nativeCheckInputs 2023-01-21 12:00:00 +00:00
figsoda
3290828905 fetchPypi: move to top level
fetchPypi doesn't use python under the hood and doesn't need to be tied
to a specific version of python. Moving it to top level makes it more
consistent with other fetchers and makes code generation easier.
2023-01-21 08:21:33 +01:00
Artturin
b94fa2c253 python-packages-base: use extends instead of //
// shouldn't be used when overrideAttrs is available

here we can use extends instead of overrideAttrs for performance
2023-01-20 19:19:18 +02:00
Alyssa Ross
0ae87d514f treewide: add names to all setup hooks 2023-01-19 15:00:36 +00:00
Minijackson
2b43490121 python: improve ABI name detection 2023-01-19 15:20:31 +01:00
Nick Cao
dde298c126
python37: remove leftover files 2023-01-16 19:49:16 +08:00
Thiago Kenji Okada
79194a913d
Merge pull request #210078 from thiagokokada/dont-expose-resholve
resholve: mark it as knownVulnerabilities, allow resholve-utils usage
2023-01-15 18:10:34 +00:00
Thiago Kenji Okada
66093a4120 python27: remove stripLibs argument
Since we are now guarantee that the `resholve` is not exposing `python27`,
let's remove the `stripLibs` hack that tried to reduce its size.
2023-01-15 12:29:42 +00:00
github-actions[bot]
ceb05ad4bf
Merge master into staging-next 2023-01-13 06:01:09 +00:00
Mario Rodas
e7b6fb49fd
Merge pull request #208744 from wegank/python312-darwin
python312: fix build on darwin
2023-01-12 22:35:07 -05:00
github-actions[bot]
fce67420c4
Merge master into staging-next 2023-01-09 00:02:14 +00:00
Thiago Kenji Okada
4b74c3c3d1 pypy39: fix pypy3 symlink 2023-01-08 19:34:59 +00:00
Thiago Kenji Okada
c04fc21156 pythonInterpreters.pypy39_prebuilt: remove global with lib 2023-01-08 19:34:59 +00:00
Thiago Kenji Okada
eddcc1c01c pythonInterpreters.pypy27_prebuilt: remove global with lib 2023-01-08 19:34:59 +00:00
Thiago Kenji Okada
a7ffcced44 pypy{27,38,39}: remove global with lib 2023-01-08 19:34:59 +00:00
Thiago Kenji Okada
92f0173213 pypy{27,38,39}: refactor derivation
- Remove code related to i686 archs (not supported anymore since #209100)
- Split non-install steps in installPhase in installCheckPhase/preFixup
- Add missing pre/post hooks
2023-01-08 19:34:59 +00:00
Weijia Wang
9d10b68a85 pypy27: unbreak on aarch64-darwin 2023-01-08 19:00:31 +01:00
Martin Weinelt
4d65509504 Merge remote-tracking branch 'origin/master' into staging-next 2023-01-08 16:34:30 +01:00
Thiago Kenji Okada
2a19c135fc
Merge pull request #209597 from wegank/pypy27-darwin
pythonInterpreters.pypy27_prebuilt: fix install check on darwin
2023-01-08 11:05:31 +00:00
Thiago Kenji Okada
dac15fbb93
Merge pull request #209598 from wegank/pypy39-darwin
pythonInterpreters.pypy39_prebuilt: add darwin support
2023-01-08 11:01:17 +00:00
Nick Cao
f742c6d443
python311: fix cross compilation 2023-01-08 12:39:02 +08:00
Weijia Wang
fd6ddd9923 pythonInterpreters.pypy39_prebuilt: add darwin support 2023-01-08 02:04:15 +01:00
Weijia Wang
e380607d07 pythonInterpreters.pypy27_prebuilt: fix install check on darwin 2023-01-08 02:02:45 +01:00
github-actions[bot]
4bf238a8fb
Merge master into staging-next 2023-01-08 00:02:31 +00:00
Fabián Heredia Montiel
d9fbb33f92 python27: mark as vulnerable/insecure due to EOL on 2020-01-01
More information: https://www.activestate.com/products/python/python-2-end-of-life-security-updates/
2023-01-07 16:25:35 -06:00
Thiago Kenji Okada
aa0c474f4b pypy{27,38,39}: mark as broken in aarch64-darwin 2023-01-07 21:14:22 +00:00
Thiago Kenji Okada
997a09e612 pypy39: fix build in darwin 2023-01-07 21:11:49 +00:00
Thiago Kenji Okada
4645ec9de6 pypy{27,38,39}: remove i686-linux, add aarch64-darwin 2023-01-07 21:11:49 +00:00
Thiago Kenji Okada
40db51d563 pythonInterpreters.pypy27_prebuilt: add support to darwin 2023-01-07 21:11:49 +00:00
Thiago Kenji Okada
3d440c1c1e pythonInterpreters.pypy39_prebuilt: use autoPatchelfHook 2023-01-07 21:11:49 +00:00
Thiago Kenji Okada
c89380b0c4 pythonInterpreters.pypy27_prebuilt: use autoPatchelfHook 2023-01-07 21:11:48 +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
github-actions[bot]
789ae2c93d
Merge staging-next into staging 2023-01-04 18:01:36 +00:00
Thiago Kenji Okada
0992faa347
Merge pull request #206642 from thiagokokada/python27-use-system-libs
python27: use ffi/expat as system libraries
2023-01-04 16:34:21 +00:00
Martin Weinelt
e464bde9ba
Merge pull request #208962 from KAction/patch/v1/python3.pkgs.sphinxHook 2023-01-04 02:38:53 +01:00
Dmitry Bogatov
82ae2e8f06 python3.pkgs.sphinxHook: fix co-installability of generated documentation
Include full $name of the derivation into docdir, so documentation for
python package "foo" is installed into $out/share/doc/python3.10-foo-1.2.3
instead of just $out/share/doc/foo, where it may conflict with some
other package named "foo" and not-coinstallable with different
versions of the same python package.

Change from $name to $pname was introduced in [1ee5fca], probably as
unindented side-effect of adding support for formats other than html.
2023-01-03 20:28:48 -05:00
Weijia Wang
f6fd1b9a53 python312: fix build on darwin 2023-01-02 13:07:46 +01:00
Weijia Wang
a440e955e0 python3: allow enabling framework on darwin 2023-01-01 16:05:48 +01:00
Robert Schütz
fa3feb9f65 python3Packages.pythonImportsCheck: set $PYTHONPATH
Don't rely on the installPhase doing so.
2022-12-29 04:11:02 -08:00
Artturin
58fa78077c treewide: use splicing convenience functions 2022-12-25 14:05:03 +02:00
github-actions[bot]
dc7ebb0163
Merge staging-next into staging 2022-12-18 18:01:41 +00:00
Thiago Kenji Okada
47f904bad1 python27: use ffi/expat as system libraries
Without `--with-system-{ffi,expat}` flags, Python will use its own
embedded libraries that are out-of-date. Thanks to it, they can be a
security issue. So let's use our own libraries instead.

This is already what Python 3.x does, so should be safe.
2022-12-18 12:32:51 +00:00
figsoda
ec8cb34358 treewide: fix typos 2022-12-17 19:39:44 -05:00
github-actions[bot]
61a0176830
Merge staging-next into staging 2022-12-17 00:02:50 +00:00
github-actions[bot]
30b97b0e83
Merge master into staging-next 2022-12-17 00:02:17 +00:00
Thiago Kenji Okada
283ecac082 resholve: strip unused libraries from python27
Strip unused libraries from resholve's own python27 derivation, further
reducing its size and reducing its attack surface.
2022-12-15 00:07:02 +00:00
github-actions[bot]
74a066ab3f
Merge staging-next into staging 2022-12-13 18:02:08 +00:00
github-actions[bot]
d07c2d73fd
Merge master into staging-next 2022-12-13 18:01:30 +00:00
Thiago Kenji Okada
2e943fc060 resholve: use stripped-down python27
This PR strips down the modified `python27` derivation used by `resholve`. The
idea is to reduce the possible security issues, and also to make it easier to
bootstrap.
2022-12-13 14:37:00 +00:00
github-actions[bot]
cfbecb45cc
Merge staging-next into staging 2022-12-12 18:01:51 +00:00
Vladimír Čunát
1a5af95367
python311: revert asyncio changes done in 3.11.1
Almost same as in the parent commit.
2022-12-12 14:33:17 +01:00
Vladimír Čunát
9ee1d16c36
python310: revert asyncio changes done in 3.10.9
They brought significant regressions.  Upstream is now discussing
what to do, but we still want the security fixes from 3.10.9.
2022-12-12 14:23:49 +01:00
Robert Hensing
16f5747575
Merge pull request #175649 from Artturin/opt-in-structured-attrs
stdenv: support opt-in __structuredAttrs
2022-12-10 21:12:43 +01:00
Vladimír Čunát
9c497bb8d6
Merge branch 'staging-next' into staging 2022-12-09 10:27:46 +01:00
Artturin
adc8900df1 treewide: fix some core package structuredAttrs 2022-12-08 21:05:28 +02:00
Martin Weinelt
b818d8a9b3
Merge pull request #204903 from mweinelt/cpython-changelog 2022-12-08 01:14:19 +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
6dcc133aae
cpython: Update meta and add changelog url 2022-12-07 16:31:39 +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
e3da5a807b Merge remote-tracking branch 'origin/staging-next' into staging 2022-12-03 01:28:01 +01:00
github-actions[bot]
a83c4dd193
Merge master into staging-next 2022-12-03 00:02:19 +00:00
Martin Weinelt
72231c9177 cpython: Restore libxcrypt CFLAGS and LIBS in configureFlags 2022-12-02 22:50:55 +01:00
Sergei Trofimovich
d968c6eded pypy2, pypy3: drop unused xlibsWrapper 2022-12-02 18:18:05 +00:00
Martin Weinelt
a5ab2a3fe1
Merge pull request #203468 from mweinelt/python312 2022-12-02 00:27:07 +01:00
github-actions[bot]
5dcaefe5c4
Merge staging-next into staging 2022-12-01 18:02:04 +00:00
github-actions[bot]
237453e7f7
Merge master into staging-next 2022-12-01 18:01:25 +00:00
Martin Weinelt
bcb6dbbe30 manylinux: use libxcrypt for libcrypt.so.1 2022-12-01 14:09:42 +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
d345fb2500 python27: fix CVE-2021-3733 2022-11-28 11:45:40 +00:00
Thiago Kenji Okada
b3d02fb8b5 python27: add thiagokokada as maintainer 2022-11-28 09:41:57 +00: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
Martin Weinelt
acb119aeac
Merge pull request #203362 from thiagokokada/add-patches-to-python27-cves 2022-11-28 01:56:07 +01:00
Thiago Kenji Okada
e7d9b0b19d python27: add patches for known security issues
Add patches from Arch Linux package (that itself source its patches from
Gentoo) to the following known security issues in Python 2.7:

- CVE-2020-26116
- CVE-2020-27619
- CVE-2020-8492

This should cover all security issues currently listed in
https://www.activestate.com/products/python/python-2-end-of-life-security-updates/.
2022-11-27 22:46:20 +00:00
ajs124
2b3c729654 python3: use openssl_legacy 2022-11-21 13:46:00 +01:00
ajs124
f06f950183 Revert "Revert "python3: pin to openssl_1_1""
This reverts commit 017fd89527.
2022-11-21 13:46:00 +01:00
Lassulus
15a42961b6
Merge pull request #196906 from helsinki-systems/feat/less-openssl_1_1 2022-11-11 00:21:52 +01:00
Jörg Thalheim
7eccc4973c
Merge pull request #195055 from Mic92/buildPythonPackage
buildPythonPackage: fix regression if no setuptools is used
2022-11-06 20:37:18 +01:00
Sergei Trofimovich
3c65029d0d
Merge pull request #198672 from trofi/pythonFull-without-xlibsWrapper
pythonFull: drop unused xlibsWrapper input
2022-11-05 10:18:25 +00:00
Pierre Bourdon
4fe74d5257
Merge pull request #198802 from delroth/relax-deps-hook-regexp
pythonRelaxDepsHook: improve Requires-Dist parsing
2022-11-01 15:10:07 +01:00
Pierre Bourdon
1f197e240e
pythonRelaxDepsHook: improve Requires-Dist parsing
Prior to this commit, pythonRelaxDeps would only support removing
version constraints from "Requires-Dist" lines formatted in a particular
way ("foo (>= 1.2.3)"). This way is deprecated as per PyPA Core Metadata
Specs v2.1 [1]:

> Tools parsing the format should accept optional parentheses around
> this, but tools generating it should not use parentheses.

Additionally, a "Requires-Dist" dependency specification can contain
other metadata than just package name and version (extra names,
environment marker). These were being silently dropped by the prior
version of pythonRelaxDeps, or the version could not be relaxed.

The actual grammar is defined in PEP 508 [2]. Our tool of choice here is
sed extended regexps, so there's only so much we can do to be correct
with this parser. The regexp implemented in this commit makes an attempt
at supporting [extra] names, ; env_markers, as well as version specs
without parentheses. There are still unsupported features (URL specs) as
well as unhandled edge cases, but at some point trying to make the
regexp better is bound to awake ZALGO [3].

[1] https://packaging.python.org/en/latest/specifications/core-metadata/#requires-dist-multiple-use
[2] https://peps.python.org/pep-0508/#grammar
[3] https://stackoverflow.com/a/1732454/179806
2022-10-31 17:05:12 +01:00
Sergei Trofimovich
845c39bab5 pythonFull: drop unused xlibsWrapper input
Tested as no material change in `out` output with `diffoscope`.
2022-10-30 16:47:30 +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
ajs124
017fd89527 Revert "python3: pin to openssl_1_1"
This reverts commit 8dfc998207.
2022-10-28 14:15:18 +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]
70da3334cf
Merge staging-next into staging 2022-10-17 18:16:14 +00:00
github-actions[bot]
3834216ec6
Merge master into staging-next 2022-10-17 18:10:17 +00:00
Jörg Thalheim
0d7a8e28d0 pypy: fix executable name for 3.9 2022-10-17 14:23:01 +02:00
github-actions[bot]
bcfb4956fd
Merge staging-next into staging 2022-10-17 12:01:57 +00:00
github-actions[bot]
969a1796ef
Merge master into staging-next 2022-10-17 12:01:24 +00:00
Jörg Thalheim
ea13f7cd4c pypy: 7.3.7 -> 7.3.9 2022-10-17 10:21:06 +02:00
Jörg Thalheim
12f9d8e730 buildPythonPackage: better error message if no setuptools is used.
Before packages did not had to set `format = "other";` if had a custom
installPhase and would not produce a dist folder.
The current error message is hard to understand by new users:

> Executing pythonOutputDistPhase
> mv: cannot stat 'dist': No such file or directory

This commit improves the error message.
2022-10-17 10:12:34 +02:00
github-actions[bot]
ec95041d85
Merge staging-next into staging 2022-10-16 00:04:36 +00:00
Martin Weinelt
51fcbf5bb7 Merge remote-tracking branch 'origin/master' into staging-next 2022-10-16 00:18:40 +02: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
github-actions[bot]
4f07e7f326
Merge master into staging-next 2022-10-15 06:07:54 +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
Vladimír Čunát
00a757ed3f
Merge branch 'master' into staging 2022-10-13 08:27:55 +02:00
Alyssa Ross
3dae05bb91 update-python-libraries: enable nix command
Since the Nix command used is an implementation detail of the script,
it's the script that will have to be updated if the command changes,
it's the script that should be opting into this, rather than making
the user do it globally.
2022-10-12 11:38:55 +00:00
Alyssa Ross
6425011efe update-python-libraries: remove old Nix fallback
Since c0972c16dc ("update-python-libraries: add missing dependency nix"),
Nix will be provided as a dependency, so we know we'll always be using
a modern version and no longer need the fallback.
2022-10-12 11:38:55 +00:00
Pascal Bach
17c13ef886 rustpython: unstable-2021-12-09 -> unstable-2022-10-11 2022-10-11 22:59:44 +02:00
Artturin
7e49471316 treewide: optional -> optionals where the argument is a list
the argument to optional should not be list
2022-10-10 15:40:21 +03:00
Artturin
f4ea1208ec treewide: *Flags convert to list from str
*Flags implies a list

slightly relevant:
> stdenv: start deprecating non-list configureFlags https://github.com/NixOS/nixpkgs/pull/173172

the makeInstalledTests function in `nixos/tests/installed-tests/default.nix` isn't available outside of nixpkgs so
it's not a breaking change
2022-10-10 15:30:59 +03:00
Martin Weinelt
829f89581a
Merge pull request #181764 from mweinelt/glibc-without-libcrypt 2022-10-09 21:07:26 +02:00
github-actions[bot]
3b37795067
Merge staging-next into staging 2022-10-09 18:02:10 +00:00
Franz Pletz
194d852242
cpython: fix build with libxcrypt 2022-10-09 18:09:39 +02:00
Ryan Mulligan
c0972c16dc update-python-libraries: add missing dependency nix
nix is needed for nix-prefetch-url
2022-10-09 16:06:59 +00:00
Frederik Rietdijk
69ea4c8696 pythonPackages.buildPython*: also output dist when using wheel
Typically the actual wheel will be unchanged, but it is possible we use
the relax deps hook modifying the wheel.
2022-10-04 15:34:46 +02:00
Frederik Rietdijk
de5951f3c2 pythonPackages.pythonRelaxDepsHook: cleanup unpacked folder
or it will end up in the dist output.
2022-10-04 15:34:46 +02:00
John Ericson
0427e5eca8
Merge pull request #193528 from cidkidnix/android-cpyth
android: cpython: fix stdenv.cc.cc.libllvm
2022-09-29 10:42:44 -04:00
cidkidnix
94d9904072 cpython: fix stdenv.cc.cc.libllvm 2022-09-29 09:05:13 -05:00
Martin Weinelt
68c0ca4416 Merge remote-tracking branch 'origin/master' into staging-next 2022-09-25 21:36:31 +02:00
K900
641f6dd3d1 pythonDocs: fix eval 2022-09-24 10:21:54 +03:00
Artturi
c326b7e088
Merge pull request #192624 from FRidh/hooks-cross 2022-09-23 22:41:36 +03:00
Frederik Rietdijk
7a41be7b2a Python hooks: use spliced packages in hooks
This fixes issues when cross-compiling.
2022-09-23 22:19:52 +03:00
Sandro Jäckel
dfc6e194bc
pythonDocs: bring back pname+version, allow script to be executed from anywhere 2022-09-23 18:43:50 +02:00
Spencer Baugh
52117cce92 pythonDocs: 3.7 -> 3.10
Also include texinfo docs for Python 3 (they aren't generated for
Python 2)

A few minor fixes had to be made to generate.sh as well.
2022-09-23 15:18:59 +02:00
Frederik Rietdijk
86ab83260f Revert "Revert "buildPython*: store dist (wheel/sdist) in dist output""
Most packages were fixed on python-unstable.

This reverts commit 0a4898c21a.
2022-09-20 09:49:55 +02:00
Frederik Rietdijk
8895944c57 Revert "Revert "buildPython*: wrap setuptools in hook for catching conflicts""
Most packages were fixed up on python-unstable branch.

This reverts commit 3ff2d9362c.
2022-09-20 09:49:27 +02:00
Frederik Rietdijk
3ff2d9362c Revert "buildPython*: wrap setuptools in hook for catching conflicts"
Revert for now and fix on python-unstable branch.

This reverts commit 13bb0f49f7.
2022-09-19 10:01:25 +02:00
Frederik Rietdijk
0a4898c21a Revert "buildPython*: store dist (wheel/sdist) in dist output"
Revert for now and fix on python-unstable branch.

This reverts commit adbc59c9d3.
2022-09-19 10:00:42 +02:00
github-actions[bot]
86dee601b1
Merge staging-next into staging 2022-09-13 18:01:48 +00:00
Frederik Rietdijk
13bb0f49f7 buildPython*: wrap setuptools in hook for catching conflicts
By default buildPython* runs a hook for detecting conflicting packages.
This hook needs pkg_resources which is part of setuptools.

Before this commit, setuptools was simply added to the build. This meant
that when setuptools was forgotten to be added to the build, the build
and installation would still succeed because of this package from the
hook. During runtime (and cross-compilation) one would notice the
missing package.
2022-09-13 18:48:08 +02: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
Frederik Rietdijk
adbc59c9d3 buildPython*: store dist (wheel/sdist) in dist output
Store the intermediate artifacts. In time, we should build, install and
test in separate derivations as that reduces circular dependencies,
avoids rebuilds when fixing tests, and makes it possible to use the
wheels for creating say virtualenv's.
2022-09-12 22:15:39 +02:00
github-actions[bot]
5de711e49b
Merge staging-next into staging 2022-09-08 18:01:54 +00:00
github-actions[bot]
60b28ae00d
Merge master into staging-next 2022-09-08 18:01:13 +00:00
Martin Weinelt
d1633b506b
python38: 3.8.13 -> 3.8.14
https://pythoninsider.blogspot.com/2022/09/python-releases-3107-3914-3814-and-3714.html

Fixes: CVE-2020-10735
2022-09-08 00:48:27 +02:00
Martin Weinelt
0f91504e47
python37: 3.7.13 -> 3.7.14
https://pythoninsider.blogspot.com/2022/09/python-releases-3107-3914-3814-and-3714.html

Fixes: CVE-2020-10735
2022-09-08 00:47:59 +02:00
Martin Weinelt
34182bc865
python39: 3.9.13 -> 3.9.14
https://docs.python.org/3.9/whatsnew/changelog.html#python-3-9-14-final
https://pythoninsider.blogspot.com/2022/09/python-releases-3107-3914-3814-and-3714.html

Fixes: CVE-2020-10735
2022-09-08 00:32:19 +02:00
Martin Weinelt
6b6a8fe7c0
python310: 3.10.6 -> 3.10.7
https://docs.python.org/3.10/whatsnew/changelog.html\#python-3-10-7-final
https://pythoninsider.blogspot.com/2022/09/python-releases-3107-3914-3814-and-3714.html

Fixes: CVE-2020-10735
2022-09-08 00:30:12 +02:00
github-actions[bot]
5aa24ca693
Merge staging-next into staging 2022-08-25 00:03:34 +00:00
Martin Weinelt
19f4e14dcf
python3Packages.sphinxHook: run install phase in predist
Run the installSphinxPhase earlier, so install errors are caught early,
before long and expensive test are started.
2022-08-24 23:02:27 +02:00
Martin Weinelt
caf2d010ed
python3Packages.sphinxHook: Rename loop var in source root detection
The loop variable to find the documentation source root was
unnecessarily short, rename it to something meaningful.
2022-08-24 23:02:26 +02:00
Martin Weinelt
8a26deba06
doc/python: integrate sphinxHook docs
Improve the documentation by moving it from the hook script into the
Python section in the manual and adding code examples.
2022-08-24 23:02:24 +02:00
Martin Weinelt
1ee5fcaf0c
python3Packages.sphinxHook: Add support for multiple builders
Removes the up until now unused option to specify a `sphinxOutdir` in
favor of allowing to specify multiple builders, which is for example
useful for generating both documentation and manpages using the hook.

Since the output path cannot be determined from within the package we
automatically generate it and add a diversion for manpages, so they land
in the correct output and path.
2022-08-24 23:00:41 +02:00
ajs124
8dfc998207 python3: pin to openssl_1_1 2022-08-17 20:16:44 +02:00
Winter
e8fbb38a51 pythonPackages.unittestCheckHook: init 2022-08-13 14:09:43 -04:00
Sergei Trofimovich
3ceb8a59a6
Merge pull request #185537 from trofi/decouple-strip-and-separate-debug
setup-hooks/separate-debug-info.sh: don't inhibit strip hook
2022-08-11 08:53:24 +01:00
github-actions[bot]
5ad6c8071e
Merge master into staging-next 2022-08-09 18:01:26 +00:00
github-actions[bot]
194ba77ae3
Merge master into staging-next 2022-08-09 00:02:24 +00:00
Martin Weinelt
7363ab9ebb
python311: 3.11.0b5 -> 3.11.0rc1
https://docs.python.org/3.11/whatsnew/changelog.html#python-3-11-0-beta-5
2022-08-08 23:55:10 +02:00
Martin Weinelt
f1c0f0554a
Merge pull request #183037 from mweinelt/python3.11.0b5 2022-08-08 23:52:28 +02:00
Sergei Trofimovich
b3b672d5a1 setup-hooks/separate-debug-info.sh: don't inhibit strip hook
Before the change separate-debug-info.sh did the stripping itself.
This scheme has a few problems:
1. Stripping happens only on ELF files. *.a and *.o files are skipped.
   Derivations have to do it manually. Usually incorrectly
   as they don't run $RANLIB (true for `glibc` and `musl`).
2. Stripping happens on all paths. Ideally only `stripDebugList` paths
   should be considered.
3. Host strip is called on Target files.

This change offloads stripping logic to strip hook. This strips more
files for `glibc` and `musl`. Now we can remove most $STRIP calls
from individual derivations.

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2022-08-07 12:49:37 +01:00
github-actions[bot]
4bbe802309
Merge staging-next into staging 2022-08-06 12:01:56 +00:00
Frederik Rietdijk
2270b66d75 pythonPackagesExtensions: override all Python package sets at once
Python package sets can be overridden by overriding an interpreter
and passing in `packageOverrides = self: super: {...};`. This is fine
in case you need a single interpreter, however, it does not help you
when you want to override all sets.

With this change it is possible to override all sets at once by
appending a list of "extensions" to `pythonPackagesExtensions`.

From reading the implementation you might wonder why a list is used, and
not
`lib.composeExtensions`? The reason is the latter requires knowledge of
the library function. This approach should be easier for most users
as it is similar to how we append to lists of e.g. inputs or patches
when overriding a derivation.
2022-08-06 09:39:39 +02:00
Martin Weinelt
b4ba441d7c
python310: 3.10.5 -> 3.10.6
https://docs.python.org/3.10/whatsnew/changelog.html#python-3-10-6-final
https://pythoninsider.blogspot.com/2022/08/python-3106-is-available.html
https://www.python.org/downloads/release/python-3106/
2022-08-03 14:15:27 +02:00
Martin Weinelt
afda166636
python311: 3.11.0b4 -> 3.11.0b5
https://pythoninsider.blogspot.com/2022/07/python-3110b5-is-now-available.html
https://www.python.org/downloads/release/python-3110b5/
2022-07-27 02:11:53 +02:00
Martin Weinelt
c7dbac1666 python3Packages.sphinxHook: run post install
This allows importing and inspecting the build result, which is required
for the psycopg (3.x) package.
2022-07-21 22:35:25 +02:00
Martin Weinelt
802ec5de4b
python311: 3.11.0b3 -> 3.11.0b4
https://www.python.org/downloads/release/python-3110b4/
https://pythoninsider.blogspot.com/2022/07/python-3110b4-is-now-available.html
2022-07-12 12:50:27 +02:00
Martin Weinelt
62b05d9742 Merge remote-tracking branch 'origin/master' into staging-next 2022-06-27 23:50:37 +02:00
Matthieu Coudron
de50d08d73 buildPythonPackage: document why we always propagate python
python applications should not propagate python in PATH but we do it
nevertheless to avoid rebuilds see https://github.com/NixOS/nixpkgs/issues/170887
for an explanation.
2022-06-27 21:02:27 +02:00
github-actions[bot]
5cbc2787df
Merge staging-next into staging 2022-06-19 06:01:44 +00:00
github-actions[bot]
05f221fbe3
Merge master into staging-next 2022-06-19 06:01:10 +00:00
Adam Joseph
b21933faab cpython: have powerpc64le use "ppc64le" to follow PEP600
The PEP600 standard gives Python's naming scheme for various
architectures; it follows the convention which was in use by Fedora in
2014.  According to PEP600, the architecture name for Power PC is
`ppc64le`, not `powerpc64le`.  This is also how python3 declares its
"supported wheels" under Debian on PowerPC, as checked with `pip debug
--verbose`

  $ pip debug --verbose | grep powerpc
  $ pip debug --verbose | grep ppc | head
  cp39-cp39-manylinux_2_31_ppc64le
  cp39-cp39-manylinux_2_30_ppc64le
  cp39-cp39-manylinux_2_29_ppc64le
  cp39-cp39-manylinux_2_28_ppc64le
  cp39-cp39-manylinux_2_27_ppc64le
  cp39-cp39-manylinux_2_26_ppc64le
  cp39-cp39-manylinux_2_25_ppc64le
  cp39-cp39-manylinux_2_24_ppc64le
  cp39-cp39-manylinux_2_23_ppc64le

Let's adjust the `pythonHostPlatform` expression in
cpython/default.nix to pass the architecture using the naming scheme
Python expects.

Verified on a Raptor Computing Systems Talos II.  Without this commit,
PyQt5 fails to build, failing with "unsupported wheel".  With this
commit, it builds successfully.
2022-06-19 07:46:29 +02:00
github-actions[bot]
46b42d9734
Merge staging-next into staging 2022-06-16 23:27:58 +00:00
github-actions[bot]
ccdd0f7af6
Merge master into staging-next 2022-06-16 23:27:22 +00:00
Artturin
843b988680 python3: fix wrong platform libs when cross-compiling
see https://github.com/NixOS/nixpkgs/pull/169475#issuecomment-1129517328

patch by adisbladis

Co-authored-by: adisbladis <adisbladis@gmail.com>
2022-06-16 16:49:18 +03:00
Thiago Kenji Okada
5f51c12a38
Merge pull request #176721 from thiagokokada/pythonRelaxDepsHook-fix
pythonRelaxDepsHook: fix usage in packages with `-` in pname
2022-06-16 10:43:58 +01:00
github-actions[bot]
8c2f449ebc
Merge staging-next into staging 2022-06-15 00:02:51 +00:00
github-actions[bot]
4e74812c3a
Merge master into staging-next 2022-06-15 00:02:12 +00:00
Martin Weinelt
0b63d22aab
Merge pull request #173998 from mweinelt/cpython311 2022-06-15 01:28:11 +02:00
Martin Weinelt
a5c5302ddd
python311: 3.11.0b1 -> 3.11.0b3
https://www.python.org/downloads/release/python-3110b2/
https://pythoninsider.blogspot.com/2022/05/python-3110b2-is-now-available.html

With updated darwin-libutil.patch provided by Randy Eckenrode.

Co-Authored-By: Randy Eckenrode <randy@largeandhighquality.com>
2022-06-15 01:18:26 +02:00
Martin Weinelt
08615ec689
python310: 3.10.4 -> 3.10.5
https://docs.python.org/release/3.10.5/whatsnew/changelog.html#python-3-10-5-final
2022-06-14 15:39:54 +02:00
Thiago Kenji Okada
15491e727d pythonRelaxDepsHook: correct handles multiple wheels 2022-06-12 11:48:52 +01:00
Thiago Kenji Okada
61223d51de pythonRelaxDepsHook: fix usage in packages with - in pname 2022-06-07 21:24:48 +01:00
Martin Weinelt
f1ac3fa330
python3Minimal: 3.9 -> 3.10 2022-06-06 11:46:06 -07:00
Sandro Jäckel
cca70b7324 python-minimal: don't clean meta.maintainer
Every package should have a maintainer and we should not throw it away if we arleady have one.
Also in reality the maintainer of python3 is also the one of python3-minimal
2022-06-06 09:00:59 +02:00
github-actions[bot]
ebcaa0d01c
Merge master into staging-next 2022-06-01 12:01:27 +00:00
Martin Weinelt
a9377b6919
Merge pull request #164174 from ReplayCoding/fix/python-llvm-pgo 2022-06-01 11:07:54 +02:00
github-actions[bot]
f82caaee74
Merge staging-next into staging 2022-05-26 00:02:58 +00:00
Tobias Mayer
1e447d7898 pkgsStatic.python3: fix build
GCC does not come with a `libgcc_eh.a` for the target platform if
it was built without `--enable-shared`. That flag was removed with
c6dd11ca39, meaning we should no longer
attempt to link against that lib.
2022-05-24 18:03:33 +02:00
Martin Weinelt
736fdef658
Merge pull request #174005 from mweinelt/cpython 2022-05-23 16:44:37 +02:00
Martin Weinelt
85dfb11907
python311: 3.11.0a7 -> 3.11.0b1
https://www.python.org/downloads/release/python-3110b1/
https://blog.python.org/2022/05/python-3110b1-is-now-available.html
2022-05-22 16:14:33 +02:00
Martin Weinelt
761ecd1061
python39: 3.9.12 -> 3.9.13
https://www.python.org/downloads/release/python-3913/
https://blog.python.org/2022/05/python-3913-is-now-available.html
2022-05-22 15:42:31 +02:00
Artturin
6b46fa896e python3Minimal: enable strictDeps
remove unused let binding from the main expr

verified that cross-compiling still works
2022-05-22 16:40:36 +03:00
Artturin
f002ffed9a treewide: enable strictDeps in bootstrap packages 2022-05-22 16:40:26 +03:00
Malo Bourgon
44d5d31d98 Revert "pythonPackages: set mainProgram to pname by default"
It's now the case that `nix run` checks `pname` as well as `name`, so
this is no longer needed. See:
a2473823d7

This reverts commit baf91ea7d9.
2022-05-10 11:51:54 -07:00
github-actions[bot]
ee7e3f30f3
Merge staging-next into staging 2022-05-04 00:02:57 +00:00
Frederik Rietdijk
ab62fad9d5
Merge pull request #136100 from KAction/sphinx-hook
New hook: sphinxHook to build documentation into different formats/outputs
2022-05-03 20:07:37 +02:00
Thiago Kenji Okada
e19019fe32 pythonRelaxDepsHook: init
We have a common pattern here in nixpkgs for Python applications: when a
Python package ships with either a requirements.txt or setup.py file, we
generally end up having to modify its version restriction, otherwise we have
build failures since we package only one specific version of each package
normally.

However, this end up being done in a completely ad-hoc way: some people
use substituteInPlace, some others use sed, others uses patches, etc.
In many cases, the code ends up being buggy, so it may work in one
version and breaks on the next one. We can instead implement one
standard way of doing this, and trying to be a correct as possible.

So this is what this commit does: it implements a new build hook, that
when called will automatically patch the wheel file. This is one of the
most generic ways to patch Python dependencies, and should work in
multiple cases.
2022-04-30 13:19:30 +01:00
Dmitry Bogatov
6b8b02cef7
python3.pkgs.sphinxHook: new package
This hook takes care of building and installing html documentation from Sphinx
sources.
2022-04-29 08:45:38 -04:00
github-actions[bot]
413490ab0d
Merge staging-next into staging 2022-04-26 06:01:45 +00:00
github-actions[bot]
f8c265f433
Merge master into staging-next 2022-04-26 06:01:08 +00:00
Thiago Kenji Okada
d6d8c43d11 pythonInterpreters.graalpython37: remove 2022-04-25 17:53:06 +01:00
Sergei Trofimovich
a649d4f038 python: use whitespace to split possible existing options
Noticed option globbing when tried to enable parallelism by default
locally for most packages by default. python3Packages.yt-dlp failed as:

    python3.9-yt-dlp> /nix/store/5mywvxdjkk1q6srwwwgdkzc37ibla801-python3.9-setuptools-61.2.0/lib/python3.9/site-packages/setuptools/dist.py:516: UserWarning: Normalizing '2022.04.08' to '2022.4.8'
    python3.9-yt-dlp>   warnings.warn(tmpl.format(**locals()))
    python3.9-yt-dlp> invalid command name 'build_lazy_extractors--parallel'

The change adds leading whitespace everywhere where options might
already be present.
2022-04-24 14:28:26 +02:00
Phillip Cloud
52248e4466 python: enable opt-in parallel build_ext builds for setuptools 2022-04-22 18:25:12 +02:00
github-actions[bot]
cbc56d5cc3
Merge staging-next into staging 2022-04-21 18:02:06 +00:00
adisbladis
881ea516cf python3: Whitelist config options when overriding interpreter
In the case of cross compilation we don't want pass through build
inputs from the cross platform, but we do want to pass on config options.
2022-04-21 14:50:28 +02:00
Frederik Rietdijk
ba02fd0434 python3: fix overriding of interpreters, closes #163639
Overriding the interpreters did not work correctly. When overriding
packages would end up twice in the build time closure: one corresponding
to the overridden interpreter and one corresponding to the original
interpreter. The reason is that the override was not applied to the
interpreters in the spliced package sets.
2022-04-21 14:50:28 +02:00
Atemu
7f802c7046 python-wrapper: use makeBinaryWrapper
A "python" made with the wrapper is likely to be used as a shebang. On macOS,
this requires a binary rather than another shebang'd script.
2022-04-20 21:59:47 +02:00
Vladimír Čunát
d5d94127fd
Merge branch 'staging-next' into staging
Minor conflicts; I hope I didn't mess up:
	pkgs/development/tools/misc/binutils/default.nix
	pkgs/games/openjk/default.nix
2022-04-14 09:53:21 +02:00
Martin Weinelt
66beaa9225
cpython: update patches for 3.11a7 on darwin 2022-04-14 01:33:33 +02:00
Martin Weinelt
52843aefea python39: 3.10.3 -> 3.10.4
https://www.python.org/downloads/release/python-3104/
https://docs.python.org/release/3.10.4/whatsnew/changelog.html
2022-04-12 18:27:46 +02:00
Martin Weinelt
0c57648722 python39: 3.9.11 -> 3.9.12
https://www.python.org/downloads/release/python-3912/
https://docs.python.org/release/3.9.12/whatsnew/changelog.html
2022-04-12 18:27:46 +02:00
Martin Weinelt
24ce3fcf7c
python311: 3.11.0a6 -> 3.11.0a7
https://www.python.org/downloads/release/python-3110a7/

https://pythoninsider.blogspot.com/2022/04/the-last-python-311-alpha-3110a7-is.html
2022-04-12 05:14:23 +02:00
Martin Weinelt
bf1914e12a Merge remote-tracking branch 'origin/staging-next' into staging 2022-04-05 04:05:02 +02:00
github-actions[bot]
120925b5cb
Merge master into staging-next 2022-04-05 00:02:06 +00:00
Robert Hensing
200175a701 config.allowAliases: Define as option
This simplifies usages and makes the default value consistent.

In a few cases, the default value was interpreted to be `false`,
but this is useless, because virtually nobody will explicitly
set `allowAliases = true;`.
2022-04-01 11:33:10 +02:00
Nicolas Benes
2f027dff0b python: remove ncurses flag
It seems the additional linker flags were added in 9d3b0a2 (May 2008) as
a workaround for readline support. They were kept since then, but it
also means that `python3-config` outputs these flags

```console
$ python3-config --libs
 -lpthread -ldl -lcrypt -lncurses -lutil -lm -lm
```

while other GNU/Linux distros do not. For example, Debian 11:

```console
$ sudo apt install python3-dev
$ python3-config --libs
 -lcrypt -lpthread -ldl  -lutil -lm -lm
```

This change removes the `-lncurses` flag and aligns Nix/NixOS with other
distros.
2022-03-29 13:39:33 +02:00
github-actions[bot]
838f421cf3
Merge staging-next into staging 2022-03-17 12:02:05 +00:00
Martin Weinelt
5117b2ee8c python310: 3.10.2 -> 3.10.3
https://www.python.org/downloads/release/python-3103/
2022-03-17 07:40:52 +01:00
Martin Weinelt
88deb06a96 python39: 3.9.10 -> 3.9.11
https://www.python.org/downloads/release/python-3911/
2022-03-17 07:40:52 +01:00
Martin Weinelt
c91c73a714 python37: 3.7.12 -> 3.7.13
https://www.python.org/downloads/release/python-3713/
2022-03-17 07:39:01 +01:00
Martin Weinelt
d56ccde39a python38: 3.8.12 -> 3.8.13
https://www.python.org/downloads/release/python-3813/
2022-03-17 07:39:01 +01:00
github-actions[bot]
2eac3106df
Merge staging-next into staging 2022-03-17 00:02:45 +00:00
Martin Weinelt
37a035335c
Merge pull request #163916 from mweinelt/python311 2022-03-16 21:05:37 +01:00
zowoq
6431086967 Merge remote-tracking branch 'origin/staging-next' into staging
Conflicts:
	pkgs/development/python-modules/symengine/default.nix
2022-03-16 16:03:43 +10:00