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