gzdoom package probably depends on non-free files forbidding commercial distribution

  • Open
  • quality assurance status badge
Details
2 participants
  • Mamao
  • Tobias Geerinckx-Rice
Owner
unassigned
Submitted by
Mamao
Severity
normal
M
(address . bug-guix@gnu.org)
y13i27td.fsf@gnu-plus-liberated-linux
https://zdoom.org/wiki/Licensetalks about files included in GZDoom that
forbid verbatim commercial distribution, violating GNU FSDG, which
demands that even data not serving practical purpose must allow
commercial distribution.

After trying to delete all the files in GZDoom forbidding commercial
distribution, I was unable to get GZDoom working so it seems that these
files are a hard requirement of GZDoom and that GZDoom won't work
without them. I believe these files are found in
/usr(/local)/share/games/doom/ after GZDoom is installed, but I'm not
sure. The package for Guix says:

"-DGUIX_OUT_PK3=\\\"" out "/share/games/doom\\\""

I've even tried to stop the generation of these files during compile
time to see if that would help gzdoom work without them, but that broke
compilation.

Since gzdoom doesn't seem to work without these non-free files, that
arguably makes gzdoom proprietary software because commercial verbatim
distribution is forbidden when these files are in place. If gzdoom is
proprietary software, then the freedoom package is violating the FSDG as
it strongly recommends gzdoom in its documentation, therefore to make
freedoom FSDG-compliant would likely shunning the recommendation for
gzdoom. This issue affects not only Guix System but also other
FSDG-compliant distros, because e.g. PureOS and Trisquel also ship
Freedoom with the recommendation to use gzdoom.

--
All the works that are 100% my own, in my emails and elsewhere, are
libre (free as in freedom) and in public domain, see
T
T
Tobias Geerinckx-Rice wrote on 23 Sep 11:15 +0200
Re: bug#73435: gzdoom package probably depends on non-free files forbidding commercial distribution
5C1D717F-4E95-420A-B253-809EDC56ADEF@tobias.gr
Hi!

Thanks for reporting your findings.

On 23 September 2024 06:38:38 UTC, Mamao--- via Bug reports for GNU Guix <bug-guix@gnu.org> wrote:
Toggle quote (5 lines)
>After trying to delete all the files in GZDoom forbidding commercial
>distribution, I was unable to get GZDoom working so it seems that these
>files are a hard requirement of GZDoom and that GZDoom won't work
>without them.

This directly contradicts the link[0] you referenced. Would you agree?

Let's not jump to the conclusion that GZDoom must be removed. Removal is the last step, not the first.

That of course doesn't mean than you're wrong, only that upstream has a different opinion. Did you ask them about it? What did they say?

For example, I wouldn't *expect* simply omitting the data files to suffice, if there's optional code that also needs to be --disabled. Did you look into that?


Kind regards,

T G-R

Sent on the go. Excuse or enjoy my brevity.

M
Re: bug#73435: gzdoom package probably depends on non-free files forbidding commercial distribution
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)
4j66u3s3.fsf@gnu-plus-liberated-linux
Tobias Geerinckx-Rice <me@tobias.gr> writes:

Toggle quote (8 lines)
>>After trying to delete all the files in GZDoom forbidding commercial
>>distribution, I was unable to get GZDoom working so it seems that these
>>files are a hard requirement of GZDoom and that GZDoom won't work
>>without them.
>
> This directly contradicts the link[0] you referenced. Would you
> agree?

Yes, indeed

Toggle quote (3 lines)
> Let's not jump to the conclusion that GZDoom must be removed. Removal
> is the last step, not the first.

Yeah, sorry.

Toggle quote (3 lines)
> That of course doesn't mean than you're wrong, only that upstream has
> a different opinion. Did you ask them about it? What did they say?

I can't find any way that would be suitable for me to contact them,
sorry

After looking for some time at
it doesn't seem to mention anything about the
non-commercial-distribution-only data

Toggle quote (5 lines)
>
> For example, I wouldn't *expect* simply omitting the data files to
> suffice, if there's optional code that also needs to be --disabled.
> Did you look into that?

I studied the source code and didn't find anything that allowed the
disabling the requirement for non-free data, and didn't find any
--disable options for gzdoom itselff, but I don't know much about cmake
(which is used by gzdoom during building) so perhaps I missed something

--
All the works that are 100% my own, in my emails and elsewhere, are
libre (free as in freedom) and in public domain, see
T
T
Tobias Geerinckx-Rice wrote on 22 Sep 02:00 +0200
[PATCH] gnu: gzdoom: Delete files that prohibit commercial redistribution.
(address . 73435@debbugs.gnu.org)
0bebafb4aea39e0d8abf27a949717ffe291b9d75.1726963200.git.me@tobias.gr

