Subject: Re: [core-updates-frozen] [PATCH] gnu: python-nautilus: Remove package.

From: John Kehayias <[email-masked]>
Date: Sun, 21 Nov 2021 21:23:29 +0000

Rather than open a bug report for a soon-to-be-removed package, I'm attaching the diff here. Please do not apply it.

I added a few packages that were needed as I made changes and updates, in case this is useful to someone down the line. I also did a hacky workaround of python-nautilus having some template files getting compiled that probably should be skipped. Copying them to /tmp and back afterward was probably not how we should do it, but again, in case someone wants to revive this package. I should note that build failure was new on core-updates-frozen and this diff fails on the sanity-check.

Again, the actual patch is in the first message, this is just a diff in case someone wants to revive python-nautilus (though check again, probably want nautilus-python from Gnome).

John
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e882659d4b..c9801f14f1 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -15321,14 +15321,14 @@ (define-public python2-tabulate
 (define-public python-kazoo
   (package
     (name "python-kazoo")
-    (version "2.4.0")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "kazoo" version))
        (sha256
         (base32
-         "16y213k7r8shyn2zw1k6lkzjgcrvm441pqv8scvcjixhvpbx3hm7"))))
+         "1zpj5cc8624w6i0pxgcxqkjwbkm4pkrv19d7wh5df3jais32g3jq"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f)) ; XXX: needs zookeeper
     (propagated-inputs
@@ -16948,31 +16948,151 @@ (define-public python-graphene
 with an associated set of resolve methods that know how to fetch data.")
     (license license:expat)))
 
+(define-public python-aiohttp-session
+  (package
+    (name "python-aiohttp-session")
+    (version "2.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "aiohttp-session" version))
+       (sha256
+        (base32 "0x7b5bl36d045l320v0g5rm0c000zdy626cpl1y0xqw4id31754m"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-aiohttp python-cryptography python-pynacl))
+    (home-page "https://github.com/aio-libs/aiohttp_session/")
+    (synopsis "sessions for aiohttp.web")
+    (description "sessions for aiohttp.web")
+    (license #f)))
+
+(define-public python-aiohttp-jinja2
+  (package
+    (name "python-aiohttp-jinja2")
+    (version "1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "aiohttp-jinja2" version))
+       (sha256
+        (base32 "02wiky2ra4nbdxgb5lpb29bsg8pwg4nsyd05wps93dk0q3maafvw"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-aiohttp python-jinja2 python-typing-extensions))
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://github.com/aio-libs/aiohttp_jinja2/")
+    (synopsis
+     "jinja2 template renderer for aiohttp.web (http server for asyncio)")
+    (description
+     "jinja2 template renderer for aiohttp.web (http server for asyncio)")
+    (license #f)))
+
+(define-public python-aiohttp-cors
+  (package
+    (name "python-aiohttp-cors")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "aiohttp_cors" version))
+       (sha256
+        (base32 "0pczn54bqd32v8zhfbjfybiza6xh1szwxy6as577dn8g23bwcfad"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; some (all?) tests need http access
+    (propagated-inputs (list python-aiohttp
+                             python-selenium ; for tests
+                             python-typing))
+    (native-inputs
+     (list python-pytest python-pytest-cov python-pytest-runner)) ; for tests
+    (home-page "https://github.com/aio-libs/aiohttp-cors")
+    (synopsis "CORS support for aiohttp")
+    (description "CORS support for aiohttp")
+    (license license:asl2.0)))
+
+(define-public python-kafka-python
+  (package
+    (name "python-kafka-python")
+    (version "2.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "kafka-python" version))
+       (sha256
+        (base32 "1qypm52iv81kvb2khrj0fj6n17bhdvca4y9ydz6jcdxnlbzfgpq4"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; need to manually copy tox.ini?
+    (native-inputs (list python-tox))
+    (home-page "https://github.com/dpkp/kafka-python")
+    (synopsis "Pure Python client for Apache Kafka")
+    (description "Pure Python client for Apache Kafka")
+    (license #f)))
+
+(define-public python-aiokafka
+  (package
+    (name "python-aiokafka")
+    (version "0.7.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "aiokafka" version))
+       (sha256
+        (base32 "15ih5hn7jin0vliqjk5g7pv5fm5zgsp97jxfhfa8gn1ihz8l3z58"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; some (all?) tests need http access
+    (propagated-inputs (list python-dataclasses python-kafka-python))
+    (home-page "http://aiokafka.readthedocs.org")
+    (synopsis "Kafka integration with asyncio.")
+    (description "Kafka integration with asyncio.")
+    (license #f)))
+
 (define-public python-nautilus
   (package
     (name "python-nautilus")
-    (version "0.4.9")
+    (version "0.5.2")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "nautilus" version))
         (sha256
          (base32
-          "01hwzjc1zshk4vvxrcghm398fpy4jls66dyz06g07mrwqif8878p"))))
+          "1phdams5zqjfmaaf0dzcp37rndcrfb78qxx3lhqmwvswq60hnibj"))))
     (build-system python-build-system)
-    (arguments `(#:tests? #f)) ; fails to import test modules
+    (arguments
+     `(#:tests? #f ; fails to import test modules
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'move-templates
+           (lambda _
+             (copy-recursively "nautilus/management/templates" "/tmp/naut")
+             (delete-file-recursively "nautilus/management/templates")
+             #t))
+         (add-after 'install 'restore-templates
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((lib (string-append (assoc-ref outputs "out") "/lib/python3.9/site-packages/nautilus/management/templates")))
+               (copy-recursively "/tmp/naut" lib))
+             #t)))))
     (propagated-inputs
-     `(("python-bcrypt" ,python-bcrypt)
+     `(("python-aiohttp" ,python-aiohttp)
+       ("python-aiohttp-cors" ,python-aiohttp-cors)
+       ("python-aiohttp-jinja2" ,python-aiohttp-jinja2)
+       ("python-aiokafka" ,python-aiokafka)
+       ("python-aiohttp-session" ,python-aiohttp-session)
+       ("python-pykafka" ,python-pykafka)
+       ("python-bcrypt" ,python-bcrypt)
        ("python-click" ,python-click)
        ("python-consul" ,python-consul)
+       ("python-cryptography" ,python-cryptography)
        ("python-graphene" ,python-graphene)
        ("python-jinja2" ,python-jinja2)
        ("python-peewee" ,python-peewee)
-       ("python-pika" ,python-pika)
-       ("python-tornado" ,python-tornado)
-       ("python-wtforms" ,python-wtforms)))
+       ("python-pyjwt" ,python-pyjwt)
+       ("python-uvloop" ,python-uvloop)))
     (native-inputs
-     `(("python-nose2" ,python-nose2)))
+     `(("python-nose2" ,python-nose2)
+       ("python-pytest" ,python-pytest)))
     (home-page "https://github.com/AlecAivazis/nautilus")
     (synopsis "Library for creating microservice applications")
     (description