Commit graph

65 commits

Author SHA1 Message Date
Sandro Jäckel 14af34c2f4
treewide: remove lib.{lists,string}.optional* 2021-07-29 14:15:12 +02:00
Sandro Jäckel dc48d23a0f
Convert phases that contain ":" to dont* = true 2021-07-17 23:39:16 +02:00
Frederik Rietdijk 983c453eec python2Packages: keep separate (bootstrapped-)pip
Currently there is only one line difference regarding bootstrapped-pip,
but this will change in the future with the whole Python world moving
towards PEP 517.
2021-03-23 10:43:45 +01:00
Frederik Rietdijk 252ae44416 python3Packages.setuptools: 50.3.1 -> 54.2.0 2021-03-23 10:43:45 +01:00
Pavol Rusnak a4bbfba80d
pkgs/development/python-modules: stdenv.lib -> lib 2021-01-24 01:29:22 +01:00
Ben Wolsieffer 1a65c5df5f cpython: fix finding headers when cross-compiling extension modules 2020-12-28 13:09:00 +01:00
Frederik Rietdijk b0e372864a python3Packages.pip: 20.2.4 -> 20.3 2020-12-01 14:44:26 +01:00
Frederik Rietdijk 76966f8ddd pythonPackages.pip-install-hook: remove --build option
Pip had the option --build to build in a custom or temporary directory.
Nowadays, pip just listens to TMPDIR, which we already set.

This option was deprecated and is removed in pip 20.3.
2020-12-01 14:44:26 +01:00
Frederik Rietdijk 0a12b8a5e9 Revert "Revert "Revert "cpython: fix finding headers when cross-compiling extension modules"""
This still does not function without issues. E.g., bootstrapped-pip fails with Python 3.6 and 3.7
as well as 3.8 on 32-bit.

Because this is a stdenv-rebuild it needs to be tested significantly better

This reverts commit 6100bc29f7.
2020-11-25 10:34:23 +01:00
Frederik Rietdijk 6100bc29f7 Revert "Revert "cpython: fix finding headers when cross-compiling extension modules""
Moving the sysconfig file caused spidermonkey_78 to fail to build. We now symlink it instead.

This reverts commit 6a23dde75b.
2020-11-23 15:29:23 +01:00
Frederik Rietdijk 6a23dde75b Revert "cpython: fix finding headers when cross-compiling extension modules"
This breaks virtualenv https://github.com/NixOS/nixpkgs/issues/104483.
We should probably not move `_sysconfigdata` but just copy it for cross to
another place or output.

This reverts commit 11806b6ede.
2020-11-22 13:13:23 +01:00
Ben Wolsieffer 11806b6ede cpython: fix finding headers when cross-compiling extension modules 2020-11-19 20:42:58 +01:00
Frederik Rietdijk b66f954dfc python2.pkgs.pip: fix regression in 20.2 2020-11-05 16:10:05 +01:00
Frederik Rietdijk 75d9e713d9 python3.pkgs.pip: 20.1.1 -> 20.2.4
Reproducible builds of pyproject projects using pip is resolved.

Fixes https://github.com/pypa/pip/issues/7808
Fixes https://github.com/NixOS/nixpkgs/issues/81441

The more recent c409f69480 caused trouble
with pyproject troubles and had to be reverted anyway.
https://github.com/NixOS/nixpkgs/pull/102222#issuecomment-722380794

Revert "pythonPackages.pip: make reproducible (#102222)"

This reverts commit c409f69480.

Revert "python3Packages.pip: allow setting reproducible temporary directory via NIX_PIP_INSTALL_TMPDIR"

