GNU bug report logs - #56852
[PATCH] gnu: Add exult.

Previous Next

Package: guix-patches;

Reported by: Tobias Geerinckx-Rice <me <at> tobias.gr>

Date: Sun, 31 Jul 2022 10:47:01 UTC

Severity: normal

Tags: patch

Done: Vagrant Cascadian <vagrant <at> debian.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56852 in the body.
You can then email your comments to 56852 AT debbugs.gnu.org in the normal way.

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

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


Report forwarded to guix-patches <at> gnu.org:
bug#56852; Package guix-patches. (Sun, 31 Jul 2022 10:47:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Tobias Geerinckx-Rice <me <at> tobias.gr>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 31 Jul 2022 10:47:02 GMT) Full text and rfc822 format available.

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

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: Add exult.
Date: Sun, 31 Jul 2022 12:46:35 +0200
* gnu/packages/games.scm (exult): New public variable.
---

Hi Guix,

This started as a series of ‘guix shell’ questions by ncbfg36 in #guix, and as those tend to turn into packages, especially when you're waiting for Dell firmware to decide how it's going to fail to boot in 2 minutes, here's one.

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

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b00bff3e7b..f7b86ae3d5 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3909,6 +3909,70 @@ (define-public extremetuxracer
     (home-page "https://sourceforge.net/projects/extremetuxracer/")
     (license license:gpl2+)))
 
