Add vcmi 1.2.1 to games.scm

  • Done
  • quality assurance status badge
Details
2 participants
  • Liliana Marie Prikler
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Vagrant Cascadian
Severity
normal
V
V
Vagrant Cascadian wrote on 11 May 2023 07:43
(address . guix-patches@gnu.org)
87a5yb4e41.fsf@wireframe
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
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:
...and secrent as-yet-unsubmitted reproducibility patches...

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(+)

Toggle diff (70 lines)
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
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZFyAjgAKCRDcUY/If5cW
qj2UAP9TxhALfTuXxXxS/w8IBxC9TsNqOhg6lgzJGIdCINzdUAD9Fq9n3KJcyoOA
vLOP+HSv2htpEdKqHjbzmOAx03gwbww=
=HDPT
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 11 May 2023 19:17
(address . iyzsong@envs.net)
51be2fdd711bf490e3a925334e571ff7871d6cbb.camel@gmail.com
Am Mittwoch, dem 10.05.2023 um 22:43 -0700 schrieb Vagrant Cascadian:
Toggle quote (6 lines)
> 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.

Toggle quote (4 lines)
> 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.

Toggle quote (5 lines)
> 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?

Toggle quote (5 lines)
> 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.

Toggle quote (1 lines)
> + (native-inputs (list boost
The following lines get very long, consider breaking before (list
Toggle quote (26 lines)
> + 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
V
V
Vagrant Cascadian wrote on 11 May 2023 23:48
(address . iyzsong@envs.net)
873542o7ze.fsf@wireframe
On 2023-05-11, Liliana Marie Prikler wrote:
Toggle quote (9 lines)
> 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...


Toggle quote (8 lines)
>> 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...


Toggle quote (6 lines)
>> + (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
...
Toggle quote (2 lines)
>> + 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.


Toggle quote (6 lines)
>> + "@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
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZF1ilQAKCRDcUY/If5cW
qvMdAP4xLMP/VSGL4aO+LUBgTUOx6VgwSCQyQVo8JMoU9Sf17QEA6wC9dCnbQVGi
me7o5ch+bZXp6Ov/enRDGc+V3GfiCQo=
=oGY7
-----END PGP SIGNATURE-----

V
V
Vagrant Cascadian wrote on 12 May 2023 01:07
(address . iyzsong@envs.net)
87zg6ampqf.fsf@wireframe
On 2023-05-11, Vagrant Cascadian wrote:
Toggle quote (10 lines)
> 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).


Toggle quote (9 lines)
>>> + "@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 <vagrant@debian.org>
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

Toggle diff (108 lines)
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 <josch@debian.org>
+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
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZF11OAAKCRDcUY/If5cW
qi9nAQDKxZ4fzMuRulk6PA+QeraYXVcFyYAk/d50Xu4mS/6O3QEA9/U1wOJtnEZm
CeyGob5VEkst4yehikVphLoP1q7W1A4=
=0xz0
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 12 May 2023 03:47
(address . iyzsong@envs.net)
9ee9b4f47ee7c5af274074da89febdb4df9ca68d.camel@gmail.com
Am Donnerstag, dem 11.05.2023 um 16:07 -0700 schrieb Vagrant Cascadian:

Toggle quote (10 lines)
> +(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)))
Can we do without the recursive checkout?
Toggle quote (7 lines)
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> +
> "1nx3i078cxkak2ci514pf4pgi5269mp08njynsg35pin4yp3fn0p"))
> + (patches (search-patches "vcmi-disable-privacy-
> breach.patch"))))
IIRC the reproducible builds patch is still missing, right?

Toggle quote (1 lines)
> + (native-inputs (list boost
Guix style is, like, a suggestion that can be wrong. You are allowed
to fight it when the result of doing so is demonstrably better.

Cheers
V
V
Vagrant Cascadian wrote on 12 May 2023 08:17
(address . iyzsong@envs.net)
87wn1em5ti.fsf@wireframe
On 2023-05-12, Liliana Marie Prikler wrote:
Toggle quote (14 lines)
> Am Donnerstag, dem 11.05.2023 um 16:07 -0700 schrieb Vagrant Cascadian:
>
>> +(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)))
> Can we do without the recursive checkout?

There is one component still used with the recursive
checkout. ... AI/Fuzzy* I think? I do not know if it could be built
independently, but I have not seriously looked into it.

If tests were enabled, the googletest stuff might be needed; it was a
bit unclear to me if the googletest packaged in guix could
work. Regardless, tests are disabled upstream... so if there is a way to
only download one and not the other, I guess that would save some
bandwith.

I *think* those are the only two things pulled in.


Toggle quote (9 lines)
>> + (file-name (git-file-name name version))
>> + (sha256
>> + (base32
>> +
>> "1nx3i078cxkak2ci514pf4pgi5269mp08njynsg35pin4yp3fn0p"))
>> + (patches (search-patches "vcmi-disable-privacy-
>> breach.patch"))))
> IIRC the reproducible builds patch is still missing, right?

The Debian package implements building man pages and documentation
outside of the upstream build system...

It did not seem worth patching something that was not used to build
anything... the reproducible builds patch(es) only apply to
documentation which is not part of the upstream build process, so I left
it out of this iteration.

That said...

Building vcmimanual.tex appears to be a one-liner, pulling in some tex
related dependencies:


And generating manpages used help2man and some templates debian ships:


Not sure if the manpages are worth the effort, or if the manual is worth
the larger dependency tree...


Toggle quote (4 lines)
>> + (native-inputs (list boost
> Guix style is, like, a suggestion that can be wrong. You are allowed
> to fight it when the result of doing so is demonstrably better.

I get that ... but I also like just being able to run guix style and not
having to make those judgement calls. Because other things guix style
may change that are a good idea and it is really difficult to pick and
choose which things to revert and which to keep over time...

There are some things I think guix style does wrong(in particular, I
always prefer one input per line to make diffs easier to read), but I do
not hold strong opinions on guile coding style and just prefer to
concede to guix style and bear with the results.

I am also not strongly opinionated (it goes both ways, I guess!)... so
for clarity, are you saying you would prefer:

(native-inputs
(list
boost
...
or:

(native-inputs
(list boost
...

or something else?


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZF3aCQAKCRDcUY/If5cW
qslcAQDH7HIRNz8C/aVtGfZIJpFcGlyThKWYz2IallcXklEM0gD+P0Dr71hiaAuU
YS3/ERY+rCu5vRIbqNrtYvED7dgl5gc=
=qR6j
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 12 May 2023 22:53
(address . iyzsong@envs.net)
8e04176d6691bdc0996fb473b56ead31be954123.camel@gmail.com
Am Donnerstag, dem 11.05.2023 um 23:17 -0700 schrieb Vagrant Cascadian:
Toggle quote (19 lines)
> On 2023-05-12, Liliana Marie Prikler wrote:
> > Am Donnerstag, dem 11.05.2023 um 16:07 -0700 schrieb Vagrant
> > Cascadian:
> >
> > > +(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)))
> > Can we do without the recursive checkout?
>
> There is one component still used with the recursive
> checkout. ... AI/Fuzzy* I think? I do not know if it could be built
> independently, but I have not seriously looked into it.
fuzzylite can be taken from the system which is the preferred approach.

Toggle quote (8 lines)
>
> If tests were enabled, the googletest stuff might be needed; it was a
> bit unclear to me if the googletest packaged in guix could
> work. Regardless, tests are disabled upstream... so if there is a way
> to only download one and not the other, I guess that would save some
> bandwith.
>
> I *think* those are the only two things pulled in.
Not that it matters if we aren't building tests, but googletest can and
should be unbundled. There's a fair number of packages already setting
a precedent.

Toggle quote (33 lines)
> > > +              (file-name (git-file-name name version))
> > > +              (sha256
> > > +               (base32
> > > +              
> > > "1nx3i078cxkak2ci514pf4pgi5269mp08njynsg35pin4yp3fn0p"))
> > > +              (patches (search-patches "vcmi-disable-privacy-
> > > breach.patch"))))
> > IIRC the reproducible builds patch is still missing, right?
>
> The Debian package implements building man pages and documentation
> outside of the upstream build system...
>
> It did not seem worth patching something that was not used to build
> anything... the reproducible builds patch(es) only apply to
> documentation which is not part of the upstream build process, so I
> left it out of this iteration.
>
> That said...
>
> Building vcmimanual.tex appears to be a one-liner, pulling in some
> tex related dependencies:
>
>  
> https://salsa.debian.org/games-team/vcmi/-/blob/master/debian/rules#L56
>
> And generating manpages used help2man and some templates debian
> ships:
>
>  
> https://salsa.debian.org/games-team/vcmi/-/blob/master/debian/rules#L46-48
>
> Not sure if the manpages are worth the effort, or if the manual is
> worth the larger dependency tree...
Fair enough, if it can be left without, let's do without (unless you
really want to build the manpage). Alternatively, you can pull the
inputs in, but phrase the (build-documentation ...) phase in a way that
those inputs can be dropped if someone values their disk space.

Toggle quote (29 lines)
> > > +    (native-inputs (list boost
> > Guix style is, like, a suggestion that can be wrong.  You are
> > allowed
> > to fight it when the result of doing so is demonstrably better.
>
> I get that ... but I also like just being able to run guix style and
> not having to make those judgement calls. Because other things guix
> style may change that are a good idea and it is really difficult to
> pick and choose which things to revert and which to keep over time...
>
> There are some things I think guix style does wrong(in particular, I
> always prefer one input per line to make diffs easier to read), but I
> do not hold strong opinions on guile coding style and just prefer to
> concede to guix style and bear with the results.
>
> I am also not strongly opinionated (it goes both ways, I guess!)...
> so for clarity, are you saying you would prefer:
>
>   (native-inputs
>     (list
>       boost
>       ...
> or:
>
>   (native-inputs
>     (list boost
>           ...
>
> or something else?
The latter. If it ever comes to needing (list on its own line you
better have a good explanation for that or fix your comments so that
they don't go overboard.


Cheers
V
V
Vagrant Cascadian wrote on 13 May 2023 03:33
(address . iyzsong@envs.net)
87ttwhm2vg.fsf@wireframe
On 2023-05-12, Liliana Marie Prikler wrote:
Toggle quote (22 lines)
> Am Donnerstag, dem 11.05.2023 um 23:17 -0700 schrieb Vagrant Cascadian:
>> On 2023-05-12, Liliana Marie Prikler wrote:
>> > Am Donnerstag, dem 11.05.2023 um 16:07 -0700 schrieb Vagrant
>> > Cascadian:
>> >
>> > > +(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)))
>> > Can we do without the recursive checkout?
>>
>> There is one component still used with the recursive
>> checkout. ... AI/Fuzzy* I think? I do not know if it could be built
>> independently, but I have not seriously looked into it.
> fuzzylite can be taken from the system which is the preferred approach.

Attached is fuzzylite as it's own package.


Toggle quote (4 lines)
>> > > +    (native-inputs (list boost
>> > Guix style is, like, a suggestion that can be wrong.  You are
>> > allowed
>> > to fight it when the result of doing so is demonstrably better.
...
Toggle quote (18 lines)
>> I am also not strongly opinionated (it goes both ways, I guess!)...
>> so for clarity, are you saying you would prefer:
>>
>>   (native-inputs
>>     (list
>>       boost
>>       ...
>> or:
>>
>>   (native-inputs
>>     (list boost
>>           ...
>>
>> or something else?
> The latter. If it ever comes to needing (list on its own line you
> better have a good explanation for that or fix your comments so that
> they don't go overboard.

...and will send an updated vcmi with this depending on fuzzylite
shortly.

live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZF7o8wAKCRDcUY/If5cW
qv/LAQCVDo3NwQ0HLkrBwRbtLV+9SJi5V/gXGqYxcd4gldUBWQEAoMBT/J+cTl62
kXonVJ4qHDf7DZNm0xTWMCIY+OGkRQI=
=cw9I
-----END PGP SIGNATURE-----

V
V
Vagrant Cascadian wrote on 13 May 2023 03:35
(address . iyzsong@envs.net)
87r0rlm2rn.fsf@wireframe
On 2023-05-12, Vagrant Cascadian wrote:
Toggle quote (5 lines)
> On 2023-05-12, Liliana Marie Prikler wrote:
>> Am Donnerstag, dem 11.05.2023 um 23:17 -0700 schrieb Vagrant Cascadian:
>>> On 2023-05-12, Liliana Marie Prikler wrote:
>>> > Am Donnerstag, dem 11.05.2023 um 16:07 -0700 schrieb Vagrant
>>> > Cascadian:
...
Toggle quote (3 lines)
> ...and will send an updated vcmi with this depending on fuzzylite
> shortly.

And the updated vcmi attached.

live well,
vagrant
From 813871d233700f7d9662aa9108b8dfc1e12e4d91 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@debian.org>
Date: Sun, 7 May 2023 17:43:33 -0700
Subject: [PATCH 2/2] 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 patch.
---
gnu/local.mk | 1 +
gnu/packages/games.scm | 49 +++++++++++++++++++
.../patches/vcmi-disable-privacy-breach.patch | 21 ++++++++
3 files changed, 71 insertions(+)
create mode 100644 gnu/packages/patches/vcmi-disable-privacy-breach.patch

Toggle diff (108 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 89791bea69..ac0137290d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2032,6 +2032,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 4395476af3..d6a663abc6 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)
@@ -11218,6 +11219,54 @@ (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)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f3fk1fc2wb7f2j4pxz89dzr8zjnrdh435mijia483a3bq59w7pk"))
+ (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.
+ `(#:configure-flags '("-DFORCE_BUNDLED_FL=OFF")
+ #:tests? #f))
+ (native-inputs
+ (list boost
+ ffmpeg
+ fuzzylite
+ ;; 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 the 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 <josch@debian.org>
+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",
--
2.39.2
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZF7pfAAKCRDcUY/If5cW
qlyvAP0dYN8FxUqZOrCvkJtG71MLKrAobBMwSyVHCGetgGnw+gD+PfOfjBXIrsOn
Wr7F7t+pQdKGAguXNLI7jXFYPiLVnAk=
=6pB5
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 13 May 2023 08:12
(address . iyzsong@envs.net)
40512ea5dbdf297cea0d06f7270ee5ac8cb3e34e.camel@gmail.com
Hi,

Am Freitag, dem 12.05.2023 um 18:33 -0700 schrieb Vagrant Cascadian:

Toggle quote (4 lines)
> + %D%/packages/patches/fuzzylite-relative-path-in-tests.patch \
> + %D%/packages/patches/fuzzylite-use-catch2.patch \
> + %D%/packages/patches/fuzzylite-when-testing-large-float-numbers-
> for-equ.patch
Prefer names that don't blow up the file name, e.g. "fuzzylite-fix-
test", "fuzzylite-soften-float-equality", or "fuzzylite-workaround-
issue-N" – although I'm not sure whether we have a precedent for the
latter.

Toggle quote (4 lines)
> + (patches (search-patches "fuzzylite-use-catch2.patch"
> + "fuzzylite-when-testing-large-float-numbers-
> for-equ.patch"
> + "fuzzylite-relative-path-in-tests.patch"))))
This doesn't appear properly indented.

Toggle quote (1 lines)
> + (synopsis "fuzzy logic control binary")
Capitalize the first word. IIRC we also allow title case for proper
names and such, but I don't think that'd be necessary here.

Toggle quote (3 lines)
> + "fuzzylite is a fuzzy logic control library which allows one
> +to easily create fuzzy logic controllers in a few steps utilizing
> +object-oriented programming.")
Proper sentences start with an uppercase letter. The convention is to
use @-constructs when the package name prohibits that. You can also
cheat via "This package provides ..."

Toggle quote (1 lines)
> + (license license:gpl3)))
No +?

Toggle quote (1 lines)
> fuzzylite is a registered trademark of FuzzyLite Limited.
Perhaps also look into their trademark policy then, if they have any.

Toggle quote (2 lines)
> +-#include "test/catch.hpp"
> ++#include "catch2/catch.hpp"
Use <catch2/catch.hpp> to signal that this is a system header.

Cheers
L
L
Liliana Marie Prikler wrote on 13 May 2023 08:16
(address . iyzsong@envs.net)
210acc39f6c1c114004aa1d79c171b1a255c5747.camel@gmail.com
Am Freitag, dem 12.05.2023 um 18:35 -0700 schrieb Vagrant Cascadian:

Toggle quote (5 lines)
> + ;; Test suites do not seem well supported upstream and are
> disabled by default.
> + ;; Pass -DENABLE_TEST to configure to enable.
> + `(#:configure-flags '("-DFORCE_BUNDLED_FL=OFF")
> + #:tests? #f))
Readjust your comment, it's misaligned now. Also, prefer
(list #:configure-flags #~(list "-DFORCE_BUNDLED_FL=OFF")
#:tests? #f)
so that people after you won't have to convert it to G-Expressions.

Toggle quote (2 lines)
> + ;; qtbase and qttools @6 not currently buildable but may
> work ok
Prefer ";; XXX: Build currently fails with qtbase-6 and qttools-6".

Cheers
V
V
Vagrant Cascadian wrote on 14 May 2023 21:50
(address . iyzsong@envs.net)
87ilcun150.fsf@wireframe
On 2023-05-13, Liliana Marie Prikler wrote:
Toggle quote (11 lines)
> Am Freitag, dem 12.05.2023 um 18:33 -0700 schrieb Vagrant Cascadian:
>
>> + %D%/packages/patches/fuzzylite-relative-path-in-tests.patch \
>> + %D%/packages/patches/fuzzylite-use-catch2.patch \
>> + %D%/packages/patches/fuzzylite-when-testing-large-float-numbers-
>> for-equ.patch
> Prefer names that don't blow up the file name, e.g. "fuzzylite-fix-
> test", "fuzzylite-soften-float-equality", or "fuzzylite-workaround-
> issue-N" – although I'm not sure whether we have a precedent for the
> latter.

Went with fuzzylite-soften-float-equality. Thanks!


Toggle quote (6 lines)
>> + (patches (search-patches "fuzzylite-use-catch2.patch"
>> + "fuzzylite-when-testing-large-float-numbers-
>> for-equ.patch"
>> + "fuzzylite-relative-path-in-tests.patch"))))
> This doesn't appear properly indented.

guix style strikes again! Fixed.


Toggle quote (4 lines)
>> + (synopsis "fuzzy logic control binary")
> Capitalize the first word. IIRC we also allow title case for proper
> names and such, but I don't think that'd be necessary here.

Fixed.


Toggle quote (7 lines)
>> + "fuzzylite is a fuzzy logic control library which allows one
>> +to easily create fuzzy logic controllers in a few steps utilizing
>> +object-oriented programming.")
> Proper sentences start with an uppercase letter. The convention is to
> use @-constructs when the package name prohibits that. You can also
> cheat via "This package provides ..."

Went with the cheat. :)


Toggle quote (3 lines)
>> + (license license:gpl3)))
> No +?

I do not see any "or any later version" or similar wording anywhere, no.


Toggle quote (3 lines)
>> fuzzylite is a registered trademark of FuzzyLite Limited.
> Perhaps also look into their trademark policy then, if they have any.

Have not found one...


Toggle quote (4 lines)
>> +-#include "test/catch.hpp"
>> ++#include "catch2/catch.hpp"
> Use <catch2/catch.hpp> to signal that this is a system header.

I tried applying this, but it failed to build... left it out of this
revision.


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZGE7ewAKCRDcUY/If5cW
qrt4AQDqk46kPa9/0eWc5NFOUyqv4pHKd0JcAeyAD9ffiV/MNgEA61d4nb84upIH
SoHXwfwzKomPUWndHRc99ovJtaWCywM=
=zeVj
-----END PGP SIGNATURE-----

V
V
Vagrant Cascadian wrote on 14 May 2023 21:52
(address . iyzsong@envs.net)
87fs7yn10z.fsf@wireframe
On 2023-05-13, Liliana Marie Prikler wrote:
Toggle quote (9 lines)
> Am Freitag, dem 12.05.2023 um 18:35 -0700 schrieb Vagrant Cascadian:
>
>> + ;; Test suites do not seem well supported upstream and are
>> disabled by default.
>> + ;; Pass -DENABLE_TEST to configure to enable.
>> + `(#:configure-flags '("-DFORCE_BUNDLED_FL=OFF")
>> + #:tests? #f))
> Readjust your comment, it's misaligned now.

Fixed.


Toggle quote (5 lines)
> Also, prefer
> (list #:configure-flags #~(list "-DFORCE_BUNDLED_FL=OFF")
> #:tests? #f)
> so that people after you won't have to convert it to G-Expressions.

Thanks! Applied.


Toggle quote (4 lines)
>> + ;; qtbase and qttools @6 not currently buildable but may
>> work ok
> Prefer ";; XXX: Build currently fails with qtbase-6 and qttools-6".

Also applied. Used "fuzzylite" for XXX...


live well,
vagrant
From 2794eb077c325ad366667927e58cead23924fbc9 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@debian.org>
Date: Sun, 7 May 2023 17:43:33 -0700
Subject: [PATCH 2/2] 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 patch.
---
gnu/local.mk | 1 +
gnu/packages/games.scm | 49 +++++++++++++++++++
.../patches/vcmi-disable-privacy-breach.patch | 21 ++++++++
3 files changed, 71 insertions(+)
create mode 100644 gnu/packages/patches/vcmi-disable-privacy-breach.patch

Toggle diff (108 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index dd6e3641a1..6ada6196be 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2031,6 +2031,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 49d1431d99..525e4a1c7b 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)
@@ -11218,6 +11219,54 @@ (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)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f3fk1fc2wb7f2j4pxz89dzr8zjnrdh435mijia483a3bq59w7pk"))
+ (patches (search-patches "vcmi-disable-privacy-breach.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DFORCE_BUNDLED_FL=OFF")
+ ;; 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
+ fuzzylite
+ ;; googletest ; needed for tests, but tests are disabled
+ libxkbcommon
+ luajit
+ minizip
+ pkg-config
+ python
+ ;; fuzzylite: Build currently fails with qtbase-6 and qttools-6
+ 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 the 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 <josch@debian.org>
+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",
--
2.39.2
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZGE8DAAKCRDcUY/If5cW
qp60AQDpqVTl1JJZMRygwiGA9gq59UCmU+kPx/yvnw4BVP/GxwEApwQctMWaesNh
/905xYRIh2f+Xfw8qIl1/FQFMjmXCAo=
=jzP5
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 15 May 2023 20:31
(address . iyzsong@envs.net)
16d133f8d31322aee3bb5cea5baff6fc03fc95ca.camel@gmail.com
Am Sonntag, dem 14.05.2023 um 12:52 -0700 schrieb Vagrant Cascadian:
Toggle quote (1 lines)
> Also applied. Used "fuzzylite" for XXX...
Is the failure due to fuzzylite? Actually, XXX is a marker for
incomplete code like TODO.

Cheers
V
V
Vagrant Cascadian wrote on 15 May 2023 21:07
(address . iyzsong@envs.net)
87353xmn1h.fsf@wireframe
On 2023-05-15, Liliana Marie Prikler wrote:
Toggle quote (5 lines)
> Am Sonntag, dem 14.05.2023 um 12:52 -0700 schrieb Vagrant Cascadian:
>> Also applied. Used "fuzzylite" for XXX...
> Is the failure due to fuzzylite? Actually, XXX is a marker for
> incomplete code like TODO.

I would be fine with prefixing it with TODO or whatever else makes
sense!

... although to make any sense out of this, a little more background ...

I am fairly sure I successfully built with qtbase@6 and qttools@6 in
earlier iterations while developing the initial patch... but at the time
of the original patch submission, qtbase@6 itself was failing to build,
which is why i switched to qtbase@5 ... but whatever made qtbase@6 build
successfully now fails to build vcmi!

Whee.

So the original comment was arguably confusing and the need to even have
a comment at all has since entirely changed context (e.g. went from
qtbase@6 failing to build to vcmi failing to build with qtbase@6)!

I am not entirely sure that makes any more sense now, but I have some
small hope. :)


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZGKC2gAKCRDcUY/If5cW
qhJ/AP9oJuxQGw+u1z5Kkak6usOVX/iSL83ItlRZmUHYF75CFgEA378wu4WsADHs
StF+2tWGOP76j16UvTkfB9Jer7NNAQE=
=omG7
-----END PGP SIGNATURE-----

V
V
Vagrant Cascadian wrote on 3 Jul 2023 04:50
(address . iyzsong@envs.net)
87fs65yahg.fsf@wireframe
On 2023-05-15, Liliana Marie Prikler wrote:
Toggle quote (5 lines)
> Am Sonntag, dem 14.05.2023 um 12:52 -0700 schrieb Vagrant Cascadian:
>> Also applied. Used "fuzzylite" for XXX...
> Is the failure due to fuzzylite? Actually, XXX is a marker for
> incomplete code like TODO.

I see, not a convention I am used to! Switched to XXX: ...

Updated patches attached.

live well,
vagrant
From 818fb9cc3b8f31009d9c540555c63b4f894d5335 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@debian.org>
Date: Sun, 7 May 2023 17:43:33 -0700
Subject: [PATCH 2/2] 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 patch.
---
gnu/local.mk | 1 +
gnu/packages/games.scm | 49 +++++++++++++++++++
.../patches/vcmi-disable-privacy-breach.patch | 21 ++++++++
3 files changed, 71 insertions(+)
create mode 100644 gnu/packages/patches/vcmi-disable-privacy-breach.patch

Toggle diff (108 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 9ec550355c..b421e458c8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2053,6 +2053,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 d2bd448f99..c42b68fa58 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -202,6 +202,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)
@@ -11304,6 +11305,54 @@ (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)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0f3fk1fc2wb7f2j4pxz89dzr8zjnrdh435mijia483a3bq59w7pk"))
+ (patches (search-patches "vcmi-disable-privacy-breach.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:configure-flags #~(list "-DFORCE_BUNDLED_FL=OFF")
+ ;; 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
+ fuzzylite
+ ;; googletest ; needed for tests, but tests are disabled
+ libxkbcommon
+ luajit
+ minizip
+ pkg-config
+ python
+ ;; XXX: Build currently fails with qtbase-6 and qttools-6
+ 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 the 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 <josch@debian.org>
+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",
--
2.39.2
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZKI3awAKCRDcUY/If5cW
qidEAQDiuS7sXQpa3QQ7eE3/PgDTX3N+uHNru4/figU8MyRr5AEA8VbtRi9t4HNe
glE5z3uRgW20nkAYDPbUALIAPP+5Uwo=
=VlmQ
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 9 Jul 2023 07:36
(address . iyzsong@envs.net)
2756406a7022b1c4f57fe572da7d57a3a79dadd0.camel@gmail.com
Am Sonntag, dem 02.07.2023 um 19:50 -0700 schrieb Vagrant Cascadian:
Toggle quote (10 lines)
> On 2023-05-15, Liliana Marie Prikler wrote:
> > Am Sonntag, dem 14.05.2023 um 12:52 -0700 schrieb Vagrant
> > Cascadian:
> > > Also applied. Used "fuzzylite" for XXX...
> > Is the failure due to fuzzylite?  Actually, XXX is a marker for
> > incomplete code like TODO.
>
> I see, not a convention I am used to! Switched to XXX: ...
>
> Updated patches attached.
Pushed with slightly edited commit messages.

Cheers
Closed
?