Subject: [bug#73287] [PATCH 2/3] gnu: Add ericw-tools.

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 20 Sep 2024 10:04:20 +0200

Am Sonntag, dem 15.09.2024 um 19:16 -0700 schrieb James Smith:
> * gnu/packages/game-development.scm: (ericw-tools): New variable.
> * gnu/packages/patches/ericw-tools-add-check-for-sse2-in-
> light.cc.patch: New file.
> * gnu/packages/patches/ericw-tools-gcc-11-pass-const-to-
> offsetof.patch: New file.
> * gnu/local.mk: Register patch files.
> 
> Change-Id: I896b8f781054442e4db4a7220d526b8f2878873c
> ---
>  gnu/local.mk                                  |  3 +
>  gnu/packages/game-development.scm             | 75 ++++++++++++++++
>  ...tools-add-check-for-sse2-in-light.cc.patch | 31 +++++++
>  ...-tools-gcc-11-pass-const-to-offsetof.patch | 87
> +++++++++++++++++++
>  4 files changed, 196 insertions(+)
>  create mode 100644 gnu/packages/patches/ericw-tools-add-check-for-
> sse2-in-light.cc.patch
>  create mode 100644 gnu/packages/patches/ericw-tools-gcc-11-pass-
> const-to-offsetof.patch
> 
> diff --git a/gnu/local.mk b/gnu/local.mk
> index fcdf174099..bb7ec9960c 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -67,6 +67,7 @@
>  # Copyright © 2024 David Elsing <[email-masked]>
>  # Copyright © 2024 Ashish SHUKLA <[email-masked]>
>  # Copyright © 2024 Fabio Natali <[email-masked]>
> +# Copyright © 2024 James Smith <[email-masked]>
>  #
>  # This file is part of GNU Guix.
>  #
> @@ -1200,6 +1201,8 @@ dist_patch_DATA
> =                                         \
>    %D%/packages/patches/epiphany-fix-encoding-test.patch        \
>    %D%/packages/patches/ergodox-firmware-fix-json-target.patch  \
>    %D%/packages/patches/ergodox-firmware-fix-numpad.patch       \
> +  %D%/packages/patches/ericw-tools-add-check-for-sse2-in-
> light.cc.patch        \
> +  %D%/packages/patches/ericw-tools-gcc-11-pass-const-to-
> offsetof.patch \
>    %D%/packages/patches/erlang-man-path.patch                   \
>    %D%/packages/patches/esmini-use-pkgconfig.patch              \
>    %D%/packages/patches/esmtp-add-lesmtp.patch          \
> diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-
> development.scm
> index efbbabaaf5..d61b4d633a 100644
> --- a/gnu/packages/game-development.scm
> +++ b/gnu/packages/game-development.scm
> @@ -2394,6 +2394,81 @@ (define-public entt
>      (license (list license:expat        ; code
>                     license:cc-by4.0)))) ; documentation
>  
> +(define-public ericw-tools
> +  (package
> +    (name "ericw-tools")
> +    (version "0.18.1")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference (url
> "https://github.com/ericwa/ericw-tools")
> +                           (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32
> "11sap7qv0rlhw8q25azvhgjcwiql3zam09q0gim3i04cg6fkh0vp"))
> +       (patches
> +        (search-patches "ericw-tools-add-check-for-sse2-in-
> light.cc.patch"
> +                        "ericw-tools-gcc-11-pass-const-to-
> offsetof.patch"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list #:configure-flags #~(list "-DENABLE_LIGHTPREVIEW=OFF")
> +           #:phases
> +           #~(modify-phases %standard-phases
> +               (add-after 'unpack 'disable-copying-embree-files
> +                 (lambda _
> +                   ;; Tries to copy files from embree, disable it.
> +                   (substitute* "light/CMakeLists.txt"
> +                     (("install\\\(FILES \\$\\{EMBREE")
> +                      "#install(FILES ${EMBREE"))))
> +               (add-after 'install 'rename-binaries
> +                 (lambda _
> +                   ;; Rename binaries to prevent collisions with
> other
> +                   ;; packages.
> +                   (rename-file (string-append #$output
> "/bin/bspinfo")
> +                                (string-append #$output
> "/bin/qbspinfo"))
> +                   (rename-file (string-append #$output
> "/bin/bsputil")
> +                                (string-append #$output
> "/bin/qbsputil"))
> +                   (rename-file (string-append #$output
> "/bin/light")
> +                                (string-append #$output
> "/bin/qlight"))
> +                   (rename-file (string-append #$output "/bin/vis")
> +                                (string-append #$output
> "/bin/qvis"))))
> +               (add-after 'install-license-files 'clean-up-bin-
> directory
> +                 (lambda _
> +                   ;; Install target copies text documents to
> #$output/bin, move
> +                   ;; them to #$output/share/doc.
> +                   (delete-file (string-append #$output
> "/bin/gpl_v3.txt"))
> +                   (rename-file
> +                    (string-append #$output "/bin/changelog.txt")
> +                    (string-append #$output "/share/doc/"
> +                                   #$(package-name this-package) "-"
> +                                   #$(package-version this-package)
> +                                   "/changelog.txt"))
> +                   (rename-file
> +                    (string-append #$output "/bin/README.md")
> +                    (string-append #$output "/share/doc/"
> +                                   #$(package-name this-package) "-"
> +                                   #$(package-version this-package)
> +                                   "/README.md")))))
> +           #:tests? #f)) ; No tests
> +    (inputs (list embree-2))
> +    (home-page "https://ericwa.github.io/ericw-tools/")
> +    (synopsis "Quake/Hexen 2 map compiling tools")
I'd swap that around: Map compiling tools for Quake/Hexen 2
> +    (description "Collection of command line utilities for building
> Quake levels
> +and working with various Quake file formats.  A brief description of
> the tools
> +are listed below.
> +
> +Included utilities:
> +
> +@itemize @bullet
> +@item qbsp - Used for turning a .map file into a playable .bsp file.
> +@item qlight - Used for lighting a level after the bsp stage.  This
> util was
> +previously known as TyrLite.
> +@item qvis - Creates the potentially visible set (PVS) for a bsp.
> +@item qbspinfo - Print stats about the data contained in a bsp file.
> +@item qbsputil - Simple tool for manipulation of bsp file data.
> +@end itemize")
> +    (license license:gpl2+)))
Descriptions should consist of complete sentences.  I think the
included utilities are better summarized than explained bullet point by
bullet point, but that's just my own bias.

Cheers