unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Tobias Geerinckx-Rice <me@tobias.gr>
To: nee <nee-git@hidamari.blue>
Cc: 34879@debbugs.gnu.org
Subject: [bug#34879] [PATCH] gnu: yamagi-quake2: Update to 7.40.
Date: Sat, 16 Mar 2019 06:09:36 +0100	[thread overview]
Message-ID: <874l83be27.fsf@nckx> (raw)
In-Reply-To: <e639cba0-aa53-c153-58cd-ce780b047e9f@hidamari.blue>

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

nee wrote:
> Subject: [PATCH] gnu: yamagi-quake2: Update to 7.40.

It's unfortunately not that simple.  :-(

This version completely changes how it loads OpenAL.  The attached 
patch keeps everything working, but embeds an absolute store 
reference in the user's configuration file after the first run:

  λ grep /gnu/store ~/.yq2/baseq2/config.cfg 
  set al_driver "/gnu/store/…-openal-1.19.1/lib/libopenal.so.1"

Any ideas, anyone?

T G-R


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-yamagi-quake2-Update-to-7.40.patch --]
[-- Type: text/x-patch, Size: 3696 bytes --]

From 0048a70ed05f704e2d620c5033bbb0799d025afc Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Fri, 15 Feb 2019 05:26:34 +0100
Subject: [PATCH 01/25] gnu: yamagi-quake2: Update to 7.40.

* gnu/packages/games.scm (yamagi-quake2): Update to 7.40.
[arguments]: Drop removed DLOPEN_OPENAL from #:make-flags and add a new
'embed-library-path' phase to link it by hand.
[inputs]: Add curl.
---
 gnu/packages/games.scm | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 46b58e352c..e7102a0403 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -5023,36 +5023,43 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
 (define-public yamagi-quake2
   (package
     (name "yamagi-quake2")
-    (version "7.10")
+    (version "7.40")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://deponie.yamagi.org/quake2/quake2-"
                            version ".tar.xz"))
        (sha256
-        (base32
-         "0psinbg25mysd58k99s1n34w31w5hj1vppb39gdjb0zqi6sl6cps"))))
+        (base32 "0aci73r15m1wbkrhpysxzdg77a294ywxfkd141gi5qgc2lwbsbqw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
        #:make-flags
        (list "CC=gcc"
-             ;; link openAL instead of using dlopen at runtime
-             "DLOPEN_OPENAL=\"no\""
-             ;; an optional directory where it will look for quake2 data files
-             ;; in addition to the current working directory
+             ;; An optional directory where it will look for quake2 data files
+             ;; in addition to the current working directory.
              "WITH_SYSTEMWIDE=yes"
              "WITH_SYSTEMDIR=\"/opt/quake2\"")
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
+         (delete 'configure)            ; no configure script
+         (add-after 'unpack 'embed-library-path
+           ;; The option (DLOPEN_OPENAL=no) to link the OpenAL library at
+           ;; compile time was removed.  Pass an absolute file name to
+           ;; Sys_LoadLibrary to emulate it.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((openal (assoc-ref inputs "openal")))
+               (substitute* "Makefile"
+                 (("libopenal\\.so\\.[^\"]*" name)
+                  (string-append openal "/lib/" name)))
+               #t)))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (mkdir-p (string-append out "/lib"))
                (mkdir-p (string-append out "/bin"))
                ;; The yamagi-quake2 binary must be in the same directory
-               ;; as it's engine libraries, but symlinking it to /bin is okay
+               ;; as its engine libraries, but symlinking it to /bin is okay.
                ;; https://github.com/yquake2/yquake2/blob/master/stuff/packaging.md
                (copy-recursively "release"
                                  (string-append out "/lib/yamagi-quake2"))
@@ -5060,7 +5067,8 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
                         (string-append out "/bin/yamagi-quake2"))
                (symlink (string-append out "/lib/yamagi-quake2/q2ded")
                         (string-append out "/bin/yamagi-q2ded"))))))))
-    (inputs `(("sdl2" ,sdl2)
+    (inputs `(("curl" ,curl)
+              ("sdl2" ,sdl2)
               ("mesa" ,mesa)
               ("libvorbis" ,libvorbis)
               ("zlib" ,zlib)
-- 
2.20.1


  reply	other threads:[~2019-03-16  5:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-15 23:19 [bug#34879] [PATCH] gnu: yamagi-quake2: Update to 7.40 nee
2019-03-16  5:09 ` Tobias Geerinckx-Rice [this message]
2019-04-01 21:15   ` nee
2021-08-06  4:04     ` bug#34879: " Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874l83be27.fsf@nckx \
    --to=me@tobias.gr \
    --cc=34879@debbugs.gnu.org \
    --cc=nee-git@hidamari.blue \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).