[PATCH 0/24] Add mirage

OpenSubmitted by slg.
Details
3 participants
  • slg
  • Maxime Devos
  • Vinicius Monego
Owner
unassigned
Severity
normal
S
(address . guix-patches@gnu.org)
24bef80c88d8f45be9e74453c847fc0af8822633.camel@disroot.org
Hello Guix developers,

This is my first time sending patches, so if I did something unusual,
plase tell me.

The patches sent here are necessary for running the Matrix client
Mirage. Most of them are updates for Python packages and missing Python
packages that are needed by Mirage dependencies.

Sincerely,

slg
S
[PATCH 01/24] gnu: Add pyotherside.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-1-0x2d@disroot.org
* gnu/packages/qt.scm (pyotherside): New variable.
---
gnu/packages/qt.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 19fcc2f37e..3e91a82a46 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3044,3 +3044,36 @@ being fully customizable and easy to extend.")
 also compatible with SGI and TGS Open Inventor, and the API is based on the API
 of the InventorXt GUI component toolkit.")
     (license license:bsd-3))))
+
+(define-public pyotherside
+  (let ((commit-ref "8f7e67980f7ceb2d0fc40a9568d3b10c640a8d74")
+        (revision "1"))
+    (package
+      (inherit qtsvg)
+      (name "pyotherside")
+      (version (git-version "1.5.9" revision commit-ref))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/thp/pyotherside")
+               (commit commit-ref)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1kq8v2inwx4j9idsdxwkjas4nqyfwzwfwiiwpjqr8ggcx1z9gvi3"))))
+      (outputs '("out"))
+      (inputs
+       `(("qtbase" ,qtbase-5)
+         ("qtdeclarative" ,qtdeclarative)
+         ("qtsvg" ,qtsvg)))
+      (propagated-inputs
+       `(("python" ,python-wrapper)))
+      (native-inputs `())
+      (arguments
+       (substitute-keyword-arguments (package-arguments qtsvg)
+         ((#:tests? _ #f) #f))) ;; Plugin must be installed before testing
+      (home-page "https://thp.io/2011/pyotherside/")
+      (synopsis "Asynchronous Python 3 Bindings for Qt 5")
+      (description "A Qt plugin providing access to a Python 3 interpreter from
+QML for creating asynchronous mobile and Desktop UIs with Python.")
+      (license license:isc))))
-- 
2.32.0
S
[PATCH 02/24] gnu: libolm: Add python bindings output.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-2-0x2d@disroot.org
* gnu/packages/crypto.scm (libolm): Add python bindings
---
gnu/packages/crypto.scm | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)

Toggle diff (38 lines)
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 99455dc632..b1cfd46adc 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -1310,13 +1310,30 @@ Trusted comments are signed, thus verified, before being displayed.")
                 "0bixly6jqpwfx3p37c1qp1j685yg6m429r1nazwh43w4n527bs3y"))
               (file-name (git-file-name name version))))
     (build-system cmake-build-system)
+    (outputs '("out" "python"))
+    (propagated-inputs
+     `(("python-cffi" ,python-cffi)))
+    (native-inputs
+     `(("python" ,python-wrapper)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
              (with-directory-excursion "tests"
-               (invoke "ctest" ".")))))))
+               (invoke "ctest" "."))))
+         (add-after 'install 'install-python-binding
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion "../source/python"
+               (invoke "make" "headers" "CPP=cpp") ;; Somehow default $(CPP) is cc?
+               (invoke "python" "setup.py" "build_ext"
+                       (string-append "--library-dirs="
+                                      (assoc-ref outputs "out")
+                                      "/lib"))
+               (invoke "python" "setup.py" "install"
+                       (string-append "--prefix="
+                                      (assoc-ref outputs "python"))
+                       "--root=/")))))))
     (synopsis "Implementation of the olm and megolm cryptographic ratchets")
     (description "The libolm library implements the Double Ratchet
 cryptographic ratchet.  It is written in C and C++11, and exposed as a C
-- 
2.32.0
S
[PATCH 03/24] gnu: libolm: Update to 3.2.4.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-3-0x2d@disroot.org
* gnu/packages/crypto.scm (libolm): Update to 3.2.4.
---
gnu/packages/crypto.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index b1cfd46adc..c28b563651 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -1299,7 +1299,7 @@ Trusted comments are signed, thus verified, before being displayed.")
 (define-public libolm
   (package
     (name "libolm")
-    (version "3.2.3")
+    (version "3.2.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1307,7 +1307,7 @@ Trusted comments are signed, thus verified, before being displayed.")
                     (commit version)))
               (sha256
                (base32
-                "0bixly6jqpwfx3p37c1qp1j685yg6m429r1nazwh43w4n527bs3y"))
+                "1rl7j26li1irb1lqnnkzan7jrj38kvmdn69rlwbbp390v3z15lvh"))
               (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (outputs '("out" "python"))
-- 
2.32.0
S
[PATCH 04/24] gnu: Add python-html-sanitizer.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-4-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-html-sanitizer): New variable.
---
gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index bb263a6f20..54c7d91116 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25990,3 +25990,26 @@ is the cythonized version of @code{fractions.Fraction}.")
      "@code{pathvalidate} is a Python library to sanitize/validate strings
 representing paths or filenames.")
     (license license:expat)))
+
+(define-public python-html-sanitizer
+  (package
+    (name "python-html-sanitizer")
+    (version "1.9.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "html-sanitizer" version))
+       (sha256
+        (base32 "1mb9d80mar5y4ariqbmrxn5llcffh5qp3s3ywd05bxgg7jzaxh0k"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-lxml" ,python-lxml)
+       ("python-beautifulsoup4" ,python-beautifulsoup4)))
+    (home-page "https://github.com/matthiask/html-sanitizer")
+    (synopsis "Python library to sanitize HTML")
+    (description "This is a allowlist-based and very opinionated HTML sanitizer
+that can be used both for untrusted and trusted sources.  It attempts to clean
+up the mess made by various rich text editors and or copy-pasting to make
+styling of webpages simpler and more consistent.  It builds on the excellent
+HTML cleaner in lxml to make the result both valid and safe.")
+    (license license:bsd-3)))
-- 
2.32.0
S
[PATCH 05/24] gnu: Add python-filetype.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-5-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-filetype): New variable.
---
gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 54c7d91116..6831e2365b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26013,3 +26013,24 @@ up the mess made by various rich text editors and or copy-pasting to make
 styling of webpages simpler and more consistent.  It builds on the excellent
 HTML cleaner in lxml to make the result both valid and safe.")
     (license license:bsd-3)))
+
+(define-public python-filetype
+  (package
+    (name "python-filetype")
+    (version "1.0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "filetype" version))
+       (sha256
+        (base32
+         "19vav4w8vvcnrps1mirjkrv4pr1khwn5ma6m5pgpxd4qip73wffs"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ;; FIXME: obscure error in test
+    (home-page "https://github.com/h2non/filetype.py")
+    (synopsis "Python package for checking file type and MIME type")
+    (description "Small and dependency free Python package to infer file type
+and MIME type checking the magic numbers signature of a file or buffer.  This
+is a Python port from filetype Go package.")
+    (license license:x11)))
-- 
2.32.0
S
[PATCH 06/24] gnu: Add python-logbook.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-6-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-logbook): New variable.
---
gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6831e2365b..bb3997501b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26034,3 +26034,33 @@ HTML cleaner in lxml to make the result both valid and safe.")
 and MIME type checking the magic numbers signature of a file or buffer.  This
 is a Python port from filetype Go package.")
     (license license:x11)))
+
+(define-public python-logbook
+  (package
+    (name "python-logbook")
+    (version "1.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Logbook" version))
+       (sha256
+        (base32
+         "1s1gyfw621vid7qqvhddq6c3z2895ci4lq3g0r1swvpml2nm9x36"))))
+    (build-system python-build-system) ;; TODO: fix native extension build
+    ;; Fails with gcc trying to compile unexistent file 'logbook/_speedups.c'.
+    ;; Apparently it is generated from logbook/_speedups.pyx, I do not know if
+    ;; an extra build phase is needed to generate this file.
+    (arguments
+     `(#:tests? #f)) ;; Needs native extension, which for some reason will
+                     ;; not be compiled.
+    (propagated-inputs
+     `(("python-jinja2" ,python-jinja2)
+       ("python-sqlalchemy" ,python-sqlalchemy)
+       ("python-redis" ,python-redis)
+       ("python-pyzmq" ,python-pyzmq)
+       ("python-execnet" ,python-execnet)
+       ("python-brotli" ,python-brotli)))
+    (home-page "https://logbook.readthedocs.io/en/stable")
+    (synopsis "Python logging library")
+    (description "An awesome logging implementation that is fun to use.")
+    (license license:bsd-1)))
-- 
2.32.0
S
[PATCH 07/24] gnu: python-unpaddedbase64: Update to 2.1.0.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-7-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-unpaddedbase64): Update to 2.1.0.
* gnu/packages/python-xyz.scm (python-unpaddedbase64): Use pypi-url
---
gnu/packages/python-xyz.scm | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)

Toggle diff (28 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index bb3997501b..c6ff826528 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -23823,17 +23823,14 @@ replacement for dictionaries where immutability is desired.")
 (define-public python-unpaddedbase64
   (package
     (name "python-unpaddedbase64")
-    (version "1.1.0")
+    (version "2.1.0")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/matrix-org/python-unpaddedbase64")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (pypi-uri "unpaddedbase64" version))
        (sha256
         (base32
-         "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd"))))
+         "01ghlmw63fgslwj8j74vkpf1kqvr7a4agm6nyn89vqwx106ccwvj"))))
     (build-system python-build-system)
     (home-page "https://pypi.org/project/unpaddedbase64/")
     (synopsis "Encode and decode Base64 without “=” padding")
-- 
2.32.0
S
[PATCH 08/24] gnu: python-pycryptodome: Update to 3.10.1.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-8-0x2d@disroot.org
* gnu/packages/python-crypto.scm (python-pycryptodome): Update to 3.10.1.
---
gnu/packages/python-crypto.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 733a87cd2f..8170c3c794 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -992,14 +992,14 @@ protocol (Javascript Object Signing and Encryption).")
 (define-public python-pycryptodome
   (package
     (name "python-pycryptodome")
-    (version "3.9.9")
+    (version "3.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pycryptodome" version))
        (sha256
         (base32
-         "1i4m74f88qj9ci8rpyzrbk2slmsdj5ipmwdkq6qk24byalm203li"))))
+         "0ws6ivk5v6bs57ak8hwjyjf0jqcdl87bkka3z06ijpqcb033lbiy"))))
     (build-system python-build-system)
     (home-page "https://www.pycryptodome.org")
     (synopsis "Low-level cryptographic Python library")
-- 
2.32.0
S
[PATCH 09/24] gnu: python-hyperframe: Update to 6.0.1.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-9-0x2d@disroot.org
* gnu/packages/python-web.scm (python-hyperframe): Update to 6.0.1.
---
gnu/packages/python-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 86a732fa1b..1a391a5060 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -829,13 +829,13 @@ follow links and submit forms.  It doesn’t do JavaScript.")
 (define-public python-hyperframe
   (package
     (name "python-hyperframe")
-    (version "5.2.0")
+    (version "6.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "hyperframe" version))
        (sha256
-        (base32 "07xlf44l1cw0ghxx46sbmkgzil8vqv8kxwy42ywikiy35izw3xd9"))))
+        (base32 "055951gyhnjqpa2al52rj34g8yrls9inyn56n7nfkj0x4d300ldf"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.32.0
S
[PATCH 10/24] gnu: python-h2: Update to 4.0.0.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-10-0x2d@disroot.org
* gnu/packages/python-web.scm (python-h2): Update to 4.0.0.
* gnu/packages/python-web.scm (python-h2): Update home-page
---
gnu/packages/python-web.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 1a391a5060..4ef8d71f45 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -919,13 +919,13 @@ and that could be anything you want.")
 (define-public python-h2
   (package
     (name "python-h2")
-    (version "3.2.0")
+    (version "4.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "h2" version))
        (sha256
-        (base32 "051gg30aca26rdxsmr9svwqm06pdz9bv21ch4n0lgi7jsvml2pw7"))))
+        (base32 "0gar809k91d04ky3fqjidfxgbcdnj9hmm09csmz8aynnkl4wfymv"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -939,7 +939,7 @@ and that could be anything you want.")
     (propagated-inputs
      `(("python-hpack" ,python-hpack)
        ("python-hyperframe" ,python-hyperframe)))
-    (home-page "https://github.com/python-hyper/hyper-h2")
+    (home-page "https://github.com/python-hyper/h2")
     (synopsis "HTTP/2 State-Machine based protocol implementation")
     (description
      "This module contains a pure-Python implementation of a HTTP/2 protocol
-- 
2.32.0
S
[PATCH 11/24] gnu: python-h11: Update to 0.12.0.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-11-0x2d@disroot.org
* gnu/packages/python-web.scm (python-h11): Update to 0.12.0.
---
gnu/packages/python-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 4ef8d71f45..000603d332 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -891,13 +891,13 @@ for use in Python programs that implement HTTP/2.")
 (define-public python-h11
   (package
     (name "python-h11")
-    (version "0.9.0")
+    (version "0.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "h11" version))
        (sha256
-        (base32 "1qfad70h59hya21vrzz8dqyyaiqhac0anl2dx3s3k80gpskvrm1k"))))
+        (base32 "0hk0nll6qazsambp3kl8cxxsbl4gv5y9252qadyk0jky0sv2q8j7"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
-- 
2.32.0
S
[PATCH 12/24] gnu: python-future: Update to 0.18.2.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-12-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-future): Update to 0.18.2.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index c6ff826528..0a228cf5b4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -13938,14 +13938,14 @@ development version of CPython that are not available in older releases.")
 (define-public python-future
   (package
     (name "python-future")
-    (version "0.17.1")
+    (version "0.18.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "future" version))
        (sha256
         (base32
-         "1f2rlqn9rh7adgir52dlbqz69gsab44x0mlm8gf1cs7xvhv54137"))))
+         "0zakvfj87gy6mn1nba06sdha63rn4njm7bhh0wzyrxhcny8avgmi"))))
     (build-system python-build-system)
     ;; Many tests connect to the network or are otherwise flawed.
     ;; https://github.com/PythonCharmers/python-future/issues/210
-- 
2.32.0
S
[PATCH 13/24] gnu: python-socks: Update to 1.2.4.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-13-0x2d@disroot.org
* gnu/packages/python-web.scm (python-socks): Update to 1.2.4.
---
gnu/packages/python-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 000603d332..cf4bdc2dab 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -6023,14 +6023,14 @@ your code non-blocking and speedy.")
 (define-public python-socks
   (package
     (name "python-socks")
-    (version "1.1.2")
+    (version "1.2.4")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "python-socks" version))
         (sha256
          (base32
-          "06mgv3icsyglv50w3sb71x6cpbskza20pqd93l5xk59x574i6xgs"))))
+          "1n6xb18jy41ybgkmamakg6psp3qididd45qknxiggngaiibz43kx"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f  ; tests not included
-- 
2.32.0
S
[PATCH 14/24] gnu: python-aiohttp-socks: Update to 0.6.0.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-14-0x2d@disroot.org
* gnu/packages/python-web.scm (python-aiohttp-socks): Update to 0.6.0.
---
gnu/packages/python-web.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index cf4bdc2dab..d4a959aacf 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -238,14 +238,14 @@ Callback Hell.
 (define-public python-aiohttp-socks
   (package
     (name "python-aiohttp-socks")
-    (version "0.5.5")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "aiohttp_socks" version))
        (sha256
         (base32
-         "0jmhb0l1w8k1nishij3awd9zv8zbyb5l35a2pdalrqxxasbhbcif"))))
+         "04w010bvi719ifpc3sshav95k10hf9nq8czn9yglkj206yxcypdr"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-aiohttp" ,python-aiohttp)
-- 
2.32.0
S
[PATCH 15/24] gnu: Add python-aioresponses.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-15-0x2d@disroot.org
* gnu/packages/python-web.scm (python-aioresponses): New variable.
---
gnu/packages/python-web.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index d4a959aacf..3a01a8c33c 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -6054,3 +6054,31 @@ your code non-blocking and speedy.")
      "Socks is a library providing core proxy (SOCKS4, SOCKS5, HTTP tunneling)
  functionality.")
     (license license:asl2.0)))
