Commit | Line | Data |
---|---|---|
13bb41f8 MC |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2015, 2020 Efraim Flashner <efraim@flashner.co.il> | |
3 | ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> | |
4 | ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> | |
5 | ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> | |
7bca6320 | 6 | ;;; Copyright © 2018, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> |
13bb41f8 MC |
7 | ;;; |
8 | ;;; This file is part of GNU Guix. | |
9 | ;;; | |
10 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
11 | ;;; under the terms of the GNU General Public License as published by | |
12 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
13 | ;;; your option) any later version. | |
14 | ;;; | |
15 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
16 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | ;;; GNU General Public License for more details. | |
19 | ;;; | |
20 | ;;; You should have received a copy of the GNU General Public License | |
21 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
22 | ||
23 | (define-module (gnu packages python-build) | |
24 | #:use-module ((guix licenses) #:prefix license:) | |
25 | #:use-module (guix build-system python) | |
26 | #:use-module (guix download) | |
27 | #:use-module (guix packages)) | |
28 | ||
29 | ;;; Commentary: | |
30 | ;;; | |
31 | ;;; Python packages to build... Python packages. Since they are bound to be | |
32 | ;;; relied on by many, their dependencies should be kept minimal, and this | |
33 | ;;; module should not depend on other modules containing Python packages. | |
34 | ;;; | |
35 | ;;; Code: | |
36 | ||
37 | (define-public python-wheel | |
38 | (package | |
39 | (name "python-wheel") | |
40 | (version "0.33.6") | |
41 | (source | |
42 | (origin | |
43 | (method url-fetch) | |
44 | (uri (pypi-uri "wheel" version)) | |
45 | (sha256 | |
46 | (base32 | |
47 | "0ii6f34rvpjg3nmw4bc2h7fhdsy38y1h93hghncfs5akfrldmj8h")))) | |
48 | (build-system python-build-system) | |
49 | (arguments | |
50 | ;; FIXME: The test suite runs "python setup.py bdist_wheel", which in turn | |
51 | ;; fails to find the newly-built bdist_wheel library, even though it is | |
52 | ;; available on PYTHONPATH. What search path is consulted by setup.py? | |
53 | '(#:tests? #f)) | |
54 | (home-page "https://bitbucket.org/pypa/wheel/") | |
55 | (synopsis "Format for built Python packages") | |
56 | (description | |
57 | "A wheel is a ZIP-format archive with a specially formatted filename and | |
58 | the @code{.whl} extension. It is designed to contain all the files for a PEP | |
59 | 376 compatible install in a way that is very close to the on-disk format. Many | |
60 | packages will be properly installed with only the @code{Unpack} step and the | |
61 | unpacked archive preserves enough information to @code{Spread} (copy data and | |
62 | scripts to their final locations) at any later time. Wheel files can be | |
63 | installed with a newer @code{pip} or with wheel's own command line utility.") | |
64 | (license license:expat))) | |
65 | ||
66 | (define-public python2-wheel | |
67 | (package-with-python2 python-wheel)) | |
68 | ||
69 | ;;; XXX: Not really at home, but this seems the best place to prevent circular | |
70 | ;;; module dependencies. | |
71 | (define-public python-toml | |
72 | (package | |
73 | (name "python-toml") | |
74 | (version "0.10.1") | |
75 | (source | |
76 | (origin | |
77 | (method url-fetch) | |
78 | (uri (pypi-uri "toml" version)) | |
79 | (sha256 | |
80 | (base32 | |
81 | "03wbqm5cn685cwx2664hjdpz370njl7lf0yal8s0dkp5w4mn2swj")))) | |
82 | (build-system python-build-system) | |
83 | (arguments | |
84 | `(#:tests? #f)) ;no tests suite in release | |
85 | (home-page "https://github.com/uiri/toml") | |
86 | (synopsis "Library for TOML") | |
87 | (description | |
88 | "@code{toml} is a library for parsing and creating Tom's Obvious, Minimal | |
89 | Language (TOML) configuration files.") | |
90 | (license license:expat))) | |
91 | ||
92 | (define-public python-pep517-bootstrap | |
93 | (hidden-package | |
94 | (package | |
95 | (name "python-pep517-bootstrap") | |
96 | (version "0.9.1") | |
97 | (source | |
98 | (origin | |
99 | (method url-fetch) | |
100 | (uri (pypi-uri "pep517" version)) | |
101 | (sha256 | |
102 | (base32 | |
103 | "0zqidxah03qpnp6zkg3zd1kmd5f79hhdsfmlc0cldaniy80qddxf")))) | |
104 | (build-system python-build-system) | |
105 | (arguments | |
106 | `(#:tests? #f)) ;to avoid circular dependencies | |
107 | (propagated-inputs | |
108 | `(("python-toml" ,python-toml) | |
109 | ("python-wheel" ,python-wheel))) | |
110 | (home-page "https://github.com/pypa/pep517") | |
111 | (synopsis "Wrappers to build Python packages using PEP 517 hooks") | |
112 | (description | |
113 | "Wrappers to build Python packages using PEP 517 hooks.") | |
114 | (license license:expat)))) | |
115 | ||
7bca6320 MC |
116 | ;;; The name 'python-pypa-build' is chosen rather than 'python-build' to avoid |
117 | ;;; a name clash with python-build from (guix build-system python). | |
118 | (define-public python-pypa-build | |
119 | (package | |
120 | (name "python-pypa-build") | |
121 | (version "0.1.0") | |
122 | (source (origin | |
123 | (method url-fetch) | |
124 | (uri (pypi-uri "build" version)) | |
125 | (sha256 | |
126 | (base32 | |
127 | "1d6m21lijwm04g50nwgsgj7x3vhblzw7jv05ah8psqgzk20bbch8")))) | |
128 | (build-system python-build-system) | |
129 | (arguments | |
130 | `(#:tests? #f)) ;to tests in the PyPI release | |
131 | (propagated-inputs | |
132 | `(("python-pep517", python-pep517-bootstrap) | |
133 | ("python-toml" ,python-toml))) | |
134 | (home-page "https://pypa-build.readthedocs.io/en/latest/") | |
135 | (synopsis "Simple Python PEP 517 package builder") | |
136 | (description "The @command{build} command invokes the PEP 517 hooks to | |
137 | build a distribution package. It is a simple build tool and does not perform | |
138 | any dependency management. It aims to keep dependencies to a minimum, in | |
139 | order to make bootstrapping easier.") | |
140 | (license license:expat))) | |
141 | ||
13bb41f8 MC |
142 | (define-public python-poetry-core |
143 | (package | |
144 | (name "python-poetry-core") | |
145 | (version "1.0.0") | |
146 | (source | |
147 | (origin | |
148 | (method url-fetch) | |
149 | (uri (pypi-uri "poetry-core" version)) | |
150 | (sha256 | |
151 | (base32 "1mgv276h1iphn5fqhp2sgkgd5d0c39hs33vgaf157x5ri7rlyrka")))) | |
152 | (build-system python-build-system) | |
153 | (home-page "https://github.com/python-poetry/poetry-core") | |
154 | (synopsis "Poetry PEP 517 build back-end") | |
155 | (description | |
156 | "The @code{poetry-core} module provides a PEP 517 build back-end | |
157 | implementation developed for Poetry. This project is intended to be | |
158 | a light weight, fully compliant, self-contained package allowing PEP 517 | |
159 | compatible build front-ends to build Poetry managed projects.") | |
160 | (license license:expat))) |