Merge branch 'master' into staging
[jackhill/guix/guix.git] / gnu / packages / openstack.scm
index 2a1313c..86d1ce9 100644 (file)
@@ -19,6 +19,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages openstack)
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages openstack)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
 To do this Bandit processes each file, builds an AST from it, and runs
 appropriate plugins against the AST nodes.  Once Bandit has finished scanning
 all the files it generates a report.")
 To do this Bandit processes each file, builds an AST from it, and runs
 appropriate plugins against the AST nodes.  Once Bandit has finished scanning
 all the files it generates a report.")
+    (properties `((python2-variant . ,(delay python2-bandit))))
     (license asl2.0)))
 
 (define-public python2-bandit
     (license asl2.0)))
 
 (define-public python2-bandit
-  (package-with-python2 python-bandit))
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-bandit)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
 
 (define-public python-debtcollector
   (package
 
 (define-public python-debtcollector
   (package
@@ -106,32 +113,33 @@ manner.")
 (define-public python-hacking
   (package
     (name "python-hacking")
 (define-public python-hacking
   (package
     (name "python-hacking")
-    (version "0.10.2")
+    (version "0.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hacking" version))
        (sha256
         (base32
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hacking" version))
        (sha256
         (base32
-         "1a310k3dv04jg7zvmk37h2ql7y9kf4hvdxb74bjlwdxgmy6h4wap"))))
+         "1s1wq2sds6fjp8rwz31vkp33kjl9nyk5y2g2pri8shic75dr00h4"))))
     (build-system python-build-system)
     (build-system python-build-system)
-    (arguments
-     ;; TODO: Requires unpackaged 'eventlet'.
-     '(#:tests? #f))
     (propagated-inputs
     (propagated-inputs
-      `(("python-flake8-2.2.4" ,python-flake8-2.2.4)
-        ("python-mccabe-0.2.1" ,python-mccabe-0.2.1)
-        ("python-pbr" ,python-pbr)
-        ("python-pep8-1.5.7" ,python-pep8-1.5.7)
-        ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1)
-        ("python-six" ,python-six)))
+     `(("python-flake8" ,python-flake8)
+       ("python-mccabe-0.2.1" ,python-mccabe-0.2.1)
+       ("python-pbr" ,python-pbr)
+       ("python-pep8-1.5.7" ,python-pep8-1.5.7)
+       ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1)
+       ("python-six" ,python-six)))
     (native-inputs
     (native-inputs
-      `(;; Tests
-        ("python-testscenarios" ,python-testscenarios)))
-    (home-page "http://github.com/openstack-dev/hacking")
+     `( ;; Tests
+       ("python-eventlet" ,python-eventlet)
+       ("python-mock" ,python-mock)
+       ("python-reno" ,python-reno)
+       ("python-testrepository" ,python-testrepository)
+       ("python-testscenarios" ,python-testscenarios)))
+    (home-page "https://github.com/openstack-dev/hacking")
     (synopsis "OpenStack hacking guideline enforcement")
     (description
     (synopsis "OpenStack hacking guideline enforcement")
     (description
-      "Python-hacking is a set of flake8 plugins that test and enforce the
+     "Python-hacking is a set of flake8 plugins that test and enforce the
 @uref{http://docs.openstack.org/developer/hacking/, OpenStack style
 guidelines}.")
     (license asl2.0)))
 @uref{http://docs.openstack.org/developer/hacking/, OpenStack style
 guidelines}.")
     (license asl2.0)))
@@ -152,11 +160,11 @@ guidelines}.")
            "0njmh40i1lg5mzn9hc2ax83adj6dli455j6xifilrw27c4wlkjzx"))))
     (build-system python-build-system)
     (arguments
            "0njmh40i1lg5mzn9hc2ax83adj6dli455j6xifilrw27c4wlkjzx"))))
     (build-system python-build-system)
     (arguments
-     ;; TODO: Requires newer version of testtools (>=1.4.0).
+     ;; TODO: Resolve dependency cycle and re-enable.
      '(#:tests? #f))
     (native-inputs
       `(("python-fixtures" ,python-fixtures)
      '(#:tests? #f))
     (native-inputs
       `(("python-fixtures" ,python-fixtures)
-        ("python-oslosphinx" ,python-oslosphinx)
+        ; TODO re-add ("python-oslosphinx" ,python-oslosphinx)
         ("python-pbr" ,python-pbr)
         ("python-sphinx" ,python-sphinx)
         ("python-testtools" ,python-testtools)))
         ("python-pbr" ,python-pbr)
         ("python-sphinx" ,python-sphinx)
         ("python-testtools" ,python-testtools)))
@@ -244,14 +252,14 @@ tested on Python version 3.2, 2.7 and 2.6.")
 (define-public python-requests-mock
   (package
     (name "python-requests-mock")
 (define-public python-requests-mock
   (package
     (name "python-requests-mock")
-    (version "1.0.0")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "requests-mock" version))
        (sha256
         (base32
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "requests-mock" version))
        (sha256
         (base32
-         "0gcjjwsckhqixyffflc54i59x41jnbb37bli077vabii1bjmkin6"))))
+         "0jr997dvk6zbmhvbpcv3rajrgag69mcsm1ai3w3rgk2jdh6rg1mx"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-requests" ,python-requests)
     (build-system python-build-system)
     (propagated-inputs
      `(("python-requests" ,python-requests)
@@ -270,10 +278,16 @@ tested on Python version 3.2, 2.7 and 2.6.")
     (description
       "This module provides a building block to stub out the HTTP requests
 portions of your testing code.")
     (description
       "This module provides a building block to stub out the HTTP requests
 portions of your testing code.")
+    (properties `((python2-variant . ,(delay python2-requests-mock))))
     (license asl2.0)))
 
 (define-public python2-requests-mock
     (license asl2.0)))
 
 (define-public python2-requests-mock
-  (package-with-python2 python-requests-mock))
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-requests-mock)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
 
 (define-public python-stevedore
   (package
 
 (define-public python-stevedore
   (package
@@ -310,10 +324,16 @@ mechanism by building on top of setuptools entry points.  The code for managing
 entry points tends to be repetitive, though, so stevedore provides manager
 classes for implementing common patterns for using dynamically loaded
 extensions.")
 entry points tends to be repetitive, though, so stevedore provides manager
 classes for implementing common patterns for using dynamically loaded
 extensions.")
+    (properties `((python2-variant . ,(delay python2-stevedore))))
     (license asl2.0)))
 
 (define-public python2-stevedore
     (license asl2.0)))
 
 (define-public python2-stevedore
-  (package-with-python2 python-stevedore))
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-stevedore)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
 
 (define-public python-tempest-lib
   (package
 
 (define-public python-tempest-lib
   (package
@@ -328,7 +348,8 @@ extensions.")
         "1cpp2vwmawpd29hjsklsps181lq2ah91cl412qvpnz228nf9sqn5"))))
     (build-system python-build-system)
     (arguments
         "1cpp2vwmawpd29hjsklsps181lq2ah91cl412qvpnz228nf9sqn5"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #f ; FIXME: Requires oslo.log >= 1.14.0.
+       #:phases
        (modify-phases %standard-phases
          (add-before
           'check 'pre-check
        (modify-phases %standard-phases
          (add-before
           'check 'pre-check
@@ -484,6 +505,8 @@ in an application or library.")
         (base32
           "1fhy6yvbd565nv4x4i3ppyrlbmz3yy9d0xsvw5nkqsa7g43nmf8z"))))
   (build-system python-build-system)
         (base32
           "1fhy6yvbd565nv4x4i3ppyrlbmz3yy9d0xsvw5nkqsa7g43nmf8z"))))
   (build-system python-build-system)