+(define-public exult
+  (package
+    (name "exult")
+    (version "1.8")
+    (source
+     (origin
+       ;; The release tarball isn't bootstrapped, and Git is more robust (SWH).
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/exult/exult")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1qfbkz05w8989vafc6dvw1wmdi1mvkr4kkgk3ccixadf4616kcb3"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:configure-flags
+           #~(list "--enable-shared"
+                   "--disable-static"
+                   "--enable-lto"
+                   "--enable-exult-studio"
+                   "--enable-exult-studio-support"
+                   "--enable-compiler"
+                   "--enable-mods"
+                   "--enable-gimp-plugin"
+                   ;; A few lines on stdout can save a lot of head-scratching:
+                   "CPPFLAGS=-DDEBUG_PATHS=1")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-game-home-directory
+                 (lambda _
+                   (substitute* "gamemgr/modmgr.cc"
+                     ;; EXULT_DATADIR is in the store where it's rather hard for
+                     ;; users to put game assets.  Use a more writable home by
+                     ;; default, which users can override in their ~/.exult.cfg.
+                     (("<GAMEHOME>")
+                      (string-append "<HOME>/.local/share/exult"))
+                     ;; …however, this causes a regression: the mods which we'll
+                     ;; install to EXULT_DATADIR are no longer found.  So: don't
+                     ;; look for mods alongside the assets by default.  This too
+                     ;; can be overridden in users' ~/.exult.cfg.
+                     (("game_path( \\+ \"/mods\")" _ +suffix)
+                      (string-append "get_system_path(\"<GAMEHOME>/\") + "
+                                     "cfgname" +suffix))))))))
+    (native-inputs
+     (list autoconf automake libtool pkg-config
+           ;; The following are needed only by the Usecode compiler.
+           bison flex))
+    (inputs
+     (list fluidsynth freetype libvorbis sdl2
+           ;; GTK is needed only by Exult Studio.
+           gtk+))
+    (synopsis "Role-playing game engine compatible with Ultima VII")
+    (description
+     "Exult is an Ultima 7 game engine that runs on modern operating systems.
+Ultima 7 (or Ultima VII) is a two-part @acronym{RPG, role-playing game} from the
+early 1990s.
+
+Exult is fully compatible with the original Ultima 7, but doesn't require any
+of its data files to be useful.  Explore entirely new game worlds---or create
+your own with the included game and map editor, Exult Studio.")
+    (home-page "http://exult.info/")
+    (license license:gpl2+)))
+
 (define-public supertuxkart
   (package
     (name "supertuxkart")
-- 
2.37.1





Information forwarded to guix-patches <at> gnu.org:
bug#56852; Package guix-patches. (Sun, 31 Jul 2022 11:53:02 GMT) Full text and rfc822 format available.

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

From: "(" <paren <at> disroot.org>
To: "Tobias Geerinckx-Rice" <me <at> tobias.gr>, <56852 <at> debbugs.gnu.org>
Subject: Re: [bug#56852] [PATCH] gnu: Add exult.
Date: Sun, 31 Jul 2022 12:52:30 +0100
Hello!

On Sun Jul 31, 2022 at 11:46 AM BST, Tobias Geerinckx-Rice via Guix-patches via wrote:
> +     (origin
> +       ;; The release tarball isn't bootstrapped, and Git is more robust (SWH).
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/exult/exult")
> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "1qfbkz05w8989vafc6dvw1wmdi1mvkr4kkgk3ccixadf4616kcb3"))))
I don't think it's really necessary to justify the use of Git here, since Git
is preferred over tarballs anyway.

    -- (




Information forwarded to guix-patches <at> gnu.org:
bug#56852; Package guix-patches. (Sun, 31 Jul 2022 13:31:01 GMT) Full text and rfc822 format available.

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

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: "(" <paren <at> disroot.org>
Cc: 56852 <at> debbugs.gnu.org
Subject: Re: [bug#56852] [PATCH] gnu: Add exult.
Date: Sun, 31 Jul 2022 15:26:19 +0200
[Message part 1 (text/plain, inline)]
( 写道:
> I don't think it's really necessary to justify the use of Git 
> here, since Git
> is preferred over tarballs anyway.

Agreed insofar as I just wanted to point out the surprising lack 
of bootstrapping in the tarball, and then hey, 80 characters is 80 
characters, what else can we chat about before they run out.  If 
it's read as ‘justifying’ anything, that was not the intention.

I'm not sure we ever reached consensus on preferring Git?  I'm 
pro-git myself, but if there's consensus we should advertise it 
more prominently.

Thanks for the review!

Kind regards,

T G-R
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#56852; Package guix-patches. (Sun, 31 Jul 2022 13:42:02 GMT) Full text and rfc822 format available.

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

From: "(" <paren <at> disroot.org>
To: "Tobias Geerinckx-Rice" <me <at> tobias.gr>
Cc: 56852 <at> debbugs.gnu.org
Subject: Re: [bug#56852] [PATCH] gnu: Add exult.
Date: Sun, 31 Jul 2022 14:41:36 +0100
On Sun Jul 31, 2022 at 2:26 PM BST, Tobias Geerinckx-Rice wrote:
> Thanks for the review!
Not much of a review, but you're welcome nonetheless :)

    -- (




Information forwarded to guix-patches <at> gnu.org:
bug#56852; Package guix-patches. (Sun, 31 Jul 2022 14:24:02 GMT) Full text and rfc822 format available.

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

From: "(" <paren <at> disroot.org>
To: "Tobias Geerinckx-Rice" <me <at> tobias.gr>, <56852 <at> debbugs.gnu.org>
Subject: Re: [bug#56852] [PATCH] gnu: Add exult.
Date: Sun, 31 Jul 2022 15:23:13 +0100
I just thought of some more possible improvements:

On Sun Jul 31, 2022 at 11:46 AM BST, Tobias Geerinckx-Rice via Guix-patches via wrote:
> +                   "--enable-exult-studio"
Couldn't this go in a new `exult:studio` output?

> +                   "--enable-compiler"
I'm not sure what this compiler is, but if it's a separate program I guess it could
use `exult:compiler`.

> +                   "--enable-gimp-plugin"
And this could go in `exult:gimp`.

> +                   (substitute* "gamemgr/modmgr.cc"
> +                     ;; EXULT_DATADIR is in the store where it's rather hard for
> +                     ;; users to put game assets.  Use a more writable home by
> +                     ;; default, which users can override in their ~/.exult.cfg.
> +                     (("<GAMEHOME>")
> +                      (string-append "<HOME>/.local/share/exult"))
> +                     ;; …however, this causes a regression: the mods which we'll
> +                     ;; install to EXULT_DATADIR are no longer found.  So: don't
> +                     ;; look for mods alongside the assets by default.  This too
> +                     ;; can be overridden in users' ~/.exult.cfg.
> +                     (("game_path( \\+ \"/mods\")" _ +suffix)
> +                      (string-append "get_system_path(\"<GAMEHOME>/\") + "
> +                                     "cfgname" +suffix))))))))
Perhaps we could patch in a GUIX_EXULT_PATH env var so we can add a search path for
packaging mods.

    -- (




Information forwarded to guix-patches <at> gnu.org:
bug#56852; Package guix-patches. (Sun, 31 Jul 2022 14:32:01 GMT) Full text and rfc822 format available.

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

From: Maxime Devos <maximedevos <at> telenet.be>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>, "(" <paren <at> disroot.org>
Cc: 56852 <at> debbugs.gnu.org
Subject: Re: [bug#56852] [PATCH] gnu: Add exult.
Date: Sun, 31 Jul 2022 16:31:31 +0200
[Message part 1 (text/plain, inline)]
On 31-07-2022 15:26, Tobias Geerinckx-Rice via Guix-patches via wrote:

> I'm not sure we ever reached consensus on preferring Git?  I'm pro-git 
> myself, but if there's consensus we should advertise it more prominently. 

I am not aware of a consensus on preferring Git, but using Git had been 
noted to be a convenient method for avoiding Autotools binaries (*) and 
building from source (*).

However, that's not directly relevant here, as (IIUC your comment 
correctly) in this case, the tarball doesn't contain those Autotools 
binaries.

Greetings,
Maxime

(*) in the sense used by the GPL and referred to by explanations of '4 
freedoms', not in the 'input/output to C compiler / shell interpreter / 
...' sense.

[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#56852; Package guix-patches. (Fri, 12 Aug 2022 20:00:02 GMT) Full text and rfc822 format available.

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

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: "(" <paren <at> disroot.org>
Cc: 56852 <at> debbugs.gnu.org
Subject: Re: [bug#56852] [PATCH] gnu: Add exult.
Date: Fri, 12 Aug 2022 21:46:40 +0200
[Message part 1 (text/plain, inline)]
Hi!

I managed to miss this when replying to your previous mail.

( 写道:
> I just thought of some more possible improvements:
>
> On Sun Jul 31, 2022 at 11:46 AM BST, Tobias Geerinckx-Rice via 
> Guix-patches via wrote:
>> +                   "--enable-exult-studio"
> Couldn't this go in a new `exult:studio` output?

I tried, but splitting out a Studio that doesn't randomly crash 
during normal usage proved too hard for me.  It's dangerously easy 
to split out one that appears to run fine at first glance.

I wouldn't call Exult frustrating in that department, but some 
file name assumptions aren't as trivial to patch or even find as 
one would hope.  Apparently.

>> +                   "--enable-compiler"
> I'm not sure what this compiler is, but if it's a separate 
> program I guess it could
> use `exult:compiler`.

With its grand total size of 2.7 MiB (out of a 915-MiB closure), 
I'd rather not.

>> +                   "--enable-gimp-plugin"
> And this could go in `exult:gimp`.

Ack.

>> +                   (substitute* "gamemgr/modmgr.cc"
>> +                     ;; EXULT_DATADIR is in the store where 
>> it's rather hard for
>> +                     ;; users to put game assets.  Use a more 
>> writable home by
>> +                     ;; default, which users can override in 
>> their ~/.exult.cfg.
>> +                     (("<GAMEHOME>")
>> +                      (string-append 
>> "<HOME>/.local/share/exult"))
>> +                     ;; …however, this causes a regression: 
>> the mods which we'll
>> +                     ;; install to EXULT_DATADIR are no longer 
>> found.  So: don't
>> +                     ;; look for mods alongside the assets by 
>> default.  This too
>> +                     ;; can be overridden in users' 
>> ~/.exult.cfg.
>> +                     (("game_path( \\+ \"/mods\")" _ +suffix)
>> +                      (string-append 
>> "get_system_path(\"<GAMEHOME>/\") + "
>> +                                     "cfgname" +suffix))))))))
> Perhaps we could patch in a GUIX_EXULT_PATH env var so we can 
> add a search path for
> packaging mods.

