From 2b6b951f555ab07257256dcf53c841262f1e1b3e Mon Sep 17 00:00:00 2001 From: Ahmad Draidi Date: Thu, 10 Aug 2023 22:16:35 +0400 Subject: [PATCH] gnu: arcan: Fix paths handling. This patch removes the wrapper and the propagated environment variables (through 'native-search-paths') and instead patches the paths inside the source code. This fixes path handling, which seems to be broken now. It also allows us to use 'setuid', which is required for some features, and lets the app use its internal path handling criteria, which some dependent apps expect. * gnu/packages/arcan.scm (arcan): Fix paths handling. [arguments]: Add 'patch-paths' phase. Remove 'wrap-program' phase. [native-search-paths]: Remove. Signed-off-by: Maxim Cournoyer --- gnu/packages/arcan.scm | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm index c7d8a839a2..9d18f7a52a 100644 --- a/gnu/packages/arcan.scm +++ b/gnu/packages/arcan.scm @@ -83,6 +83,11 @@ (define-public arcan "-DDISTR_TAG='Guix'") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "src/platform/posix/paths.c" + (("/usr/local") + (assoc-ref outputs "out"))))) ;; Normally, it tries to fetch patched openal with git ;; but copying files manually in the right place seems to work too. (add-after 'unpack 'prepare-static-openal @@ -98,30 +103,8 @@ (define-public arcan (add-before 'configure 'chdir (lambda _ (chdir "src") - #t)) - (add-after 'install 'wrap-program - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/arcan") - `("ARCAN_RESOURCEPATH" ":" suffix - (,(string-append out "/share/arcan/resources"))) - `("ARCAN_STATEBASEPATH" ":" = - ("$HOME/.arcan/resources/savestates")) - `("ARCAN_STATEPATH" ":" = - ("$HOME/.arcan/resources/savestates")) - `("ARCAN_BINPATH" ":" = - (,(string-append out "/bin/arcan_frameserver"))))) #t))) #:tests? #f)) - (native-search-paths - (list (search-path-specification - (variable "ARCAN_APPLBASEPATH") - (separator #f) - (files '("share/arcan/appl"))) - (search-path-specification - (variable "ARCAN_SCRIPTPATH") - (separator #f) - (files '("share/arcan/scripts"))))) (inputs `(("bash-minimal" ,bash-minimal) ("espeak" ,espeak)