+
+(define-public python-aioresponses
+  (package
+    (name "python-aioresponses")
+    (version "0.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "aioresponses" version))
+       (sha256
+        (base32
+         "16p8mdyfirddrsay62ji7rwcrqmmzxzf2isdbfm9cj5p338rbr42"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ;; Tests make http requests
+    (propagated-inputs
+     `(("python-aiohttp" ,python-aiohttp)))
+    (native-inputs
+     `(("python-pbr" ,python-pbr)))
+    (home-page "https://github.com/pnuckowski/aioresponses")
+    (synopsis "Mock out requests made by ClientSession from aiohttp package")
+    (description "Aioresponses is a helper to mock/fake web requests in python
+aiohttp package.  For requests module there are a lot of packages that help us
+with testing (eg. httpretty, responses, requests-mock).  When it comes to
+testing asynchronous HTTP requests it is a bit harder (at least at the beginning).
+The purpose of this package is to provide an easy way to test asynchronous HTTP
+requests.")
+    (license license:x11)))
-- 
2.32.0
S
[PATCH 16/24] gnu: python-hpack: Update to 4.0.0.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-16-0x2d@disroot.org
* gnu/packages/python-web.scm (python-hpack): Update to 4.0.0.
---
gnu/packages/python-web.scm | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)

Toggle diff (36 lines)
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 3a01a8c33c..76f6b85529 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -857,7 +857,7 @@ into HTTP/2 frames.")
 (define-public python-hpack
   (package
     (name "python-hpack")
-    (version "3.0.0")
+    (version "4.0.0")
     (source
      (origin
        ;; PyPI tarball is missing some files necessary for the tests.
@@ -867,7 +867,7 @@ into HTTP/2 frames.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0w8hkz50a6lzkmgi41ryicm0mh9ca9cx29pm3s0xlpn0vs29xrmd"))))
+        (base32 "11qdayvz5a8zlzdcdm37f2z1fgnl67pz6j8xj2dz5rfa5lds29yq"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -875,10 +875,7 @@ into HTTP/2 frames.")
          (replace 'check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
-             (invoke "pytest" "-vv" "test" "-k"
-                     ;; This test will be fixed in the next version. See:
-                     ;; https://github.com/python-hyper/hpack/issues/168.
-                     "not test_get_by_index_out_of_range"))))))
+             (invoke "pytest" "-vv" "test"))))))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (home-page "https://hyper.rtfd.org")
-- 
2.32.0
S
[PATCH 18/24] gnu: python-pymediainfo: Update to 5.1.0.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-18-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-pymediainfo): Update to 5.1.0.
---
gnu/packages/python-xyz.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 0a228cf5b4..d3fd191e22 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -720,14 +720,14 @@ to CommonMark.")
 (define-public python-pymediainfo
   (package
     (name "python-pymediainfo")
-    (version "4.1")
+    (version "5.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pymediainfo" version))
        (sha256
         (base32
-         "0mhpxs7vlqx8w75z93dy7nnvx89kwfdjkla03l19an15rlyqyspd"))))
+         "0d6797bfb0lh5hy9apq6icvbxlpz8fzrlrx9vkb286h8a2fwd5nr"))))
     (build-system python-build-system)
     (native-inputs
      `(("python-setuptools-scm" ,python-setuptools-scm)
-- 
2.32.0
S
[PATCH 17/24] gnu: Add python-matrix-nio.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-17-0x2d@disroot.org
* gnu/packages/matrix.scm (python-matrix-nio): New variable.
---
gnu/packages/matrix.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (57 lines)
diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm
index 5c2b194d07..d7438deebd 100644
--- a/gnu/packages/matrix.scm
+++ b/gnu/packages/matrix.scm
@@ -22,6 +22,7 @@
 (define-module (gnu packages matrix)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages crypto)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages monitoring)
   #:use-module (gnu packages python-crypto)
@@ -149,3 +150,42 @@ Python/Twisted.  It is intended to showcase the concept of Matrix and let
 folks see the spec in the context of a codebase and let you run your own
 homeserver and generally help bootstrap the ecosystem.")
     (license license:asl2.0)))
+
+(define-public python-matrix-nio
+  (package
+    (name "python-matrix-nio")
+    (version "0.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "matrix-nio" version))
+       (sha256
+        (base32
+         "09ld9jakq7h4hsa6lyqn82p5cb5qc2dl0gn418i98kz870p01qm2"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-aiofiles" ,python-aiofiles)
+       ("python-aiohttp-socks" ,python-aiohttp-socks)
+       ("python-aiohttp" ,python-aiohttp)
+       ("python-future" ,python-future)
+       ("python-h11" ,python-h11)
+       ("python-h2" ,python-h2)
+       ("python-jsonschema" ,python-jsonschema)
+       ("python-logbook" ,python-logbook)
+       ("python-pycryptodome" ,python-pycryptodome)
+       ("python-unpaddedbase64" ,python-unpaddedbase64)
+       ;; EE2E requirements
+       ("libolm" ,libolm)
+       ("libolm" ,libolm "python")
+       ("python-cachetools" ,python-cachetools)
+       ("python-peewee" ,python-peewee)
+       ("python-atomicwrites" ,python-atomicwrites)))
+    (arguments
+     `(#:tests? #f)) ;; PyPI tarball misses tests, but git version uses
+                     ;; different build system
+    (home-page "https://github.com/poljar/matrix-nio")
+    (synopsis "Matrix client library for Python")
+    (description "@code{nio} is a multilayered Matrix client library.  The
+underlying base layer doesn't do any network IO on its own, but on top of
+that is a full fledged batteries-included asyncio layer using aiohttp.")
+    (license license:isc)))
-- 
2.32.0
S
[PATCH 19/24] gnu: python-watchgod: Update to 0.7.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-19-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-watchgod): Update to 0.7.
* gnu/packages/python-xyz.scm (python-watchgod): Disable tests.
---
gnu/packages/python-xyz.scm | 48 +++++++++++++++++++------------------
1 file changed, 25 insertions(+), 23 deletions(-)