+  (arguments
+   '(#:tests? #f)) ; FIXME: Requires oslo.utils >= 3.2.0.
   (propagated-inputs
    `(("python-debtcollector" ,python-debtcollector)
      ("python-oslo.config" ,python-oslo.config)
   (propagated-inputs
    `(("python-debtcollector" ,python-debtcollector)
      ("python-oslo.config" ,python-oslo.config)
@@ -521,6 +544,8 @@ handlers and support for context specific logging (like resource id’s etc).")
         (base32
          "00s03krhf833gs76aw5ns32w9m1i4hx6x6d9g82m0j5wyqk0sci4"))))
     (build-system python-build-system)
         (base32
          "00s03krhf833gs76aw5ns32w9m1i4hx6x6d9g82m0j5wyqk0sci4"))))
     (build-system python-build-system)
+    (arguments
+     '(#:tests? #f)) ; FIXME: Requires python-oslo.utils >= 3.2.0.
     (propagated-inputs
       `(("python-iso8601" ,python-iso8601)
         ("python-netaddr" ,python-netaddr)
     (propagated-inputs
       `(("python-iso8601" ,python-iso8601)
         ("python-netaddr" ,python-netaddr)
@@ -545,18 +570,74 @@ in transmittable and storable formats, such as JSON and MessagePack.")
 (define-public python2-oslo.serialization
   (package-with-python2 python-oslo.serialization))
 
 (define-public python2-oslo.serialization
   (package-with-python2 python-oslo.serialization))
 
+(define-public python-reno
+  (package
+    (name "python-reno")
+    (version "2.0.3")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "reno" version))
+        (sha256
+          (base32 "1i2wnn5fnm3jm5774pahg000q0lma5i913hml91bbbm2mybphndd"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'init-git
+           (lambda _
+             ;; reno expects a git repo
+             (zero? (system* "git" "init")))))))
+    (propagated-inputs
+      `(("python-babel" ,python-babel)
+        ("python-dulwich" ,python-dulwich)
+        ("python-pyyaml" ,python-pyyaml)
+        ("python-six" ,python-six)))
+    (native-inputs
+      `(("python-testtools" ,python-testtools)
+        ("python-pbr" ,python-pbr)
+        ("python-testscenarios" ,python-testscenarios)
+        ("python-testrepository" ,python-testrepository)
+        ("python-mock" ,python-mock)
+        ("python-oslotest" ,python-oslotest)
+        ("gnupg" ,gnupg)
+        ("git" ,git)))
+    (home-page "http://docs.openstack.org/developer/reno/")
+    (synopsis "Release notes manager")
+    (description "Reno is a tool for storing release notes in a git repository
+and building documentation from them.")
+    (properties `((python2-variant . ,(delay python2-reno))))
+    (license asl2.0)))
+
+(define-public python2-reno
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-reno)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
+
 (define-public python-oslosphinx
   (package
     (name "python-oslosphinx")
 (define-public python-oslosphinx
   (package
     (name "python-oslosphinx")
-    (version "4.3.0")
+    (version "4.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslosphinx" version))
        (sha256
         (base32
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "oslosphinx" version))
        (sha256
         (base32
-         "0cz8ym4i1n4rgljlqhyhfkpgdmid7nkb909k8r8nk186m9cmpla2"))))
+         "09mxqyabi68f3s3arvdhlhq0mn38vf74jbsfcg84151hcj6czhnl"))))
     (build-system python-build-system)
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             ;; Note: Upstream tests would have also built the release notes.
+             ;; That only would work if we were in a git checkout.
+             ;; Therefore, we don't do it here.
+             (zero? (system* "python" "setup.py" "build_sphinx")))))))
     (propagated-inputs
       `(("python-requests" ,python-requests)))
     (native-inputs
     (propagated-inputs
       `(("python-requests" ,python-requests)))
     (native-inputs
@@ -606,10 +687,16 @@ from the OpenStack project.")
     (description
       "The Oslo Test framework provides common fixtures, support for debugging,
 and better support for mocking results.")
     (description
       "The Oslo Test framework provides common fixtures, support for debugging,
 and better support for mocking results.")
+    (properties `((python2-variant . ,(delay python2-oslotest))))
     (license asl2.0)))
 
 (define-public python2-oslotest
     (license asl2.0)))
 
 (define-public python2-oslotest
-  (package-with-python2 python-oslotest))
+  (package (inherit (package-with-python2
+                     (strip-python2-variant python-oslotest)))
+           (arguments
+            `(#:python ,python-2
+              ;; FIXME: 'subunit.run discover: error: no such option: --list'
+              #:tests? #f))))
 
 (define-public python-oslo.utils
   (package
 
 (define-public python-oslo.utils
   (package
@@ -628,6 +715,8 @@ and better support for mocking results.")
             ;; phase.
             (delete-file "oslo_utils/tests/test_netutils.py")))))
     (build-system python-build-system)
             ;; phase.
             (delete-file "oslo_utils/tests/test_netutils.py")))))
     (build-system python-build-system)
+    (arguments
+     '(#:tests? #f)) ; FIXME: Requires oslo.config >= 2.7.0.
     (propagated-inputs
       `(("python-debtcollector" ,python-debtcollector)
         ("python-oslo.i18n" ,python-oslo.i18n)
     (propagated-inputs
       `(("python-debtcollector" ,python-debtcollector)
         ("python-oslo.i18n" ,python-oslo.i18n)
@@ -641,6 +730,8 @@ and better support for mocking results.")
       `(("python-babel" ,python-babel)
         ("python-pbr" ,python-pbr)
         ;; Tests.
       `(("python-babel" ,python-babel)
         ("python-pbr" ,python-pbr)
         ;; Tests.
+        ("python-bandit" ,python-bandit)
+        ("python-oslo.config" ,python-oslo.config)
         ("python-oslotest" ,python-oslotest)
         ("python-mock" ,python-mock)
         ("python-mox3" ,python-mox3)
         ("python-oslotest" ,python-oslotest)
         ("python-mock" ,python-mock)
         ("python-mox3" ,python-mox3)
@@ -668,6 +759,8 @@ handling.")
          (base32
           "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
     (build-system python-build-system)
          (base32
           "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4"))))
     (build-system python-build-system)
+    (arguments
+     '(#:tests? #f)) ; FIXME: Many tests are failing.
     (native-inputs
      `(("python-sphinx" ,python-sphinx)
        ;; and some packages for the tests
     (native-inputs
      `(("python-sphinx" ,python-sphinx)
        ;; and some packages for the tests
@@ -774,6 +867,10 @@ permanence.")
 (define-public python2-swiftclient
   (let ((swiftclient (package-with-python2 python-swiftclient)))
     (package (inherit swiftclient)
 (define-public python2-swiftclient
   (let ((swiftclient (package-with-python2 python-swiftclient)))
     (package (inherit swiftclient)
+      (arguments
+       `(#:python ,python-2
+         ;; FIXME: subunit.run discover: error: no such option: --list
+         #:tests? #f))
       (propagated-inputs
        `(("python2-futures" ,python2-futures)
          ("python2-requests" ,python2-requests)
       (propagated-inputs
        `(("python2-futures" ,python2-futures)
          ("python2-requests" ,python2-requests)