Commit Graph

1080 Commits

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