~ruther/guix-local

3d7c920eaddad9bd6c8650ba4e2eb107eeaa9e43 — Andreas Enge 5 months ago 344bf87
gnu: Remove gzdoom.

* gnu/packages/games.scm (gzdoom): Delete variable.

Fixes: guix/guix#1765
Change-Id: I8eb482f5ff4c8edeaff812095ad5c5188023a2ca
1 files changed, 0 insertions(+), 130 deletions(-)

M gnu/packages/games.scm
M gnu/packages/games.scm => gnu/packages/games.scm +0 -130
@@ 9252,136 9252,6 @@ You can save humanity and get programming skills!")
    (home-page "https://colobot.info")
    (license license:gpl3+)))

(define-public gzdoom
  (package
    (name "gzdoom")
    (version "4.3.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/coelckers/gzdoom")
             (commit (string-append "g" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "0i4hyg72z84fc6ca2ic9q82q5cbgrbd7bynl3kpkypxvyasq08wz"))
       (patches (search-patches "gzdoom-search-in-installed-share.patch"
                                "gzdoom-find-system-libgme.patch"))
       (modules '((guix build utils)
                  (ice-9 regex)))
       (snippet
        '(begin
           ;; Remove files which mustn't be commercially redistributed.  See
           ;; <https://zdoom.org/wiki/License#Commercial_use>, the ‘Contribution
           ;; Guidelines’ at <https://github.com/ZDoom>, and Guix issue #73435.
           (for-each
            (lambda (directory)
              (delete-file-recursively directory)
              (substitute* "CMakeLists.txt"
                (((string-append "add_subdirectory\\([[:blank:]]*"
                                 directory
                                 "[[:blank:]]*\\)"))
                 "")))
            '( ;; "wadsrc_extra"        ;game_support.pk3
              "wadsrc_bm"))             ;brightmaps.pk3

           ;; Removing game_support.pk3 entirely would break Freedoom & remove
           ;; users' ability to play commercial games, despite owning (only) the
           ;; non-functional data.  That can't be right.  Out of an abundance of
           ;; caution, remove anything from the PK3 that could conceivably be
           ;; derived from copyrightable data that's not freely redistributable.
           (display "Keeping only the following game_support.pk3 files:\n")
           (let* ((regexps (list "/font\\.inf$"
                                 "/harmony/.*\\.(txt|zs)$"
                                 "/(iwadinfo|mapinfo|sprofs)\\.txt$"
                                 "\\.z$"))
                  (regexp* (format #f "(~{~a~^|~})" regexps))
                  (regexp  (make-regexp regexp* regexp/icase)))
             (define (keep-file? file stat)
               (let ((keep? (regexp-exec regexp file)))
                 (when keep?
                   (format #t "  ~a~%" file))
                 keep?))

             (for-each delete-file (find-files "wadsrc_extra/static"
                                               (negate keep-file?))))

           ;; Remove some bundled libraries.  XXX There are more, but removing
           ;; them would require, at least, patching the build system.
           (with-directory-excursion "libraries"
             (delete-file-recursively "bzip2")
             (delete-file-recursively "game-music-emu")
             (delete-file-recursively "jpeg")
             (delete-file-recursively "zlib"))))))
    (arguments
     (list
      #:tests? #f
      #:configure-flags
      #~(list
         (string-append
          "-DCMAKE_CXX_FLAGS:="
          "-DSHARE_DIR=\\\"" #$output "/share/\\\" "
          "-DGUIX_OUT_PK3=\\\"" #$output "/share/games/doom\\\"")

         ;; The build requires some extra convincing not to use the bundled
         ;; libgme previously deleted in the soure snippet.
         "-DFORCE_INTERNAL_GME=OFF"

         ;; Link libraries at build time instead of loading them at run time.
         "-DDYN_OPENAL=OFF"
         "-DDYN_FLUIDSYNTH=OFF"
         "-DDYN_GTK=OFF"
         "-DDYN_MPG123=OFF"
         "-DDYN_SNDFILE=OFF")
      #:phases
      #~(modify-phases %standard-phases
          (add-before 'configure 'fix-file-names
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/CMakeLists.txt"
                (("COMMAND /bin/sh")
                 (string-append "COMMAND " (which "sh"))))
              (substitute*
                  "libraries/zmusic/mididevices/music_fluidsynth_mididevice.cpp"
                (("/usr/share/sounds/sf2/FluidR3_GM.sf2")
                 (search-input-file inputs
                                    "share/soundfonts/FluidR3Mono_GM.sf3")))
              (substitute*
                  "libraries/zmusic/mididevices/music_timiditypp_mididevice.cpp"
                (("(exename = \")(timidity)(\".*)" _ prefix exe suffix)
                 (string-append prefix
                                (search-input-file inputs
                                                   (string-append "bin/" exe))
                                suffix))))))))
    (build-system cmake-build-system)
    (inputs (list bzip2
                  fluid-3
                  fluidsynth
                  gtk+
                  libgme
                  libjpeg-turbo
                  libsndfile
                  mesa
                  mpg123
                  openal
                  sdl2
                  timidity++
                  zlib))
    (native-inputs (list pkg-config unzip))
    (synopsis "Modern Doom 2 source port")
    (description "GZdoom is a port of the Doom 2 game engine, with a modern
renderer.  It improves modding support with ZDoom's advanced mapping features
and the new ZScript language.  In addition to Doom, it supports Heretic, Hexen,
Strife, Chex Quest, and fan-created games like Harmony, Hacx and Freedoom.")
    (home-page "https://zdoom.org/index")
    ;; The source uses x86 assembly
    (supported-systems '("x86_64-linux" "i686-linux"))
    (license (list license:gpl3+         ; gzdoom game
                   license:lgpl3+        ; gzdoom renderer
                   license:expat         ; gdtoa
                   (license:non-copyleft ; modified dumb
                    "file://dumb/licence.txt"
                    "Dumb license, explicitly GPL compatible.")))))

(define-public odamex
  (package
    (name "odamex")