Toggle diff (68 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d3fd191e22..ff3d279506 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -23362,7 +23362,7 @@ but portable.")
 (define-public python-watchgod
   (package
     (name "python-watchgod")
-    (version "0.6")
+    (version "0.7")
     (source
      (origin
        ;; There are no tests in the PyPI tarball.
@@ -23372,28 +23372,30 @@ but portable.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1lqx44wkryakgpyqj3m0hsz61bqr07vc7smgzh188374hwvscp66"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "pytest" "-vv"))))))
-    (native-inputs
-     `(("python-coverage" ,python-coverage)
-       ("python-docutils" ,python-docutils)
-       ("python-flake8" ,python-flake8)
-       ("python-isort" ,python-isort)
-       ("python-pycodestyle" ,python-pycodestyle)
-       ("python-pyflakes" ,python-pyflakes)
-       ("python-pygments" ,python-pygments)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-cov" ,python-pytest-cov)
-       ("python-pytest-aiohttp" ,python-pytest-aiohttp)
-       ("python-pytest-mock" ,python-pytest-mock)
-       ("python-pytest-sugar" ,python-pytest-sugar)
-       ("python-pytest-toolbox" ,python-pytest-toolbox)))
+        (base32 "1w2xsidwp9n4giqhja0bzw7rwrh01db0kdxf2n54mv3dkx545jpq"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ;; FIXME: tests failing due to potential files missing
+    ;; `(#:phases
+    ;;   (modify-phases %standard-phases
+    ;;     (replace 'check
+    ;;       (lambda _
+    ;;         (invoke "pytest" "-vv"))))))
+    ;;(native-inputs
+    ;; `(("python-coverage" ,python-coverage)
+    ;;   ("python-docutils" ,python-docutils)
+    ;;   ("python-flake8" ,python-flake8)
+    ;;   ("python-isort" ,python-isort)
+    ;;   ("python-pycodestyle" ,python-pycodestyle)
+    ;;   ("python-pyflakes" ,python-pyflakes)
+    ;;   ("python-pygments" ,python-pygments)
+    ;;   ("python-pytest" ,python-pytest)
+    ;;   ("python-pytest-cov" ,python-pytest-cov)
+    ;;   ("python-pytest-aiohttp" ,python-pytest-aiohttp)
+    ;;   ("python-pytest-mock" ,python-pytest-mock)
+    ;;   ("python-pytest-sugar" ,python-pytest-sugar)
+    ;;   ("python-pytest-toolbox" ,python-pytest-toolbox)
+    ;;   ("python-pytest-asyncio" ,python-pytest-asyncio)))
     (home-page "https://github.com/samuelcolvin/watchgod")
     (synopsis "Simple, modern file watching and code reload in Python")
     (description
-- 
2.32.0
S
[PATCH 21/24] gnu: Add python-baron.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-21-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-baron): New variable.
---
gnu/packages/python-xyz.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6db019082d..6096ba29d1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26083,3 +26083,35 @@ is a Python port from filetype Go package.")
     (description "Plyer is a platform-independent api to use features
 commonly found on various platforms, notably mobile ones, in Python.")
     (license license:x11)))
+
+(define-public python-baron
+  (package
+    (name "python-baron")
+    (version "0.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "baron" version))
+       (sha256
+        (base32
+         "0fib74nkqnl1i2zzlhbbfpw3whwc4951p9x61r2xrxhwp4r9yn5h"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (propagated-inputs
+     `(("python-rply" ,python-rply)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             (invoke "pytest" "-vv" "tests/")
+             #t)))))
+    (home-page "https://github.com/PyCQA/baron")
+    (synopsis "Full Syntax Tree (FST) Python library")
+    (description "Baron is a Full Syntax Tree (FST) library for Python.
+By opposition to an AST which drops some syntax information in the
+process of its creation (like empty lines, comments, formatting), a FST
+keeps everything and guarantees the operation
+@code{fst_to_code(code_to_fst(source_code)) == source_code}.")
+    (license license:lgpl3)))
-- 
2.32.0
S
[PATCH 22/24] gnu: Add python-redbaron.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-22-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-redbaron): New variable.
---
gnu/packages/python-xyz.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6096ba29d1..6dd42d5455 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26115,3 +26115,38 @@ process of its creation (like empty lines, comments, formatting), a FST
 keeps everything and guarantees the operation
 @code{fst_to_code(code_to_fst(source_code)) == source_code}.")
     (license license:lgpl3)))
+
+(define-public python-redbaron
+  (package
+    (name "python-redbaron")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "redbaron" version))
+       (sha256
+        (base32
+         "0bqkq0wn20cc3qrcd1ifq74p4m570j345bkq4axl08kbr8whfba7"))))
+    (build-system python-build-system)
+    ;;(native-inputs
+    ;; `(("python-pytest" ,python-pytest))) ;; Uncomment when tests fixed
+    (propagated-inputs
+     `(("python-baron" ,python-baron)))
+    (arguments
+     `(#:tests? #f ;; Syntax error in tests, enable when fixed
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv" "tests/")))))))
+    (home-page "https://github.com/PyCQA/redbaron")
+    (synopsis "Tool for writing code that modifies source code")
+    (description "RedBaron is a python library and tool powerful
+enough to be used into IPython solely that intent to make the process
+of writing code that modify source code as easy and as simple as
+possible.  That include writing custom refactoring, generic refactoring,
+tools, IDE or directly modifying you source code into IPython with a
+higher and more powerful abstraction than the advanced texts
+modification tools that you find in advanced text editors and IDE.")
+    (license license:lgpl3)))
-- 
2.32.0
S
[PATCH 23/24] gnu: Add python-hsluv.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-23-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-hsluv): New variable.
---
gnu/packages/python-xyz.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6dd42d5455..678e719b64 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26150,3 +26150,20 @@ tools, IDE or directly modifying you source code into IPython with a
 higher and more powerful abstraction than the advanced texts
 modification tools that you find in advanced text editors and IDE.")
     (license license:lgpl3)))
+
+(define-public python-hsluv
+  (package
+    (name "python-hsluv")
+    (version "5.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "hsluv" version))
+       (sha256
+        (base32
+         "1yi76w24rr7d8vva01jq6s4zv28w945l1vbf56j2azbakjr9ispz"))))
+    (build-system python-build-system)
+    (home-page "https://www.hsluv.org/")
+    (synopsis "Human-friendly HSL")
+    (description "HSLuv is a human-friendly alternative to HSL.")
+    (license license:x11)))
-- 
2.32.0
S
[PATCH 24/24] gnu: Add mirage.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-24-0x2d@disroot.org
* gnu/packages/messaging.scm (mirage): New variable.
---
gnu/packages/messaging.scm | 96 ++++++++++++++++++++++++++++++++++++++
1 file changed, 96 insertions(+)

Toggle diff (107 lines)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index fe678d89fd..a8cdd90f57 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -2997,4 +2997,100 @@ API.  Mattermost is not required.")
     (home-page "https://github.com/42wim/matterbridge")
     (license license:asl2.0)))
 
+(define-public mirage
+  (package
+    ;; (inherit qtsvg)
+    (name "mirage")
+    (version "0.7.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mirukana/mirage")
+                    (commit (string-append "v" version))
+                    (recursive? #t)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0j7gdg2z8yg3qvwg9d9fa3i4ig231qda48p00s5gk8bc3c65vsll"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("python" ,python-wrapper)))
+    (propagated-inputs
+     `(("python-pillow" ,python-pillow)
+       ("python-aiofiles" ,python-aiofiles)
+       ("python-appdirs" ,python-appdirs) ;; Update
+       ("python-cairosvg" ,python-cairosvg)
+       ("python-filetype" ,python-filetype)
+       ("python-html-sanitizer" ,python-html-sanitizer)
+       ("python-lxml", python-lxml) ;; Update
+       ("python-matrix-nio" ,python-matrix-nio)
+       ("python-mistune" ,python-mistune)
+       ("python-pymediainfo" ,python-pymediainfo)
+       ("python-plyer" ,python-plyer)
+       ("python-sortedcontainers" ,python-sortedcontainers) ;; Update
+       ("python-watchgod" ,python-watchgod)
+       ("python-redbaron" ,python-redbaron)
+       ("python-hsluv" ,python-hsluv)
+       ("python-simpleaudio" ,python-simpleaudio)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtgraphicaleffects" ,qtgraphicaleffects)
+       ("qtquickcontrols2" ,qtquickcontrols2)
+       ("pyotherside" ,pyotherside)))
+    (inputs
+     `(("qtbase" ,qtbase-5)
+       ("qtsvg" ,qtsvg)
+       ("qtimageformats" ,qtimageformats)
+       ("libx11" ,libx11)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("zlib" ,zlib)
+       ("libtiff" ,libtiff)
+       ("libwebp" ,libwebp)
+       ("libjpeg-turbo" ,libjpeg-turbo)
+       ("openjpeg" ,openjpeg)))
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:imported-modules
+       (,@%gnu-build-system-modules
+        (guix build cmake-build-system)
+        (guix build qt-build-system))
+       #:modules
+       ((guix build gnu-build-system)
+        ((guix build qt-build-system)
+         #:prefix qt:)
+        (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (invoke "qmake"
+                       (string-append "PREFIX=" out)
+                       (string-append "BINDIR=" out "/bin")
+                       (string-append "DATADIR=" out "/share")
+                       (string-append "PLUGINDIR=" out "/lib/qt5/plugins")))
+             #t))
+         (add-after 'install 'qt-wrap
+           (assoc-ref qt:%standard-phases 'qt-wrap)))))
+    (home-page "https://github.com/mirukana/mirage")
+    (synopsis "Next generation Matrix client, highly customizable and keyboard
+friendly")
+    (description "A fancy, customizable, keyboard-operable Matrix chat client
+for encrypted and decentralized communication. Written in Qt/QML and Python,
+currently in alpha.
+
+Its main features include:
+@itemize
+@item Fluid, responsive interface that adapts to any window size
+@item Toggleable compact mode
+@item Customizable keyboard shortcuts for everything, including switching
+rooms, navigating messages, sending/opening files...
+@item Versatile theming system, properties can refer to each other and have
+any valid ECMAScript 7 expression as values
+@item Comes by default with dark and transparent themes
+@item Desktop notifications, sounds and window alerts
+@item Support for HTTP and SOCKS5 proxies including TOR
+@item Multiple accounts in one client
+@end itemize")
+    (license license:lgpl3)))
+
 ;;; messaging.scm ends here
-- 
2.32.0
S
[PATCH 20/24] gnu: Add python-plyer.
(address . 49123@debbugs.gnu.org)(name . slg)(address . 0x2d@disroot.org)
20210620010742.4259-20-0x2d@disroot.org
* gnu/packages/python-xyz.scm (python-plyer): New variable.
---
gnu/packages/python-xyz.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ff3d279506..6db019082d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26063,3 +26063,23 @@ is a Python port from filetype Go package.")
     (synopsis "Python logging library")
     (description "An awesome logging implementation that is fun to use.")
     (license license:bsd-1)))
+
+(define-public python-plyer
+  (package
+    (name "python-plyer")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "plyer" version))
+       (sha256
+        (base32
+         "156z58gzb3afzilhdbsm323sn0sky1n59kgaxmpg73a3phbqpqwd"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ;; Circular dependency on itself
+    (home-page "https://plyer.readthedocs.io/en/latest/")
+    (synopsis "API for common features found on various platforms")
+    (description "Plyer is a platform-independent api to use features
+commonly found on various platforms, notably mobile ones, in Python.")
+    (license license:x11)))
-- 
2.32.0
M
M
Maxime Devos wrote on 21 Jun 2021 17:44
Re: [bug#49123] [PATCH 02/24] gnu: libolm: Add python bindings output.
a40cdb615a7b7ab0699b1f4fb7ee6e21dcb7e5a5.camel@telenet.be
Hi,

Toggle quote (6 lines)
> (replace 'check
> (lambda _
> (with-directory-excursion "tests"
> - (invoke "ctest" ".")))))))
> + (invoke "ctest" "."))))

I would make this

Toggle quote (7 lines)
> (replace 'check
> (lambda* (#:key tests? #:allow-other-keys)
> (with-directory-excursion "tests"
> (when tests?
> - (invoke "ctest" ".")
> + (invoke "ctest" ".")))))

That way, "guix build libolm --without-tests=libolm" should work.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYNCz1BccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7hOqAP4tLi86u0yHEuMOlorQ7ZUr3ee7
9z6iVRXxnAaCJ5ZFpAEA2Tl9XfY+DhSyEO4jZoF93y56pLdcI8Tm0hzsDPM2HQc=
=BoGi
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 21 Jun 2021 17:53
Re: [bug#49123] [PATCH 20/24] gnu: Add python-plyer.
aee87e1cd4b7d1189e4664b329176107a0ac93f2.camel@telenet.be
Toggle quote (7 lines)
> +(define-public python-plyer
> + (package
> + (name "python-plyer")
> + [...]
> + (arguments
> + `(#:tests? #f)) ;; Circular dependency on itself

Seems odd that python-plyer's tests cannot find
python-plyer, but whatever. You can try to work-around the cycle
by defining two python-plyer packages, like this
(fill in the ...):

(define-public python-plyer
(package
(name ...)
(version ...)
(build-system ...)
;; do not add (arguments ...) here!
;; (This comment should not go into the revised patch)
(native-inputs
;; Add a comment on why this is necessary
`(("python-plyer" ,python-plyer-for-tests)))
(home-page ...)
(synopsis ...)
(description ...)))

(define python-plyer-for-tests
(package/hidden
(inherit python-plyer)
(native-inputs '())))

That way, first a python-plyer without tests will be built,
and then the real python-plyer will be built with tests.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYNC2EhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7shKAP44fTuMvknVR8Myp5tGbLgvkek6
uwLxgFMmBUhDvZqwdgD/Y8cXGMZK2tGvS3FvBVmgN9RDbDhua8y1BaczTYXcwww=
=rdFY
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 21 Jun 2021 18:10
Re: [bug#49123] [PATCH 24/24] gnu: Add mirage.
51c8cef20e8358e6c7d5d8ae048ddbc1af66cd73.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:
Toggle quote (33 lines)
> * gnu/packages/messaging.scm (mirage): New variable.
> ---
> gnu/packages/messaging.scm | 96 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 96 insertions(+)
>
> diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
> index fe678d89fd..a8cdd90f57 100644
> --- a/gnu/packages/messaging.scm
> +++ b/gnu/packages/messaging.scm
> @@ -2997,4 +2997,100 @@ API. Mattermost is not required.")
> (home-page "https://github.com/42wim/matterbridge")
> (license license:asl2.0)))
>
> +(define-public mirage
> + (package
> + ;; (inherit qtsvg)
> + (name "mirage")
> + (version "0.7.1")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/mirukana/mirage")
> + (commit (string-append "v" version))
> + (recursive? #t)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0j7gdg2z8yg3qvwg9d9fa3i4ig231qda48p00s5gk8bc3c65vsll"))))
> + (build-system gnu-build-system)
> + (native-inputs
> + `(("python" ,python-wrapper)))
> + (propagated-inputs [ plenty of inputs ])

If possible, try to move some of these to 'inputs'.
Of course, mirage still needs to find all these python
libraries, so you may need to add a post-install phase
(after/before qt-wrap shouldn't mattr) doing appropriate
‘wrap-program' calls -- yes, an already wrapped program
can be wrapped again. I think. I'd presume the effects are
cumulative, not sure though.

Why? Keeping ‘propagated-inputs’ minimal reduces profile
pollution, so the profile contains less, so generating the
profile takes less time. This also reduces the chance
of version conflicts. (E.g., guile and stalin cannot be
installed in the same profile because they propagate
different versions of libgc.)

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYNC57xccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7ii8AQCUK2+OsOpwCf1FqJYrqYfltovn
OcHeCvZiaCk0QuP6zwEAqYk3TsZc5f2dY9/COG89WqLr1o43NgPMb9Drf8h8gwI=
=NIhm
-----END PGP SIGNATURE-----


S
Re: [bug#49123] [PATCH 02/24] gnu: libolm: Add python bindings output.
740edb0fd9d4c549c3d0d9b5d033a29a601a3a78.camel@disroot.org
Hi,

Sorry for late reply, thanks for your report.

On Mon, 2021-06-21 at 17:44 +0200, Maxime Devos wrote:
Toggle quote (9 lines)
> >           (replace 'check
> >             (lambda* (#:key tests? #:allow-other-keys)
> >               (with-directory-excursion "tests"
> >                 (when tests?
> > -                 (invoke "ctest" ".")
> > +                 (invoke "ctest" ".")))))
>
> That way, "guix build libolm --without-tests=libolm" should work.

I hope my changes are fine.

Sincerely,

slg
From 432af0b078cb2cf5b7a2dce54180b0685ed3988c Mon Sep 17 00:00:00 2001
From: vslg <slgf@protonmail.ch>
Date: Sun, 4 Jul 2021 11:31:37 -0300
Subject: [PATCH] gnu: libolm: Make tests conditional

* gnu/packages/crypto.scm (libolm): Make tests conditional
---
gnu/packages/crypto.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Toggle diff (19 lines)
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index c28b563651..13dea466a8 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -1319,9 +1319,10 @@ Trusted comments are signed, thus verified, before being displayed.")
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
-           (lambda _
+           (lambda* (#:key tests? #:allow-other-keys)
              (with-directory-excursion "tests"
-               (invoke "ctest" "."))))
+               (when tests?
+                 (invoke "ctest" ".")))))
          (add-after 'install 'install-python-binding
            (lambda* (#:key outputs #:allow-other-keys)
              (with-directory-excursion "../source/python"
-- 
2.32.0
S
Re: [bug#49123] [PATCH 20/24] gnu: Add python-plyer.
85604f193efced6daaa138b573c8603f74a951f9.camel@disroot.org
On Mon, 2021-06-21 at 17:53 +0200, Maxime Devos wrote:
Toggle quote (27 lines)
>
> You can try to work-around the cycle
> by defining two python-plyer packages, like this
> (fill in the ...):
>
> (define-public python-plyer
>   (package
>     (name ...)
>     (version ...)
>     (build-system ...)
>     ;; do not add (arguments ...) here!
>     ;; (This comment should not go into the revised patch)
>     (native-inputs
>       ;; Add a comment on why this is necessary
>       `(("python-plyer" ,python-plyer-for-tests)))
>     (home-page ...)
>     (synopsis ...)
>     (description ...)))
>
> (define python-plyer-for-tests
>   (package/hidden
>     (inherit python-plyer)
>     (native-inputs '())))
>
> That way, first a python-plyer without tests will be built,
> and then the real python-plyer will be built with tests.

I tried the attached patch, but it still fails with same errors when
trying to run tests. At this point I don't know if python-plyer-for-
tests is being built before or not.

Sincerely,

slg
Toggle diff (33 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 5b13394824..694fde25e4 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -26128,14 +26128,26 @@ is a Python port from filetype Go package.")
         (base32
          "156z58gzb3afzilhdbsm323sn0sky1n59kgaxmpg73a3phbqpqwd"))))
     (build-system python-build-system)
-    (arguments
-     `(#:tests? #f)) ;; Circular dependency on itself
+    (native-inputs
+     ;; Needed because plyer cannot find itself when doing tests
+     `(("python-plyer" ,python-plyer-for-tests)
+       ("which" ,which)
+       ("xbacklight" ,xbacklight)))
     (home-page "https://plyer.readthedocs.io/en/latest/")
     (synopsis "API for common features found on various platforms")
     (description "Plyer is a platform-independent api to use features
 commonly found on various platforms, notably mobile ones, in Python.")
     (license license:x11)))
 
+;; Used for testing on python-plyer
+(define python-plyer-for-tests
+  (hidden-package
+   (package
+     (inherit python-plyer)
+     (arguments
+      `(#:tests? #f))
+     (native-inputs '()))))
+
 (define-public python-baron
   (package
     (name "python-baron")
M
M
Maxime Devos wrote on 6 Jul 2021 12:28
e689eeaee9418c521a36d29557af6ad2722a0183.camel@telenet.be
Hi,

I'll test this patch series (checking licenses, reproducibility, linter
output, looking at the source code for anything ‘fishy’ ...) more
extensively, but that will take some time to complete.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYOQwQRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7q2wAP9sJQ+06+K1B8wg/EL9MmZ+rAgT
o+7flEY0r5uHXZle4wEA0WVOwXOQJYxsgF5tP90EkH6ADJTm2FzEMLjrkTqItwg=
=MJgd
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 15 Jul 2021 12:13
Re: [bug#49123] [PATCH 22/24] gnu: Add python-redbaron.
9eed3d11d5efd7e9a9dc678d16a1c0ea0ce2bd0e.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:+
Toggle quote (13 lines)
> +(define-public python-redbaron
> + (package
> + (name "python-redbaron")
> + (version "0.9.2")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (pypi-uri "redbaron" version))
> + (sha256
> + (base32
> + "0bqkq0wn20cc3qrcd1ifq74p4m570j345bkq4axl08kbr8whfba7"))))
>

"redbaron-0.9.2.tar.gz" contains some compiled code and built documentation.

Could you add (untested)

(snippet
#~(begin
(for-each delete-file
(find-files "." (lambda (x) (string-suffix? ".pyc" x))))
(delete-file-recursively "docs/_build"))))

or something like that to remove it?

Toggle quote (1 lines)
> + (license license:lgpl3)))
The license is LGPLv3+, according to 'setup.py':

[...]
setup(name='redbaron',
[...]
license='lgplv3+',

Ideally, the Sphinx documentation would be installed as well,
but there isn't good support for that yet in Guix.

Otherwise, the package definition LGTM and the source code of redbaron
doesn't seem to have an equivalent of "curl http://evil.sh| sh -c".
(Except possibly the synopsis and description. I'd need to check what
the guidelines are.)

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPAKMBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7l25AQCDdGXKCr6+0S4/q/UvCCnaScwC
sHKGv0M6e4G51YeDeAEA9ZzjzqKJQX8Du6N2v2SiN2AZhlLKd5aGlxegqNC5mwo=
=rv4P
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 15 Jul 2021 15:31
Re: [bug#49123] [PATCH 23/24] gnu: Add python-hsluv.
24be8d28013d0b9b528495add346b03e1264d935.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:
Toggle quote (15 lines)
> +(define-public python-hsluv
> + (package
> + (name "python-hsluv")
> + (version "5.0.2")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (pypi-uri "hsluv" version))
> + (sha256
> + (base32
> + "1yi76w24rr7d8vva01jq6s4zv28w945l1vbf56j2azbakjr9ispz"))))
> + (build-system python-build-system)
> + (home-page "https://www.hsluv.org/")
> + (synopsis "Human-friendly HSL")

HSLuv isn't HSL, so HSLuv isn't human-friendly HSL?

I think (synopsis "Convert between HSLuv and RGB colour coordinates")
would be more descriptive and more correct, in particular for people
who haven't ever heard of "HSL" or humans, and ‘human-friendly’ is
rather subjective.

Toggle quote (2 lines)
> + (description "HSLuv is a human-friendly alternative to HSL.")

‘16.4.4 Synopses and Descriptions’ in the manual has some guidelines
on synopses and descriptions.

Toggle quote (2 lines)
> + (license license:x11)))

LICENSE.txt is not the X11 license, as the following is missing:

Except as contained in this notice, the name of the X Consortium shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from the X Consortium.

X Window System is a trademark of X Consortium, Inc.

Instead, it appears to be the expat license.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPA4oxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7vhRAQDDZBwxWETipIyIm7AWy1VVYBq6
8PmIXazU93HUn9dQIwEA5IKUnY32Vgz198O1Bg3j+XtLjxNavtoWvHJ7McayGwU=
=CcBf
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 18 Jul 2021 18:15
Re: [bug#49123] [PATCH 10/24] gnu: python-h2: Update to 4.0.0.
6195b5028ce456414e633eb8e238c48ca969bbe2.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:
Toggle quote (36 lines)
> * gnu/packages/python-web.scm (python-h2): Update to 4.0.0.
> * gnu/packages/python-web.scm (python-h2): Update home-page
> ---
> gnu/packages/python-web.scm | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
> index 1a391a5060..4ef8d71f45 100644
> --- a/gnu/packages/python-web.scm
> +++ b/gnu/packages/python-web.scm
> @@ -919,13 +919,13 @@ and that could be anything you want.")
> (define-public python-h2
> (package
> (name "python-h2")
> - (version "3.2.0")
> + (version "4.0.0")
> (source
> (origin
> (method url-fetch)
> (uri (pypi-uri "h2" version))
> (sha256
> - (base32 "051gg30aca26rdxsmr9svwqm06pdz9bv21ch4n0lgi7jsvml2pw7"))))
> + (base32 "0gar809k91d04ky3fqjidfxgbcdnj9hmm09csmz8aynnkl4wfymv"))))
> (build-system python-build-system)
> (arguments
> `(#:phases
> @@ -939,7 +939,7 @@ and that could be anything you want.")
> (propagated-inputs
> `(("python-hpack" ,python-hpack)
> ("python-hyperframe" ,python-hyperframe)))
> - (home-page "https://github.com/python-hyper/hyper-h2")
> + (home-page "https://github.com/python-hyper/h2")
> (synopsis "HTTP/2 State-Machine based protocol implementation")
> (description
> "This module contains a pure-Python implementation of a HTTP/2 protocol

I verified the dependencies still build and reproducibility (using --check).
I also opened the tarball and there doesn't appear to be malware inside.
The diff between 3.2.0 and 4.0.0 doesn't seem suspicious, but I am not familiar
with how the HTTP/2 protocol works.

The new home page appears correct: the old home page redirects to the new.

This patch LGTM.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPRToRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7o4OAP9HeSISkH63y71p65gQrk8EAooa
Zo7//2exuFEgwMhU0gD/SYc8yZDm6LpbzLh1+1WFXgwC/pHW9Zx15kuqpP3f+Q0=
=UXi6
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 19 Jul 2021 14:05
Re: [bug#49123] [PATCH 01/24] gnu: Add pyotherside.
fee74c4bb61903ad66a2c0bfe407d1990c29b09a.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:
Toggle quote (20 lines)
> * gnu/packages/qt.scm (pyotherside): New variable.
> ---
> gnu/packages/qt.scm | 33 +++++++++++++++++++++++++++++++++
> 1 file changed, 33 insertions(+)
>
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 19fcc2f37e..3e91a82a46 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -3044,3 +3044,36 @@ being fully customizable and easy to extend.")
> also compatible with SGI and TGS Open Inventor, and the API is based on the API
> of the InventorXt GUI component toolkit.")
> (license license:bsd-3))))
> +
> +(define-public pyotherside
> + (let ((commit-ref "8f7e67980f7ceb2d0fc40a9568d3b10c640a8d74")
> + (revision "1"))
> + (package
> + (inherit qtsvg)

Why are you inheriting from 'qtsvg'?
'pyotherside' isn't a variant of 'qtsvg'.

Toggle quote (12 lines)
> + (name "pyotherside")
> + (version (git-version "1.5.9" revision commit-ref))
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/thp/pyotherside")
> + (commit commit-ref)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "1kq8v2inwx4j9idsdxwkjas4nqyfwzwfwiiwpjqr8ggcx1z9gvi3"))))

The source code seems ok.


Toggle quote (2 lines)
> + ((#:tests? _ #f) #f))) ;; Plugin must be installed before testing

You could move the 'check' phase after the 'install' phase,
then #:tests? #f might not be required.

Toggle quote (2 lines)
> + (license license:isc))))

This license seems correct.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPVqmRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7p7fAPsF1aqwv9ves2SuBxmeyygrxT3N
cq6gv0MKDHeZfQ/xIQEAsD3knAicflFxJa+yfjUnkhUkgbFNyiWaUUNDUSaSXQ0=
=ASIc
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 19 Jul 2021 14:18
Re: [bug#49123] [PATCH 06/24] gnu: Add python-logbook.
849a91861d788d75153e5a6f285b75634d6dc39f.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:
Toggle quote (33 lines)
> * gnu/packages/python-xyz.scm (python-logbook): New variable.
> ---
> gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
> index 6831e2365b..bb3997501b 100644
> --- a/gnu/packages/python-xyz.scm
> +++ b/gnu/packages/python-xyz.scm
> @@ -26034,3 +26034,33 @@ HTML cleaner in lxml to make the result both valid and safe.")
> and MIME type checking the magic numbers signature of a file or buffer. This
> is a Python port from filetype Go package.")
> (license license:x11)))
> +
> +(define-public python-logbook
> + (package
> + (name "python-logbook")
> + (version "1.5.3")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (pypi-uri "Logbook" version))
> + (sha256
> + (base32
> + "1s1gyfw621vid7qqvhddq6c3z2895ci4lq3g0r1swvpml2nm9x36"))))
> + (build-system python-build-system) ;; TODO: fix native extension build
> + ;; Fails with gcc trying to compile unexistent file 'logbook/_speedups.c'.
> + ;; Apparently it is generated from logbook/_speedups.pyx, I do not know if
> + ;; an extra build phase is needed to generate this file.
> + (arguments
> + `(#:tests? #f)) ;; Needs native extension, which for some reason will
> + ;; not be compiled.

It apparently is a file to be be processed by 'cython'.
See, e.g., python-cytoolz and python-pyclipper for how to use 'cython'.

Toggle quote (11 lines)
> + (propagated-inputs
> + `(("python-jinja2" ,python-jinja2)
> + ("python-sqlalchemy" ,python-sqlalchemy)
> + ("python-redis" ,python-redis)
> + ("python-pyzmq" ,python-pyzmq)
> + ("python-execnet" ,python-execnet)
> + ("python-brotli" ,python-brotli)))
> + (home-page "https://logbook.readthedocs.io/en/stable")
> + (synopsis "Python logging library")
> + (description "An awesome logging implementation that is fun to use.")

From (guix)Synopses and descriptions:

‘Please avoid marketing phrases such as “world-leading”,
“industrial-strength”, and “next-generation”, and avoid superlatives
like “the most advanced”—they are not helpful to users looking for a
package and may even sound suspicious. Instead, try to be factual,
mentioning use cases and features.’

'awesome' and 'is fun to use' is marketing, and not very informative.

Toggle quote (2 lines)
> + (license license:bsd-1)))

The file LICENSE isn't the 1-clause BSD.
Rather, it appears to be the 3-clause BSD, with ‘the name of the copyright holder’
removed.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPVtiBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7q3iAQDmeYrue8K4Nm8jOgZeoU5X7edN
c6p2+hhqNrDDzaOmRgD/WS5T5bblDcNplq8Wzwihdy0srzANb3Q3Ky2Dx0Cf0wc=
=jHD4
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 20 Jul 2021 15:11
Re: [bug#49123] [PATCH 14/24] gnu: python-aiohttp-socks: Update to 0.6.0.
f1a213b7ac35bebb402367b1a74bc459243b0fc2.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:
Toggle quote (24 lines)
> * gnu/packages/python-web.scm (python-aiohttp-socks): Update to 0.6.0.
> ---
> gnu/packages/python-web.scm | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
> index cf4bdc2dab..d4a959aacf 100644
> --- a/gnu/packages/python-web.scm
> +++ b/gnu/packages/python-web.scm
> @@ -238,14 +238,14 @@ Callback Hell.
> (define-public python-aiohttp-socks
> (package
> (name "python-aiohttp-socks")
> - (version "0.5.5")
> + (version "0.6.0")
> (source
> (origin
> (method url-fetch)
> (uri (pypi-uri "aiohttp_socks" version))
> (sha256
> (base32
> - "0jmhb0l1w8k1nishij3awd9zv8zbyb5l35a2pdalrqxxasbhbcif"))))
> + "04w010bvi719ifpc3sshav95k10hf9nq8czn9yglkj206yxcypdr"))))

The source code of the new version seems ok (no malware).
The diff between 0.5.5 and 0.6.0 also seems ok.
The package build reproducibly (using --check & --rounds).

This update LGTM.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPbLchccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7t69AP9Wy97KDvtjQkjGTcHvsG83v+oa
97ShDvz2LuGGX+rUhgD8D//Tt4itT57eWJUv0PI/UAUiKI2kIk7bUcady856xQU=
=JFCX
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 21 Jul 2021 15:44
Re: [bug#49123] [PATCH 15/24] gnu: Add python-aioresponses.
24a54f59fc8f4c935f1a0ecb3a53691c7f2013af.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:
Toggle quote (26 lines)
> * gnu/packages/python-web.scm (python-aioresponses): New variable.
> ---
> gnu/packages/python-web.scm | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
> index d4a959aacf..3a01a8c33c 100644
> --- a/gnu/packages/python-web.scm
> +++ b/gnu/packages/python-web.scm
> @@ -6054,3 +6054,31 @@ your code non-blocking and speedy.")
> "Socks is a library providing core proxy (SOCKS4, SOCKS5, HTTP tunneling)
> functionality.")
> (license license:asl2.0)))
> +
> +(define-public python-aioresponses
> + (package
> + (name "python-aioresponses")
> + (version "0.7.2")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (pypi-uri "aioresponses" version))
> + (sha256
> + (base32
> + "16p8mdyfirddrsay62ji7rwcrqmmzxzf2isdbfm9cj5p338rbr42"))))

It build successfully and the source code doesn't appear to contain
malware (*) or anything pre-built.

(*) includes propietary software

Toggle quote (10 lines)
> + (build-system python-build-system)
> + (arguments
> + `(#:tests? #f)) ;; Tests make http requests
> + (propagated-inputs
> + `(("python-aiohttp" ,python-aiohttp)))
> + (native-inputs
> + `(("python-pbr" ,python-pbr)))
> + (home-page "https://github.com/pnuckowski/aioresponses")
> + (synopsis "Mock out requests made by ClientSession from aiohttp package")

Either drop the 'package", or make this "... from the aiohttp package".

Toggle quote (3 lines)
> + (description "Aioresponses is a helper to mock/fake web requests in python
> +aiohttp package. For requests module there are a lot of packages that help us

‘in python aiohttp package’ --> maybe ‘with aiohttp’. You can drop the "us" in
"that help is"

Toggle quote (2 lines)
> +with testing (eg. httpretty, responses, requests-mock). When it comes to

it's e.g., not eg.

Toggle quote (2 lines)
> +testing asynchronous HTTP requests it is a bit harder (at least at the beginning).

‘(at least in the beginning)’ doesn't really inform people searching for which
package they can use. I'd suggest dropping it.

Toggle quote (3 lines)
> +The purpose of this package is to provide an easy way to test asynchronous HTTP
> +requests.")

This sentence seems rather informative, clear and to the point. I'd move it to
the beginning of the description.

Toggle quote (2 lines)
> + (license license:x11)))

It's the expat license not the x11 license.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPgkzxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7hMTAP9cOtH/Lzs7yULpTd+kFk7PG0jw
ByaaKLr2dX0JhYbxQAEAkqbPmdLTD6r8iNSBVfz3/7jhLOAVJYamjYCm9OeXIw8=
=V11d
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 24 Jul 2021 17:22
Re: [bug#49123] [PATCH 09/24] gnu: python-hyperframe: Update to 6.0.1.
82f83ab33c4ae2b3892be9adc7f86730a121bcca.camel@telenet.be
slg via Guix-patches via schreef op za 19-06-2021 om 22:07 [-0300]:
Toggle quote (23 lines)
> * gnu/packages/python-web.scm (python-hyperframe): Update to 6.0.1.
> ---
> gnu/packages/python-web.scm | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
> index 86a732fa1b..1a391a5060 100644
> --- a/gnu/packages/python-web.scm
> +++ b/gnu/packages/python-web.scm
> @@ -829,13 +829,13 @@ follow links and submit forms. It doesn’t do JavaScript.")
> (define-public python-hyperframe
> (package
> (name "python-hyperframe")
> - (version "5.2.0")
> + (version "6.0.1")
> (source
> (origin
> (method url-fetch)
> (uri (pypi-uri "hyperframe" version))
> (sha256
> - (base32 "07xlf44l1cw0ghxx46sbmkgzil8vqv8kxwy42ywikiy35izw3xd9"))))
> + (base32 "055951gyhnjqpa2al52rj34g8yrls9inyn56n7nfkj0x4d300ldf"))))

The package builds reproducibly, and looking at the diff of the tarball
for 5.2.0 and 6.0.1, no malware appears to have been introduced. The
dependency 'python-hypercorn' now fails to compile (*). Aside from that, this
patch LGTM. This build failure seems to be caused by the update of python-h11
(and not python-hyperframe), however.

Greetings,
Maxime.

(*): Relevant part of the build log:

starting phase `check'
============================= test session starts ==============================
platform linux -- Python 3.8.2, pytest-5.3.5, py-1.8.1, pluggy-0.13.1 -- /gnu/store/f8s95qc6dfhl0r45m70hczw5zip0xjxq-python-wrapper-3.8.2/bin/python
cachedir: .pytest_cache
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/tmp/guix-build-python-hypercorn-0.10.2.drv-0/Hypercorn-0.10.2/.hypothesis/examples')
rootdir: /tmp/guix-build-python-hypercorn-0.10.2.drv-0/Hypercorn-0.10.2, inifile: setup.cfg, testpaths: tests
plugins: hypothesis-5.4.1, asyncio-0.10.0, cov-2.8.1, trio-0.6.0
collecting ... collected 170 items

[...]

tests/middleware/test_wsgi.py::test_build_environ_encoding PASSED [ 44%]
tests/protocol/test_h11.py::test_protocol_send_response Task was destroyed but it is pending!
task: <Task pending name='Task-42' coro=<TCPServer.run() running at /gnu/store/4abyp273l559v0adf65grkvsz3s1d9bc-python-hypercorn-0.10.2/lib/python3.8/site-packages/hypercorn/asyncio/tcp_server.py:79>
wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7ffff58a4610>()]>>
Exception ignored in: <coroutine object TCPServer._read_data at 0x7ffff57f0340>
Traceback (most recent call last):
File "/gnu/store/4abyp273l559v0adf65grkvsz3s1d9bc-python-hypercorn-0.10.2/lib/python3.8/site-packages/hypercorn/asyncio/tcp_server.py", line 103, in _read_data
data = await self.reader.read(MAX_RECV)
File "/tmp/guix-build-python-hypercorn-0.10.2.drv-0/Hypercorn-0.10.2/tests/asyncio/helpers.py", line 21, in read
return await self.data.get()
File "/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/asyncio/queues.py", line 165, in get
getter.cancel() # Just in case getter is not done yet.
File "/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/asyncio/base_events.py", line 719, in call_soon
self._check_closed()
File "/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/asyncio/base_events.py", line 508, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Task was destroyed but it is pending!
task: <Task pending name='Task-45' coro=<_call_later() running at /gnu/store/4abyp273l559v0adf65grkvsz3s1d9bc-python-hypercorn-0.10.2/lib/python3.8/site-packages/hypercorn/asyncio/tcp_server.py:149>
wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7ffff58a4670>()]>>
Task was destroyed but it is pending!
task: <Task pending name='Task-53' coro=<TCPServer.run() running at /gnu/store/4abyp273l559v0adf65grkvsz3s1d9bc-python-hypercorn-0.10.2/lib/python3.8/site-packages/hypercorn/asyncio/tcp_server.py:79>
wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7ffff58848e0>()]>>
Exception ignored in: <coroutine object TCPServer._read_data at 0x7ffff57b0940>
Traceback (most recent call last):
File "/gnu/store/4abyp273l559v0adf65grkvsz3s1d9bc-python-hypercorn-0.10.2/lib/python3.8/site-packages/hypercorn/asyncio/tcp_server.py", line 103, in _read_data
data = await self.reader.read(MAX_RECV)
File "/tmp/guix-build-python-hypercorn-0.10.2.drv-0/Hypercorn-0.10.2/tests/asyncio/helpers.py", line 21, in read
return await self.data.get()
File "/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/asyncio/queues.py", line 165, in get
getter.cancel() # Just in case getter is not done yet.
File "/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/asyncio/base_events.py", line 719, in call_soon
self._check_closed()
File "/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/asyncio/base_events.py", line 508, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Task was destroyed but it is pending!
task: <Task pending name='Task-55' coro=<H2Protocol.send_task() running at /gnu/store/4abyp273l559v0adf65grkvsz3s1d9bc-python-hypercorn-0.10.2/lib/python3.8/site-packages/hypercorn/protocol/h2.py:144>
wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7ffff58fc790>()]>>
Task was destroyed but it is pending!
task: <Task pending name='Task-60' coro=<_call_later() running at /gnu/store/4abyp273l559v0adf65grkvsz3s1d9bc-python-hypercorn-0.10.2/lib/python3.8/site-packages/hypercorn/asyncio/tcp_server.py:149>
wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7ffff589b220>()]>>
FAILED [ 45%]
tests/protocol/test_h11.py::test_protocol_send_data PASSED [ 45%]
tests/protocol/test_h11.py::test_protocol_send_body FAILED [ 46%]
tests/protocol/test_h11.py::test_protocol_send_stream_closed[True-expected0] PASSED [ 47%]
tests/protocol/test_h11.py::test_protocol_send_stream_closed[False-expected1] PASSED [ 47%]
tests/protocol/test_h11.py::test_protocol_instant_recycle PASSED [ 48%]
tests/protocol/test_h11.py::test_protocol_send_end_data PASSED [ 48%]
tests/protocol/test_h11.py::test_protocol_handle_closed PASSED [ 49%]
tests/protocol/test_h11.py::test_protocol_handle_request PASSED [ 50%]
tests/protocol/test_h11.py::test_protocol_handle_protocol_error PASSED [ 50%]
tests/protocol/test_h11.py::test_protocol_handle_send_client_error PASSED [ 51%]
tests/protocol/test_h11.py::test_protocol_handle_pipelining PASSED [ 51%]
tests/protocol/test_h11.py::test_protocol_handle_continue_request PASSED [ 52%]
tests/protocol/test_h11.py::test_protocol_handle_max_incomplete PASSED [ 52%]
tests/protocol/test_h11.py::test_protocol_handle_h2c_upgrade PASSED [ 53%]
tests/protocol/test_h11.py::test_protocol_handle_h2_prior PASSED [ 54%]
tests/protocol/test_h11.py::test_protocol_handle_data_post_response PASSED [ 54%]
tests/protocol/test_h11.py::test_protocol_handle_data_post_end PASSED [ 55%]
tests/protocol/test_h11.py::test_protocol_handle_data_post_close PASSED [ 55%]
tests/protocol/test_h2.py::test_stream_buffer_push_and_pop PASSED [ 56%]
tests/protocol/test_h2.py::test_stream_buffer_drain PASSED [ 57%]
tests/protocol/test_h2.py::test_stream_buffer_closed PASSED [ 57%]
tests/protocol/test_h2.py::test_stream_buffer_complete PASSED [ 58%]
tests/protocol/test_h2.py::test_protocol_handle_protocol_error PASSED [ 58%]
tests/protocol/test_http_stream.py::test_handle_request_http_1[1.0] PASSED [ 59%]
tests/protocol/test_http_stream.py::test_handle_request_http_1[1.1] PASSED [ 60%]
tests/protocol/test_http_stream.py::test_handle_request_http_2 PASSED [ 60%]
tests/protocol/test_http_stream.py::test_handle_body PASSED [ 61%]
tests/protocol/test_http_stream.py::test_handle_end_body PASSED [ 61%]
tests/protocol/test_http_stream.py::test_handle_closed PASSED [ 62%]
tests/protocol/test_http_stream.py::test_send_response PASSED [ 62%]
tests/protocol/test_http_stream.py::test_invalid_server_name PASSED [ 63%]
tests/protocol/test_http_stream.py::test_send_push PASSED [ 64%]
tests/protocol/test_http_stream.py::test_send_app_error PASSED [ 64%]
tests/protocol/test_http_stream.py::test_send_invalid_message_given_state[ASGIHTTPState.REQUEST-not_a_real_type] PASSED [ 65%]
tests/protocol/test_http_stream.py::test_send_invalid_message_given_state[ASGIHTTPState.RESPONSE-http.response.start] PASSED [ 65%]
tests/protocol/test_http_stream.py::test_send_invalid_message_given_state[ASGIHTTPState.CLOSED-http.response.start] PASSED [ 66%]
tests/protocol/test_http_stream.py::test_send_invalid_message_given_state[ASGIHTTPState.CLOSED-http.response.body] PASSED [ 67%]
tests/protocol/test_http_stream.py::test_send_invalid_message[201 NO CONTENT-headers0-] PASSED [ 67%]
tests/protocol/test_http_stream.py::test_send_invalid_message[200-headers1-] PASSED [ 68%]
tests/protocol/test_http_stream.py::test_send_invalid_message[200-headers2-Body] PASSED [ 68%]
tests/protocol/test_http_stream.py::test_stream_idle PASSED [ 69%]
tests/protocol/test_http_stream.py::test_closure PASSED [ 70%]
tests/protocol/test_http_stream.py::test_closed_app_send_noop PASSED [ 70%]
tests/protocol/test_ws_stream.py::test_buffer PASSED [ 71%]
tests/protocol/test_ws_stream.py::test_buffer_frame_too_large PASSED [ 71%]
tests/protocol/test_ws_stream.py::test_buffer_mixed_types[data0] PASSED [ 72%]
tests/protocol/test_ws_stream.py::test_buffer_mixed_types[data1] PASSED [ 72%]
tests/protocol/test_ws_stream.py::test_handshake_validity[headers0-1.0-False] PASSED [ 73%]
tests/protocol/test_ws_stream.py::test_handshake_validity[headers1-1.1-True] PASSED [ 74%]
tests/protocol/test_ws_stream.py::test_handshake_validity[headers2-1.1-False] PASSED [ 74%]
tests/protocol/test_ws_stream.py::test_handshake_validity[headers3-1.1-False] PASSED [ 75%]
tests/protocol/test_ws_stream.py::test_handshake_validity[headers4-2-True] PASSED [ 75%]
tests/protocol/test_ws_stream.py::test_handshake_validity[headers5-2-False] PASSED [ 76%]
tests/protocol/test_ws_stream.py::test_handshake_accept_http1 PASSED [ 77%]
tests/protocol/test_ws_stream.py::test_handshake_accept_http2 PASSED [ 77%]
tests/protocol/test_ws_stream.py::test_handle_request PASSED [ 78%]
tests/protocol/test_ws_stream.py::test_handle_connection PASSED [ 78%]
tests/protocol/test_ws_stream.py::test_handle_closed PASSED [ 79%]
tests/protocol/test_ws_stream.py::test_send_accept PASSED [ 80%]
tests/protocol/test_ws_stream.py::test_send_reject PASSED [ 80%]
tests/protocol/test_ws_stream.py::test_invalid_server_name PASSED [ 81%]
tests/protocol/test_ws_stream.py::test_send_app_error_handshake PASSED [ 81%]
tests/protocol/test_ws_stream.py::test_send_app_error_connected PASSED [ 82%]
tests/protocol/test_ws_stream.py::test_send_connection PASSED [ 82%]
tests/protocol/test_ws_stream.py::test_pings PASSED [ 83%]
tests/protocol/test_ws_stream.py::test_send_invalid_message_given_state[ASGIWebsocketState.HANDSHAKE-websocket.send] PASSED [ 84%]
tests/protocol/test_ws_stream.py::test_send_invalid_message_given_state[ASGIWebsocketState.RESPONSE-websocket.accept] PASSED [ 84%]
tests/protocol/test_ws_stream.py::test_send_invalid_message_given_state[ASGIWebsocketState.RESPONSE-websocket.send] PASSED [ 85%]
tests/protocol/test_ws_stream.py::test_send_invalid_message_given_state[ASGIWebsocketState.CONNECTED-websocket.http.response.start] PASSED [ 85%]
tests/protocol/test_ws_stream.py::test_send_invalid_message_given_state[ASGIWebsocketState.CONNECTED-websocket.http.response.body] PASSED [ 86%]
tests/protocol/test_ws_stream.py::test_send_invalid_message_given_state[ASGIWebsocketState.CLOSED-websocket.send] PASSED [ 87%]
tests/protocol/test_ws_stream.py::test_send_invalid_message_given_state[ASGIWebsocketState.CLOSED-websocket.http.response.start] PASSED [ 87%]
tests/protocol/test_ws_stream.py::test_send_invalid_message_given_state[ASGIWebsocketState.CLOSED-websocket.http.response.body] PASSED [ 88%]
tests/protocol/test_ws_stream.py::test_send_invalid_http_message[201 NO CONTENT-headers0-] PASSED [ 88%]
tests/protocol/test_ws_stream.py::test_send_invalid_http_message[200-headers1-] PASSED [ 89%]
tests/protocol/test_ws_stream.py::test_send_invalid_http_message[200-headers2-Body] PASSED [ 90%]
tests/protocol/test_ws_stream.py::test_stream_idle[ASGIWebsocketState.HANDSHAKE-False] PASSED [ 90%]
tests/protocol/test_ws_stream.py::test_stream_idle[ASGIWebsocketState.CONNECTED-False] PASSED [ 91%]
tests/protocol/test_ws_stream.py::test_stream_idle[ASGIWebsocketState.RESPONSE-False] PASSED [ 91%]
tests/protocol/test_ws_stream.py::test_stream_idle[ASGIWebsocketState.CLOSED-True] PASSED [ 92%]
tests/protocol/test_ws_stream.py::test_stream_idle[ASGIWebsocketState.HTTPCLOSED-True] PASSED [ 92%]
tests/protocol/test_ws_stream.py::test_closure PASSED [ 93%]
tests/protocol/test_ws_stream.py::test_closed_app_send_noop PASSED [ 94%]
tests/trio/test_keep_alive.py::test_http1_keep_alive_pre_request PASSED [ 94%]
tests/trio/test_keep_alive.py::test_http1_keep_alive_during PASSED [ 95%]
tests/trio/test_keep_alive.py::test_http1_keep_alive PASSED [ 95%]
tests/trio/test_keep_alive.py::test_http1_keep_alive_pipelining PASSED [ 96%]
tests/trio/test_lifespan.py::test_startup_timeout_error PASSED [ 97%]
tests/trio/test_lifespan.py::test_startup_failure PASSED [ 97%]
tests/trio/test_sanity.py::test_http1_request PASSED [ 98%]
tests/trio/test_sanity.py::test_http1_websocket PASSED [ 98%]
tests/trio/test_sanity.py::test_http2_request PASSED [ 99%]
tests/trio/test_sanity.py::test_http2_websocket PASSED [100%]

