[PATCH] gnu: Add gmid.

  • Done
  • quality assurance status badge
Details
2 participants
  • cage
  • Maxim Cournoyer
Owner
unassigned
Submitted by
cage
Severity
normal
C
(address . guix-patches@gnu.org)
YQ7Pkgbsmw1Jxwwq@kurosawa.casa.net
---
gnu/packages/networking.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 05fd092b23..0ea07f0f15 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -44,6 +44,7 @@
;;; Copyright � 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright � 2021 Justin Veilleux <terramorpha@cock.li>
;;; Copyright � 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright � 2021 cage <cage-dev@twistfold.it>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4177,3 +4178,38 @@ public key authentication and Kerberos single-sign-on. It also includes
command-line @acronym{SFTP} and @acronym{SCP} implementations.")
(home-page "https://www.chiark.greenend.org.uk/~sgtatham/putty/")
(license license:expat)))
+
+(define-public gmid
+ (package
+ (name "gmid")
+ (version "1.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/omar-polo/gmid/releases/download/"
+ version "/gmid-" version ".tar.gz"))
+ (sha256
+ (base32 "0ag5zcwnr5vmy13bc9c36hnv9pflks68b0k6w0ng97inrm37klis"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ ;; The configure script is hand-written, not from GNU autotools.
+ (lambda* (#:key configure-flags inputs outputs #:allow-other-keys)
+ (let ((prefix (string-append "PREFIX=" (assoc-ref outputs "out"))))
+ (setenv "CC" ,(cc-for-target))
+ (apply invoke "./configure" (list prefix))
+ #t))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("bison" ,bison)
+ ("flex" ,flex)))
+ (inputs
+ `(("libevent" ,libevent)
+ ("libressl" ,libressl)))
+ (home-page "https://git.omarpolo.com/gmid/about/")
+ (synopsis "Simple and secure Gemini server")
+ (description "Gmid is a fast Gemini server written with security in mind.")
+ (license license:x11)))
--
2.32.0
M
M
Maxim Cournoyer wrote on 24 Feb 2022 05:33
(name . cage)(address . cage-dev@twistfold.it)(address . 49929@debbugs.gnu.org)
875yp4lw7c.fsf@gmail.com
tags 49929 moreinfo
--

Hello!

cage <cage-dev@twistfold.it> writes:

Toggle quote (36 lines)
> ---
> gnu/packages/networking.scm | 36 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 36 insertions(+)
>
> diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
> index 05fd092b23..0ea07f0f15 100644
> --- a/gnu/packages/networking.scm
> +++ b/gnu/packages/networking.scm
> @@ -44,6 +44,7 @@
> ;;; Copyright © 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
> ;;; Copyright © 2021 Justin Veilleux <terramorpha@cock.li>
> ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
> +;;; Copyright © 2021 cage <cage-dev@twistfold.it>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -4177,3 +4178,38 @@ public key authentication and Kerberos single-sign-on. It also includes
> command-line @acronym{SFTP} and @acronym{SCP} implementations.")
> (home-page "https://www.chiark.greenend.org.uk/~sgtatham/putty/")
> (license license:expat)))
> +
> +(define-public gmid
> + (package
> + (name "gmid")
> + (version "1.7.2")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/omar-polo/gmid/releases/download/"
> + version "/gmid-" version ".tar.gz"))
> + (sha256
> + (base32 "0ag5zcwnr5vmy13bc9c36hnv9pflks68b0k6w0ng97inrm37klis"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:tests? #f ;no tests

Apparently, the Makefile has a 'regress' target [0] to run a test suite
(the project has a CI enabled, in doubt you can refer to their CI
recipe).


Toggle quote (10 lines)
> + #:phases
> + (modify-phases %standard-phases
> + (replace 'configure
> + ;; The configure script is hand-written, not from GNU autotools.
> + (lambda* (#:key configure-flags inputs outputs #:allow-other-keys)
> + (let ((prefix (string-append "PREFIX=" (assoc-ref outputs "out"))))
> + (setenv "CC" ,(cc-for-target))
> + (apply invoke "./configure" (list prefix))
> + #t))))))

Ending phases by #t is obsolete (you can drop it), and you can more
simply write (invoke "./configure" (string-append #$output)), as long as
you replace the backquoted arguments list by a simple (list ...) and
define the phases as a G-exp, e.g.: #~(modify-phases [...])

Toggle quote (8 lines)
> + (native-inputs
> + `(("pkg-config" ,pkg-config)
> + ("bison" ,bison)
> + ("flex" ,flex)))
> + (inputs
> + `(("libevent" ,libevent)
> + ("libressl" ,libressl)))

You can use the new style for inputs, as explained in this blog post [1]


Toggle quote (5 lines)
> + (synopsis "Simple and secure Gemini server")
> + (description "Gmid is a fast Gemini server written with security in mind.")
> + (license license:x11)))

The rest looks good to me, well done!

Could you send an update with changes along these lines?

Thank you,

Maxim
C
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
YhpNFaejB2rBEN9/@kurosawa.casa.net
On Wed, Feb 23, 2022 at 11:33:59PM -0500, Maxim Cournoyer wrote:

Hi!

Thanks for your feedback!

[...]

Toggle quote (3 lines)
> The rest looks good to me, well done!
> Could you send an update with changes along these lines?

Here is my best attempt to fix the definition form following your
advice; i have enabled the 'check' phase and removed the backtick
notation. I was not able to update the call to 'invoke', because
-honestly- i was not able to wrap my head around g-expr. I hope the
results are acceptable by the way! :)

Bye and thanks again!
C.

---
gnu/packages/networking.scm | 38 +++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 11f1cad007..49776fd666 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -48,6 +48,7 @@
;;; Copyright � 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright � 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright � 2022 Simon South <simon@simonsouth.net>
+;;; Copyright � 2022 cage <cage-dev@twistfold.it>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4196,3 +4197,40 @@ (define-public putty
implementations.")
(home-page "https://www.chiark.greenend.org.uk/~sgtatham/putty/")
(license license:expat)))
+
+(define-public gmid
+ (package
+ (name "gmid")
+ (version "1.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/omar-polo/gmid/releases/download/"
+ version "/gmid-" version ".tar.gz"))
+ (sha256
+ (base32 "0ag5zcwnr5vmy13bc9c36hnv9pflks68b0k6w0ng97inrm37klis"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:test-target "regress"
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ ;; The configure script is hand-written, not from GNU autotools.
+ (lambda* (#:key configure-flags inputs outputs #:allow-other-keys)
+ (let ((prefix (string-append "PREFIX=" (assoc-ref outputs "out"))))
+ (setenv "CC" #$(cc-for-target))
+ (apply invoke "./configure" (list prefix))))))))
+ (native-inputs
+ (list pkg-config
+ bison
+ flex
+ coreutils
+ which
+ procps))
+ (inputs
+ (list libevent
+ libressl))
+ (home-page "https://git.omarpolo.com/gmid/about/")
+ (synopsis "Simple and secure Gemini server")
+ (description "Gmid is a fast Gemini server written with security in mind.")
+ (license license:x11)))
--
2.34.0
M
M
Maxim Cournoyer wrote on 27 Feb 2022 05:50
(name . cage)(address . cage-dev@twistfold.it)(address . 49929-done@debbugs.gnu.org)
87h78kvrp1.fsf@gmail.com
Hello!

cage <cage-dev@twistfold.it> writes:

Toggle quote (17 lines)
> On Wed, Feb 23, 2022 at 11:33:59PM -0500, Maxim Cournoyer wrote:
>
> Hi!
>
> Thanks for your feedback!
>
> [...]
>
>> The rest looks good to me, well done!
>> Could you send an update with changes along these lines?
>
> Here is my best attempt to fix the definition form following your
> advice; i have enabled the 'check' phase and removed the backtick
> notation. I was not able to update the call to 'invoke', because
> -honestly- i was not able to wrap my head around g-expr. I hope the
> results are acceptable by the way! :)

Thank, that's much nicer with the test suite! I moved the package to
(gnu packages web), updated it to 1.8.1 (per 'guix lint'
recommendation), ordered the inputs, simplified the phase a bit and
enumerated some of the supported features in the description.

I also fixed the license, which is ISC rather than X11 (see

Pushed as 7eb68770efb33c1444f0ba1654334cfe19b3f5c6.

Closing; thank you!

Maxim

Toggle quote (62 lines)
> Bye and thanks again!
> C.
>
> ---
> gnu/packages/networking.scm | 38 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
> index 11f1cad007..49776fd666 100644
> --- a/gnu/packages/networking.scm
> +++ b/gnu/packages/networking.scm
> @@ -48,6 +48,7 @@
> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
> ;;; Copyright © 2022 Simon South <simon@simonsouth.net>
> +;;; Copyright © 2022 cage <cage-dev@twistfold.it>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -4196,3 +4197,40 @@ (define-public putty
> implementations.")
> (home-page "https://www.chiark.greenend.org.uk/~sgtatham/putty/")
> (license license:expat)))
> +
> +(define-public gmid
> + (package
> + (name "gmid")
> + (version "1.7.2")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/omar-polo/gmid/releases/download/"
> + version "/gmid-" version ".tar.gz"))
> + (sha256
> + (base32 "0ag5zcwnr5vmy13bc9c36hnv9pflks68b0k6w0ng97inrm37klis"))))
> + (build-system gnu-build-system)
> + (arguments
> + (list #:test-target "regress"
> + #:phases
> + #~(modify-phases %standard-phases
> + (replace 'configure
> + ;; The configure script is hand-written, not from GNU autotools.
> + (lambda* (#:key configure-flags inputs outputs #:allow-other-keys)
> + (let ((prefix (string-append "PREFIX=" (assoc-ref outputs "out"))))
> + (setenv "CC" #$(cc-for-target))
> + (apply invoke "./configure" (list prefix))))))))
> + (native-inputs
> + (list pkg-config
> + bison
> + flex
> + coreutils
> + which
> + procps))
> + (inputs
> + (list libevent
> + libressl))
> + (home-page "https://git.omarpolo.com/gmid/about/")
> + (synopsis "Simple and secure Gemini server")
> + (description "Gmid is a fast Gemini server written with security in mind.")
> + (license license:x11)))
> --
> 2.34.0
Closed
C
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
YhtpSFOGkC3g09ic@kurosawa.casa.net
On Sat, Feb 26, 2022 at 11:50:18PM -0500, Maxim Cournoyer wrote:
Toggle quote (2 lines)
> Hello!

Hi!!

[...]

Toggle quote (3 lines)
> > Here is my best attempt to fix the definition form following your
> > advice;

[...]

Toggle quote (2 lines)
> Thank, that's much nicer with the test suite!

The upstream developer has spent a lot of time writing a proper test
suite, was a pity if was left unused. :)

[...]

Toggle quote (2 lines)
> Closing; thank you!

Thanks to you for your suggestions and improving the patch!

Also i was able to fix the package's test phase only with the help of
people from the IRC channel, thanks to they all!

I am going to track the development upstream and upgrade this
definition form in the future.


Bye!
C.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 49929@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 49929
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch