Subject: [PATCH] gnu: Add gmnisrv.

From: Alexandru-Sergiu Marton <[email-masked]>
Date: Tue, 20 Oct 2020 22:17:38 +0300

* gnu/packages/web.scm (gmnisrv): New variable.
---
 gnu/packages/web.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 5be95e4741..2ce3ab89bf 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -46,6 +46,7 @@
 ;;; Copyright © 2020 Paul Garlick <[email-masked]>
 ;;; Copyright © 2020 Michael Rohleder <[email-masked]>
 ;;; Copyright © 2020 Ryan Prior <[email-masked]>
+;;; Copyright © 2020 Alexandru-Sergiu Marton <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -128,6 +129,7 @@
   #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages lsof)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages markup)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages networking)
@@ -7702,3 +7704,44 @@ solution for any project's interface needs:
 @item Easily integrated and extensible with Python or Lua scripting.
 @end itemize\n")
     (license license:expat)))
+
+(define-public gmnisrv
+  (let ((commit "a22bec51494a50c044416d469cc33e043480e7fd"))
+    (package
+      (name "gmnisrv")
+      (version (git-version "0" "0" commit))
+      (home-page "https://git.sr.ht/~sircmpwn/gmnisrv")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1k1n7cqd37jgbhxyh231bagdxdxqwpr6n5pk3gax2516w6xbzlb9"))
+                (file-name (git-file-name name version))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'set-variables
+             (lambda _
+               (setenv "CC" "gcc")
+               #t))
+           (delete 'check)
+           (add-after 'install 'install-config
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((etc (string-append (assoc-ref outputs "out")
+                                         "/etc")))
+                 (mkdir-p etc)
+                 (copy-file "config.ini" (string-append etc "/gmnisrv.ini"))
+                 #t))))))
+      (inputs
+       `(("openssl" ,openssl)))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)
+         ("scdoc" ,scdoc)))
+      (synopsis "Simple Gemini protocol server")
+      (description "gmnisrv is a simple Gemini protocol server written in C.")
+      (license (list license:gpl3
+                     license:bsd-3))))) ;; for ini.c and ini.h
-- 
2.28.0