me
/
guix
Archived
1
0
Fork 0

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>
nee 2019-03-15 20:56:47 +01:00 committed by Maxim Cournoyer
parent f8f096d1e8
commit c64c49b152
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 15 additions and 4 deletions

View File

@ -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")))