diff mbox series

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

Message ID 87a5yb4e41.fsf@wireframe
State New
Headers show
Series [bug#63435] Add vcmi 1.2.1 to games.scm | expand

Commit Message

Vagrant Cascadian May 11, 2023, 5:43 a.m. UTC
X-Debbugs-Cc: liliana.prikler@gmail.com, iyzsong@envs.net

The attached patch adds "vcmi", which is in many ways very similar to
the "fheroes2" package, in that it (currently) requires external
non-free assets, but the game engine itself is GPL2. They also both use
assets from the same game lineage (heroes of might and magic).

I struggled to get the tests to work, and they do not seem to be
terribly well maintained upstream. They are even disabled by default by
upstream. I did some very brief manual "testing" that it actually works,
at least!

I had successfully built with various qt*@6 packages, but they are not
currently building; it seems to support qt*@5 too.

Some things failed to build with gcc-11, so I tried gcc-12 and it
worked!

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...


live well,
  vagrant

Comments

Liliana Marie Prikler May 11, 2023, 5:17 p.m. UTC | #1
Am Mittwoch, dem 10.05.2023 um 22:43 -0700 schrieb Vagrant Cascadian:
> X-Debbugs-Cc: liliana.prikler@gmail.com, iyzsong@envs.net
> 
> The attached patch adds "vcmi", which is in many ways very similar to
> the "fheroes2" package, in that it (currently) requires external
> non-free assets, but the game engine itself is GPL2. They also both
> use assets from the same game lineage (heroes of might and magic).
Not my favourite kind of game, I must say, but under crapitalism you
get what you pay for.

> I struggled to get the tests to work, and they do not seem to be
> terribly well maintained upstream. They are even disabled by default
> by upstream. I did some very brief manual "testing" that it actually
> works, at least!
The comment you put in the source is fine for me.

> I had successfully built with various qt*@6 packages, but they are
> not currently building; it seems to support qt*@5 too.
> 
> Some things failed to build with gcc-11, so I tried gcc-12 and it
> worked!
Can you elaborate what things?  I doubt it makes elaborate use of
C++20/23 features, does it?

> 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.

> +    (native-inputs (list boost
The following lines get very long, consider breaking before (list
> +                         ffmpeg
> +                         ;; Build errors with gcc-11
> +                         gcc-12
> +                         ;; 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))

> +     "@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.

Cheers
Vagrant Cascadian May 11, 2023, 9:48 p.m. UTC | #2
On 2023-05-11, Liliana Marie Prikler wrote:
> Am Mittwoch, dem 10.05.2023 um 22:43 -0700 schrieb Vagrant Cascadian:
>> I had successfully built with various qt*@6 packages, but they are
>> not currently building; it seems to support qt*@5 too.
>> 
>> Some things failed to build with gcc-11, so I tried gcc-12 and it
>> worked!
> Can you elaborate what things?  I doubt it makes elaborate use of
> C++20/23 features, does it?

Well, just retried with the default gcc, and it worked this time! so I
guess I will just switch the next patch iteration back to the default
gcc...


>> 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.

Will try applying some of those patches now...


>> +    (native-inputs (list boost
> The following lines get very long, consider breaking before (list
>> +                         ffmpeg
>> +                         ;; Build errors with gcc-11
>> +                         gcc-12
>> +                         ;; googletest ; needed for tests, but tests
...
>> +                         zlib))

While I share your opinion, I tried changing it in various ways, and
"guix style" changed it right back. I do not really want to fight with
"guix style" too much... even if I disagree a bit with the results.


>> +     "@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.


Thanks for the review!


live well,
  vagrant
diff mbox series

Patch

From 94eabedcac6fb61ae1ddd77c6c28f89594586017 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@debian.org>
Date: Sun, 7 May 2023 17:43:33 -0700
Subject: [PATCH] gnu: Add vcmi 1.2.1.

FIXME review debian patches:
  https://salsa.debian.org/games-team/vcmi/-/blob/master/debian/patches/disable-privacy-breach
  https://salsa.debian.org/games-team/vcmi/-/blob/master/debian/patches/reproducible.patch
  ...and secrent as-yet-unsubmitted reproducibility patches...
  https://salsa.debian.org/games-team/vcmi/-/blob/master/debian/patches/minizip_maxu32

X-Debbugs-Cc: liliana.prikler@gmail.com, iyzsong@envs.net

* gnu/packages/games.scm (vcmi): New variable.
---
 gnu/packages/games.scm | 48 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 2e3994543a..c2b60037cc 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -199,6 +199,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)
@@ -11169,6 +11170,53 @@  (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"))))
+    (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
+                         ;; Build errors with gcc-11
+                         gcc-12
+                         ;; 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 (aka HOMM3) 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")

base-commit: e2eb43f945fd467e9b55a4b3c91cd186cf32e268
-- 
2.39.2