Subject: Re: bug#60622: [PATCH] gnu: Add nanomq.

From: Mathieu Othacehe <[email-masked]>
Date: Sun, 08 Jan 2023 14:31:04 +0100

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