Subject: [bug#67200] [PATCH] gnu: Add minetest-server.

From: Liliana Marie Prikler <[email-masked]>
Date: Wed, 15 Nov 2023 19:39:06 +0100

Am Mittwoch, dem 15.11.2023 um 12:53 +0100 schrieb Tristan Cottam:
> * gnu/packages/minetest.scm (minetest-server): New variable.
> 
> Change-Id: I1125888b2944acc4063a19db4c602d33286a7e14
> ---
> 
> This package is a variant of minetest, with modified arguments and
> dropped
> inputs.
> 
> About the inputs, I'm having a hard time understanding why certain of
> them (i.e. pkg-config, coreutils, libxxf86vm, and ncurses) are
> specified for minetest in the first place; the docs make no mention
> of them, and the package builds fine without them.
pkg-config is nice to have for dependency resolution, though I don't
know whether the current version of minetest makes use of it. 
Coreutils were at one point required to patch rm; I hope minetest now
uses system calls for that.  The other two I don't know.

>  gnu/packages/minetest.scm | 36 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/gnu/packages/minetest.scm b/gnu/packages/minetest.scm
> index bf0df314a7..4d658f9e03 100644
> --- a/gnu/packages/minetest.scm
> +++ b/gnu/packages/minetest.scm
> @@ -44,6 +44,7 @@ (define-module (gnu packages minetest)
>    #:use-module (guix packages)
>    #:use-module (guix gexp)
>    #:use-module (guix git-download)
> +  #:use-module (guix utils)
>    #:use-module (guix build-system cmake)
>    #:use-module (guix build-system copy)
>    #:use-module (guix build-system minetest)
> @@ -154,6 +155,41 @@ (define-public minetest
>      (home-page "https://www.minetest.net/")
>      (license license:lgpl2.1+)))
>  
> +(define-public minetest-server
> +  (package
> +    (inherit minetest)
> +    (name "minetest-server")
> +    (arguments
> +     (substitute-keyword-arguments (package-arguments minetest)
> +       ((#:configure-flags configure-flags)
> +        #~(cons* "-DBUILD_CLIENT=FALSE"
> +                 "-DBUILD_SERVER=TRUE"
> +                 #$configure-flags))
> +       ((#:phases phases)
> +        #~(modify-phases #$phases
> +            (replace 'check
> +              (lambda* (#:key tests? #:allow-other-keys)
> +                (when tests?
> +                  (setenv "HOME" "/tmp")
> +                  (invoke "src/minetestserver" "--run-
> unittests"))))))))
> +    (inputs
> +     (modify-inputs (package-inputs minetest)
> +       (delete "libjpeg-turbo"
> +               "libpng"
> +               "libogg"
> +               "libvorbis"
> +               "libxxf86vm"
> +               "mesa"
> +               "openal")))
> +    (synopsis "Infinite-world block sandbox game (server)")
> +    (description
> +     "Minetest is a sandbox construction game.  Players can create
> and destroy
> +various types of blocks in a three-dimensional open world.  This
> allows
> +forming structures in every possible creation, on multiplayer
> servers or as a
> +single player.  Mods and texture packs allow players to personalize
> the game
> +in different ways.  This package provides @command{minetestserver}
> to run a
> +Minetest server.")))
> +
>  (define minetest-data
>    (package
>      (name "minetest-data")
> 
> base-commit: bd0f2173210416e86281c1de8789e7cdab66dd57
LGTM, assuming CI lights green.

Cheers