GNU bug report logs - #75641
[PATCH] gnu: Add woof-doom.

Previous Next

Package: guix-patches;

Reported by: Andrew Wong <wongandj <at> icloud.com>

Date: Sat, 18 Jan 2025 05:49:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 75641 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#75641; Package guix-patches. (Sat, 18 Jan 2025 05:49:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andrew Wong <wongandj <at> icloud.com>:
New bug report received and forwarded. Copy sent to adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org. (Sat, 18 Jan 2025 05:49:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: guix-patches <at> gnu.org
Cc: Andrew Wong <wongandj <at> icloud.com>
Subject: [PATCH] gnu: Add woof-doom.
Date: Sat, 18 Jan 2025 00:46:03 -0500
* gnu/packages/games.scm (woof-doom): New variable.

Change-Id: I77cfa0fd2f2a20d6eee5d0339b9673899bb0ecad
---
This patch adds the Woof! source port for Doom.
 gnu/packages/games.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3d71a7cf8b..0b63371bb8 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -8708,6 +8708,42 @@ (define-public crispy-doom
 original.")
     (home-page "https://www.chocolate-doom.org/wiki/index.php/Crispy_Doom")))
 
+(define-public woof-doom
+  (package
+    (name "woof-doom")
+    (version "15.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fabiangreffrath/woof")
+             (commit (string-append "woof_" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1y21g1h6vlsqyimjh8acfj8r2zyib26m9b7vf66hp4ma4zxh6mxd"))))
+    (build-system cmake-build-system)
+    (arguments (list #:tests? #f))
+    (native-inputs (list python))
+    (inputs (list sdl2
+                  sdl2-net
+                  openal
+                  libsndfile
+                  libebur128
+                  yyjson
+                  fluidsynth
+                  libxmp))
+    (home-page "https://github.com/fabiangreffrath/woof")
+    (synopsis "MBF-style Doom source port targeted at modern systems")
+    (description
+     "Woof! is a continuation of the ``MBF'' lineage of Doom source ports, with modern
+features such as dynamic resolution scaling, uncapped framerates,
+adjustable field of view, 3D audio with HRTF and 7.1 surround sound
+support, and modern gamepad features including rumble, gyro, and flick
+stick support. Supports the new MBF21 format, as well as the MUSINFO,
+UMAPINFO, DEHEXTRA, and DSDHacked specifictions.")
+    (license license:gpl2+)))
+
+
 (define xonotic-data
   (package
     (name "xonotic-data")

base-commit: 87045f0982bd7aebb07b380cbf322651227546f4
-- 
2.47.1





Information forwarded to guix-patches <at> gnu.org:
bug#75641; Package guix-patches. (Wed, 29 Jan 2025 04:08:02 GMT) Full text and rfc822 format available.

Message #8 received at 75641 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: 75641 <at> debbugs.gnu.org
Subject: [PATCH] gnu: Add woof-doom.(bump)
Date: Tue, 28 Jan 2025 23:07:01 -0500
Bumping this, has it been seen?





Information forwarded to guix-patches <at> gnu.org:
bug#75641; Package guix-patches. (Sat, 01 Feb 2025 17:55:01 GMT) Full text and rfc822 format available.

Message #11 received at 75641 <at> debbugs.gnu.org (full text, mbox):

From: Ian Eure <ian <at> retrospec.tv>
To: Andrew Wong <wongandj <at> icloud.com>, 75641 <at> debbugs.gnu.org
Subject: Re: [bug#75641] [PATCH] gnu: Add woof-doom.(bump)
Date: Sat, 01 Feb 2025 09:54:25 -0800
Hi Andrew,

Andrew Wong <wongandj <at> icloud.com> writes:

> Bumping this, has it been seen?

Patch review in Guix is very slow.

I took a look at it today.  Please run it through `guix lint' and 
fix the issues that reports.  Also, it looks like 15.2.0 is out, 
so you may as well update it to that as well.

Thank you for the patch.

 -- Ian




Information forwarded to adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#75641; Package guix-patches. (Sat, 01 Feb 2025 23:23:02 GMT) Full text and rfc822 format available.

Message #14 received at 75641 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: 75641 <at> debbugs.gnu.org
Cc: Andrew Wong <wongandj <at> icloud.com>
Subject: [PATCH v2] gnu: Add woof-doom.
Date: Sat,  1 Feb 2025 18:21:49 -0500
* gnu/packages/games.scm (woof-doom): New variable.

Change-Id: I77cfa0fd2f2a20d6eee5d0339b9673899bb0ecad
---
Now linted and updated.
 gnu/packages/games.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index af819ba2f5..9f3e3cddcd 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -8718,6 +8718,43 @@ (define-public crispy-doom
 original.")
     (home-page "https://www.chocolate-doom.org/wiki/index.php/Crispy_Doom")))
 
+(define-public woof-doom
+  (package
+    (name "woof-doom")
+    (version "15.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fabiangreffrath/woof")
+             (commit (string-append "woof_" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "04c7hm4jnr9aiz6w4520zww6b7j86qv9xaf87hdv48cjc9sp2ljk"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:tests? #f))
+    (native-inputs (list python))
+    (inputs (list sdl2
+                  sdl2-net
+                  openal
+                  libsndfile
+                  libebur128
+                  yyjson
+                  fluidsynth
+                  libxmp))
+    (home-page "https://github.com/fabiangreffrath/woof")
+    (synopsis "MBF-style Doom source port targeted at modern systems")
+    (description
+     "Woof! is a continuation of the MBF lineage of Doom source ports, with
+modern features such as dynamic resolution scaling, uncapped framerates,
+adjustable field of view, 3D audio with HRTF and 7.1 surround sound
+support, and modern gamepad features including rumble, gyro, and flick
+stick support.  Supports the new MBF21 format, as well as the MUSINFO,
+UMAPINFO, DEHEXTRA, and DSDHacked specifictions.")
+    (license license:gpl2+)))
+
 (define xonotic-data
   (package
     (name "xonotic-data")

base-commit: f2b3c36bee8c232b026a66de93db38e13fbd7076
-- 
2.48.1





Information forwarded to guix-patches <at> gnu.org:
bug#75641; Package guix-patches. (Sun, 02 Feb 2025 05:27:01 GMT) Full text and rfc822 format available.

Message #17 received at 75641 <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> envs.net>
To: Andrew Wong <wongandj <at> icloud.com>
Cc: 75641 <at> debbugs.gnu.org, Liliana Marie Prikler <liliana.prikler <at> gmail.com>,
 Adam Faiz <adam.faiz <at> disroot.org>
Subject: Re: [bug#75641] [PATCH v2] gnu: Add woof-doom.
Date: Sun, 02 Feb 2025 13:30:28 +0800
Andrew Wong <wongandj <at> icloud.com> writes:

> +(define-public woof-doom
> +  (package
> +    (name "woof-doom")
> +    (version "15.2.0")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/fabiangreffrath/woof")
> +             (commit (string-append "woof_" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "04c7hm4jnr9aiz6w4520zww6b7j86qv9xaf87hdv48cjc9sp2ljk"))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     (list
> +      #:tests? #f))

I see it has a 'demotest' directory, does it suit for our builder?
If not, could add a comment, eg: "no tests".

> +    (native-inputs (list python))
> +    (inputs (list sdl2
> +                  sdl2-net
> +                  openal
> +                  libsndfile
> +                  libebur128
> +                  yyjson
> +                  fluidsynth
> +                  libxmp))

In addition to yyjson, it have spng, minz bundled, would be good to
unboudle them. Eg: modify its CMakeLists.txt so that it only use bundled
sources when unable to find a system one, like what yyjson currently
does.  Then we can delete them in third-party via a 'snippet' in source.

Would you like to give a try?  Otherwise looks good to me, thank you!




Information forwarded to adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, iyzsong <at> envs.net, guix-patches <at> gnu.org:
bug#75641; Package guix-patches. (Wed, 05 Feb 2025 02:19:02 GMT) Full text and rfc822 format available.

Message #20 received at 75641 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: 75641 <at> debbugs.gnu.org
Cc: Andrew Wong <wongandj <at> icloud.com>
Subject: [PATCH v3] gnu: Add woof-doom.
Date: Tue,  4 Feb 2025 21:17:25 -0500
* gnu/packages/games.scm (woof-doom): New variable.
* gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch: New file.

Change-Id: I77cfa0fd2f2a20d6eee5d0339b9673899bb0ecad
---
Here we are, unbundled and test note added! Yeah, there's no test target.
 gnu/packages/games.scm                        | 48 +++++++++++++++++++
 .../woof-doom-unbundle-spng-miniz.patch       | 26 ++++++++++
 2 files changed, 74 insertions(+)
 create mode 100644 gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 2e7565ff5d..89b4291d90 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -8783,6 +8783,54 @@ (define-public crispy-doom
 original.")
     (home-page "https://www.chocolate-doom.org/wiki/index.php/Crispy_Doom")))
 
+(define-public woof-doom
+  (package
+    (name "woof-doom")
+    (version "15.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fabiangreffrath/woof")
+             (commit (string-append "woof_" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "04c7hm4jnr9aiz6w4520zww6b7j86qv9xaf87hdv48cjc9sp2ljk"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (with-directory-excursion "third-party"
+                     (delete-file-recursively "spng")
+                     (delete-file-recursively "miniz"))
+                   (substitute* (find-files "src" ".")
+                     (("miniz.h")
+                      "miniz/miniz.h")) #t))
+       (patches (search-patches "woof-doom-unbundle-spng-miniz.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:tests? #f)) ;no test target
+    (native-inputs (list python))
+    (inputs (list sdl2
+                  sdl2-net
+                  spng
+                  miniz
+                  openal
+                  libsndfile
+                  libebur128
+                  yyjson
+                  fluidsynth
+                  libxmp))
+    (home-page "https://github.com/fabiangreffrath/woof")
+    (synopsis "MBF-style Doom source port targeted at modern systems")
+    (description
+     "Woof! is a continuation of the MBF lineage of Doom source ports, with
+modern features such as dynamic resolution scaling, uncapped framerates,
+adjustable field of view, 3D audio with HRTF and 7.1 surround sound
+support, and modern gamepad features including rumble, gyro, and flick
+stick support.  Supports the new MBF21 format, as well as the MUSINFO,
+UMAPINFO, DEHEXTRA, and DSDHacked specifictions.")
+    (license license:gpl2+)))
+
 (define xonotic-data
   (package
     (name "xonotic-data")
diff --git a/gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch b/gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch
new file mode 100644
index 0000000000..43c3b39193
--- /dev/null
+++ b/gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch
@@ -0,0 +1,26 @@
+Unbundle spng, miniz
+*** a/third-party/CMakeLists.txt
+--- b/third-party/CMakeLists.txt
+@@ -4,20 +4,13 @@
+ target_woof_settings(md5)
+ target_include_directories(md5 INTERFACE md5)
+ 
+-add_library(miniz STATIC miniz/miniz.c)
+-target_woof_settings(miniz)
+-target_compile_definitions(miniz PRIVATE MINIZ_NO_TIME)
+-target_include_directories(miniz INTERFACE miniz)
++find_package(miniz)
+ 
+ add_library(pffft STATIC pffft/pffft.c)
+ target_woof_settings(pffft)
+ target_include_directories(pffft INTERFACE pffft)
+ 
+-add_library(spng STATIC spng/spng.c)
+-target_woof_settings(spng)
+-target_compile_definitions(spng PRIVATE SPNG_USE_MINIZ INTERFACE SPNG_STATIC)
+-target_include_directories(spng INTERFACE spng)
+-target_link_libraries(spng miniz)
++find_package(spng)
+ 
+ if(NOT yyjson_FOUND)
+     add_library(yyjson STATIC yyjson/yyjson.c)

base-commit: 5a897c5c95a81278b044c18d962d3bd83131ba06
-- 
2.48.1





Information forwarded to wongandj <at> icloud.com, ian <at> retrospec.tv, iyzsong <at> envs.net, adam.faiz <at> disroot.org, liliana.prikler <at> gmail.com, guix-patches <at> gnu.org:
bug#75641; Package guix-patches. (Sat, 22 Feb 2025 06:09:02 GMT) Full text and rfc822 format available.

Message #23 received at 75641 <at> debbugs.gnu.org (full text, mbox):

From: Andrew Wong <wongandj <at> icloud.com>
To: 75641 <at> debbugs.gnu.org
Cc: Andrew Wong <wongandj <at> icloud.com>
Subject: [PATCH v4] gnu: Add woof-doom.
Date: Sat, 22 Feb 2025 01:08:27 -0500
* gnu/packages/games.scm (woof-doom): New variable.
* gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch: New file.

Change-Id: I77cfa0fd2f2a20d6eee5d0339b9673899bb0ecad
---
 gnu/packages/games.scm                        | 64 +++++++++++++++++++
 .../woof-doom-unbundle-spng-miniz.patch       | 26 ++++++++
 2 files changed, 90 insertions(+)
 create mode 100644 gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 30aaf0767a..da3f7a05e4 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -87,6 +87,7 @@
 ;;; Copyright © 2024 Jan Wielkiewicz <tona_kosmicznego_smiecia <at> interia.pl>
 ;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10 <at> gmail.com>
 ;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus <at> gmail.com>
+;;; Copyright © 2025 Andrew Wong <wongandj <at> icloud.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -8784,6 +8785,69 @@ (define-public crispy-doom
 original.")
     (home-page "https://www.chocolate-doom.org/wiki/index.php/Crispy_Doom")))
 
+(define-public woof-doom
+  (package
+    (name "woof-doom")
+    (version "15.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fabiangreffrath/woof")
+             (commit (string-append "woof_" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "04c7hm4jnr9aiz6w4520zww6b7j86qv9xaf87hdv48cjc9sp2ljk"))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   (with-directory-excursion "third-party"
+                     (delete-file-recursively "miniz")
+                     (delete-file-recursively "yyjson")
+                     (delete-file-recursively "spng"))
+                   (delete-file-recursively "win32")
+                   (substitute* (find-files "src" ".")
+                     (("miniz.h")
+                      "miniz/miniz.h")) #t))
+       (patches (search-patches "woof-doom-unbundle-spng-miniz.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:tests? #f)) ;'demotest' requires internet access.
+    (native-inputs (list python))
+    (inputs (list libebur128
+                  libsndfile
+                  libxmp
+                  miniz
+                  openal
+                  sdl2
+                  sdl2-net
+                  spng
+                  yyjson
+                  fluidsynth))
+    (home-page "https://github.com/fabiangreffrath/woof")
+    (synopsis "MBF-style Doom source port targeted at modern systems")
+    (description
+     "Woof! is a continuation of the MBF lineage of Doom source ports, with
+modern features such as dynamic resolution scaling, uncapped framerates,
+adjustable field of view, 3D audio with HRTF and 7.1 surround sound
+support, and modern gamepad features including rumble, gyro, and flick
+stick support.  Supports the new MBF21 format, as well as the MUSINFO,
+UMAPINFO, DEHEXTRA, and DSDHacked specifictions.")
+    (license
+     ;; See README.md
+     (list (license:non-copyleft
+            "https://bitbucket.org/jpommier/pffft/src/master/pffft.h"
+            "FFTPACK license")
+           license:bsd-2
+           license:bsd-3
+           license:cc-by3.0
+           license:cc0
+           license:expat
+           license:gpl2
+           license:gpl3+
+           license:public-domain
+           license:gpl2+))))
+
 (define xonotic-data
   (package
     (name "xonotic-data")
diff --git a/gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch b/gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch
new file mode 100644
index 0000000000..43c3b39193
--- /dev/null
+++ b/gnu/packages/patches/woof-doom-unbundle-spng-miniz.patch
@@ -0,0 +1,26 @@
+Unbundle spng, miniz
+*** a/third-party/CMakeLists.txt
+--- b/third-party/CMakeLists.txt
+@@ -4,20 +4,13 @@
+ target_woof_settings(md5)
+ target_include_directories(md5 INTERFACE md5)
+ 
+-add_library(miniz STATIC miniz/miniz.c)
+-target_woof_settings(miniz)
+-target_compile_definitions(miniz PRIVATE MINIZ_NO_TIME)
+-target_include_directories(miniz INTERFACE miniz)
++find_package(miniz)
+ 
+ add_library(pffft STATIC pffft/pffft.c)
+ target_woof_settings(pffft)
+ target_include_directories(pffft INTERFACE pffft)
+ 
+-add_library(spng STATIC spng/spng.c)
+-target_woof_settings(spng)
+-target_compile_definitions(spng PRIVATE SPNG_USE_MINIZ INTERFACE SPNG_STATIC)
+-target_include_directories(spng INTERFACE spng)
+-target_link_libraries(spng miniz)
++find_package(spng)
+ 
+ if(NOT yyjson_FOUND)
+     add_library(yyjson STATIC yyjson/yyjson.c)

base-commit: cd20619cfcb32c2631fb602729512740bc510550
-- 
2.48.1





This bug report was last modified 10 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.