Germinal, a Common Lisp Gemini Server

  • Open
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • ~vidak
Owner
unassigned
Submitted by
~vidak
Severity
normal
~
~
~vidak wrote on 27 Mar 2022 23:34
(address . guix-patches@gnu.org)
87mthbw052.fsf@riseup.net
Attachment: germinal.scm
Hello all,

I have written this package for Guix. It is a gemini protocol server
written in Common Lisp.

For me, it builds and installs, but I cannot seem to understand how to
run the software.

I understand that there are Guix system configurations/definitions for
'Agate' and 'gmnisrv', that allow one to use Guix to serve gemini
content.


Could anyone help me understand how I might be able to get this
software, Germinal, running on Guix in the same way as Agate and
gmnisrv?

Thanks in advance,

~vidak


=> gemini://tilde.town/~vidak
L
L
Ludovic Courtès wrote on 5 Apr 2022 20:41
(name . ~vidak)(address . vidak@riseup.net)(address . 54602@debbugs.gnu.org)
87lewjid9l.fsf@gnu.org
Hello,

Sorry for the delay! Comments below…

~vidak <vidak@riseup.net> skribis:

Toggle quote (80 lines)
> (use-modules (guix packages)
> (guix build-system asdf)
> (guix build utils)
> (guix git)
> (guix git-download)
> (gnu packages lisp)
> (gnu packages lisp-xyz)
> ((guix licenses) #:prefix license:))
>
> (define-public germinal
> ;; No release.
> (let ((commit "5bfb371ea57dae8985c0e1c6f184f0338487d684"))
> (package
> (name "germinal")
> (version (git-version "1.0.0" "1" commit))
> (source
> (origin
> (method git-fetch)
> (uri (git-reference
> (url "https://git.carcosa.net/jmcbray/germinal")
> (commit commit)))
> (file-name (git-file-name "germinal" version))
> (sha256
> (base32 "12jypa8m10825lp5yxfcm1fyk3r4ziwcri7ndxa0m5dz0y7hggck"))))
> (build-system asdf-build-system/sbcl)
>
> (inputs `(("alexandria" ,sbcl-alexandria)
> ("babel" ,sbcl-babel)
> ("usocket" ,sbcl-usocket)
> ("bordeaux-threads" ,sbcl-bordeaux-threads)
> ("cl+ssl" ,sbcl-cl+ssl)
> ("str" ,sbcl-cl-str)
> ("trivial-mimes" ,sbcl-trivial-mimes)
> ("ppath" ,sbcl-ppath)
> ("osicat" ,sbcl-osicat)
> ("cl-interpol" ,sbcl-cl-interpol)
> ("quri" ,sbcl-quri)
> ("cl-ppcre" ,sbcl-cl-ppcre)
> ("cl-fad" ,sbcl-cl-fad)
> ("local-time" ,sbcl-local-time)
> ("uax-15" ,sbcl-uax-15)))
> (outputs '("out"))
> (arguments
> `(#:asd-systems '("germinal")))
> (synopsis "A gemini protocol server in Common Lisp.")
> (description
> " Germinal is a server for the Gemini Protocol, written in Common
> Lisp.
>
> It is named after the early 20th century Yiddish-language anarchist
> newspaper Germinal. I wanted to name it after an anarchist publication
> to convey the idea of people sharing information and ideas with each
> other, in contrast to the way the web is used to push advertising from
> corporations to people. And it happened that Germinal shares some
> sounds with Gemini.")
>
> (home-page "https://git.carcosa.net/jmcbray/germinal")
> (license license:agpl3))))
>
> germinal
>
>
> Hello all,
>
> I have written this package for Guix. It is a gemini protocol server
> written in Common Lisp.
>
> For me, it builds and installs, but I cannot seem to understand how to
> run the software.
>
> I understand that there are Guix system configurations/definitions for
> 'Agate' and 'gmnisrv', that allow one to use Guix to serve gemini
> content.
>
> (see: https://guix.gnu.org/manual/en/html_node/Web-Services.html )
>
> Could anyone help me understand how I might be able to get this
> software, Germinal, running on Guix in the same way as Agate and
> gmnisrv?

First, I would encourage you to submit the package for inclusion in Guix
proper. For that, you need to turn it into a patch and generally follow
the guidelines at:


In particular, once you’ve added it to the Guix tree, you will need to
run:

./pre-inst-env guix style germinal
./pre-inst-env guix style -S inputs germinal

to obtain the “conventional” style. Let us know how it goes!

As for defining a Guix System service such as those you mention, I don’t
know. My guess is that you could probably copy/paste
‘agate-service-type’ or ‘gmnisrv-service-type’ and related code as a
starting point, and adjust it so it matches Germinal. People can
provide guidance on help-guix@gnu.org and on #guix on Libera.chat.

Thanks in advance,
Ludo’.
?