diff options
author | nee <nee-git@hidamari.blue> | 2019-03-15 20:56:47 +0100 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-08-06 00:00:02 -0400 |
commit | c64c49b152b7713a5e09ae0cfdc1de86fb215966 (patch) | |
tree | 19fcecd91d09a454a31fb39ab5bf56313e80b8a5 | |
parent | f8f096d1e8f930ebeecd98125b9c03d97b3c7f65 (diff) |
gnu: yamagi-quake2: Patch dynamically loaded libraries.
* gnu/packages/games.scm (yamagi-quake2)
[arguments]{make-flags}: Remove the DLOPEN_OPENAL=no make flag, which was
not working as intended.
[phases]{patch-libraries}: New phase.
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-rw-r--r-- | gnu/packages/games.scm | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index f34f3a9ca5..468b0d58b1 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -7209,15 +7209,26 @@ some graphical niceities, and numerous bug-fixes and other improvements.") `(#: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) + (add-before 'build 'patch-libraries + (lambda* (#:key inputs #:allow-other-keys) + ;; The game writes paths to openal.so and curl.so to ~/.yq2/... + ;; Workaround: hard-code the compiled paths where it loads them; + ;; this prevents loading old or garbage collected libraries. + (substitute* "src/client/sound/qal.c" + (("al_driver->string") + (string-append "\"" (assoc-ref inputs "openal") + "/lib/libopenal.so\""))) + (substitute* "src/client/curl/qcurl.c" + (("cl_libcurl->string") + (string-append "\"" (assoc-ref inputs "curl") + "/lib/libcurl.so\""))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) |