* gnu/packages/games.scm (gzdoom)[source]: Delete files in the snippet.

Change-Id: I601bb251e9b690e375f707786bb5789a6a664b92
---

This still needs refinement. I need to read the source, find out
*why* the wiki page tells us not to redistribute game_support.pk3
commercially. Maybe there's a way around deleting it entirely.
Without it GZDoom finds not a single WAD, free or not.

gnu/packages/games.scm | 12 ++++++++++++
1 file changed, 12 insertions(+)

Toggle diff (29 lines)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8aa828a8a4..c5fc59fd07 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -8068,6 +8068,18 @@ (define-public gzdoom
(modules '((guix build utils)))
(snippet
'(begin
+ ;; Remove files which can't be commercially redistributed according
+ ;; to <https://zdoom.org/wiki/License>.
+ (for-each
+ (lambda (directory)
+ (delete-file-recursively directory)
+ (substitute* "CMakeLists.txt"
+ (((string-append "add_subdirectory\\([[:blank:]]*"
+ directory
+ "[[:blank:]]*\\)"))
+ "")))
+ (list "wadsrc_bm" ;brightmaps.pk3
+ #;"wadsrc_extra")) ;game_support.pk3 XXX breaks Freedoom
;; Remove some bundled libraries. XXX There are more, but removing
;; them would require, at least, patching the build system.
(with-directory-excursion "libraries"

base-commit: 2da3c37e7d732f6d2744f70be9fd98858a433b5e
prerequisite-patch-id: 3aa23428693688751bb14a2fbe464f5693ae13d7
prerequisite-patch-id: 3f0ca744a21be95e47c8c9105dfe1e7fd0dc59c7
--
2.46.0
T
T
Tobias Geerinckx-Rice wrote on 23 Sep 19:05 +0200
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)
da2c30211233906b7448e12bde29e83a@tobias.gr
On 2024-09-22 2:00, Tobias Geerinckx-Rice via Bug reports for GNU Guix
wrote:
Toggle quote (2 lines)
> Without it GZDoom finds not a single WAD, free or not.

Oh. No mystery here if wadsrc_extra/static/iwadinfo.txt does what it
looks like (explicitly list all supported WADs and how to identify
them). That can't be copyrightable, at least, so that's good news.

Let's see if we can include the list without including any problematic
files.

Kind regards,

T G-R

Sent from a Web browser. Excuse or enjoy my brevity.
T
T
Tobias Geerinckx-Rice wrote on 22 Sep 02:00 +0200
[PATCH v2] gnu: gzdoom: Delete files that might prevent commercial distribution.
(address . 73435@debbugs.gnu.org)
82144a28256c392b568b57644c331a4ad7d7dd50.1726963201.git.me@tobias.gr
* gnu/packages/games.scm (gzdoom)[source]: Delete files in the snippet.

Change-Id: I601bb251e9b690e375f707786bb5789a6a664b92
---
gnu/packages/games.scm | 38 +++++++++++++++++++++++++++++++++++++-
gnu/packages/vim.scm | 4 ++--
2 files changed, 39 insertions(+), 3 deletions(-)

Toggle diff (79 lines)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8aa828a8a4..0c695f5dca 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -8065,9 +8065,45 @@ (define-public gzdoom
(base32 "0i4hyg72z84fc6ca2ic9q82q5cbgrbd7bynl3kpkypxvyasq08wz"))
(patches (search-patches "gzdoom-search-in-installed-share.patch"
"gzdoom-find-system-libgme.patch"))
- (modules '((guix build utils)))
+ (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"
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 786a85ab58..136ed5f0c9 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -86,7 +86,7 @@ (define-module (gnu packages vim)
(define-public vim
(package
(name "vim")
- (version "9.1.0146")
+ (version "9.1.0737")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -95,7 +95,7 @@ (define-public vim
(file-name (git-file-name name version))
(sha256
(base32
- "05lz8ai39p9ypk22n7qc7g21868m08pl12sn4028jshx5nxwy2zn"))))
+ "1777vbr43prh9pqhz1lr5b1nym61iyy66yzxbhwichd3spnlrblk"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"

base-commit: 2da3c37e7d732f6d2744f70be9fd98858a433b5e
prerequisite-patch-id: 3aa23428693688751bb14a2fbe464f5693ae13d7
prerequisite-patch-id: 3f0ca744a21be95e47c8c9105dfe1e7fd0dc59c7
--
2.46.0
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 73435@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 73435
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch