Commit Graph

1066 Commits

Author SHA1 Message Date
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
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