Commit Graph

1455 Commits

Author SHA1 Message Date
Theodore Ni
4e7188c39a python3.pkgs.buildPythonPackage: disable conflict check for setuptools and wheel
We can do this automatically for packages we know cannot use the
conflict check hook when it would lead to infinite recursion.
2023-08-20 10:59:47 +02:00
Theodore Ni
6c85fff302 python3.pkgs.buildPythonPackage: switch to PyPA build and installer 2023-08-20 10:59:47 +02:00
Theodore Ni
e8cca499a8 python2.{buildPythonPackage,buildPythonApplication}: extract into its own file
As we continue iterating on Python infrastructure for Python 3, some
code is starting to diverge for Python 2. If we copy the current state
of mk-python-derivation.nix and freeze it for Python 2, we can iterate
on it for Python 3 with more freedom.
2023-08-20 10:59:46 +02:00
Theodore Ni
93d25dda84 python3.pkgs.pypaBuildHook: switch to pyproject-build
Upstream's recommended "python -m build" way of invoking build fails
when the working directory contains a file named "build.py". This is
common for poetry projects that build C extensions.
2023-08-20 10:59:46 +02:00
Theodore Ni
a4d66bcc5f python3.pkgs.pypaInstallHook: init 2023-08-20 10:59:46 +02:00
github-actions[bot]
bb1bf988bc
Merge staging-next into staging 2023-08-19 12:01:31 +00:00
github-actions[bot]
d3b2560b73
Merge master into staging-next 2023-08-19 12:01:03 +00:00
Theodore Ni
4ed77bebec
Merge pull request #247868 from doronbehar/pkg/python-tk-test
python.tests.tkinter: init
2023-08-19 04:04:24 -07:00
Doron Behar
ca499f6965 python.tests.tkinter: init 2023-08-19 14:00:56 +03:00
Theodore Ni
ece0953571
Merge branch 'staging-next' into staging 2023-08-18 16:02:27 -07:00
github-actions[bot]
03146a5454
Merge master into staging-next 2023-08-18 06:01:01 +00:00
Nick Cao
e19e2222d7
python3Packages.pythonNamespacesHook: use findutils from buildPackages (#249864) 2023-08-18 07:39:36 +02:00
Adam Joseph
cbc8aa437c treewide: use uncurried version of makeScopeWithSplicing 2023-08-14 02:51:10 +03:00
Thiago Kenji Okada
5dda73a162
Merge pull request #248516 from thiagokokada/remove-version-from-python-relax-deps-hook
pythonRelaxDepsHook: remove version from pkg_name
2023-08-12 00:57:55 +00:00
Thiago Kenji Okada
98de48fc8f pythonRelaxDepsHook: remove version from pkg_name
Since the wheel file name is based on the package metadata instead of
what we set in the derivation, if you set the version as `unstable-YYYYMMDD`,
for example, the hook would silently fail. We will ignore the version
now and just use a glob instead to match anything that has the package
name in its path.

Fixes #248185.
2023-08-11 14:56:14 +01:00
github-actions[bot]
80be812da1
Merge staging-next into staging 2023-08-09 06:01:27 +00:00
Ben Wolsieffer
02719f21e6
cpython: fix _PYTHON_SYSCONFIGDATA_NAME on armv7l with musl (#240770)
Python always uses "gnu" prefixed ABI names, and this patch handles this by
doing a musl->gnu string replacement.

With pkgsCross.armv7l-hf-multiplatform.pkgsStatic, the previous name was:
_sysconfigdata__linux_arm-linux-gnu
Now, the corrected name is:
_sysconfigdata__linux_arm-linux-gnueabihf
2023-08-09 07:16:58 +02:00
github-actions[bot]
792f4d7934
Merge staging-next into staging 2023-08-08 18:01:27 +00:00
Sandro Jäckel
4514e57231 cpython: use correct variable to set meta.mainProgram 2023-08-08 17:25:28 +00:00
Adam Joseph
e67ff6614b
Merge pull request #247245 from Artturin/passthrufunthng1
Revert "Revert "python3: splice python within python3Packages.callPackage""
2023-08-05 21:33:38 +00:00
Artturin
8eff2eea8c Revert "Revert "python3: splice python within python3Packages.callPackage""
This reverts commit 2ffca30cde.

`793cc9d982415b71cdba729cf779bfc49e9d2ae7` `python3: splice python within python3Packages.callPackage`
Was reverted because it broke
`pkgsCross.aarch64-multiplatform.python3Packages.cryptography`

But by reverting the revert `pkgsCross.aarch64-multiplatform.python3Packages.cryptography` still builds.

I tried reverting the 2 cryptography update commits, and it still
worked, so I do not know why this would work now.
2023-08-05 02:37:16 +03:00
github-actions[bot]
5827446dce
Merge master into staging-next 2023-08-03 00:01:56 +00:00
Robert Hensing
34ee0260ec treewide: Add meta.mainProgram
Based on ofborg feedback.
Part of https://github.com/NixOS/nixpkgs/pull/246386
2023-08-01 12:21:05 +02:00
Silvan Mosberger
a0b8caf3bc
Revert "lib.customisation: uncurry makeScopeWithSplicing" 2023-07-28 23:04:09 +02:00
Artturin
3716ef19d8 lib.makeScopeWithSplicing: provide default for keep,extra
These are often unneeded by the user.
2023-07-28 17:41:01 +03:00
Doron Behar
6560d0086c python3.pkgs.pypaBuildHook: init 2023-07-28 12:13:25 +02:00
Doron Behar
1298c367b1 pip-build-hook.sh: Support $pipBuildFlags 2023-07-28 12:13:25 +02:00
Adam Joseph
52d3944057
Merge pull request #212795 from Cynerd/setuptools-rust-hook
Setuptools rust hook for cross compilation
2023-07-28 06:53:09 +00:00
Adam Joseph
cb13669b00 lib.customisation: uncurry makeScopeWithSplicing
Deeply-curried functions are pretty error-prone in untyped languages
like Nix.  This is a particularly bad case because
`top-level/splice.nix` *also* declares a makeScopeWithSplicing, but
it takes *two fewer arguments*.

Let's switch to attrset-passing form, to provide some minimal level
of sanity-checking.
2023-07-27 21:31:59 -07:00
github-actions[bot]
d1b1f7fda7
Merge staging-next into staging 2023-07-27 06:01:53 +00:00
Adam Joseph
2ffca30cde
Revert "python3: splice python within python3Packages.callPackage" 2023-07-27 01:42:35 +00:00
github-actions[bot]
dc058faf6b
Merge staging-next into staging 2023-07-27 00:02:38 +00:00
Artturi
906f999a2f
Merge pull request #245475 from Artturin/splicepython1 2023-07-26 22:43:37 +03:00
github-actions[bot]
bbfd40bb37
Merge staging-next into staging 2023-07-26 06:01:54 +00:00
Artturin
793cc9d982 python3: splice python within python3Packages.callPackage
`lib.extends hooks pythonPackagesFun` includes python which we want to
splice

what this fixes:
```
nix-repl> lib.elemAt pkgsCross.aarch64-multiplatform.python3Packages.xpybutil.nativeBuildInputs 0
«derivation /nix/store/39dkb51rciw6zwg0c2c44gpmpjapddxc-python3-aarch64-unknown-linux-gnu-3.10.12.drv»
```
to
```
nix-repl> lib.elemAt pkgsCross.aarch64-multiplatform.python3Packages.xpybutil.nativeBuildInputs 0
«derivation /nix/store/21ldw2dp26xvv9iyxn9x77a8yh4waqz5-python3-3.10.12.drv»
```

Before https://github.com/NixOS/nixpkgs/pull/194205 The keep python used to work by accident because self was passed from
__splicedPackages https://github.com/NixOS/nixpkgs/pull/196052/files#diff-44ce3495c4f983ce64dd47c86a9d3e77bad210b2709c098a3806998dcd9b000bR213
But now it does not work because overrideAttrs is used on python in
python-packages-base.nix

Preferably we would [ splice the hooks too ](https://github.com/NixOS/nixpkgs/pull/228139) but we cannot do that until [Package sets within derivations (i.e. python3.pkgs) are not spliced](https://github.com/NixOS/nixpkgs/issues/211340) is fixed, because people often use `python3.pkgs.wrapPython` in `nativeBuildInputs` (it's correct but python3.pkgs should be python3Packages to get splicing.
2023-07-26 06:15:26 +03:00
Nick Cao
4570f7fc58
Merge pull request #243074 from mweinelt/cpython-3.12.0b4
python312: 3.12.0b3 -> 3.12.0b4
2023-07-25 19:03:08 -06:00
github-actions[bot]
941ae3102b
Merge staging-next into staging 2023-07-22 12:02:07 +00:00
Felix Bühler
0a2745684e
Merge pull request #239624 from Stunkymonkey/use-optionalString-then
treewide: use optionalString instead of 'then ""'
2023-07-22 13:02:47 +02:00
Sandro
ae6388356f
Merge pull request #153527 from andersk/python3-symlinks
python3: Add manpage symlink to fix ‘man python’
2023-07-20 22:07:42 +02:00
Anders Kaseorg
9c55f23e53
python3: Add manpage symlink to fix ‘man python’
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-07-19 15:33:47 +02:00
Martin Weinelt
6245a65b02
python312: 3.12.0b3 -> 3.12.0b4
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0b4

Fixes: CVE-2023-27043
2023-07-12 15:38:34 +02:00
Janik
7939b3db22
Merge pull request #196802 from jneem/manylinux 2023-07-02 23:23:55 +02:00
Joe Neeman
38d66c2984 pythonManylinuxPackages: add libz and expat
These libs aren't mentioned in PEP 513, but auditwheel allows them
(https://github.com/pypa/auditwheel/issues/152) and so built wheels
may depend on them.
2023-07-02 22:52:11 +07:00
Karel Kočí
9d663f7fcd
setuptools-rust: fix cross compilation
The setuptools-rust requires some environment variables to really
perform cross build, otherwise it just builds for build platform.

This adds setup hook that introduces these environment variables.

There are three variables.
The PYO3_CROSS_LIB_DIR has to point to the target's Python library
directory. This has to be directory for the target not for the build or
host. We have to choose the correct target Python. I am unsure how to do
that simply in nixpkgs and this this implementations just delays this
and waits for the correct Python when package using this hook is build.
The CARGO_BUILD_TARGET triggers cross compilation in setuptools-rust.
This is simply the Rust target specification.
The CARGO_TARGET_*_LINKER variable should not be essentially required
but setuptools-rust probably mangles the Rust build environment somewhat
and that results to the missing linker. By explicitly specifying it
using the environment variable we force the correct linker.
2023-06-30 14:52:25 +02:00
Felix Buehler
6672dde558 treewide: use optionalAttrs instead of 'else {}' 2023-06-25 11:01:34 -03:00
Felix Buehler
f3719756b5 treewide: use optionalString instead of 'then ""' 2023-06-24 20:19:19 +02:00
Weijia Wang
82e6dcefb9 python311Packages.tkinter: fix runtime error on darwin 2023-06-22 17:52:12 +03:00
Martin Weinelt
cea1c49331
python312: 3.12.0b2 -> 3.12.0b3
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0b3
2023-06-21 02:31:58 +02:00
github-actions[bot]
622850f61f
Merge staging-next into staging 2023-06-09 18:01:50 +00:00
Martin Weinelt
342ba7d647
python311: 3.11.3 -> 3.11.4
https://docs.python.org/release/3.11.4/whatsnew/changelog.html

Fixes: CVE-2023-24329
2023-06-07 14:41:15 +02:00
Martin Weinelt
f80d434d94
python310: 3.10.11 -> 3.10.12
https://docs.python.org/release/3.10.12/whatsnew/changelog.html

Fixes: CVE-2023-24329
2023-06-07 14:41:14 +02:00
Martin Weinelt
513023c117
python38: 3.8.16 -> 3.8.17
https://docs.python.org/release/3.8.17/whatsnew/changelog.html

Fixes: CVE-2023-24329
2023-06-07 13:06:32 +02:00
Martin Weinelt
1eecd85622
python39: 3.9.16 -> 3.9.17
https://docs.python.org/release/3.9.17/whatsnew/changelog.html

Fixes: CVE-2023-24329
2023-06-07 12:57:41 +02:00
Martin Weinelt
966069ed81
python312: 3.12.0b1 -> 3.12.0b2
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0b2
2023-06-07 12:54:38 +02:00
Domen Kožar
9f3e0de184 cypthon: moduralize so it can be called with other versions 2023-06-05 17:32:40 +02:00
Domen Kožar
b4222d6661 python: add conditionals to be able to compile with 3.6 or older 2023-06-05 17:32:40 +02:00
Dmitry Bogatov
2f181d6f06 python3.doc: build offline documentation
Since python documentation requires Sphinx to build, documentation is built in
separate derivation to avoid hard recursion/bootstrapping questions and plugged
into main derivation. Care is taken that "python3.doc" derivation feels and
looks as close as possible to as if it were main derivation were multi-output
one.

This change does not cause rebuild of python3 itself.
2023-06-03 16:43:46 +02:00
figsoda
ffbf6f27c9 python3.pkgs.fetchPypi: deprecate in favor of top-level fetchPypi 2023-05-31 13:48:06 -04:00
Martin Weinelt
3f736faef0
python312: 3.12.0a7 -> 3.12.0b1
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0b1
2023-05-23 23:38:45 +02:00
github-actions[bot]
b872b6b45c
Merge staging-next into staging 2023-05-09 06:01:52 +00:00
Martin Weinelt
d237a92e63
update-python-libraries: Fix some issues
discovered by ruff and pyright.
2023-05-07 12:23:52 +02:00
Jonas Chevalier
3d2bdd0788
python: implement PEP 668 (#229166)
Add a marker file to the python outputs that tells pip and other tooling
following PEP 668 that they should not be installing things system-wide.

This provides better feedback to the user and also potentially avoids issues in
single-user installs where the /nix/store is owned by the user.

For more details, see <https://peps.python.org/pep-0668/>

Here is how it currently looks like:

    $ pip install requests
    error: externally-managed-environment

    × This environment is externally managed
    ╰─> This command has been disabled as it tries to modify the immutable
        `/nix/store` filesystem.

        To use Python with Nix and nixpkgs, have a look at the online documentation:
        <https://nixos.org/manual/nixpkgs/stable/#python>.
2023-05-04 18:30:25 +02:00
Martin Weinelt
abc97d3572
Merge pull request #226937 from rhendric/rhendric/update-python-libraries
update-python-libraries: escape vars in regexes
2023-05-03 09:28:32 +02:00
jackyliu16
df2c2e63f1 cpython: add loongarch triplets
using patch ref on: https://github.com/python/cpython/issues/90656
  to add loongarch triplets for using cpython in loongarch

  Note: This patch is being reviewed by cpython
2023-05-01 05:16:32 +08:00
Artturi
44075d60d2
Merge pull request #120220 from grahamc/python-kvetch-on-mismatch 2023-04-28 18:47:17 +03:00
Artturin
d44390ab18 mkPythonDerivation: validate propagatedBuildInputs use a matching python
mkPythonDerivation: apply checks to buildInputs as well

fixup: add a suggestion about nativeBuildInputs

Clean up the wording, add reasons for the suggestions

switch to throw

Adjust error to clarify build-time vs. run-time
2023-04-28 17:59:20 +03:00
Ryan Hendrickson
56a07ba986 update-python-libraries: escape vars in regexes 2023-04-18 18:05:01 -04:00
github-actions[bot]
b6cd4a9e24
Merge staging-next into staging 2023-04-09 12:01:50 +00:00
Vladimír Čunát
dee43206d8
pypy*: fixup build
https://hydra.nixos.org/build/215259697
This is most likely fallout from PR #209870
2023-04-09 11:06:49 +02:00
github-actions[bot]
f28229016d
Merge staging-next into staging 2023-04-08 12:01:37 +00:00
Martin Weinelt
cbb4c1eb7b
python311: 3.11.2 -> 3.11.3
https://docs.python.org/release/3.11.3/whatsnew/changelog.html
2023-04-06 02:16:23 +02:00
Martin Weinelt
f36f64723d
python310: 3.10.10 -> 3.10.11
https://docs.python.org/release/3.10.11/whatsnew/changelog.html
2023-04-05 23:57:11 +02:00
Martin Weinelt
6726464b6a
python312: 3.12.0a6 -> 3.12.0a7
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0-alpha-7
2023-04-05 23:54:37 +02:00
Yureka
f8cbc3c281 tree-wide: convert rust with git deps to importCargoLock 2023-03-26 01:52:04 +01:00
Martin Weinelt
084ddae98b
python312: 3.12.0a5 -> 3.12.0a6
https://docs.python.org/3.12/whatsnew/changelog.html#python-3-12-0-alpha-6
2023-03-08 15:40:03 +01:00
Mario Rodas
bb5edc482e rustpython: fix build on aarch64-linux 2023-03-07 04:20:00 +00:00
Mario Rodas
2689297c50 rustpython: 2022-10-11 -> 0.2.0 2023-03-07 04:20:00 +00:00
superherointj
b3b4bc0052
Merge pull request #208636 from wegank/python-framework
python3: allow enabling framework on darwin
2023-03-04 07:31:34 -03:00
Martin Weinelt
4323150c5c update-python-libraries: Improve code quality
- Prune unused imports
- Collect imports at the top
- Removed unused exception assignments
- Fill bare except clause with
- Expand overly long check_output lines
2023-02-27 02:21:07 +00:00
Martin Weinelt
c4ee7b8f62 update-python-libraries: Make the hash replacement more robust
Retrieve the current package hash and use it for a more precise match,
which allows us to update a derivation in situation where multiple
hashes are present.
2023-02-27 02:21:07 +00:00
Martin Weinelt
4ba1db9876 update-python-libraries: Allow packages to deny bulk updates
By settings `passthru.skipBulkUpdate = true` in a python package, it
will be excluded from bulk update runs.

This is useful in case of fragile packages, that require special
attention during updates.
2023-02-27 02:21:07 +00:00
Martin Weinelt
706cae6532 update-python-libraries: Add support for fetchgit
Previously when packages that required the git fetcher were updated, we
would wrongly rely on `nix-prefetch-url`, which would reliable break the
hash.

Instead we need to use `nix-prefetch-git` to determine the proper hash,
when the relevant attributes are present.
2023-02-27 02:21:07 +00:00
Martin Weinelt
6e78ac9785
Merge pull request #217558 from winterqt/pypy3-fix-site-packages
pypy3{8,9}: fix sitePackages
2023-02-26 23:39:27 +00:00
Martin Weinelt
2af27d6143
pypy: Use hash everywhere
Fixes the build after cpython switched to hash.
2023-02-26 13:11:30 +00:00
Winter
e4dd2b8ca0 pypy3{8,9}: fix sitePackages
When PyPy introduced Python 3.8 support with version 7.3.6, they also
migrated to using CPython's directory layout [0]:

> The 3.8 package now uses the same layout as CPython, and many of the
PyPy-specific changes to `sysconfig`, `distutils.sysconfig`, and
`distutils.commands.install.py` have been removed. The stdlib now is
located in `<base>/lib/pypy3.8` on `posix` systems...

When we upgraded past this version and added Python 3.8 support [1], the
`sitePackages` value was never updated, leading `bootstrapped-pip` to fail
to build, because wheel was trying to be located in `$out/site-packages`,
when it was actually installed to `$out/lib/pypy3.8/site-packages`.

[0]: https://www.pypy.org/posts/2021/10/pypy-v736-release.html
[1]: eec28b8cfd
2023-02-25 13:43:28 -05:00
Alyssa Ross
52c286ee5b
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
	pkgs/development/libraries/pmdk/default.nix
2023-02-23 13:51:34 +00:00
Artturin
f9fdf2d402 treewide: move NIX_CFLAGS_COMPILE to the env attrset
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper

this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
2023-02-22 21:23:04 +02:00
github-actions[bot]
c4fe2133de
Merge staging-next into staging 2023-02-15 06:01:44 +00:00
github-actions[bot]
58cfebde3e
Merge staging-next into staging 2023-02-15 00:02:50 +00:00
Felix Buehler
bc3d5934d7 treewide: use lib.optionals 2023-02-14 19:11:59 +01:00
Felix Buehler
cdb39a86e0 treewide: use optionalString 2023-02-13 21:52:34 +01:00
Alyssa Ross
b4f74e334e
python2: fix eval
Fixes: ee90eca180 ("cpython: Migrate sha256 occurences to hash")
2023-02-13 17:14:19 +00:00
Martin Weinelt
d704ee72c9
python3.tests.nixenv-virtualenv: Fix on darwin
The virtualenv mode is trying to be smart and checks whether it can
write to $out, which for some reason fails on darwin.

> virtualenv: error: argument dest: the destination . is not write-able at /nix/store

But what does work is creating it in the pwd and moving it to $out,
because mv just does what it is told.
2023-02-12 03:03:31 +01:00
Martin Weinelt
20c723dd07
python3.tests.condaExamplePackage: Exclude on non-linux
Allow python3.tests to eval on other platforms than linux, by excluding
conda tests when not on linux, because they include alsa-lib, which is
linux-only.
2023-02-11 23:22:09 +01:00
Martin Weinelt
ee90eca180
cpython: Migrate sha256 occurences to hash 2023-02-11 17:50:53 +01:00
Martin Weinelt
f0b8e02958
python311: 3.11.1 -> 3.11.2
https://docs.python.org/release/3.11.2/whatsnew/changelog.html
2023-02-11 17:50:10 +01:00
Martin Weinelt
f228b9368b
python310: 3.10.9 -> 3.10.10
https://docs.python.org/release/3.10.10/whatsnew/changelog.html
2023-02-11 17:50:10 +01:00
Martin Weinelt
a94804c451
python39: Move out of sources attrset 2023-02-11 17:50:08 +01:00
Artturi
aaa9ea8ec6
Merge pull request #208537 from Artturin/makesetuphooksupportstrictdeps 2023-02-10 20:08:32 +02:00
github-actions[bot]
87e315024e
Merge staging-next into staging 2023-02-09 18:01:44 +00:00
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