openstack.scm 30 KB

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