projects/guix·blob librewolf-updates · refs

1280 lines · 44.6 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Cyril Roelandt <[email protected]>
3;;; Copyright © 2015, 2016, 2023 Efraim Flashner <[email protected]>
4;;; Copyright © 2016, 2017, 2019, 2021 Clément Lassieur <[email protected]>
5;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <[email protected]>
6;;; Copyright © 2018, 2022 Marius Bakke <[email protected]>
7;;; Copyright © 2020, 2021, 2025 Ricardo Wurmus <[email protected]>
8;;; Copyright © 2020 Maxim Cournoyer <[email protected]>
9;;; Copyright © 2022 Tanguy Le Carrour <[email protected]>
10;;; Copyright © 2022 Hartmut Goebel <[email protected]>
11;;; Copyright © 2025 Nicolas Graves <[email protected]>
12;;; Copyright © 2025 Sharlatan Hellseher <[email protected]>
13;;;
14;;; This file is part of GNU Guix.
15;;;
16;;; GNU Guix is free software; you can redistribute it and/or modify it
17;;; under the terms of the GNU General Public License as published by
18;;; the Free Software Foundation; either version 3 of the License, or (at
19;;; your option) any later version.
20;;;
21;;; GNU Guix is distributed in the hope that it will be useful, but
22;;; WITHOUT ANY WARRANTY; without even the implied warranty of
23;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24;;; GNU General Public License for more details.
25;;;
26;;; You should have received a copy of the GNU General Public License
27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28
29(define-module (gnu packages openstack)
30 #:use-module ((guix licenses) #:prefix license:)
31 #:use-module (gnu packages)
32 #:use-module (gnu packages bash)
33 #:use-module (gnu packages check)
34 #:use-module (gnu packages databases)
35 #:use-module (gnu packages gnupg)
36 #:use-module (gnu packages monitoring)
37 #:use-module (gnu packages python)
38 #:use-module (gnu packages python-build)
39 #:use-module (gnu packages python-check)
40 #:use-module (gnu packages python-crypto)
41 #:use-module (gnu packages python-web)
42 #:use-module (gnu packages python-xyz)
43 #:use-module (gnu packages sphinx)
44 #:use-module (gnu packages ssh)
45 #:use-module (gnu packages time)
46 #:use-module (gnu packages tls)
47 #:use-module (gnu packages version-control)
48 #:use-module (gnu packages virtualization)
49 #:use-module (gnu packages xml)
50 #:use-module (guix gexp)
51 #:use-module ((guix build-system python) #:select (pypi-uri))
52 #:use-module (guix build-system pyproject)
53 #:use-module (guix download)
54 #:use-module (guix git-download)
55 #:use-module (guix utils)
56 #:use-module (guix packages)
57 #:use-module (srfi srfi-1))
58
59(define-public python-cliff
60 (package
61 (name "python-cliff")
62 (version "4.10.0")
63 (source
64 (origin
65 (method url-fetch)
66 (uri (pypi-uri "cliff" version))
67 (sha256
68 (base32 "0vd8b4lypkc65xb4cih2b4l9qkhxyj52xj078q63p8214xl5n7wc"))))
69 (build-system pyproject-build-system)
70 (native-inputs
71 (list python-setuptools
72 python-sphinx
73 python-stestr
74 python-testscenarios))
75 (propagated-inputs
76 (list python-autopage
77 python-cmd2
78 python-prettytable
79 python-pyyaml
80 python-stevedore))
81 (home-page "https://opendev.org/openstack/cliff")
82 (synopsis "Framework for building command line programs")
83 (description "The @code{cliff} framework allows creating multi-level
84commands such as those of @command{subversion} and @command{git}, where the
85main program handles some basic argument parsing and then invokes a
86sub-command to do the work. It uses plugins to define sub-commands, output
87formatters, and other extensions.")
88 (license license:asl2.0)))
89
90(define-public python-cliff-bootstrap
91 (hidden-package
92 (package/inherit python-cliff
93 (arguments
94 (substitute-keyword-arguments (package-arguments python-cliff)
95 ((#:tests? t? #t)
96 #f)
97 ((#:phases phases #~%standard-phases)
98 #~(modify-phases #$phases
99 (delete 'sanity-check)))))
100 (native-inputs
101 (list python-setuptools python-wheel))
102 (propagated-inputs
103 (modify-inputs (package-propagated-inputs python-cliff)
104 (replace "python-stevedore" python-stevedore-bootstrap))))))
105
106(define-public python-debtcollector
107 (package
108 (name "python-debtcollector")
109 (version "3.0.0")
110 (source
111 (origin
112 (method url-fetch)
113 (uri (pypi-uri "debtcollector" version))
114 (sha256
115 (base32 "0vzarkvjclci98d8lvkix6qj59f7rxp1qg2x6q6is7qfbg91g29a"))))
116 (build-system pyproject-build-system)
117 (arguments
118 (list
119 #:phases
120 #~(modify-phases %standard-phases
121 (add-after 'unpack 'relax-requirements
122 (lambda _
123 (substitute* "test-requirements.txt"
124 (("^(coverage|hacking|pre-commit|reno).*")
125 "")
126 (("^(doc8|sphinx|openstackdocstheme).*")
127 "")))))))
128 (propagated-inputs
129 (list python-pbr python-wrapt))
130 (native-inputs
131 (list python-fixtures
132 python-setuptools
133 python-stestr
134 python-testtools
135 python-wheel))
136 (home-page "https://www.openstack.org/")
137 (synopsis
138 "Find deprecated patterns and strategies in Python code")
139 (description
140 "This package provides a collection of Python deprecation patterns and
141strategies that help you collect your technical debt in a non-destructive
142manner.")
143 (license license:asl2.0)))
144
145(define-public python-hacking
146 (package
147 (name "python-hacking")
148 (version "7.0.0")
149 (source
150 (origin
151 (method url-fetch)
152 (uri (pypi-uri "hacking" version))
153 (sha256
154 (base32
155 "1dya2mbnm8cbkwrzmhsacdpmp37nhfcy13y5hbx58z8g53jw5dmr"))))
156 (build-system pyproject-build-system)
157 (propagated-inputs
158 (list python-flake8))
159 (native-inputs
160 (list python-ddt
161 python-eventlet
162 python-fixtures
163 python-setuptools
164 python-stestr
165 python-subunit
166 python-testscenarios
167 python-testtools
168 python-wheel))
169 (home-page "https://github.com/openstack-dev/hacking")
170 (synopsis "OpenStack hacking guideline enforcement")
171 (description
172 "Python-hacking is a set of flake8 plugins that test and enforce the
173@uref{http://docs.openstack.org/developer/hacking/, OpenStack style
174guidelines}.")
175 (license license:asl2.0)))
176
177(define-public python-openstackdocstheme
178 (package
179 (name "python-openstackdocstheme")
180 (version "3.4.1")
181 (source
182 (origin
183 (method url-fetch)
184 (uri (pypi-uri "openstackdocstheme" version))
185 (sha256
186 (base32 "0f8vk9556cx3h2z2dwqqkylv3rijd1p15qjy4xjv9sxxcfngdx1q"))))
187 (build-system pyproject-build-system)
188 (arguments
189 (list
190 #:tests? #f)) ; no tests in PyPI archive or git checkout
191 (native-inputs
192 (list python-setuptools
193 python-wheel))
194 (propagated-inputs
195 (list python-dulwich
196 python-pbr
197 python-sphinx))
198 (home-page "https://docs.openstack.org/openstackdocstheme/latest/")
199 (synopsis "OpenStack Docs Theme")
200 (description
201 "This package provides themes and extensions for Sphinx for publishing
202to docs.openstack.org and developer.openstack.org.")
203 (license license:asl2.0)))
204
205(define-public python-os-service-types
206 (package
207 (name "python-os-service-types")
208 (version "1.8.0")
209 (source
210 (origin
211 (method url-fetch)
212 (uri (pypi-uri "os_service_types" version))
213 (sha256
214 (base32 "0gk0lgg862pwpisjz36jlrnr5ij75c8ja01znb1398rc2d7yf349"))))
215 (build-system pyproject-build-system)
216 (arguments
217 (list
218 #:phases
219 #~(modify-phases %standard-phases
220 (add-after 'unpack 'relax-requirements
221 (lambda _
222 (substitute* "test-requirements.txt"
223 (("(coverage|hacking).*")
224 ""))))
225 (replace 'check
226 (lambda* (#:key tests? test-flags #:allow-other-keys)
227 (when tests?
228 (apply invoke "stestr" "run" test-flags)))))))
229 (native-inputs
230 (list python-keystoneauth1
231 python-oslotest
232 python-pbr
233 python-requests-mock
234 python-setuptools
235 python-stestr
236 python-testscenarios
237 python-wheel))
238 (home-page "https://docs.openstack.org/os-service-types/latest/")
239 (synopsis "Library for consuming OpenStack Service Types Authority data")
240 (description "The @emph{OpenStack Service Types Authority} contains
241information about officiag OpenStack services and their historical
242service-type aliases. The data is in JSON and the latest data should always
243be used. This simple library exists to allow for easy consumption of the
244data, along with a built-in version of the data to use in case network access
245is for some reason not possible and local caching of the fetched data.")
246 (license license:asl2.0)))
247
248(define-public python-os-service-types-bootstrap
249 (hidden-package
250 (package/inherit python-os-service-types
251 (arguments
252 (substitute-keyword-arguments (package-arguments python-os-service-types)
253 ((#:tests? t? #t)
254 #f)
255 ((#:phases phases #~%standard-phases)
256 #~(modify-phases #$phases
257 (delete 'sanity-check)))))
258 (native-inputs
259 (list python-pbr python-setuptools python-wheel)))))
260
261(define-public python-os-testr
262 (let ((commit "0ba674d8c5d34890698e4e8ff9f71b24c389e109")
263 (revision "0"))
264 (package
265 (name "python-os-testr")
266 (version (git-version "3.0.0" revision commit))
267 (source
268 (origin
269 (method git-fetch)
270 (uri (git-reference
271 (url "https://github.com/openstack/os-testr")
272 (commit commit)))
273 (file-name (git-file-name name version))
274 (sha256
275 (base32 "1fd8n5fsq35ikak8by4z45sya2m1pmxpc4440579rfk3jjsq4vgc"))))
276 (build-system pyproject-build-system)
277 (arguments
278 (list
279 #:phases
280 #~(modify-phases %standard-phases
281 (add-after 'unpack 'relax-requirements
282 (lambda _
283 (substitute* "test-requirements.txt"
284 (("(coverage|hacking).*")
285 ""))))
286 (add-after 'unpack 'set-version
287 (lambda _
288 (setenv "PBR_VERSION" "3.0.0"))))))
289 (propagated-inputs (list python-stestr))
290 (native-inputs
291 (list python-babel
292 python-ddt
293 python-oslotest
294 python-pbr
295 python-setuptools
296 python-testrepository
297 python-testscenarios
298 python-testtools))
299 (home-page "https://github.com/openstack/os-testr")
300 (synopsis "Testr wrapper to provide functionality for OpenStack projects")
301 (description
302 "Os-testr provides developers with a testr wrapper and an output filter
303 for subunit.")
304 (license license:asl2.0))))
305
306(define-public python-stevedore
307 (package
308 (name "python-stevedore")
309 (version "5.4.1")
310 (source
311 (origin
312 (method url-fetch)
313 (uri (pypi-uri "stevedore" version))
314 (sha256
315 (base32
316 "0jvgrn2mk7psrgly61k16p6pywnb191gzfliy9p824pya2pbad9i"))))
317 (build-system pyproject-build-system)
318 (arguments
319 (list
320 #:phases
321 #~(modify-phases %standard-phases
322 (add-after 'unpack 'relax-requirements
323 (lambda _
324 (substitute* "test-requirements.txt"
325 (("sphinx.*")
326 "sphinx\n"))))
327 (replace 'check
328 (lambda* (#:key tests? test-flags #:allow-other-keys)
329 (when tests?
330 (apply invoke "stestr" "run" test-flags)))))))
331 (propagated-inputs (list python-pbr))
332 (native-inputs
333 (list python-coverage
334 python-setuptools
335 python-sphinx
336 python-stestr
337 python-wheel))
338 (home-page "https://github.com/dreamhost/stevedore")
339 (synopsis "Manage dynamic plugins for Python applications")
340 (description
341 "Python makes loading code dynamically easy, allowing you to configure
342and extend your application by discovering and loading extensions (\"plugins\")
343at runtime. Many applications implement their own library for doing this,
344using __import__ or importlib. Stevedore avoids creating yet another extension
345mechanism by building on top of setuptools entry points. The code for managing
346entry points tends to be repetitive, though, so stevedore provides manager
347classes for implementing common patterns for using dynamically loaded
348extensions.")
349 (license license:asl2.0)))
350
351(define-public python-stevedore-bootstrap
352 (hidden-package
353 (package/inherit python-stevedore
354 (arguments
355 (substitute-keyword-arguments (package-arguments python-stevedore)
356 ((#:tests? t? #t)
357 #f)
358 ((#:phases phases #~%standard-phases)
359 #~(modify-phases #$phases
360 (delete 'sanity-check)))))
361 (native-inputs
362 (list python-setuptools python-wheel)))))
363
364(define-public python-tempest
365 (package
366 (name "python-tempest")
367 (version "42.0.0")
368 (source
369 (origin
370 (method url-fetch)
371 (uri (pypi-uri "tempest" version))
372 (sha256
373 (base32 "03jc474y57k4c2ydlzw8qx327am9ag15s8j4r4jadrs2x149qvlx"))))
374 (build-system pyproject-build-system)
375 (arguments
376 (list
377 #:test-flags
378 #~(list "--test-path" "./tempest/tests"
379 ;; XXX: Probably requires some setup.
380 "--exclude-regex" (string-join
381 (list "test_load_json_resource_list"
382 "test_load_json_saved_state"
383 "test_take_action_got_exception"
384 "test_hacking")
385 "|"))
386 #:phases
387 #~(modify-phases %standard-phases
388 (add-after 'unpack 'remove-failing-tests
389 (lambda _
390 ;; XXX: Most of those tests require network connection.
391 (delete-file-recursively "tempest/tests/lib/services/volume")
392 (delete-file "tempest/tests/test_hacking.py")))
393 (add-after 'unpack 'relax-requirements
394 (lambda _
395 (substitute* "test-requirements.txt"
396 ;; unused, code-quality checks only
397 (("(hacking|flake8-.*|pycodestyle|coverage)[<>!=]" line)
398 (string-append "# " line)))))
399 (add-before 'check 'setup-check
400 (lambda* (#:key inputs #:allow-other-keys)
401 (substitute* "tempest/tests/lib/cli/test_execute.py"
402 (("cli_base.execute\\(\"env\",")
403 (string-append "cli_base.execute('"
404 (search-input-file inputs "bin/env") "',")))))
405 (replace 'check
406 (lambda* (#:key tests? test-flags #:allow-other-keys)
407 (when tests?
408 (apply invoke "stestr" "run" test-flags)))))))
409 (propagated-inputs (list python-cliff
410 python-cryptography
411 python-defusedxml
412 python-fasteners
413 python-fixtures
414 python-jsonschema
415 python-netaddr
416 python-oslo-concurrency
417 python-oslo-config
418 python-oslo-log
419 python-oslo-serialization
420 python-oslo-utils
421 python-paramiko
422 python-prettytable
423 python-pyyaml
424 python-stevedore
425 python-subunit
426 python-testtools
427 python-urllib3))
428 (native-inputs (list python-oslotest
429 python-pbr
430 python-setuptools
431 python-stestr
432 python-testscenarios
433 python-wheel))
434 (home-page "https://docs.openstack.org/tempest/latest/")
435 (synopsis "OpenStack Integration Testing")
436 (description "This is a set of integration tests to be run against a live
437OpenStack cluster. Tempest has batteries of tests for OpenStack API
438validation, scenarios, and other specific tests useful in validating an
439OpenStack deployment.")
440 (license license:asl2.0)))
441
442(define-public python-tempest-lib
443 (package
444 (name "python-tempest-lib")
445 (version "1.0.0")
446 (source
447 (origin
448 (method url-fetch)
449 (uri (pypi-uri "tempest-lib" version))
450 (sha256
451 (base32 "1cpp2vwmawpd29hjsklsps181lq2ah91cl412qvpnz228nf9sqn5"))))
452 (build-system pyproject-build-system)
453 (arguments
454 (list
455 #:tests? #f ; FIXME: Requires a lot of ancient packages.
456 #:phases
457 #~(modify-phases %standard-phases
458 (add-after 'unpack 'relax-requirements
459 (lambda _
460 (substitute* "requirements.txt"
461 (("jsonschema[<>!=].*") "jsonschema\n"))))
462 (add-before 'check 'pre-check
463 (lambda* (#:key inputs #:allow-other-keys)
464 (substitute* "tempest_lib/tests/cli/test_execute.py"
465 (("/bin/ls")
466 (search-input-file inputs "bin/ls"))))))))
467 (propagated-inputs
468 (list python-fixtures
469 python-httplib2
470 python-iso8601
471 python-jsonschema
472 python-oslo-log
473 python-paramiko))
474 (native-inputs
475 (list python-babel
476 python-mock
477 python-os-testr
478 python-oslotest
479 python-pbr
480 python-setuptools
481 python-wheel))
482 (home-page "https://www.openstack.org/")
483 (synopsis "OpenStack functional testing library")
484 (description
485 "Tempest-lib is a functional testing library for OpenStack. It provides
486common features used in Tempest.")
487 (license license:asl2.0)))
488
489
490;;;
491;;; Packages from the Oslo library
492;;;
493
494(define-public python-oslo-concurrency
495 (package
496 (name "python-oslo-concurrency")
497 (version "7.1.0")
498 (source
499 (origin
500 (method url-fetch)
501 (uri (pypi-uri "oslo_concurrency" version))
502 (sha256
503 (base32 "1jqlshynn8ddix3jx9ma969d6829xyy0vryhy5lpvc02h1zqg2nz"))))
504 (build-system pyproject-build-system)
505 (arguments
506 (list
507 ;; XXX: At least another test is failing, but blocks the rest.
508 #:tests? #f
509 ;; XXX: Disable failing tests.
510 #:test-flags
511 #~(list "--exclude-regex" (string-join
512 (list "test_fair_lock_with_spawn"
513 "test_fair_lock_with_spawn_n"
514 "test_with_stdout")
515 "|"))
516 #:phases
517 #~(modify-phases %standard-phases
518 (add-after 'unpack 'relax-requirements
519 (lambda _
520 (substitute* "test-requirements.txt"
521 (("(hacking|coverage|bandit|pre-commit)[<>!=]" line)
522 (string-append "# " line)))))
523 (add-before 'check 'fix-tests
524 (lambda* (#:key inputs #:allow-other-keys)
525 (define (cross-which bin)
526 (search-input-file inputs (string-append "bin/" bin)))
527 (substitute* "oslo_concurrency/tests/unit/test_processutils.py"
528 (("#!/bin/(bash|sh)" all sh)
529 (string-append "#!" (cross-which sh)))
530 (("'/usr/bin/env('| )" all rest)
531 (string-append "'" (cross-which "env") rest))
532 (("'/bin/true'")
533 (string-append "'" (cross-which "true") "'")))))
534 (replace 'check
535 (lambda* (#:key tests? test-flags #:allow-other-keys)
536 (when tests?
537 (apply invoke "stestr" "run" test-flags)))))))
538 (native-inputs
539 (list python-coverage
540 python-eventlet
541 python-fixtures
542 python-oslotest
543 python-pbr
544 python-setuptools
545 python-stestr
546 python-wheel))
547 (propagated-inputs
548 (list python-fasteners
549 python-oslo-config
550 python-oslo-i18n
551 python-oslo-utils))
552 (home-page "https://docs.openstack.org/oslo.concurrency/latest/")
553 (synopsis "Oslo Concurrency library")
554 (description "The Oslo Concurrency Library provides utilities for safely
555running multi-thread, multi-process applications using locking mechanisms and
556for running external processes.")
557 (license license:asl2.0)))
558
559(define-public python-oslo-config
560 (package
561 (name "python-oslo-config")
562 (version "9.8.0")
563 (source
564 (origin
565 (method url-fetch)
566 (uri (pypi-uri "oslo_config" version))
567 (sha256
568 (base32 "1ah8knzcxkg28v9av19wp6bg91d1mfyxm2y56whngvmb0jah1a7f"))))
569 (build-system pyproject-build-system)
570 (arguments
571 (list
572 ;; XXX: Disable failing tests.
573 #:test-flags
574 #~(list "--exclude-regex" (string-join
575 (list "test_print_help"
576 "test_print_strOpt_with_choices_help")
577 "|"))
578 #:phases
579 #~(modify-phases %standard-phases
580 (replace 'check
581 (lambda* (#:key tests? test-flags #:allow-other-keys)
582 (when tests?
583 (apply invoke "stestr" "run" test-flags)))))))
584 (propagated-inputs
585 (list python-netaddr
586 python-oslo-i18n-bootstrap
587 python-pyyaml
588 python-requests
589 python-rfc3986
590 python-stevedore))
591 (native-inputs
592 (list python-coverage
593 python-docutils
594 python-fixtures
595 python-oslo-log-bootstrap
596 python-oslotest-bootstrap
597 python-pbr
598 python-requests-mock
599 python-setuptools
600 python-sphinx
601 python-stestr
602 python-testscenarios
603 python-testtools))
604 (home-page "https://launchpad.net/oslo")
605 (synopsis "Oslo Configuration API")
606 (description
607 "The Oslo configuration API supports parsing command line arguments and
608.ini style configuration files.")
609 (license license:asl2.0)))
610
611(define-public python-oslo-context
612 (package
613 (name "python-oslo-context")
614 (version "5.0.0")
615 (source
616 (origin
617 (method url-fetch)
618 (uri (pypi-uri "oslo.context" version))
619 (sha256
620 (base32
621 "091j2cjh1b60nx6s0a4amb2idh9awijnbmppc3an0738fv8cdh48"))))
622 (build-system pyproject-build-system)
623 (arguments
624 (list
625 #:phases
626 #~(modify-phases %standard-phases
627 (add-after 'unpack 'relax-requirements
628 (lambda _
629 (substitute* "test-requirements.txt"
630 ;; unused, code-quality checks only
631 (("(bandit|hacking|pre-commit)[<>!=]" line)
632 (string-append "# " line))))))))
633 (propagated-inputs
634 (list python-debtcollector))
635 (native-inputs
636 (list python-coverage
637 python-fixtures
638 python-mypy
639 python-oslotest-bootstrap
640 python-pbr
641 python-setuptools
642 python-stestr
643 python-wheel))
644 (home-page "https://launchpad.net/oslo")
645 (synopsis "Oslo context library")
646 (description
647 "The Oslo context library has helpers to maintain useful information
648about a request context. The request context is usually populated in the WSGI
649pipeline and used by various modules such as logging.")
650 (license license:asl2.0)))
651
652(define-public python-oslo-i18n
653 (package
654 (name "python-oslo-i18n")
655 (version "6.5.1")
656 (source
657 (origin
658 (method url-fetch)
659 (uri (pypi-uri "oslo_i18n" version))
660 (sha256
661 (base32 "178h7grww0brsdcp2iz87giappl928ir82arnvppcz5gqmq6m1ga"))))
662 (build-system pyproject-build-system)
663 (native-inputs
664 (list python-coverage
665 python-debtcollector
666 python-oslo-config
667 python-oslotest
668 python-pbr
669 python-setuptools
670 python-stestr
671 python-testscenarios
672 python-wheel))
673 (home-page "https://launchpad.net/oslo")
674 (synopsis "Oslo internationalization (i18n) library")
675 (description
676 "The oslo.i18n library contain utilities for working with
677internationalization (i18n) features, especially translation for text strings
678in an application or library.")
679 (license license:asl2.0)))
680
681(define-public python-oslo-i18n-bootstrap
682 (hidden-package
683 (package/inherit python-oslo-i18n
684 (arguments
685 (substitute-keyword-arguments (package-arguments python-oslo-i18n)
686 ((#:tests? t? #t)
687 #f)
688 ((#:phases phases #~%standard-phases)
689 #~(modify-phases #$phases
690 (delete 'sanity-check)))))
691 (native-inputs
692 (list python-pbr python-setuptools python-wheel)))))
693
694(define-public python-oslo-log
695 (package
696 (name "python-oslo-log")
697 (version "7.2.0")
698 (source
699 (origin
700 (method url-fetch)
701 (uri (pypi-uri "oslo_log" version))
702 (sha256
703 (base32 "1siw60x15ysfbf88hiisdn556y4anixj3clciky4xcwsiz8a6gwn"))))
704 (build-system pyproject-build-system)
705 (arguments
706 (list
707 #:phases
708 #~(modify-phases %standard-phases
709 (replace 'check
710 (lambda* (#:key tests? test-flags #:allow-other-keys)
711 (when tests?
712 (apply invoke "stestr" "run" test-flags)))))))
713 (propagated-inputs
714 (list python-dateutil
715 python-oslo-config
716 python-oslo-context
717 python-oslo-i18n-bootstrap
718 python-oslo-serialization
719 python-oslo-utils))
720 (native-inputs
721 (list python-coverage
722 python-eventlet
723 python-fixtures
724 python-oslotest-bootstrap
725 python-pbr
726 python-setuptools
727 python-stestr
728 python-testtools
729 python-wheel))
730 (home-page "https://launchpad.net/oslo")
731 (synopsis "Python logging library of the Oslo project")
732 (description
733 "The oslo.log (logging) configuration library provides standardized
734configuration for all OpenStack projects. It also provides custom formatters,
735handlers and support for context specific logging (like resource id’s etc).")
736 (license license:asl2.0)))
737
738(define-public python-oslo-log-bootstrap
739 (hidden-package
740 (package/inherit python-oslo-log
741 (arguments
742 (substitute-keyword-arguments (package-arguments python-oslo-log)
743 ((#:tests? t? #t)
744 #f)
745 ((#:phases phases #~%standard-phases)
746 #~(modify-phases #$phases
747 (delete 'sanity-check)))))
748 (propagated-inputs
749 (modify-inputs (package-propagated-inputs python-oslo-log)
750 (delete "python-oslo-config"))))))
751
752(define-public python-oslo-serialization
753 (package
754 (name "python-oslo-serialization")
755 (version "5.7.0")
756 (source
757 (origin
758 (method url-fetch)
759 (uri (pypi-uri "oslo_serialization" version))
760 (sha256
761 (base32 "1rrvdhv82gklj45z6xs1h4l51jcz8fmdjijya2rkj1mqjzfx7i5x"))))
762 (build-system pyproject-build-system)
763 (arguments
764 (list
765 #:phases
766 #~(modify-phases %standard-phases
767 (replace 'check
768 (lambda* (#:key tests? test-flags #:allow-other-keys)
769 (when tests?
770 (apply invoke "stestr" "run" test-flags)))))))
771 (propagated-inputs
772 (list python-msgpack python-oslo-utils python-tzdata))
773 (native-inputs
774 (list python-netaddr
775 python-oslo-i18n-bootstrap
776 python-oslotest-bootstrap
777 python-setuptools
778 python-stestr
779 python-wheel))
780 (home-page "https://launchpad.net/oslo")
781 (synopsis "Oslo serialization library")
782 (description
783 "The oslo.serialization library provides support for representing objects
784in transmittable and storable formats, such as JSON and MessagePack.")
785 (license license:asl2.0)))
786
787(define-public python-reno
788 (package
789 (name "python-reno")
790 (version "4.1.0")
791 (source
792 (origin
793 (method url-fetch)
794 (uri (pypi-uri "reno" version))
795 (sha256
796 (base32 "0w2kc9znm3ffcfsrwhvqkq6878jk3l9hibs7vv4mw88nppyz34pr"))))
797 (build-system pyproject-build-system)
798 (arguments
799 (list
800 #:phases
801 #~(modify-phases %standard-phases
802 (add-before 'check 'pre-check
803 (lambda _
804 (setenv "HOME" "/tmp")
805 ;; reno expects a git repo
806 (invoke "git" "init"))))))
807 (native-inputs
808 (list git-minimal/pinned
809 gnupg
810 python-docutils
811 python-pbr
812 python-pytest
813 python-setuptools
814 python-sphinx
815 python-stestr
816 python-subunit
817 python-testscenarios
818 python-testtools
819 python-wheel))
820 (propagated-inputs
821 (list python-dulwich
822 python-pyyaml))
823 (home-page "https://docs.openstack.org/reno/latest/")
824 (synopsis "Release notes manager")
825 (description "Reno is a tool for storing release notes in a git repository
826and building documentation from them.")
827 (license license:asl2.0)))
828
829(define-public python-oslotest
830 (package
831 (name "python-oslotest")
832 (version "5.0.1")
833 (source
834 (origin
835 (method url-fetch)
836 (uri (pypi-uri "oslotest" version))
837 (sha256
838 (base32 "1vp85v81p2vx66j973hc7fa65shp0ilhaypyyny01jwcip94152s"))))
839 (build-system pyproject-build-system)
840 (arguments
841 (list
842 #:phases
843 #~(modify-phases %standard-phases
844 (add-after 'unpack 'remove-sub-package
845 ;; error: Multiple top-level packages discovered in a flat-layout:
846 ;; ['oslotest', 'releasenotes'].
847 (lambda _
848 (delete-file-recursively "releasenotes"))))))
849 (native-inputs
850 (list python-debtcollector
851 python-oslo-config
852 python-stestr
853 python-setuptools))
854 (propagated-inputs
855 (list python-fixtures
856 python-subunit
857 python-testtools))
858 (home-page "https://launchpad.net/oslo")
859 (synopsis "Oslo test framework")
860 (description "The Oslo Test framework provides common fixtures, support
861for debugging, and better support for mocking results.")
862 (license license:asl2.0)))
863
864(define-public python-oslotest-bootstrap
865 (hidden-package
866 (package/inherit python-oslotest
867 (arguments
868 (substitute-keyword-arguments (package-arguments python-oslotest)
869 ((#:tests? t? #t)
870 #f)
871 ((#:phases phases #~%standard-phases)
872 #~(modify-phases #$phases
873 (delete 'sanity-check)))))
874 (native-inputs
875 (list python-setuptools python-wheel)))))
876
877(define-public python-oslo-utils
878 (package
879 (name "python-oslo-utils")
880 (version "7.4.0")
881 (source
882 (origin
883 (method url-fetch)
884 (uri (pypi-uri "oslo.utils" version))
885 (sha256
886 (base32 "1kiynw1xhw88iimazjzmjrf4h8bzdyjyvkgj6jsz9p85m9fwnpda"))))
887 (build-system pyproject-build-system)
888 (arguments
889 (list
890 ;; XXX: Disable failing test.
891 #:test-flags
892 #~(list "--exclude-regex" "test_format_6_luks")
893 #:phases
894 #~(modify-phases %standard-phases
895 (replace 'check
896 (lambda* (#:key tests? test-flags #:allow-other-keys)
897 (when tests?
898 (apply invoke "stestr" "run" test-flags)))))))
899 (propagated-inputs
900 (list python-debtcollector
901 python-iso8601
902 python-netaddr
903 python-netifaces
904 python-oslo-i18n-bootstrap
905 python-packaging
906 python-pbr
907 python-psutil
908 python-pyparsing
909 python-pyyaml
910 python-tzdata))
911 (native-inputs
912 (list python-ddt
913 python-eventlet
914 python-fixtures
915 python-oslotest-bootstrap
916 python-setuptools
917 python-stestr
918 python-testscenarios
919 python-testtools
920 python-wheel
921 qemu-minimal))
922 (home-page "https://launchpad.net/oslo")
923 (synopsis "Oslo utility library")
924 (description
925 "The @code{oslo.utils} library provides support for common utility type
926functions, such as encoding, exception handling, string manipulation, and time
927handling.")
928 (license license:asl2.0)))
929
930(define-public python-keystoneauth1
931 (package
932 (name "python-keystoneauth1")
933 (version "5.11.1")
934 (source
935 (origin
936 (method url-fetch)
937 (uri (pypi-uri "keystoneauth1" version))
938 (sha256
939 (base32 "1wwicmgmga7ylyb2a15nh5y29r41vmxhyijs7ynjqjvzkg214vw0"))))
940 (build-system pyproject-build-system)
941 (arguments
942 (list
943 ;; XXX: Disable failing test.
944 #:test-flags
945 #~(list "--exclude-regex" "test_keystoneauth_betamax_fixture")
946 #:phases
947 #~(modify-phases %standard-phases
948 (add-after 'unpack 'relax-requirements
949 (lambda _
950 (substitute* "test-requirements.txt"
951 ;; unused, code-quality checks only
952 (("(hacking|coverage|bandit|reno)[<>!=]"
953 line)
954 (string-append "# " line)))))
955 (add-before 'check 'check-setup
956 (lambda _
957 ;; remove code-quality checks
958 (delete-file "keystoneauth1/tests/unit/test_hacking_checks.py")))
959 (replace 'check
960 (lambda* (#:key tests? test-flags #:allow-other-keys)
961 (when tests?
962 (apply invoke "stestr" "run" test-flags)))))))
963 (propagated-inputs
964 (list python-iso8601
965 python-os-service-types-bootstrap
966 python-pbr
967 python-requests
968 python-stevedore
969 python-typing-extensions))
970 (native-inputs
971 (list python-betamax
972 python-fixtures
973 python-lxml
974 python-oauthlib
975 python-oslo-config
976 python-oslo-utils
977 python-oslotest
978 python-pyyaml
979 python-requests-kerberos
980 python-requests-mock
981 python-setuptools
982 python-stestr
983 python-testresources
984 python-testtools
985 python-wheel))
986 (home-page "https://docs.openstack.org/keystoneauth/latest/")
987 (synopsis "Authentication Library for OpenStack Identity")
988 (description "Keystoneauth provides a standard way to do authentication
989and service requests within the OpenStack ecosystem. It is designed for use
990in conjunction with the existing OpenStack clients and for simplifying the
991process of writing new clients.")
992 (license license:asl2.0)))
993
994(define-public python-keystoneclient
995 (package
996 (name "python-keystoneclient")
997 (version "5.6.0")
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (pypi-uri "python_keystoneclient" version))
1002 (sha256
1003 (base32
1004 "1rqhxvych2a41dxlizz0qy37vs8jcxxy4kk7khw7c03iqypf47bj"))))
1005 (build-system pyproject-build-system)
1006 (arguments
1007 (list
1008 #:phases
1009 #~(modify-phases %standard-phases
1010 (add-after 'unpack 'remove-failing-tests
1011 (lambda _
1012 ;; XXX: Mostly tests for outdated os-client-config.
1013 (delete-file-recursively "keystoneclient/tests/functional/v3")))
1014 (replace 'check
1015 (lambda* (#:key tests? test-flags #:allow-other-keys)
1016 (when tests?
1017 (apply invoke "stestr" "run" test-flags))))
1018 (add-after 'unpack 'relax-requirements
1019 (lambda _
1020 (substitute* "test-requirements.txt"
1021 ;; XXX: Outdated/discontinued.
1022 (("os-client-config[<>!=]" line) (string-append "# " line))
1023 ;; unused, code-quality checks only
1024 (("(hacking|flake8-.*|pycodestyle|coverage|bandit|reno)[<>!=]"
1025 line)
1026 (string-append "# " line))))))))
1027 (native-inputs
1028 (list openssl
1029 python-bandit
1030 python-fixtures
1031 python-keyring
1032 python-lxml
1033 python-mock
1034 python-oauthlib
1035 python-oslotest
1036 python-pbr
1037 python-requests-mock
1038 python-setuptools
1039 python-stestr
1040 python-tempest
1041 python-tempest-lib
1042 python-testresources
1043 python-testscenarios
1044 python-testtools
1045 python-wheel))
1046 (propagated-inputs
1047 (list python-keystoneauth1
1048 python-oslo-config
1049 python-oslo-i18n
1050 python-oslo-serialization
1051 python-oslo-utils
1052 python-packaging
1053 python-pbr
1054 python-requests
1055 python-stevedore))
1056 (home-page "https://www.openstack.org/")
1057 (synopsis "Client Library for OpenStack Identity")
1058 (description
1059 "Python-keystoneclient is the identity service used by OpenStack for
1060authentication (authN) and high-level authorization (authZ). It currently
1061supports token-based authN with user/service authZ, and is scalable to support
1062OAuth, SAML, and OpenID in future versions. Out of the box, Keystone uses
1063SQLite for its identity store database, with the option to connect to external
1064LDAP.")
1065 (license license:asl2.0)))
1066
1067(define-public python-swiftclient
1068 (package
1069 (name "python-swiftclient")
1070 (version "4.8.0")
1071 (source
1072 (origin
1073 (method url-fetch)
1074 (uri (pypi-uri "python_swiftclient" version))
1075 (sha256
1076 (base32 "0qrq9fdcmqhg1374hsj58hddpfd2jm78q32yqbywls4k8smjq5j4"))))
1077 (build-system pyproject-build-system)
1078 (arguments
1079 (list
1080 #:phases
1081 #~(modify-phases %standard-phases
1082 (add-before 'check 'relax-requirements
1083 (lambda _
1084 (delete-file "test-requirements.txt")))
1085 (replace 'check
1086 (lambda* (#:key tests? test-flags #:allow-other-keys)
1087 (when tests?
1088 (apply invoke "stestr" "run" test-flags)))))))
1089 (native-inputs
1090 (list python-keystoneauth1
1091 python-keystoneclient
1092 python-openstacksdk
1093 python-pbr
1094 python-setuptools
1095 python-stestr
1096 python-wheel))
1097 (propagated-inputs
1098 (list python-requests))
1099 (home-page "https://www.openstack.org/")
1100 (synopsis "OpenStack Object Storage API Client Library")
1101 (description
1102 "OpenStack Object Storage (code-named Swift) creates redundant, scalable
1103object storage using clusters of standardized servers to store petabytes of
1104accessible data. It is not a file system or real-time data storage system, but
1105rather a long-term storage system for a more permanent type of static data that
1106can be retrieved, leveraged, and then updated if necessary. Primary examples of
1107data that best fit this type of storage model are virtual machine images, photo
1108storage, email storage and backup archiving. Having no central \"brain\" or
1109master point of control provides greater scalability, redundancy and
1110permanence.")
1111 (license license:asl2.0)))
1112
1113(define-public python-git-review
1114 (package
1115 (name "python-git-review")
1116 (version "2.5.0")
1117 (source
1118 (origin
1119 (method url-fetch)
1120 (uri (pypi-uri "git_review" version))
1121 (sha256
1122 (base32 "1a7h3i1wsq0gsclb2mififypr9q0sz3ni0kf0qxmm2l40bpzmkqv"))))
1123 (build-system pyproject-build-system)
1124 (arguments
1125 (list
1126 #:tests? #f ; tests require a running Gerrit server
1127 #:phases
1128 #~(modify-phases %standard-phases
1129 (add-after 'wrap 'wrap-program
1130 (lambda* (#:key inputs #:allow-other-keys)
1131 (wrap-program (string-append #$output "/bin/git-review")
1132 `("PATH" ":" prefix
1133 ,(map (lambda (bin)
1134 (search-input-file inputs
1135 (string-append "bin/" bin)))
1136 (list "git" "ssh")))))))))
1137 (native-inputs (list python-pbr python-setuptools python-wheel))
1138 (propagated-inputs (list python-requests))
1139 (inputs (list bash-minimal git-minimal openssh-sans-x))
1140 (home-page "https://docs.openstack.org/infra/git-review/")
1141 (synopsis "Command-line tool for Gerrit")
1142 (description
1143 "Git-review is a command-line tool that helps submitting Git branches to
1144Gerrit for review, or fetching existing ones.")
1145 (license license:asl2.0)))
1146
1147(define-public python-requestsexceptions
1148 (package
1149 (name "python-requestsexceptions")
1150 (version "1.4.0")
1151 (source
1152 (origin
1153 (method git-fetch)
1154 (uri (git-reference
1155 (url "https://github.com/openstack/requestsexceptions")
1156 (commit version)))
1157 (file-name (git-file-name name version))
1158 (sha256
1159 (base32 "12c4bi2vm337sgbbl08i01v794glnk1fzgxdc11545dqdl57rslz"))))
1160 (build-system pyproject-build-system)
1161 (arguments
1162 (list
1163 ;; XXX: There are some tests in tox.ini, but it leads nowhere.
1164 #:tests? #f
1165 #:phases
1166 #~(modify-phases %standard-phases
1167 (add-after 'unpack 'relax-requirements
1168 (lambda _
1169 (substitute* "test-requirements.txt"
1170 (("hacking.*")
1171 ""))))
1172 (add-after 'unpack 'set-version
1173 (lambda _
1174 (setenv "PBR_VERSION" #$version))))))
1175 (native-inputs (list python-os-testr python-pbr python-setuptools))
1176 (home-page "https://github.com/openstack/requestsexceptions")
1177 (synopsis
1178 "Import exceptions from potentially bundled packages in requests")
1179 (description
1180 "The Python requests library bundles the urllib3 library, however, some
1181software distributions modify requests to remove the bundled library. This
1182makes some operations difficult, such as suppressing the “insecure platform
1183warning” messages that urllib emits. This package is a simple library to find
1184the correct path to exceptions in the requests library regardless of whether
1185they are bundled or not.")
1186 (license license:asl2.0)))
1187
1188(define-public python-openstacksdk
1189 (package
1190 (name "python-openstacksdk")
1191 (version "4.6.0")
1192 (source
1193 (origin
1194 (method url-fetch)
1195 (uri (pypi-uri "openstacksdk" version))
1196 (sha256
1197 (base32 "0gbxjz8dg5ar5mgbk896cpq5vgp4j3a1iri8aakaxs9j8xn1czp4"))))
1198 (build-system pyproject-build-system)
1199 (arguments
1200 (list
1201 #:test-flags
1202 #~(list "--exclude-regex"
1203 (string-join
1204 (list
1205 ;; tests timing out
1206 "test_create_dynamic_large_object"
1207 "test_create_object_index_rax"
1208 "test_create_object_skip_checksum"
1209 "test_inspect_machine_inspect_failed"
1210 "test_inspect_machine_wait"
1211 "test_status_fails_different_attribute"
1212 "test_status_match"
1213 "test_status_match_different_attribute"
1214 "test_status_match_with_none"
1215 "test_wait_for_baremetal_node_lock_locked"
1216 "test_wait_for_task_error_396"
1217 "test_wait_for_task_wait"
1218 ;; XXX: Most fail due to network issues.
1219 "test_callback"
1220 "test_callback_without_progress"
1221 "test_create_data"
1222 "test_create_image_task"
1223 "test_create_no_data"
1224 "test_delete_autocreated_image_objects"
1225 "test_delete_firewall_policy"
1226 "test_delete_firewall_policy_filters"
1227 "test_delete_firewall_rule"
1228 "test_delete_firewall_rule_filters"
1229 "test_delete_image_task"
1230 "test_delete_volume_backup_wait"
1231 "test_get_object"
1232 "test_ost_version"
1233 "test_slo_manifest_fail"
1234 "test_status"
1235 "test_stream_object"
1236 "test_success_not_found")
1237 "|"))
1238 #:phases
1239 #~(modify-phases %standard-phases
1240 (replace 'check
1241 (lambda* (#:key tests? test-flags #:allow-other-keys)
1242 (when tests?
1243 (apply invoke "stestr" "run" test-flags)))))))
1244 (native-inputs
1245 (list python-debtcollector
1246 python-ddt
1247 python-hacking
1248 python-jsonschema
1249 python-oslo-config
1250 python-oslotest
1251 python-pbr
1252 python-prometheus-client
1253 python-requests-mock
1254 python-setuptools
1255 python-statsd
1256 python-stestr
1257 python-testscenarios
1258 python-wheel))
1259 (propagated-inputs
1260 (list python-cryptography
1261 python-decorator
1262 python-dogpile-cache
1263 python-iso8601
1264 python-jmespath
1265 python-jsonpatch
1266 python-keystoneauth1
1267 python-os-service-types
1268 python-pbr
1269 python-platformdirs
1270 python-psutil
1271 python-pyyaml
1272 python-requestsexceptions
1273 python-typing-extensions))
1274 (home-page "https://docs.openstack.org/openstacksdk/latest/")
1275 (synopsis "SDK for building applications to work with OpenStack")
1276 (description "This package provides a client library for building
1277applications to work with OpenStack clouds. The SDK aims to provide a
1278consistent and complete set of interactions with OpenStack’s many services,
1279along with complete documentation, examples, and tools.")
1280 (license license:asl2.0)))