That's a lot of original code to add in a patch…  and the current 
codez all assume file names, not paths.

I'll think about it.

Thanks,

T G-R
[signature.asc (application/pgp-signature, inline)]

Reply sent to Vagrant Cascadian <vagrant <at> debian.org>:
You have taken responsibility. (Sat, 02 Sep 2023 03:39:02 GMT) Full text and rfc822 format available.

Notification sent to Tobias Geerinckx-Rice <me <at> tobias.gr>:
bug acknowledged by developer. (Sat, 02 Sep 2023 03:39:02 GMT) Full text and rfc822 format available.

Message #28 received at 56852-done <at> debbugs.gnu.org (full text, mbox):

From: Vagrant Cascadian <vagrant <at> debian.org>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>, 56852-done <at> debbugs.gnu.org
Subject: Re: [bug#56852] [PATCH] gnu: Add exult.
Date: Fri, 01 Sep 2023 20:38:37 -0700
[Message part 1 (text/plain, inline)]
On 2022-07-31, Tobias Geerinckx-Rice wrote:
> * gnu/packages/games.scm (exult): New public variable.
...
> +(define-public exult
> +  (package
> +    (name "exult")
> +    (version "1.8")

exult 1.8 is present in guix now:

26c2a8a32730f376345b3562c7a252869d63aadd gnu: Add exult.

Marking as done.

live well,
  vagrant
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 30 Sep 2023 11:24:19 GMT) Full text and rfc822 format available.

This bug report was last modified 209 days ago.

Previous Next


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