summaryrefslogtreecommitdiffstats
path: root/pkgs/development/interpreters/python/pypy/default.nix
AgeCommit message (Collapse)Author
2024-05-12pypy: drop pycparser dependency to fix buildMichael Raskin
2024-04-11Revert "Fix venv creation in Python environments"Sandro Jäckel
This commit reverts all python changes from 234bb31f611f43f8b744b305ab82035de637aaca.
2024-03-22Merge pull request #297628 from cwp/python-env-venvDomen Kožar
Fix venv creation in Python environments
2024-03-21Fix venv creation in Python environmentsColin Putney
The way we build python environments is subtly broken. A python environment should be semantically identical to a vanilla Python installation in, say, /usr/local. The current implementation, however, differs in two important ways. The first is that it's impossible to use python packages from the environment in python virtual environments. The second is that the nix-generated environment appears to be a venv, but it's not. This commit changes the way python environments are built: * When generating wrappers for python executables, we inherit argv[0] from the wrapper. This causes python to initialize its configuration in the environment with all the correct paths. * We remove the sitecustomize.py file from the base python package. This file was used tweak the python configuration after it was incorrectly initialized. That's no longer necessary. The end result is that python environments no longer appear to be venvs, and behave more like a vanilla python installation. In addition it's possible to create a venv using an environment and use packages from both the environment and the venv.
2024-03-19treewide: add meta.mainProgram to packages with a single binarystuebinm
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
2023-12-10pypy: add option to change optimization level, update homepage, cleanupSandro Jäckel
2023-02-26Merge pull request #217558 from winterqt/pypy3-fix-site-packagesMartin Weinelt
pypy3{8,9}: fix sitePackages
2023-02-26pypy: Use hash everywhereMartin Weinelt
Fixes the build after cpython switched to hash.
2023-02-25pypy3{8,9}: fix sitePackagesWinter
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]: eec28b8cfd7923a876fb47af8a0459c1a550fd97
2023-02-13treewide: use optionalStringFelix Buehler
2023-01-08pypy39: fix pypy3 symlinkThiago Kenji Okada
2023-01-08pypy{27,38,39}: remove global with libThiago Kenji Okada
2023-01-08pypy{27,38,39}: refactor derivationThiago Kenji Okada
- 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-08pypy27: unbreak on aarch64-darwinWeijia Wang
2023-01-07pypy{27,38,39}: mark as broken in aarch64-darwinThiago Kenji Okada
2023-01-07pypy39: fix build in darwinThiago Kenji Okada
2023-01-07pypy{27,38,39}: remove i686-linux, add aarch64-darwinThiago Kenji Okada
2022-12-02pypy2, pypy3: drop unused xlibsWrapperSergei Trofimovich
2022-10-17pypy: fix executable name for 3.9Jörg Thalheim
2022-08-06pythonPackagesExtensions: override all Python package sets at onceFrederik Rietdijk
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.
2021-07-16pypy: 7.3.3 -> 7.3.5Dmitry Kalinkin
2021-07-16pypy: don't try to fetch vendored dependencies for cffi bindingsDmitry Kalinkin
Specifically, this affects _ssl and lzma. This should be useful on Hydra/macOS where sandboxing is disabled.
2021-07-16pypy: fix for sandboxed darwinDmitry Kalinkin
The implementation of multiprocessing.cpu_count() tries to call the impure sysctl binary. In the sandbox that fails, so cffi bindings are not generated.
2021-04-04lzma: deprecate aliasSandro Jäckel
2021-02-13Merge pull request #104150 from andersk/pypy-7.3.2taku0
pypy, pypy3: 7.3.1 → 7.3.2
2021-01-23pkgs/development/interpreters: stdenv.lib -> libBen Siraphob
2021-01-19treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nixJonathan Ringer
continuation of #109595 pkgconfig was aliased in 2018, however, it remained in all-packages.nix due to its wide usage. This cleans up the remaining references to pkgs.pkgsconfig and moves the entry to aliases.nix. python3Packages.pkgconfig remained unchanged because it's the canonical name of the upstream package on pypi.
2020-11-28Python: rename parameters and arguments passed to passthruFrederik Rietdijk
As part of the splicing the build/host/target combinations of the interpreter need to be passed around internally. The chosen names were not very clear, implying they were package sets whereas actually there were derivations.
2020-11-28Python: use pythonPackagesBuildHost instead of pythonForBuildFrederik Rietdijk
Follow-up to #104201, related to #105113.
2020-11-19python: Use `makeScopeWithSplicing`John Ericson
Now non-`buildInputs` that are python packages should be resolved correctly.
2020-11-18pypy: enable aarch64-linux platformBernardo Meurer
2020-11-18pypy, pypy3: Follow Heptapod move for download URLAnders Kaseorg
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2020-08-10pypy, pypy3: 7.1.1 -> 7.3.1Anders Kaseorg
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2020-05-23pypy: Remove bootstrap python from closureadisbladis
2020-04-10treewide: Per RFC45, remove all unquoted URLsMichael Reilly
2020-02-28pypy{,3}: use openssl_1_1Emily
"We now support building PyPy with OpenSSL 1.1 in our built-in _ssl module, as well as maintaining support for previous versions." -- https://pypy.readthedocs.io/en/latest/release-pypy2.7-v5.6.0.html
2019-10-26pypy: fix build on darwinMario Rodas
2019-12-16python: remove _manylinux.pyAndreas Rammhold
This will turn manylinux support back on by default. PIP will now do runtime checks against the compatible glibc version to determine if the current interpreter is compatible with a given manylinux specification. However it will not check if any of the required libraries are present. The motivation here is that we want to support building python packages with wheels that require manylinux support. There is no real change for users of source builds as they are still buildings packages from source. The real noticeable(?) change is that impure usages (e.g. running `pip install package`) will install manylinux packages that previously refused to install. Previously we did claim that we were not compatible with manylinux and thus they wouldn't be installed at all. Now impure users will have basically the same situation as before: If you require some wheel only package it didn't work before and will not properly work now. Now the program will fail during runtime vs during installation time. I think it is a reasonable trade-off since it allows us to install manylinux packages with nix expressions and enables tools like poetry2nix. This should be a net win for users as it allows wheels, that we previously couldn't really support, to be used.
2019-08-28treewide: remove redundant recvolth
2019-08-21Merge remote-tracking branch 'upstream/master' into openssl-1.1Robin Gloster
2019-08-13pypy{2,27,3,35 -> 36}: 7.0.0 -> 7.1.1Emily
2019-08-02Merge remote-tracking branch 'upstream/master' into openssl-1.1Robin Gloster
2019-07-30swiften, pypy: Mark as brokenMichael Weiss
swiften is broken since 2018-10-18: x86_64-linux: https://hydra.nixos.org/build/97180305 aarch64-linux: https://hydra.nixos.org/build/97193043 pypy is broken since 2019-05-29: x86_64-linux (pypy): https://hydra.nixos.org/build/97214777 x86_64-linux (pypy3): https://hydra.nixos.org/build/97221287 The builds for swiften and reposurgeon (depends on pypy) regularly fail during rebuilds for SCons updates (e.g. [0]). [0]: https://github.com/NixOS/nixpkgs/pull/65392
2019-07-29pypy: use openssl 1.0.2Andreas Rammhold
While upstream claims support of OpenSSL 1.1 the test suite fails.
2019-07-13Python: add sitecustomize.py, listen to NIX_PYTHONPATHFrederik Rietdijk
This commit adds a Nix-specific module that recursively adds paths that are on `NIX_PYTHONPATH` to `sys.path`. In order to process possible `.pth` files `site.addsitedir` is used. The paths listed in `PYTHONPATH` are added to `sys.path` afterwards, but they will be added before the entries we add here and thus take precedence. The reason for adding support for this environment variable is that we can set it in a wrapper without breaking support for `PYTHONPATH`.
2019-06-16treewide: remove unused variables (#63177)volth
* treewide: remove unused variables * making ofborg happy
2019-04-28python: provide hasCxxDistutils attribute for pythonPackages.numpyDmitry Kalinkin
Patching numpy.distutils used to be required for pythonPackages.cython to build on darwin. It was later accidentally disabled during one of the refactorings, but that did not break cython. This change reinstantiates the patch. It still applies, so it should be low maintenance and it can still be useful.
2019-04-09pypy: Disable broken test on 3.x.Corbin
2019-01-16pypy, pypy3: Remove wrapperAnders Kaseorg
The wrapper is not needed because the runpath is already set correctly, and LD_LIBRARY_PATH was breaking child processes linked against different libc versions. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-01-16pypy: Correct Python version in meta descriptionAnders Kaseorg
Signed-off-by: Anders Kaseorg <andersk@mit.edu>