unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#56852] [PATCH] gnu: Add exult.
@ 2022-07-31 10:46 Tobias Geerinckx-Rice via Guix-patches via
  2022-07-31 11:52 ` ( via Guix-patches via
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Tobias Geerinckx-Rice via Guix-patches via @ 2022-07-31 10:46 UTC (permalink / raw)
  To: 56852

* 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





^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#56852] [PATCH] gnu: Add exult.
  2022-07-31 10:46 [bug#56852] [PATCH] gnu: Add exult Tobias Geerinckx-Rice via Guix-patches via
@ 2022-07-31 11:52 ` ( via Guix-patches via
  2022-07-31 13:26   ` Tobias Geerinckx-Rice via Guix-patches via
  2022-07-31 14:23 ` ( via Guix-patches via
  2023-09-02  3:38 ` bug#56852: " Vagrant Cascadian
  2 siblings, 1 reply; 8+ messages in thread
From: ( via Guix-patches via @ 2022-07-31 11:52 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice, 56852

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.

    -- (




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#56852] [PATCH] gnu: Add exult.
  2022-07-31 11:52 ` ( via Guix-patches via
@ 2022-07-31 13:26   ` Tobias Geerinckx-Rice via Guix-patches via
  2022-07-31 13:41     ` ( via Guix-patches via
  2022-07-31 14:31     ` Maxime Devos
  0 siblings, 2 replies; 8+ messages in thread
From: Tobias Geerinckx-Rice via Guix-patches via @ 2022-07-31 13:26 UTC (permalink / raw)
  To: (; +Cc: 56852

[-- Attachment #1: Type: text/plain, Size: 614 bytes --]

( 写道:
> 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#56852] [PATCH] gnu: Add exult.
  2022-07-31 13:26   ` Tobias Geerinckx-Rice via Guix-patches via
@ 2022-07-31 13:41     ` ( via Guix-patches via
  2022-07-31 14:31     ` Maxime Devos
  1 sibling, 0 replies; 8+ messages in thread
From: ( via Guix-patches via @ 2022-07-31 13:41 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice; +Cc: 56852

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 :)

    -- (




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#56852] [PATCH] gnu: Add exult.
  2022-07-31 10:46 [bug#56852] [PATCH] gnu: Add exult Tobias Geerinckx-Rice via Guix-patches via
  2022-07-31 11:52 ` ( via Guix-patches via
@ 2022-07-31 14:23 ` ( via Guix-patches via
  2022-08-12 19:46   ` Tobias Geerinckx-Rice via Guix-patches via
  2023-09-02  3:38 ` bug#56852: " Vagrant Cascadian
  2 siblings, 1 reply; 8+ messages in thread
From: ( via Guix-patches via @ 2022-07-31 14:23 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice, 56852

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.

    -- (




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#56852] [PATCH] gnu: Add exult.
  2022-07-31 13:26   ` Tobias Geerinckx-Rice via Guix-patches via
  2022-07-31 13:41     ` ( via Guix-patches via
@ 2022-07-31 14:31     ` Maxime Devos
  1 sibling, 0 replies; 8+ messages in thread
From: Maxime Devos @ 2022-07-31 14:31 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice, (; +Cc: 56852


[-- Attachment #1.1.1: Type: text/plain, Size: 743 bytes --]

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.


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#56852] [PATCH] gnu: Add exult.
  2022-07-31 14:23 ` ( via Guix-patches via
@ 2022-08-12 19:46   ` Tobias Geerinckx-Rice via Guix-patches via
  0 siblings, 0 replies; 8+ messages in thread
From: Tobias Geerinckx-Rice via Guix-patches via @ 2022-08-12 19:46 UTC (permalink / raw)
  To: (; +Cc: 56852

[-- Attachment #1: Type: text/plain, Size: 2325 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#56852: [PATCH] gnu: Add exult.
  2022-07-31 10:46 [bug#56852] [PATCH] gnu: Add exult Tobias Geerinckx-Rice via Guix-patches via
  2022-07-31 11:52 ` ( via Guix-patches via
  2022-07-31 14:23 ` ( via Guix-patches via
@ 2023-09-02  3:38 ` Vagrant Cascadian
  2 siblings, 0 replies; 8+ messages in thread
From: Vagrant Cascadian @ 2023-09-02  3:38 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice, 56852-done

[-- Attachment #1: Type: text/plain, Size: 321 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-09-02  3:39 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-31 10:46 [bug#56852] [PATCH] gnu: Add exult Tobias Geerinckx-Rice via Guix-patches via
2022-07-31 11:52 ` ( via Guix-patches via
2022-07-31 13:26   ` Tobias Geerinckx-Rice via Guix-patches via
2022-07-31 13:41     ` ( via Guix-patches via
2022-07-31 14:31     ` Maxime Devos
2022-07-31 14:23 ` ( via Guix-patches via
2022-08-12 19:46   ` Tobias Geerinckx-Rice via Guix-patches via
2023-09-02  3:38 ` bug#56852: " Vagrant Cascadian

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).