=================================== FAILURES ===================================
_________________________ test_protocol_send_response __________________________

protocol = <hypercorn.protocol.h11.H11Protocol object at 0x7ffff5802730>

@pytest.mark.asyncio
async def test_protocol_send_response(protocol: H11Protocol) -> None:
await protocol.stream_send(Response(stream_id=1, status_code=201, headers=[]))
protocol.send.assert_called()
Toggle quote (1 lines)
> assert protocol.send.call_args_list == [
call(
RawData(
data=(
b"HTTP/1.1 201 \r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\n"
b"server: hypercorn-h11\r\nconnection: close\r\n\r\n"
)
)
)
]
E AssertionError: assert [call(RawData(data=b'HTTP/1.1 201 \r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nConnection: close\r\n\r\n', address=None))] ==
[call(RawData(data=b'HTTP/1.1 201 \r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nconnection: close\r\n\r\n', address=None))]
E At index 0 diff: call(RawData(data=b'HTTP/1.1 201 \r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nConnection: close\r\n\r\n', address=None)) !=
call(RawData(data=b'HTTP/1.1 201 \r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nconnection: close\r\n\r\n', address=None))
E Full diff:
E - [call(RawData(data=b'HTTP/1.1 201 \r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nConnection: close\r\n\r\n', address=None))]
E ? ^
E + [call(RawData(data=b'HTTP/1.1 201 \r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nconnection: close\r\n\r\n', address=None))]
E ? ^

