Commit graph

72 commits

Author SHA1 Message Date
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 501314c9e8 pythonPackages.setuptools: 41.4.0 2019-10-18 09:53:55 +02:00
Eric Culp 90be4c2c78 pythonPackages.setuptools: Remove windows files and make reproducible
- setuptools includes *.exe files by default, but can be excluded with an ENV variable.
- setuptools was built as an egg, which had reproducibility problems. Instead use a wheel

These are various *.exe and *.xml files used only on windows. setuptools
includes them by default since it normally creates a single release for
all operating systems.

This reduces the size from 1020.0K to 801.6K according to `nix-path -sh`.

The egg is a zip file. setuptools leaves timestamps in the egg,
which makes the build unreproducible. Unfortunately the files aren't
compressed so the size of setuptools increases to 2.3M from 0.8M
according to `nix path-info -sh`.

With this change, setuptools is reproducible according to

    nix-build -A python37Packages.setuptools --check
2019-10-14 08:44:43 +02:00
Frederik Rietdijk 0570a6b126 python.pkgs.setuptools: 0.33.4 -> 0.33.6 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 58dba9ee3e python: setuptools: 41.0.0 -> 41.0.1 2019-04-24 18:43:26 +02:00
Frederik Rietdijk 7629c4f9dc pythonPackages.setuptools: 40.8.0 -> 41.0.0 2019-04-18 12:42:43 +02:00
Frederik Rietdijk 87ce3fa021 python: setuptools: 40.6.3 -> 40.8.0 2019-02-17 14:40:41 +01:00
Frederik Rietdijk e7f05dff34 python: setuptools: 40.6.2 -> 40.6.3 2019-01-18 09:37:10 +01:00
Frederik Rietdijk f665828fa3 Python: improve cross-compilation
This changeset allows for cross-compilation of Python packages. Packages
built with buildPythonPackage are not allowed to refer to the build
machine. Executables that have shebangs will refer to the host.
2019-01-04 10:45:22 +01:00
Frederik Rietdijk faf47b0c23 python: setuptools: 40.5.0 -> 40.6.2 2018-12-03 16:50:40 +01:00
Frederik Rietdijk 2da03a2ccf python: setuptools: 40.4.3 -> 40.5.0 2018-12-03 16:50:35 +01:00
Frederik Rietdijk 5bdb08a402 python: setuptools: 40.2.0 -> 40.4.3 2018-10-24 20:05:44 +02:00
Frederik Rietdijk d9cb046ac8 python: setuptools: 40.0.0 -> 40.2.0 2018-08-25 18:07:16 +02:00
Frederik Rietdijk 16bd495463 python: setuptools: 39.2.0 -> 40.0.0 2018-07-26 12:43:14 +02:00
Frederik Rietdijk 4eb3784c55 python.pkgs.setuptools: 39.0.1 -> 39.2.0 2018-06-22 13:09:37 +02:00
Frederik Rietdijk 58cdabf9cf python.pkgs.setuptools: 38.4.1 -> 39.0.1 2018-04-08 11:36:07 +02:00
Frederik Rietdijk 50c978fae0 python: setuptools: 38.4.0 -> 38.4.1 2018-02-26 19:04:25 +01:00
Will Dietz e33499bd30 python setuptools: fix for cross (nativeBuildInputs) 2018-01-22 17:19:02 -06:00
Frederik Rietdijk 3726bbc262 python: setuptools: 38.2.5 -> 38.4.0 2018-01-07 09:47:14 +01:00
Frederik Rietdijk d3b85a4607 python.pkgs.setuptools: 38.2.3 -> 38.2.5 2017-12-31 11:01:56 +01:00
Orivej Desh 19b82ec144 Revert "pythonPackages.setuptools: make compatible with hasPythonModule"
The packages with this change can not be evaluated with `nix-env --drv-path` or
`hydra-eval-jobs`: 859dc02fa3

This reverts commit 859dc02fa3.
2017-12-08 14:21:20 +00:00
Asko Soukka 859dc02fa3 pythonPackages.setuptools: make compatible with hasPythonModule 2017-12-08 08:55:53 +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
Pascal Wittmann 24e87b49b6
Change many homepage urls from http to https #30636 2017-11-10 22:13:46 +01:00
Frederik Rietdijk 7ce848309e python.pkgs: updates 2017-10-27 21:34:42 +02:00
Frederik Rietdijk a26ae760e2 python.pkgs.setuptools: upgrade to 36.4.0 2017-09-07 15:06:22 +02:00
Frederik Rietdijk d58e1f1c7b python.pkgs: many updates 2017-08-25 19:36:14 +02:00
Michael Weiss 4b0afc169d zpl*: Fix the attribute name of the license
This was simply a typo since the license was added in 2013.
2017-08-06 13:49:18 +02:00
Frederik Rietdijk 6dfbfd6a07 python.pkgs.setuptools: 30.2.0 -> 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 d83d2ba4f3 pythonPackages.setuptools: 26.1.1 -> 28.8.0 2016-11-15 00:05:56 +01:00
Frederik Rietdijk 9a851907a8 pythonPackages.setuptools: 19.4 -> 26.1.1 2016-09-01 16:16:31 +02:00
Frederik Rietdijk 8fad3e81b0 pythonPackages.setuptools: specify priority
Both python3 and setuptools come with easy-install. For some magic
reason this hasn't caused any collisions yet, but it does with #17428.
We hereby prioritize the version that comes with setuptools.
2016-08-02 12:23:15 +02:00
Frederik Rietdijk def310df45 pythonPackages.setuptools: fix for use in buildEnv
pythonPath needs to be set for it to be included in buildEnv.
This will also fix tox.
2016-07-02 23:44:10 +02:00
Frederik Rietdijk d5e6a4494a Python: use PyPI mirror (#15001)
* mirrors: add pypi

* Python: Use pypi mirror for all PyPI packages
2016-04-26 13:38:03 +01:00
Corey Farwell beabbc228c Fetch setuptools from PyPi via HTTPS. 2016-03-22 15:10:08 -04: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 d0809c2925 setuptools: cleanup expression 2015-11-21 21:44:12 +01:00
Domen Kožar 6a9aeea26d setuptools: revert back to 18.2 as 18.4 breaks packages 2015-10-27 19:43:53 +01:00
Domen Kožar 24cbc374cf nova: 2011.2 -> 12.0.0 2015-10-27 11:52:40 +01:00
Domen Kožar e5b6de902f setuptools: 18.0.1 -> 18.2
(cherry picked from commit 43b3f6e59d5e948adeab1ffd74a09ec252b372fd)
Signed-off-by: Domen Kožar <domen@dev.si>
2015-08-27 18:46:10 +02:00
Vladimír Čunát 9f37e91ec5 Merge master into staging
There are larger-rebuild changes: gnutls and samba.
2015-07-17 06:38:04 +02:00
William A. Kennington III c284b83678 setuptools: 7.0 -> 18.0.1 2015-07-15 17:45:19 -07:00
Vincent Laporte 1c5c4e91d7 pypy: fix build (ZHF) 2015-07-15 19:40:56 +02:00
Domen Kožar 9218987008 setuptools: 5.8 -> 7.0 2014-11-30 20:42:06 +01:00
Domen Kožar cee221bc84 setuptools: 2.1 -> 5.8 2014-09-18 14:03:16 +02:00
Domen Kozar fedd018d93 fix pypy and pypyPackages 2014-03-07 14:34:06 +01:00
Domen Kožar 7cdab2c024 pythonPackages.setuptools: 2.0.2 -> 2.1 2014-02-20 01:19:15 +01:00