diff mbox series

[bug#60622] gnu: Add nanomq.

Message ID ce59f92df743d81b193de451d5e45614502042c8.1673092288.git.sikmir@disroot.org
State New
Headers show
Series [bug#60622] gnu: Add nanomq. | expand

Commit Message

Nikolay Korotkiy Jan. 7, 2023, 11:51 a.m. UTC
* gnu/packages/networking.scm (nanomq): New variable.
---
 gnu/packages/networking.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)


base-commit: d16edd03cfa84f6d5fed979fd7283966cd3e4934

Comments

Mathieu Othacehe Jan. 8, 2023, 1:31 p.m. UTC | #1
Hey,

> +              (uri (git-reference
> +                    (url "https://github.com/emqx/nanomq")
> +                    (commit version)
> +                    (recursive? #t)))

It looks like nng is packaged by Guix, can it be used?

> +    (arguments
> +     `(#:tests? #f

You need to justify why the tests are disabled. Is it because there are
no tests, because some do not pass?

> +       #:configure-flags (list "-DNNG_ENABLE_TLS=ON" "-DNNG_ENABLE_SQLITE=ON")
> +       #:phases (modify-phases %standard-phases
> +                  (add-after 'unpack 'fix-etc-destination
> +                    (lambda _
> +                      (let* ((out (assoc-ref %outputs "out"))

It would be better to use the new gexp based style. You can have a look
to the lldpd package above for an example.


> +                             (etc (string-append out "/etc")))
> +                        (substitute* "CMakeLists.txt"
> +                          (("DESTINATION /etc")
> +                           (string-append "DESTINATION " etc)))) #t)))))

You can omit the trailing #t.

> +    (inputs (list mbedtls-apache sqlite))
> +    (synopsis "An ultra-lightweight and blazing-fast MQTT broker for IoT edge")

This a commercial description. Something like: "Lightweight MQTT broker"
would be enough.

> +    (description
> +     "NanoMQ bases on NNG's asynchronous I/O threading model, with an
> +extension of MQTT support in the protocol layer and reworked transport layer,
> +plus an enhanced asynchronous IO mechanism maximizing the overall capacity.")

It does not really tell what this package does, what is a broker for
instance?

Could you please send an updated version :)? Don't hesitate to ask for
guidance if my comments are unclear.

Thanks,

Mathieu
diff mbox series

Patch

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index a7b51ed1ff..588f657c00 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -871,6 +871,41 @@  (define-public nanomsg
     (home-page "https://nanomsg.org/")
     (license (license:non-copyleft "file:///COPYING"))))
 
+(define-public nanomq
+  (package
+    (name "nanomq")
+    (version "0.14.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emqx/nanomq")
+                    (commit version)
+                    (recursive? #t)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1min3xrdiyzj8yal02hx3axh4hfr930qi3jwa9zx67jp9lgyqqmd"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f
+       #:configure-flags (list "-DNNG_ENABLE_TLS=ON" "-DNNG_ENABLE_SQLITE=ON")
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'fix-etc-destination
+                    (lambda _
+                      (let* ((out (assoc-ref %outputs "out"))
+                             (etc (string-append out "/etc")))
+                        (substitute* "CMakeLists.txt"
+                          (("DESTINATION /etc")
+                           (string-append "DESTINATION " etc)))) #t)))))
+    (inputs (list mbedtls-apache sqlite))
+    (synopsis "An ultra-lightweight and blazing-fast MQTT broker for IoT edge")
+    (description
+     "NanoMQ bases on NNG's asynchronous I/O threading model, with an
+extension of MQTT support in the protocol layer and reworked transport layer,
+plus an enhanced asynchronous IO mechanism maximizing the overall capacity.")
+    (home-page "https://nanomq.io/")
+    (license license:expat)))
+
 (define-public blueman
   (package
     (name "blueman")