protocol = <hypercorn.protocol.h11.H11Protocol object at 0x7ffff5802730>

tests/protocol/test_h11.py:42: AssertionError
___________________________ test_protocol_send_body ____________________________

protocol = <hypercorn.protocol.h11.H11Protocol object at 0x7ffff4661ee0>

@pytest.mark.asyncio
async def test_protocol_send_body(protocol: H11Protocol) -> None:
await protocol.handle(
RawData(data=b"GET / HTTP/1.1\r\nHost: hypercorn\r\nConnection: close\r\n\r\n")
)
await protocol.stream_send(
Response(stream_id=1, status_code=200, headers=[(b"content-length", b"5")])
)
await protocol.stream_send(Body(stream_id=1, data=b"hello"))
protocol.send.assert_called()
Toggle quote (1 lines)
> assert protocol.send.call_args_list == [
call(
RawData(
data=b"HTTP/1.1 200 \r\ncontent-length: 5\r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nconnection: close\r\n\r\n" # noqa: E501
)
),
call(RawData(data=b"hello")),
]
E AssertionError: assert [call(RawData(data=b'HTTP/1.1 200 \r\ncontent-length: 5\r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nConnection: close\r\n\r\n', address=None)),\n
call(RawData(data=b'hello', address=None))] == [call(RawData(data=b'HTTP/1.1 200 \r\ncontent-length: 5\r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nconnection: close\r\n\r\n',
address=None)),\n call(RawData(data=b'hello', address=None))]
E At index 0 diff: call(RawData(data=b'HTTP/1.1 200 \r\ncontent-length: 5\r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nConnection: close\r\n\r\n', address=None)) !=
call(RawData(data=b'HTTP/1.1 200 \r\ncontent-length: 5\r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nconnection: close\r\n\r\n', address=None))
E Full diff:
E [
E - call(RawData(data=b'HTTP/1.1 200 \r\ncontent-length: 5\r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nConnection: close\r\n\r\n', address=None)),
E ? ^
E + call(RawData(data=b'HTTP/1.1 200 \r\ncontent-length: 5\r\ndate: Thu, 01 Jan 1970 01:23:20 GMT\r\nserver: hypercorn-h11\r\nconnection: close\r\n\r\n', address=None)),
E ? ^
E call(RawData(data=b'hello', address=None)),
E ]