This reverts commit aedbade43e.
2020-11-05 15:44:14 +01:00
zimbatm c409f69480
pythonPackages.pip: make reproducible (#102222)
The previous attempt wasn't covering all of the bases. It relied on
invoking that pip-install-hook, and didn't apply to pip itself.

The core issue is that the generated .pyc files embed some of the
temporary paths, which are randomly generated. See
https://r13y.com/diff/bf8c3ca3148ebff9ecf41f294cc60b9f209c006d49699e356969ff32d736f1c6-8806a7cca91fdd300e48736bfcd57c4d0b54c1cc2fd61609f35143170862b59c.html

In this new attempt, the approach is to patch the TempFile
implementation directly, so that it creates stable temporary
directories. We also assume that if SOURCE_DATE_EPOCH is set, we are in
a scenario where reproducible builds are desirable and enter that
branch.

See also https://github.com/pypa/pip/issues/7808
2020-10-31 21:24:36 +01:00
Frederik Rietdijk 56727dc1ff Python: setuptools/wheel/pip now bootstrap from source
Since wheel support was introduced in 2015 we always relied on pre-built
wheels for bootstrapping. Now, we can bootstrap directly from the
sources of these packages in git.

The `bootstrapped-pip` packages is used to build `pip`, `setuptools` and `wheel`,
after which those packages are used to build everything else.

Note that when building `bootstrapped-pip` some errors are shown.
These are not important, the build actually does succeed and work as intended.
2019-10-20 19:48:00 +02:00
Frederik Rietdijk 6a9de0eb79 python.pkgs.bootstrapped-pip: 19.3 -> 19.3.1 2019-10-18 12:41:53 +02:00
Frederik Rietdijk 7728edab00 python.pkgs.bootstrapped-pip: upgrade pip and setuptools 2019-10-18 09:53:55 +02:00
Frederik Rietdijk dc95e17fc2 python: bootstrapped-pip: update wheel, setuptools, pip
wheel 33.4 -> 33.6
setuptools 41.0.1 -> 42.2.0
pip 19.1.1 -> 19.2.3
2019-09-06 15:18:45 +02:00
Frederik Rietdijk f7e28bf5d8 Split buildPythonPackage into setup hooks
This commit splits the `buildPythonPackage` into multiple setup hooks.

Generally, Python packages are built from source to wheels using `setuptools`.
The wheels are then installed with `pip`. Tests were often called with
`python setup.py test` but this is less common nowadays. Most projects
now use a different entry point for running tests, typically `pytest`
or `nosetests`.

Since the wheel format was introduced more tools were built to generate these,
e.g. `flit`. Since PEP 517 is provisionally accepted, defining a build-system
independent format (`pyproject.toml`), `pip` can now use that format to
execute the correct build-system.

In the past I've added support for PEP 517 (`pyproject`) to the Python
builder, resulting in a now rather large builder. Furthermore, it was not possible
to reuse components elsewhere. Therefore, the builder is now split into multiple
setup hooks.

The `setuptoolsCheckHook` is included now by default but in time it should
be removed from `buildPythonPackage` to make it easier to use another hook
(curently one has to pass in `dontUseSetuptoolsCheck`).
2019-09-06 15:18:45 +02:00
Frederik Rietdijk 9f57b6680a python.pkgs.bootstrapped-pip: updates
wheel: 0.33.1 -> 0.33.4
setuptools: 41.0.0 -> 41.0.1
pip: 19.0.3 -> 19.1.1
2019-06-15 08:46:32 +02:00
Frederik Rietdijk 8ae35163f7 pythonPackages.bootstrapped-pip: setuptools 40.8.0 -> 41.0.0 2019-04-18 12:42:43 +02:00
Frederik Rietdijk 8ce693e81b python.pkgs.bootstrapped-pip: pip 19.0.2 -> 19.0.3, wheel 0.33.0 -> 0.33.1 2019-02-23 20:05:18 +01:00
Frederik Rietdijk e4524dc51c python.pkgs.bootstrapped-pip: wheel 0.32.2 -> 0.33.0, setuptools 40.6.3 -> 40.8.0, pip 18.1 -> 19.0.2 2019-02-17 14:40:48 +01:00
Frederik Rietdijk fe348a1a7d python.pkgs.bootstrapped-pip: setuptools 40.6.2 -> 40.6.3 2019-01-18 09:37:10 +01:00
Frederik Rietdijk c02b47b625 python.pkgs.bootstrapped-pip: setuptools: 40.4.3 -> 40.6.2 2018-12-03 16:50:40 +01:00
Frederik Rietdijk 9450674e06 python.pkgs.bootstrapped-pip: wheel 0.32.1 -> 0.32.2 2018-10-24 20:05:44 +02:00
Frederik Rietdijk b05a5969fc python.pkgs.bootstrapped-pip: update pip, setuptools and wheel 2018-10-13 09:50:17 +02:00
Frederik Rietdijk f68a5ec9b5 pythonPackages.bootstrapped-pip: setuptools: 40.0.0 -> 40.2.0 2018-08-25 18:07:19 +02:00
Frederik Rietdijk 20f3647c2f python.pkgs.bootstrapped-pip: update pip and setuptools 2018-07-26 12:43:14 +02:00
volth 52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
Frederik Rietdijk ccd8ac2286 python.pkgs.bootstrapped-pip: setuptools 39.0.1 -> 39.2.0 2018-06-02 13:44:39 +02:00
Frederik Rietdijk 0b9ec1e629 python.pkgs.bootstrapped-pip: wheel 0.31.0 -> 0.31.1 2018-06-02 13:44:39 +02:00
Robert Schütz f13cf52a84 python.pkgs.bootstrapped-pip: wheel: 0.30.0 -> 0.31.0 2018-05-05 07:36:39 +02:00
Robert Schütz b99d7727b9 python.pkgs.bootstrapped-pip: remove pkg_resources patch 2018-05-05 07:27:10 +02:00
Frederik Rietdijk 6d2dd33070 python.pkgs.bootstrapped-pip: 9.0.3 -> 10.0.1 2018-04-21 08:10:24 +02:00
Frederik Rietdijk e450ce6b7f python.pkgs.bootstrapped-pip: pip 9.0.1 -> 9.0.3 , setuptools 38.4.1 -> 39.0.1 2018-04-08 11:36:07 +02:00
Frederik Rietdijk 55ef50c257 python.pkgs.bootstrapped-pip: setuptools 38.4.0 -> 38.4.1 2018-02-26 19:06:01 +01:00
Will Dietz 4e80b56c3c bootstrapped-pip: fix for cross (nativeBuildInputs) 2018-01-22 17:19:03 -06:00
Frederik Rietdijk 87340d32bb python.pkgs.bootstrapped-pip update setuptools 38.2.5 -> 38.4.0 2018-01-07 09:47:15 +01:00
Frederik Rietdijk d3b85a4607 python.pkgs.setuptools: 38.2.3 -> 38.2.5 2017-12-31 11:01:56 +01:00
Spencer Baugh 70c1899768 python.pkgs.setuptools: 36.7.1 -> 38.2.3 2017-12-07 14:14:15 +01:00
Frederik Rietdijk 24b7b3e49f python.pkgs.setuptools: 36.4.0/36.6.0 -> 36.7.1 2017-11-23 15:11:03 +01:00
Frederik Rietdijk 23ad2b2e7a python.pkgs.bootstrapped-pip: fix hash
Hash was forgotten in
a26ae760e2.
The newer version of pkg_resources, 36.4.0, is actually incomplete.
Therefore, let's stick with the older version which didn't cause any
issues.
2017-10-07 12:57:10 +02:00
Frederik Rietdijk 88367b1e78 python.pkgs.wheel: 0.29.0 -> 0.30.0 2017-09-13 09:03:09 +02:00
Frederik Rietdijk a26ae760e2 python.pkgs.setuptools: upgrade to 36.4.0 2017-09-07 15:06:22 +02:00
Frederik Rietdijk 3b83c23012 python.pkgs.bootstrapped-pip: upgrade pkg_resources, fixes #26392
pip 9.0.1 vendors a version of setuptools/pkg_resources which has been
fixed in setuptools/pkg_resources but not yet in pip. Because we're now
facing this issue with nox, we update pkg_resources to the version we
also have in setuptools. Let's cross our fingers this will work without
breaking other stuff.
2017-06-07 17:29:23 +02:00
Frederik Rietdijk 76e082922f python.pkgs.bootstripped-pip: remove obsolete argparse code
because we no longer have Python 2.6.
2017-06-06 14:42:10 +02:00
Frederik Rietdijk bdd3f30739 python.pkgs.bootstrapped-pip: update setuptools to 36.0.1 2017-06-01 18:24:58 +02:00
Frederik Rietdijk 47d4575255 pythonPackages.setuptools: 28.8.0 -> 30.2.0 2016-12-05 17:33:21 +01:00