Subject: [bug#63435] Add vcmi 1.2.1 to games.scm

From: Vagrant Cascadian <[email-masked]>
Date: Thu, 11 May 2023 16:07:36 -0700

On 2023-05-11, Vagrant Cascadian wrote:
> On 2023-05-11, Liliana Marie Prikler wrote:
>> Am Mittwoch, dem 10.05.2023 um 22:43 -0700 schrieb Vagrant Cascadian:
>>> We probably want to try to apply Debian's "privacy-breach" patch to
>>> disable phoning home, as well as the reproducible builds patch and
>>> some additional reproducibility patches I am working on, but figured
>>> I would submit the package to guix for review now, in case anyone
>>> else wants to join me down this rabbit hole...
>> Well, it won't be added to Guix without such patches, so someone needs
>> to go down this rabbit hole.

Applied the privacy-breach patch, the maxu32/minizip patch was no longer
relevent, and the reproducible builds patches only affect documentation,
which is not currently provided in this package (there are no upstream
rules to build vcmimanual.tex into any documentation).

>>> +     "@code{vcmi} is an implementation of Heroes of Might and
>>> +Magic III (aka HOMM3) game engine.  It requires assets and game
>>> resources to
>>> +play; it will look for them at @file{~/.local/share/vcmi} folder.")
>> Use an @acronym or just spell it out.
>
> Presuming you mean "(aka HOMM3)" ... honestly, maybe best to just drop
> it entirely; I am not sure it adds much.

Dropped it.

V2 patch attached.

Thanks for reviewing!

live well,
  vagrant
From b46fad945222a64b8d73b35e2c0d57a017987235 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <[email-masked]>
Date: Sun, 7 May 2023 17:43:33 -0700
Subject: [PATCH] gnu: Add vcmi 1.2.1.

* gnu/packages/games.scm (vcmi): New variable.
* gnu/packages/patches/vcmi-disable-privacy-breach.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add patches.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/games.scm                        | 47 +++++++++++++++++++
 .../patches/vcmi-disable-privacy-breach.patch | 21 +++++++++
 3 files changed, 69 insertions(+)
 create mode 100644 gnu/packages/patches/vcmi-disable-privacy-breach.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 73db48f720..d5034300ef 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2028,6 +2028,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/vboot-utils-fix-format-load-address.patch	\
   %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch	\
   %D%/packages/patches/vboot-utils-skip-test-workbuf.patch	\
+  %D%/packages/patches/vcmi-disable-privacy-breach.patch	\
   %D%/packages/patches/vinagre-newer-freerdp.patch             \
   %D%/packages/patches/vinagre-newer-rdp-parameters.patch      \
   %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch	\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index bae79ee48b..ace32959b6 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -201,6 +201,7 @@ (define-module (gnu packages games)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages squirrel)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages tbb)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages texinfo)
@@ -11187,6 +11188,52 @@ (define-public fheroes2
 play; it will look for them at @file{~/.local/share/fheroes2} folder.")
     (license license:gpl2)))
 
+(define-public vcmi
+  (package
+    (name "vcmi")
+    (version "1.2.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vcmi/vcmi")
+                    (commit version)
+                    (recursive? #t)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1nx3i078cxkak2ci514pf4pgi5269mp08njynsg35pin4yp3fn0p"))
+              (patches (search-patches "vcmi-disable-privacy-breach.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     ;; Test suites do not seem well supported upstream and are disabled by default.
+     ;; Pass -DENABLE_TEST to configure to enable.
+     `(#:tests? #f))
+    (native-inputs (list boost
+                         ffmpeg
+                         ;; googletest ; needed for tests, but tests are disabled
+                         libxkbcommon
+                         luajit
+                         minizip
+                         pkg-config
+                         python
+                         ;; qtbase and qttools @6 not currently buildable but may work ok
+                         qtbase-5
+                         qttools-5
+                         sdl2
+                         sdl2-mixer
+                         sdl2-image
+                         sdl2-ttf
+                         tbb
+                         vulkan-headers
+                         zlib))
+    (home-page "https://vcmi.eu/")
+    (synopsis "Turn-based strategy game engine")
+    (description
+     "@code{vcmi} is an implementation of Heroes of Might and
+Magic III game engine.  It requires assets and game resources to
+play; it will look for them at @file{~/.local/share/vcmi} folder.")
+    (license license:gpl2)))
+
 (define-public apricots
   (package
     (name "apricots")
diff --git a/gnu/packages/patches/vcmi-disable-privacy-breach.patch b/gnu/packages/patches/vcmi-disable-privacy-breach.patch
new file mode 100644
index 0000000000..c03bc66119
--- /dev/null
+++ b/gnu/packages/patches/vcmi-disable-privacy-breach.patch
@@ -0,0 +1,21 @@
+Origin: https://salsa.debian.org/games-team/vcmi/-/blob/debian/1.1.0+dfsg-1/debian/patches/disable-privacy-breach
+From: Johannes Schauer <[email-masked]>
+Subject: do not check remote repositories on startup by default
+Forwarded: not-needed
+
+--- a/config/schemas/settings.json
++++ b/config/schemas/settings.json
+@@ -401,11 +401,11 @@
+ 				},
+ 				"autoCheckRepositories" : {
+ 					"type" : "boolean",
+-					"default" : true
++					"default" : false
+ 				},
+ 				"updateOnStartup" : {
+ 					"type" : "boolean",
+-					"default" : true
++					"default" : false
+ 				},
+ 				"updateConfigUrl" : {
+ 					"type" : "string",

base-commit: d07342b16612cfdffad6a7b3504b74e0d95d551f
-- 
2.39.2