protocol = <hypercorn.protocol.h11.H11Protocol object at 0x7ffff4661ee0>

tests/protocol/test_h11.py:71: AssertionError
=============================== warnings summary ===============================
tests/protocol/test_h2.py::test_protocol_handle_protocol_error
/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib/python3.8/site-packages/_pytest/runner.py:105: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
item.funcargs = None

=================== 2 failed, 168 passed, 1 warning in 2.69s ===================
command "pytest" "-vv" failed with status 1
builder for `/gnu/store/wbp6s3l9wspmi6lbkhzhx5m93lqrfdm2-python-hypercorn-0.10.2.drv' failed with exit code 1
build of /gnu/store/wbp6s3l9wspmi6lbkhzhx5m93lqrfdm2-python-hypercorn-0.10.2.drv failed
View build log at '/var/log/guix/drvs/wb/p6s3l9wspmi6lbkhzhx5m93lqrfdm2-python-hypercorn-0.10.2.drv.bz2'.
guix build: error: build of `/gnu/store/wbp6s3l9wspmi6lbkhzhx5m93lqrfdm2-python-hypercorn-0.10.2.drv' failed
sylviidae@butterfly ~/guix/git/guix [env]$
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPwwNxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7gR+AQCikMoncJ75uy1xxkonSD6L+FZ2
jAS7DYWMj38/RMV0BQEA24toXxSYsOMRcu5/22qXV1BEmeegKeD3Q8hrO3mrQAw=
=Uuf2
-----END PGP SIGNATURE-----


V
V
Vinicius Monego wrote on 24 Jul 2021 20:30
f6e66b42d8011febd5badb5a25f209491cca22e0.camel@posteo.net
Em sáb, 2021-07-24 às 17:22 +0200, Maxime Devos escreveu:

Toggle quote (7 lines)
> The
> dependency 'python-hypercorn' now fails to compile (*).  Aside from
> that, this
> patch LGTM.  This build failure seems to be caused by the update of
> python-h11
> (and not python-hyperframe), however.

That is true (see [1]). python-hypercorn will build again if updated to
the latest version.

About the patch, it seems that the convention is to name the matrix
client "matrix-mirage", because "mirage" is registered to an older GTK
image viewer [2, 3].

M
M
Maxime Devos wrote on 24 Jul 2021 20:42
7f7754df6714b6c925b452e6dbde4c5a80afa017.camel@telenet.be
Vinicius Monego schreef op za 24-07-2021 om 18:30 [+0000]:
Toggle quote (12 lines)
> Em sáb, 2021-07-24 às 17:22 +0200, Maxime Devos escreveu:
>
> > The
> > dependency 'python-hypercorn' now fails to compile (*). Aside from
> > that, this
> > patch LGTM. This build failure seems to be caused by the update of
> > python-h11
> > (and not python-hyperframe), however.
>
> That is true (see [1]). python-hypercorn will build again if updated to
> the latest version.

Ok, we'll have to apply the '48263' patch before the '49123' patch series
then. FWIW, the '48263' patch looks good to me, but I only looked at
the patch itself and didn't do any other checks.

A comment about the commit message though:
Toggle quote (9 lines)
> * gnu/packages/python-web.scm (hypercorn): Update to 0.11.2.
> (python-h11): Update to 0.12.0.
> [arguments]: Add 'test-target' keyword. Do not replace check phase.
> [native-inputs]: Add python-pytest-runner.
> ---
> Both packages have to updated at the same time
> or the hypercorn tests will fail (if either is updated first). I
> rebuilt the h11 dependents succesfully.

Why not include this rationale in the commit message itself?

Toggle quote (2 lines)
Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYPxfJBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7iSeAP0R3v9E2Zk396mR987Dv69RuiBI
5Y5HU7grW6bMPuPl2AEA4Epztpe5RaglmJEOdyZaoR2m1UImkVDS2u4xFJAMdAQ=
=mk5s
-----END PGP SIGNATURE-----


?