Commit | Line | Data |
---|---|---|
7c4810a1 CR |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com> | |
264ae686 | 3 | ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> |
67c05f58 | 4 | ;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org> |
cbb488d6 | 5 | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
7a565dc9 | 6 | ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> |
7c4810a1 CR |
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 openstack) | |
b39667cd | 24 | #:use-module (gnu packages) |
ac257f12 | 25 | #:use-module (gnu packages check) |
c8d7e063 | 26 | #:use-module (gnu packages gnupg) |
7c4810a1 | 27 | #:use-module (gnu packages python) |
cc6f4912 | 28 | #:use-module (gnu packages python-crypto) |
1b2f753d | 29 | #:use-module (gnu packages python-web) |
44d10b1f | 30 | #:use-module (gnu packages python-xyz) |
9d0c291e | 31 | #:use-module (gnu packages sphinx) |
381000d7 | 32 | #:use-module (gnu packages ssh) |
33dc54b0 | 33 | #:use-module (gnu packages time) |
c9e330d0 | 34 | #:use-module (gnu packages tls) |
d4431993 | 35 | #:use-module (gnu packages version-control) |
55e1475c | 36 | #:use-module (gnu packages xml) |
7c4810a1 CR |
37 | #:use-module (guix build-system python) |
38 | #:use-module (guix download) | |
39 | #:use-module ((guix licenses) | |
40 | #:select (asl2.0)) | |
c9e330d0 EF |
41 | #:use-module (guix packages) |
42 | #:use-module (srfi srfi-1)) | |
7c4810a1 | 43 | |
f5a21dc4 CR |
44 | (define-public python-bandit |
45 | (package | |
46 | (name "python-bandit") | |
231bd07e | 47 | (version "1.4.0") |
f5a21dc4 CR |
48 | (source |
49 | (origin | |
50 | (method url-fetch) | |
231bd07e | 51 | (uri (pypi-uri "bandit" version)) |
f5a21dc4 CR |
52 | (sha256 |
53 | (base32 | |
231bd07e | 54 | "1m5bm42120zyazky4k0lp3d9r0jwhjmp6sb108xfr0vz952p15yb")))) |
f5a21dc4 | 55 | (build-system python-build-system) |
231bd07e MB |
56 | (arguments |
57 | `(#:phases (modify-phases %standard-phases | |
58 | (delete 'check) | |
59 | (add-after 'install 'check | |
60 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
61 | ;; Tests require the 'bandit' executable in PATH. | |
62 | ;; It's only built during install time. | |
63 | (add-installed-pythonpath inputs outputs) | |
64 | (setenv "PATH" (string-append (assoc-ref outputs "out") | |
65 | "/bin:" (getenv "PATH"))) | |
66 | (invoke "python" "setup.py" "testr")))))) | |
f5a21dc4 | 67 | (propagated-inputs |
231bd07e | 68 | `(("python-gitpython" ,python-gitpython) |
f5a21dc4 CR |
69 | ("python-pyyaml" ,python-pyyaml) |
70 | ("python-six" ,python-six) | |
71 | ("python-stevedore" ,python-stevedore))) | |
e7881f3d | 72 | (native-inputs |
231bd07e MB |
73 | `(;; Tests. |
74 | ("python-beautifulsoup4" ,python-beautifulsoup4) | |
f5a21dc4 CR |
75 | ("python-fixtures" ,python-fixtures) |
76 | ("python-mock" ,python-mock) | |
231bd07e | 77 | ("python-subunit" ,python-subunit) |
f5a21dc4 CR |
78 | ("python-testrepository" ,python-testrepository) |
79 | ("python-testscenarios" ,python-testscenarios) | |
80 | ("python-testtools" ,python-testtools))) | |
81 | (home-page "https://wiki.openstack.org/wiki/Security/Projects/Bandit") | |
66e07664 | 82 | (synopsis "Security oriented static analyser for python code") |
f5a21dc4 CR |
83 | (description |
84 | "Bandit is a tool designed to find common security issues in Python code. | |
85 | To do this Bandit processes each file, builds an AST from it, and runs | |
86 | appropriate plugins against the AST nodes. Once Bandit has finished scanning | |
87 | all the files it generates a report.") | |
88 | (license asl2.0))) | |
89 | ||
90 | (define-public python2-bandit | |
39033c8f | 91 | (package-with-python2 python-bandit)) |
f5a21dc4 | 92 | |
2713527e CR |
93 | (define-public python-debtcollector |
94 | (package | |
95 | (name "python-debtcollector") | |
a2803e20 | 96 | (version "1.19.0") |
2713527e CR |
97 | (source |
98 | (origin | |
99 | (method url-fetch) | |
56c7ead2 | 100 | (uri (pypi-uri "debtcollector" version)) |
2713527e CR |
101 | (sha256 |
102 | (base32 | |
a2803e20 | 103 | "06c7vyn184y9f0lsrwaz13aq63hdz5fjrd191b8nifx6acsni42f")))) |
2713527e CR |
104 | (build-system python-build-system) |
105 | (propagated-inputs | |
a2803e20 MB |
106 | `(("python-pbr" ,python-pbr) |
107 | ("python-six" ,python-six) | |
2713527e | 108 | ("python-wrapt" ,python-wrapt))) |
e7881f3d | 109 | (native-inputs |
a2803e20 MB |
110 | `(;; Tests. |
111 | ("python-subunit" ,python-subunit) | |
112 | ("python-testrepository" ,python-testrepository) | |
113 | ("python-testtools" ,python-testtools))) | |
dbd37c13 | 114 | (home-page "https://www.openstack.org/") |
2713527e | 115 | (synopsis |
a2803e20 | 116 | "Find deprecated patterns and strategies in Python code") |
2713527e CR |
117 | (description |
118 | "This package provides a collection of Python deprecation patterns and | |
119 | strategies that help you collect your technical debt in a non-destructive | |
120 | manner.") | |
a2803e20 | 121 | (properties `((python2-variant . ,(delay python2-debtcollector)))) |
2713527e CR |
122 | (license asl2.0))) |
123 | ||
124 | (define-public python2-debtcollector | |
a2803e20 MB |
125 | (let ((base (package-with-python2 (strip-python2-variant |
126 | python-debtcollector)))) | |
127 | (package | |
128 | (inherit base) | |
129 | (propagated-inputs | |
130 | `(("python2-funcsigs" ,python2-funcsigs) | |
131 | ,@(package-propagated-inputs base)))))) | |
2713527e | 132 | |
2ac9ba6a CR |
133 | (define-public python-hacking |
134 | (package | |
135 | (name "python-hacking") | |
6f6db026 | 136 | (version "1.0.0") |
2ac9ba6a CR |
137 | (source |
138 | (origin | |
139 | (method url-fetch) | |
140 | (uri (pypi-uri "hacking" version)) | |
141 | (sha256 | |
142 | (base32 | |
6f6db026 | 143 | "0s9l99s64jsyvm28fa4hzllbdi21sb7jn4gzdf1pd5ckvy7p4b0k")))) |
2ac9ba6a CR |
144 | (build-system python-build-system) |
145 | (propagated-inputs | |
6f6db026 | 146 | `(("python-flake8" ,python-flake8-2.5) |
3b664389 TGR |
147 | ("python-mccabe-0.2.1" ,python-mccabe-0.2.1) |
148 | ("python-pbr" ,python-pbr) | |
149 | ("python-pep8-1.5.7" ,python-pep8-1.5.7) | |
150 | ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1) | |
151 | ("python-six" ,python-six))) | |
e7881f3d | 152 | (native-inputs |
3b664389 TGR |
153 | `( ;; Tests |
154 | ("python-eventlet" ,python-eventlet) | |
155 | ("python-mock" ,python-mock) | |
156 | ("python-reno" ,python-reno) | |
157 | ("python-testrepository" ,python-testrepository) | |
158 | ("python-testscenarios" ,python-testscenarios))) | |
7bf837fd | 159 | (home-page "https://github.com/openstack-dev/hacking") |
2ac9ba6a CR |
160 | (synopsis "OpenStack hacking guideline enforcement") |
161 | (description | |
3b664389 | 162 | "Python-hacking is a set of flake8 plugins that test and enforce the |
2ac9ba6a CR |
163 | @uref{http://docs.openstack.org/developer/hacking/, OpenStack style |
164 | guidelines}.") | |
165 | (license asl2.0))) | |
166 | ||
167 | (define-public python2-hacking | |
168 | (package-with-python2 python-hacking)) | |
169 | ||
35f1ebeb CR |
170 | (define-public python-mox3 |
171 | (package | |
172 | (name "python-mox3") | |
b39667cd | 173 | (version "0.24.0") |
35f1ebeb CR |
174 | (source |
175 | (origin | |
176 | (method url-fetch) | |
d4e817b1 | 177 | (uri (pypi-uri "mox3" version)) |
b39667cd | 178 | (patches (search-patches "python-mox3-python3.6-compat.patch")) |
35f1ebeb CR |
179 | (sha256 |
180 | (base32 | |
b39667cd | 181 | "0w58adwv7q9wzvmq9mlrk2asfk73myq9fpwy7mjkzsz3baa95zf5")))) |
35f1ebeb | 182 | (build-system python-build-system) |
b39667cd MB |
183 | (propagated-inputs |
184 | `(("python-fixtures" ,python-fixtures) | |
185 | ("python-pbr" ,python-pbr))) | |
f8f83e9d | 186 | (native-inputs |
b39667cd | 187 | `(("python-openstackdocstheme" ,python-openstackdocstheme) |
3bbfc451 | 188 | ("python-sphinx" ,python-sphinx) |
b39667cd MB |
189 | ("python-subunit" ,python-subunit) |
190 | ("python-testrepository" ,python-testrepository) | |
35f1ebeb | 191 | ("python-testtools" ,python-testtools))) |
dbd37c13 | 192 | (home-page "https://www.openstack.org/") |
35f1ebeb CR |
193 | (synopsis "Mock object framework for Python") |
194 | (description | |
5eaa7bb0 TGR |
195 | "Mox3 is an unofficial port of the @uref{https://code.google.com/p/pymox/, |
196 | Google mox framework} to Python 3. It was meant to be as compatible | |
b39667cd | 197 | with mox as possible, but small enhancements have been made.") |
35f1ebeb CR |
198 | (license asl2.0))) |
199 | ||
f8f83e9d EF |
200 | (define-public python2-mox3 |
201 | (package-with-python2 python-mox3)) | |
202 | ||
7a565dc9 MB |
203 | (define-public python-openstackdocstheme |
204 | (package | |
205 | (name "python-openstackdocstheme") | |
206 | (version "1.18.1") | |
207 | (source (origin | |
208 | (method url-fetch) | |
209 | (uri (pypi-uri "openstackdocstheme" version)) | |
210 | (sha256 | |
211 | (base32 | |
212 | "1ki5204rjdqjvr8xr9w2qc1z6b6d2i5jas0i70xzkf9njlzjzv2r")))) | |
213 | (build-system python-build-system) | |
214 | (arguments | |
215 | ;; FIXME: Tests require an old version of python-hacking, which in | |
216 | ;; turn depends on mox3 which depends on this package. | |
217 | `(#:tests? #f)) | |
218 | (propagated-inputs | |
219 | `(("python-dulwich" ,python-dulwich) | |
220 | ("python-pbr" ,python-pbr))) | |
221 | (native-inputs | |
3bbfc451 | 222 | `(("python-sphinx" ,python-sphinx))) |
7a565dc9 MB |
223 | (home-page "https://docs.openstack.org/openstackdocstheme/latest/") |
224 | (synopsis "OpenStack Docs Theme") | |
225 | (description | |
226 | "This package provides themes and extensions for Sphinx for publishing | |
227 | to docs.openstack.org and developer.openstack.org.") | |
228 | (license asl2.0))) | |
229 | ||
230 | (define-public python2-openstackdocstheme | |
231 | (package-with-python2 python-openstackdocstheme)) | |
232 | ||
1edd421b CR |
233 | (define-public python-os-client-config |
234 | (package | |
235 | (name "python-os-client-config") | |
a5ff52f8 | 236 | (version "1.12.0") |
1edd421b CR |
237 | (source |
238 | (origin | |
239 | (method url-fetch) | |
a5ff52f8 | 240 | (uri (pypi-uri "os-client-config" version)) |
1edd421b CR |
241 | (sha256 |
242 | (base32 | |
a5ff52f8 | 243 | "1vjn7667pswnmpqv6ngwyqm2xn46w90hi5b4pv2grwfz751cn1lf")))) |
1edd421b CR |
244 | (build-system python-build-system) |
245 | (arguments | |
246 | `(#:tests? #f)) ;; Circular dependency with python-oslotest | |
482d9591 | 247 | (propagated-inputs |
1edd421b | 248 | `(("python-appdirs" ,python-appdirs) |
482d9591 HG |
249 | ("python-pyyaml" ,python-pyyaml))) |
250 | (native-inputs | |
251 | `(("python-pbr" ,python-pbr) | |
1edd421b CR |
252 | ("python-fixtures" ,python-fixtures) |
253 | ("python-mimeparse" ,python-mimeparse) | |
1edd421b | 254 | ("python-testrepository" ,python-testrepository) |
1edd421b CR |
255 | ("python-testscenarios" ,python-testscenarios) |
256 | ("python-testtools" ,python-testtools))) | |
dbd37c13 | 257 | (home-page "https://www.openstack.org/") |
1edd421b CR |
258 | (synopsis |
259 | "OpenStack Client Configuration Library") | |
260 | (description | |
261 | "The OpenStack Client Configuration Library is a library for collecting | |
262 | client configuration for using an OpenStack cloud in a consistent and | |
263 | comprehensive manner.") | |
264 | (license asl2.0))) | |
265 | ||
266 | (define-public python2-os-client-config | |
267 | (package-with-python2 python-os-client-config)) | |
268 | ||
2931f464 CR |
269 | (define-public python-os-testr |
270 | (package | |
271 | (name "python-os-testr") | |
43b53bbb | 272 | (version "0.8.0") |
2931f464 CR |
273 | (source |
274 | (origin | |
275 | (method url-fetch) | |
276 | (uri (pypi-uri "os-testr" version)) | |
277 | (sha256 | |
278 | (base32 | |
43b53bbb | 279 | "0mknd9hlmxmihr755gjkxyjp180380jajq5i3zm34q7y7bi62lss")))) |
2931f464 CR |
280 | (build-system python-build-system) |
281 | (arguments | |
282 | ;; os-testr uses itself to run the tests. It seems like pbr writes the | |
283 | ;; exectuable in the virtualenv when using tox. Not sure how to do this | |
284 | ;; when building the package. Skip the tests for now. | |
285 | `(#:tests? #f)) | |
286 | (propagated-inputs | |
e116d100 HG |
287 | `(("python-subunit" ,python-subunit))) |
288 | (native-inputs | |
2931f464 | 289 | `(("python-pbr" ,python-pbr) |
e116d100 HG |
290 | ("python-testtools" ,python-testtools) |
291 | ("python-babel" ,python-babel))) | |
43b53bbb | 292 | (home-page "https://www.openstack.org/") |
2931f464 CR |
293 | (synopsis "Testr wrapper to provide functionality for OpenStack projects") |
294 | (description | |
295 | "Os-testr provides developers with a testr wrapper and an output filter | |
296 | for subunit.") | |
297 | (license asl2.0))) | |
298 | ||
299 | (define-public python2-os-testr | |
300 | (package-with-python2 python-os-testr)) | |
301 | ||
673d1a9d CR |
302 | (define-public python-stevedore |
303 | (package | |
304 | (name "python-stevedore") | |
1cccdca2 | 305 | (version "1.28.0") |
673d1a9d CR |
306 | (source |
307 | (origin | |
308 | (method url-fetch) | |
2d531d4e | 309 | (uri (pypi-uri "stevedore" version)) |
673d1a9d | 310 | (sha256 |
1cccdca2 MB |
311 | (base32 |
312 | "02ynfgwma84g59834dmvzr39mcppy5s229zf1w23c0qngf753izi")))) | |
673d1a9d CR |
313 | (build-system python-build-system) |
314 | (propagated-inputs | |
1cccdca2 MB |
315 | `(("python-pbr" ,python-pbr) |
316 | ("python-six" ,python-six))) | |
4b42bd94 | 317 | (native-inputs |
1cccdca2 | 318 | `(("python-mock" ,python-mock) |
3bbfc451 | 319 | ("python-sphinx" ,python-sphinx) |
1cccdca2 | 320 | ("python-testrepository" ,python-testrepository))) |
673d1a9d CR |
321 | (home-page "https://github.com/dreamhost/stevedore") |
322 | (synopsis "Manage dynamic plugins for Python applications") | |
323 | (description | |
324 | "Python makes loading code dynamically easy, allowing you to configure | |
4b42bd94 | 325 | and extend your application by discovering and loading extensions (\"plugins\") |
673d1a9d | 326 | at runtime. Many applications implement their own library for doing this, |
4b42bd94 | 327 | using __import__ or importlib. Stevedore avoids creating yet another extension |
673d1a9d CR |
328 | mechanism by building on top of setuptools entry points. The code for managing |
329 | entry points tends to be repetitive, though, so stevedore provides manager | |
330 | classes for implementing common patterns for using dynamically loaded | |
331 | extensions.") | |
332 | (license asl2.0))) | |
333 | ||
334 | (define-public python2-stevedore | |
79d9effa | 335 | (package-with-python2 python-stevedore)) |
673d1a9d | 336 | |
465b61fc CR |
337 | (define-public python-tempest-lib |
338 | (package | |
339 | (name "python-tempest-lib") | |
f0ad50af | 340 | (version "1.0.0") |
465b61fc CR |
341 | (source |
342 | (origin | |
343 | (method url-fetch) | |
344 | (uri (pypi-uri "tempest-lib" version)) | |
345 | (sha256 | |
346 | (base32 | |
f0ad50af | 347 | "1cpp2vwmawpd29hjsklsps181lq2ah91cl412qvpnz228nf9sqn5")))) |
465b61fc CR |
348 | (build-system python-build-system) |
349 | (arguments | |
f959495b MB |
350 | `(#:tests? #f ; FIXME: Requires oslo.log >= 1.14.0. |
351 | #:phases | |
465b61fc CR |
352 | (modify-phases %standard-phases |
353 | (add-before | |
354 | 'check 'pre-check | |
355 | (lambda _ | |
356 | (substitute* "tempest_lib/tests/cli/test_execute.py" | |
357 | (("/bin/ls") (which "ls")))))))) | |
358 | (propagated-inputs | |
359 | `(("python-fixtures" ,python-fixtures) | |
360 | ("python-httplib2" ,python-httplib2) | |
361 | ("python-iso8601" ,python-iso8601) | |
362 | ("python-jsonschema" ,python-jsonschema) | |
363 | ("python-oslo.log" ,python-oslo.log) | |
364 | ("python-paramiko" ,python-paramiko) | |
365 | ("python-pbr" ,python-pbr) | |
366 | ("python-six" ,python-six))) | |
e7881f3d | 367 | (native-inputs |
465b61fc CR |
368 | `(("python-babel" ,python-babel) |
369 | ("python-mock" ,python-mock) | |
370 | ("python-os-testr" ,python-os-testr) | |
f3b98f4f | 371 | ("python-oslotest" ,python-oslotest))) |
f0ad50af | 372 | (home-page "https://www.openstack.org/") |
465b61fc CR |
373 | (synopsis "OpenStack functional testing library") |
374 | (description | |
375 | "Tempest-lib is a functional testing library for OpenStack. It provides | |
376 | common features used in Tempest.") | |
377 | (license asl2.0))) | |
378 | ||
379 | (define-public python2-tempest-lib | |
a14600ec | 380 | (package-with-python2 python-tempest-lib)) |
465b61fc | 381 | |
2053949a | 382 | ;; Packages from the Oslo library |
ed56af06 CR |
383 | (define-public python-oslo.config |
384 | (package | |
385 | (name "python-oslo.config") | |
9e4546a2 | 386 | (version "5.2.0") |
ed56af06 CR |
387 | (source |
388 | (origin | |
389 | (method url-fetch) | |
9e4546a2 | 390 | (uri (pypi-uri "oslo.config" version)) |
ed56af06 CR |
391 | (sha256 |
392 | (base32 | |
9e4546a2 | 393 | "0ymf7jxbq29fifyvkwhfiys1qvljqfxdw8ajwzwaf3yiqidgpxqd")))) |
ed56af06 CR |
394 | (build-system python-build-system) |
395 | (propagated-inputs | |
9e4546a2 MB |
396 | `(("python-debtcollector" ,python-debtcollector) |
397 | ("python-netaddr" ,python-netaddr) | |
398 | ("python-oslo.i18n" ,python-oslo.i18n) | |
399 | ("python-pbr" ,python-pbr) | |
400 | ("python-rfc3986" ,python-rfc3986) | |
401 | ("python-six" ,python-six) | |
402 | ("python-stevedore" ,python-stevedore) | |
403 | ("python-pyyaml" ,python-pyyaml))) | |
e7881f3d | 404 | (native-inputs |
9e4546a2 MB |
405 | `(("python-bandit" ,python-bandit) |
406 | ("python-coverage" ,python-coverage) | |
407 | ("python-mock" ,python-mock) | |
408 | ("python-openstackdocstheme" ,python-openstackdocstheme) | |
409 | ("python-oslotest" ,python-oslotest) | |
410 | ("python-reno" ,python-reno) | |
3bbfc451 | 411 | ("python-sphinx" ,python-sphinx) |
9e4546a2 MB |
412 | ("python-testrepository" ,python-testrepository) |
413 | ("python-testscenarios" ,python-testscenarios) | |
414 | ("python-testtools" ,python-testtools))) | |
ed56af06 CR |
415 | (home-page "https://launchpad.net/oslo") |
416 | (synopsis "Oslo Configuration API") | |
417 | (description | |
418 | "The Oslo configuration API supports parsing command line arguments and | |
419 | .ini style configuration files.") | |
420 | (license asl2.0))) | |
421 | ||
422 | (define-public python2-oslo.config | |
423 | (package-with-python2 python-oslo.config)) | |
424 | ||
c7c7a936 CR |
425 | (define-public python-oslo.context |
426 | (package | |
427 | (name "python-oslo.context") | |
32bb0c61 | 428 | (version "2.20.0") |
c7c7a936 CR |
429 | (source |
430 | (origin | |
431 | (method url-fetch) | |
e9af5adf | 432 | (uri (pypi-uri "oslo.context" version)) |
c7c7a936 CR |
433 | (sha256 |
434 | (base32 | |
32bb0c61 | 435 | "0iiq9rpwg6wrdqnhf3d8z8g0g7fjhs5zn6qw6igvxplz2c3rbvvx")))) |
c7c7a936 | 436 | (build-system python-build-system) |
32bb0c61 MB |
437 | (propagated-inputs |
438 | `(("python-debtcollector" ,python-debtcollector) | |
439 | ("python-pbr" ,python-pbr))) | |
e7881f3d | 440 | (native-inputs |
32bb0c61 MB |
441 | `(("python-fixtures" ,python-fixtures) |
442 | ("python-hacking" ,python-hacking) | |
443 | ("python-oslotest" ,python-oslotest))) | |
dbd37c13 | 444 | (home-page "https://launchpad.net/oslo") |
c7c7a936 CR |
445 | (synopsis "Oslo context library") |
446 | (description | |
447 | "The Oslo context library has helpers to maintain useful information | |
448 | about a request context. The request context is usually populated in the WSGI | |
449 | pipeline and used by various modules such as logging.") | |
450 | (license asl2.0))) | |
451 | ||
452 | (define-public python2-oslo.context | |
453 | (package-with-python2 python-oslo.context)) | |
454 | ||
8531b326 CR |
455 | (define-public python-oslo.i18n |
456 | (package | |
457 | (name "python-oslo.i18n") | |
207e4d27 | 458 | (version "3.20.0") |
8531b326 CR |
459 | (source |
460 | (origin | |
461 | (method url-fetch) | |
5788b4b6 | 462 | (uri (pypi-uri "oslo.i18n" version)) |
8531b326 CR |
463 | (sha256 |
464 | (base32 | |
207e4d27 | 465 | "0kjcdw4bk3mi4vqmqwhhq053kxbbbj05si6nwxd1pzx33z067ky3")))) |
8531b326 CR |
466 | (build-system python-build-system) |
467 | (propagated-inputs | |
468 | `(("python-babel" ,python-babel) | |
469 | ("python-six" ,python-six))) | |
e7881f3d | 470 | (native-inputs |
8531b326 | 471 | `(("python-pbr" ,python-pbr) |
8531b326 CR |
472 | ;; Tests |
473 | ("python-mock" ,python-mock) | |
474 | ("python-mox3" ,python-mox3) | |
475 | ("python-oslotest" ,python-oslotest) | |
476 | ("python-testscenarios" ,python-testscenarios))) | |
dbd37c13 | 477 | (home-page "https://launchpad.net/oslo") |
8531b326 CR |
478 | (synopsis "Oslo internationalization (i18n) library") |
479 | (description | |
480 | "The oslo.i18n library contain utilities for working with | |
481 | internationalization (i18n) features, especially translation for text strings | |
482 | in an application or library.") | |
483 | (license asl2.0))) | |
484 | ||
485 | (define-public python2-oslo.i18n | |
486 | (package-with-python2 python-oslo.i18n)) | |
487 | ||
aee6412a CR |
488 | (define-public python-oslo.log |
489 | (package | |
490 | (name "python-oslo.log") | |
f8a4547c | 491 | (version "3.36.0") |
aee6412a CR |
492 | (source |
493 | (origin | |
494 | (method url-fetch) | |
f8a4547c | 495 | (uri (pypi-uri "oslo.log" version)) |
aee6412a CR |
496 | (sha256 |
497 | (base32 | |
f8a4547c | 498 | "0h7hplf1h8k24v75m3mq1jlrl74x5ynyr4hwgffsg5campxnza4x")))) |
aee6412a CR |
499 | (build-system python-build-system) |
500 | (propagated-inputs | |
f8a4547c MB |
501 | `(("python-dateutil" ,python-dateutil) |
502 | ("python-debtcollector" ,python-debtcollector) | |
503 | ("python-monotonic" ,python-monotonic) | |
aee6412a CR |
504 | ("python-oslo.config" ,python-oslo.config) |
505 | ("python-oslo.context" ,python-oslo.context) | |
506 | ("python-oslo.i18n" ,python-oslo.i18n) | |
507 | ("python-oslo.utils" ,python-oslo.utils) | |
508 | ("python-oslo.serialization" ,python-oslo.serialization) | |
f8a4547c MB |
509 | ("python-pbr" ,python-pbr) |
510 | ("python-pyinotify" ,python-pyinotify) | |
aee6412a | 511 | ("python-six" ,python-six))) |
e7881f3d | 512 | (native-inputs |
f8a4547c | 513 | `(("python-mock" ,python-mock) |
aee6412a | 514 | ("python-oslotest" ,python-oslotest) |
f8a4547c MB |
515 | ("python-subunit" ,python-subunit) |
516 | ("python-testrepository" ,python-testrepository) | |
517 | ("python-testtools" ,python-testtools))) | |
dbd37c13 | 518 | (home-page "https://launchpad.net/oslo") |
aee6412a CR |
519 | (synopsis "Python logging library of the Oslo project") |
520 | (description | |
521 | "The oslo.log (logging) configuration library provides standardized | |
522 | configuration for all OpenStack projects. It also provides custom formatters, | |
523 | handlers and support for context specific logging (like resource id’s etc).") | |
524 | (license asl2.0))) | |
525 | ||
526 | (define-public python2-oslo.log | |
527 | (package-with-python2 python-oslo.log)) | |
528 | ||
5702efe3 CR |
529 | (define-public python-oslo.serialization |
530 | (package | |
531 | (name "python-oslo.serialization") | |
caf3713a | 532 | (version "2.24.0") |
5702efe3 CR |
533 | (source |
534 | (origin | |
535 | (method url-fetch) | |
278c0efd | 536 | (uri (pypi-uri "oslo.serialization" version)) |
5702efe3 CR |
537 | (sha256 |
538 | (base32 | |
caf3713a | 539 | "08bxkp98c617y58x630xq44iiffm7f0f3cwh6zbnlkgq0zgh7jk1")))) |
5702efe3 CR |
540 | (build-system python-build-system) |
541 | (propagated-inputs | |
caf3713a | 542 | `(("python-msgpack" ,python-msgpack) |
5702efe3 CR |
543 | ("python-netaddr" ,python-netaddr) |
544 | ("python-oslo.utils" ,python-oslo.utils) | |
5702efe3 CR |
545 | ("python-six" ,python-six) |
546 | ("python-pytz" ,python-pytz))) | |
e7881f3d | 547 | (native-inputs |
caf3713a | 548 | `(("python-pbr" ,python-pbr) |
5702efe3 CR |
549 | ;; Tests. |
550 | ("python-mock" ,python-mock) | |
551 | ("python-oslo.i18n" ,python-oslo.i18n) | |
552 | ("python-oslotest" ,python-oslotest))) | |
dbd37c13 | 553 | (home-page "https://launchpad.net/oslo") |
5702efe3 CR |
554 | (synopsis "Oslo serialization library") |
555 | (description | |
556 | "The oslo.serialization library provides support for representing objects | |
557 | in transmittable and storable formats, such as JSON and MessagePack.") | |
caf3713a | 558 | (properties `((python2-variant . ,(delay python2-oslo.serialization)))) |
5702efe3 CR |
559 | (license asl2.0))) |
560 | ||
561 | (define-public python2-oslo.serialization | |
caf3713a MB |
562 | (let ((base (package-with-python2 (strip-python2-variant |
563 | python-oslo.serialization)))) | |
564 | (package | |
565 | (inherit base) | |
566 | (native-inputs | |
567 | `(("python2-ipaddress" ,python2-ipaddress) | |
568 | ,@(package-native-inputs base)))))) | |
5702efe3 | 569 | |
c8d7e063 DM |
570 | (define-public python-reno |
571 | (package | |
572 | (name "python-reno") | |
d2ae66b7 | 573 | (version "2.7.0") |
c8d7e063 DM |
574 | (source |
575 | (origin | |
576 | (method url-fetch) | |
577 | (uri (pypi-uri "reno" version)) | |
578 | (sha256 | |
d2ae66b7 | 579 | (base32 "0gwzi5dvacqx43smxl3rd1z33npn7gfhm50bvgmq90fib2q431wc")))) |
c8d7e063 DM |
580 | (build-system python-build-system) |
581 | (arguments | |
582 | `(#:phases | |
583 | (modify-phases %standard-phases | |
584 | (add-before 'check 'init-git | |
585 | (lambda _ | |
586 | ;; reno expects a git repo | |
c8780a10 | 587 | (invoke "git" "init")))))) |
c8d7e063 | 588 | (propagated-inputs |
d2ae66b7 MB |
589 | `(("python-dulwich" ,python-dulwich) |
590 | ("python-pbr" ,python-pbr) | |
c8d7e063 DM |
591 | ("python-pyyaml" ,python-pyyaml) |
592 | ("python-six" ,python-six))) | |
593 | (native-inputs | |
594 | `(("python-testtools" ,python-testtools) | |
c8d7e063 DM |
595 | ("python-testscenarios" ,python-testscenarios) |
596 | ("python-testrepository" ,python-testrepository) | |
597 | ("python-mock" ,python-mock) | |
d2ae66b7 MB |
598 | ("python-docutils" ,python-docutils) |
599 | ("python-sphinx" ,python-sphinx) | |
c8d7e063 | 600 | ("gnupg" ,gnupg) |
c8780a10 | 601 | ("git" ,git-minimal))) |
c8d7e063 DM |
602 | (home-page "http://docs.openstack.org/developer/reno/") |
603 | (synopsis "Release notes manager") | |
604 | (description "Reno is a tool for storing release notes in a git repository | |
605 | and building documentation from them.") | |
606 | (license asl2.0))) | |
607 | ||
608 | (define-public python2-reno | |
d2ae66b7 | 609 | (package-with-python2 python-reno)) |
c8d7e063 | 610 | |
f4c7dc55 CR |
611 | (define-public python-oslosphinx |
612 | (package | |
613 | (name "python-oslosphinx") | |
9c4810b4 | 614 | (version "4.10.0") |
f4c7dc55 CR |
615 | (source |
616 | (origin | |
617 | (method url-fetch) | |
618 | (uri (pypi-uri "oslosphinx" version)) | |
619 | (sha256 | |
620 | (base32 | |
9c4810b4 | 621 | "09mxqyabi68f3s3arvdhlhq0mn38vf74jbsfcg84151hcj6czhnl")))) |
f4c7dc55 | 622 | (build-system python-build-system) |
23015b4f | 623 | (arguments |
27693b1e DM |
624 | `(#:phases |
625 | (modify-phases %standard-phases | |
626 | (replace 'check | |
627 | (lambda _ | |
628 | ;; Note: Upstream tests would have also built the release notes. | |
629 | ;; That only would work if we were in a git checkout. | |
630 | ;; Therefore, we don't do it here. | |
c9a65d5c | 631 | (invoke "python" "setup.py" "build_sphinx")))))) |
f4c7dc55 CR |
632 | (propagated-inputs |
633 | `(("python-requests" ,python-requests))) | |
e7881f3d | 634 | (native-inputs |
f4c7dc55 CR |
635 | `(("python-pbr" ,python-pbr) |
636 | ("python-docutils" ,python-docutils) | |
637 | ("python-hacking" ,python-hacking) | |
f4c7dc55 | 638 | ("python-sphinx" ,python-sphinx))) |
dbd37c13 | 639 | (home-page "https://www.openstack.org/") |
f4c7dc55 CR |
640 | (synopsis "OpenStack sphinx extensions and theme") |
641 | (description | |
642 | "This package provides themes and extensions for Sphinx documentation | |
643 | from the OpenStack project.") | |
644 | (license asl2.0))) | |
645 | ||
646 | (define-public python2-oslosphinx | |
8ad4ae20 | 647 | (package-with-python2 python-oslosphinx)) |
f4c7dc55 | 648 | |
2053949a CR |
649 | (define-public python-oslotest |
650 | (package | |
651 | (name "python-oslotest") | |
426916b7 | 652 | (version "3.4.0") |
2053949a CR |
653 | (source |
654 | (origin | |
655 | (method url-fetch) | |
be3f88c2 | 656 | (uri (pypi-uri "oslotest" version)) |
2053949a CR |
657 | (sha256 |
658 | (base32 | |
426916b7 | 659 | "1pp8lq61d548cxcqi451czvrz5i5b3hyi2ry00wmngdgiswcqj1h")))) |
2053949a CR |
660 | (build-system python-build-system) |
661 | (propagated-inputs | |
662 | `(("python-fixtures" ,python-fixtures) | |
663 | ("python-mock" ,python-mock) | |
39d3f2ed | 664 | ("python-mox3" ,python-mox3) |
2053949a | 665 | ("python-os-client-config" ,python-os-client-config) |
be3f88c2 | 666 | ("python-six" ,python-six) |
2053949a CR |
667 | ("python-subunit" ,python-subunit) |
668 | ("python-testrepository" ,python-testrepository) | |
2053949a | 669 | ("python-testtools" ,python-testtools))) |
be3f88c2 MB |
670 | (native-inputs |
671 | `(("python-pbr" ,python-pbr) | |
672 | ("python-testscenarios" ,python-testscenarios))) | |
dbd37c13 | 673 | (home-page "https://launchpad.net/oslo") |
2053949a CR |
674 | (synopsis "Oslo test framework") |
675 | (description | |
676 | "The Oslo Test framework provides common fixtures, support for debugging, | |
677 | and better support for mocking results.") | |
678 | (license asl2.0))) | |
679 | ||
680 | (define-public python2-oslotest | |
be3f88c2 | 681 | (package-with-python2 python-oslotest)) |
27cc9f25 CR |
682 | |
683 | (define-public python-oslo.utils | |
684 | (package | |
685 | (name "python-oslo.utils") | |
2847d833 | 686 | (version "3.36.2") |
27cc9f25 CR |
687 | (source |
688 | (origin | |
689 | (method url-fetch) | |
94ce6b49 | 690 | (uri (pypi-uri "oslo.utils" version)) |
27cc9f25 CR |
691 | (sha256 |
692 | (base32 | |
2847d833 | 693 | "1ipjcgg9z697wmibhcbg5lqpk5gafakdx4qkff3w255zr0mvw04r")))) |
27cc9f25 CR |
694 | (build-system python-build-system) |
695 | (propagated-inputs | |
696 | `(("python-debtcollector" ,python-debtcollector) | |
697 | ("python-oslo.i18n" ,python-oslo.i18n) | |
698 | ("python-iso8601" ,python-iso8601) | |
699 | ("python-monotonic" ,python-monotonic) | |
700 | ("python-netaddr" ,python-netaddr) | |
701 | ("python-netifaces" ,python-netifaces) | |
b51fbd6d | 702 | ("python-pyparsing" ,python-pyparsing) |
27cc9f25 CR |
703 | ("python-pytz" ,python-pytz) |
704 | ("python-six" ,python-six))) | |
e7881f3d | 705 | (native-inputs |
b51fbd6d | 706 | `(("python-pbr" ,python-pbr) |
27cc9f25 | 707 | ;; Tests. |
ad59ebda | 708 | ("python-bandit" ,python-bandit) |
b51fbd6d MB |
709 | ("python-ddt" ,python-ddt) |
710 | ("python-fixtures" ,python-fixtures) | |
ad59ebda | 711 | ("python-oslo.config" ,python-oslo.config) |
27cc9f25 CR |
712 | ("python-oslotest" ,python-oslotest) |
713 | ("python-mock" ,python-mock) | |
b51fbd6d MB |
714 | ("python-testrepository" ,python-testrepository) |
715 | ("python-testscenarios" ,python-testscenarios) | |
716 | ("python-testtools" ,python-testtools))) | |
dbd37c13 | 717 | (home-page "https://launchpad.net/oslo") |
27cc9f25 CR |
718 | (synopsis "Oslo utility library") |
719 | (description | |
720 | "The @code{oslo.utils} library provides support for common utility type | |
721 | functions, such as encoding, exception handling, string manipulation, and time | |
722 | handling.") | |
723 | (license asl2.0))) | |
724 | ||
725 | (define-public python2-oslo.utils | |
726 | (package-with-python2 python-oslo.utils)) | |
c9e330d0 EF |
727 | |
728 | (define-public python-keystoneclient | |
729 | (package | |
730 | (name "python-keystoneclient") | |
731 | (version "1.8.1") | |
732 | (source | |
733 | (origin | |
734 | (method url-fetch) | |
735 | (uri (pypi-uri "python-keystoneclient" version)) | |
736 | (sha256 | |
737 | (base32 | |
738 | "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4")))) | |
739 | (build-system python-build-system) | |
bfba0836 MB |
740 | (arguments |
741 | '(#:tests? #f)) ; FIXME: Many tests are failing. | |
c9e330d0 | 742 | (native-inputs |
f3b98f4f | 743 | `(("python-sphinx" ,python-sphinx) |
c9e330d0 EF |
744 | ;; and some packages for the tests |
745 | ("openssl" ,openssl) | |
746 | ("python-coverage" ,python-coverage) | |
747 | ("python-discover" ,python-discover) | |
748 | ("python-fixtures" ,python-fixtures) | |
749 | ("python-hacking" ,python-hacking) | |
750 | ("python-keyring" ,python-keyring) | |
751 | ("python-lxml" ,python-lxml) | |
752 | ("python-mock" ,python-mock) | |
753 | ("python-mox3" ,python-mox3) | |
754 | ("python-oauthlib" ,python-oauthlib) | |
755 | ("python-oslosphinx" ,python-oslosphinx) | |
756 | ("python-oslotest" ,python-oslotest) | |
757 | ("python-pycrypto" ,python-pycrypto) | |
758 | ("python-requests-mock" ,python-requests-mock) | |
759 | ("python-temptest-lib" ,python-tempest-lib) | |
760 | ("python-testrepository" ,python-testrepository) | |
761 | ("python-testresources" ,python-testresources) | |
762 | ("python-testtools" ,python-testtools) | |
763 | ("python-webob" ,python-webob))) | |
764 | (propagated-inputs | |
765 | `(("python-babel" ,python-babel) | |
766 | ("python-debtcollector" ,python-debtcollector) | |
767 | ("python-iso8601" ,python-iso8601) | |
768 | ("python-netaddr" ,python-netaddr) | |
769 | ("python-oslo.config" ,python-oslo.config) | |
770 | ("python-oslo.i18n" ,python-oslo.i18n) | |
771 | ("python-oslo.serialization" ,python-oslo.serialization) | |
772 | ("python-oslo.utils" ,python-oslo.utils) | |
773 | ("python-pbr" ,python-pbr) | |
774 | ("python-prettytable" ,python-prettytable) | |
775 | ("python-requests" ,python-requests) | |
776 | ("python-six" ,python-six) | |
777 | ("python-stevedore" ,python-stevedore))) | |
dbd37c13 | 778 | (home-page "https://www.openstack.org/") |
c9e330d0 EF |
779 | (synopsis "Client Library for OpenStack Identity") |
780 | (description | |
781 | "Python-keystoneclient is the identity service used by OpenStack for | |
782 | authentication (authN) and high-level authorization (authZ). It currently | |
783 | supports token-based authN with user/service authZ, and is scalable to support | |
784 | OAuth, SAML, and OpenID in future versions. Out of the box, Keystone uses | |
785 | SQLite for its identity store database, with the option to connect to external | |
786 | LDAP.") | |
787 | (license asl2.0))) | |
788 | ||
789 | (define-public python2-keystoneclient | |
790 | (let ((keystoneclient (package-with-python2 python-keystoneclient))) | |
791 | (package (inherit keystoneclient) | |
264ae686 EF |
792 | (propagated-inputs |
793 | `(("python2-requests" ,python2-requests) | |
794 | ,@(alist-delete "python-requests" | |
795 | (package-propagated-inputs keystoneclient)))) | |
c9e330d0 EF |
796 | (native-inputs |
797 | `(("python2-oauthlib" ,python2-oauthlib) | |
264ae686 EF |
798 | ("python2-oslosphinx" ,python2-oslosphinx) |
799 | ("python2-requests-mock" ,python2-requests-mock) | |
800 | ("python2-tempest-lib" ,python2-tempest-lib) | |
801 | ,@(fold alist-delete (package-native-inputs keystoneclient) | |
802 | '("python-oauthlib" "python-oslosphinx" "python-requests-mock" "python-tempest-lib"))))))) | |
8f0cc2ff EF |
803 | |
804 | (define-public python-swiftclient | |
805 | (package | |
806 | (name "python-swiftclient") | |
807 | (version "2.6.0") | |
808 | (source | |
809 | (origin | |
810 | (method url-fetch) | |
811 | (uri (pypi-uri "python-swiftclient" version)) | |
812 | (sha256 | |
813 | (base32 | |
814 | "1j33l4z9vqh0scfncl4fxg01zr1hgqxhhai6gvcih1gccqm4nd7p")))) | |
815 | (build-system python-build-system) | |
816 | (native-inputs | |
b3546174 | 817 | `(("python-pbr" ,python-pbr) |
8f0cc2ff EF |
818 | ("python-sphinx" ,python-sphinx) |
819 | ;; The folloing packages are needed for the tests. | |
820 | ("python-coverage" ,python-coverage) | |
821 | ("python-discover" ,python-discover) | |
822 | ("python-hacking" ,python-hacking) | |
823 | ("python-mock" ,python-mock) | |
824 | ("python-oslosphinx" ,python-oslosphinx) | |
825 | ("python-keystoneclient" ,python-keystoneclient) | |
826 | ("python-testrepository" ,python-testrepository) | |
827 | ("python-testtools" ,python-testtools))) | |
828 | (propagated-inputs | |
829 | `(("python-requests" ,python-requests) | |
830 | ("python-six" ,python-six))) | |
dbd37c13 | 831 | (home-page "https://www.openstack.org/") |
8f0cc2ff EF |
832 | (synopsis "OpenStack Object Storage API Client Library") |
833 | (description | |
834 | "OpenStack Object Storage (code-named Swift) creates redundant, scalable | |
835 | object storage using clusters of standardized servers to store petabytes of | |
836 | accessible data. It is not a file system or real-time data storage system, but | |
837 | rather a long-term storage system for a more permanent type of static data that | |
838 | can be retrieved, leveraged, and then updated if necessary. Primary examples of | |
839 | data that best fit this type of storage model are virtual machine images, photo | |
840 | storage, email storage and backup archiving. Having no central \"brain\" or | |
841 | master point of control provides greater scalability, redundancy and | |
842 | permanence.") | |
0ab4c392 MB |
843 | (properties `((python2-variant . ,(delay python2-swiftclient)))) |
844 | (license asl2.0))) | |
8f0cc2ff EF |
845 | |
846 | (define-public python2-swiftclient | |
0ab4c392 MB |
847 | (let ((swiftclient (package-with-python2 |
848 | (strip-python2-variant python-swiftclient)))) | |
8f0cc2ff EF |
849 | (package (inherit swiftclient) |
850 | (propagated-inputs | |
851 | `(("python2-futures" ,python2-futures) | |
0ab4c392 | 852 | ,@(package-propagated-inputs swiftclient)))))) |
d4431993 CL |
853 | |
854 | (define-public python-git-review | |
855 | (package | |
856 | (name "python-git-review") | |
cbb488d6 | 857 | (version "1.28.0") |
d4431993 CL |
858 | (source |
859 | (origin | |
860 | (method url-fetch) | |
861 | (uri (pypi-uri "git-review" version)) | |
862 | (sha256 | |
cbb488d6 | 863 | (base32 "0nn17mfqvsa3ryjz53qjslmf60clc0vx2115kkj66h28p6vsnflf")))) |
d4431993 | 864 | (build-system python-build-system) |
381000d7 | 865 | (arguments |
cbb488d6 | 866 | '(#:tests? #f ; tests require a running Gerrit server |
381000d7 CL |
867 | #:phases |
868 | (modify-phases %standard-phases | |
869 | (add-after 'install 'wrap-program | |
870 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
871 | (let* ((out (assoc-ref outputs "out")) | |
872 | (git (assoc-ref inputs "git")) | |
873 | (openssh (assoc-ref inputs "openssh"))) | |
874 | (wrap-program (string-append out "/bin/git-review") | |
875 | `("PATH" ":" prefix | |
876 | ,(map (lambda (dir) | |
877 | (string-append dir "/bin")) | |
67c05f58 CL |
878 | (list git openssh))))) |
879 | #t))))) | |
d4431993 CL |
880 | (native-inputs |
881 | `(("python-pbr" ,python-pbr))) | |
482d9591 HG |
882 | (propagated-inputs |
883 | `(("python-requests" ,python-requests))) | |
d4431993 | 884 | (inputs |
482d9591 | 885 | `(("git" ,git) |
381000d7 | 886 | ("openssh" ,openssh))) |
dbd37c13 | 887 | (home-page "https://docs.openstack.org/infra/git-review/") |
d4431993 CL |
888 | (synopsis "Command-line tool for Gerrit") |
889 | (description | |
890 | "Git-review is a command-line tool that helps submitting Git branches to | |
891 | Gerrit for review, or fetching existing ones.") | |
892 | (license asl2.0))) | |
893 | ||
894 | (define-public python2-git-review | |
5c31f4aa | 895 | (package-with-python2 python-git-review)) |