Commit Graph

52 Commits

Author SHA1 Message Date
Frederik Rietdijk
61a04f735a 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:07:21 +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
Frederik Rietdijk
27a6d61881 pythonPackages.pip: 8.1.2 -> 9.0.1 2016-11-15 00:05:56 +01:00
Frederik Rietdijk
d83d2ba4f3 pythonPackages.setuptools: 26.1.1 -> 28.8.0 2016-11-15 00:05:56 +01:00
Frederik Rietdijk
321e073629 Python: bootstrapped-pip: use python.libPrefix in name
See 4de7cbdf04
2016-10-21 14:04:16 +02:00
Vladimír Čunát
4de7cbdf04 pythonPackages.pip: do not name it python-*
Fixes #19691.  Feel free to find a beter naming.
2016-10-20 17:59:31 +02:00
Frederik Rietdijk
9a851907a8 pythonPackages.setuptools: 19.4 -> 26.1.1 2016-09-01 16:16:31 +02:00
Jude Taylor
582fef1299 fix pip URL 2016-05-12 13:55:40 -07:00
Frederik Rietdijk
5d68baa8db Python bootstrapped-pip: 8.1.1 -> 8.1.2 2016-05-12 14:27:51 +02:00
Frederik Rietdijk
58a65c013d python.bootstrapped-pip: 8.0.2 -> 8.1.1 2016-03-28 13:35:46 +02:00
Domen Kožar
9c274b4bef bootstrapped-pip: support Python 2.6 2016-03-24 15:44:34 +00:00
Frederik Rietdijk
7ddd3a0d30 python bootstrapped-pip: wheel 0.26.0 -> 0.29.0 2016-02-08 20:47:23 +01:00
Frederik Rietdijk
e552ad11e3 python bootstrapped-pip: pip 7.1.2 -> 8.0.2 2016-02-08 20:41:54 +01:00
Frederik Rietdijk
e0d0f8dbd2 pythonPackages.setuptools and bootstrapped-pip: 18.2 -> 19.4
Update to latest setuptools. Latest setuptools will always try to run tests.
This can cause some very vague errors. We now need to fix all packages where we do not
invoke the correct test runner.
2016-01-24 14:34:01 +01:00
Domen Kožar
fc611fe634 buildPythonPackage: fix --prefix also for pip install -e 2015-11-23 17:21:46 +01:00