diff options
author | John Kehayias <john.kehayias@protonmail.com> | 2025-02-02 17:53:09 -0500 |
---|---|---|
committer | John Kehayias <john.kehayias@protonmail.com> | 2025-02-03 15:57:36 -0500 |
commit | e65677969e7ba6afd6c327379e24da0bed2f3adc (patch) | |
tree | ba6c1f38ed2391d7c63781c5cd8d8e05e05598b0 | |
parent | 5c6ef7cafdfabdacae8ce33410b41168a952d4ff (diff) |
nonguix: binary-build-system: Use add-rpath instead of set-rpath.
Fixes #369.
Previously we were using "patchelf --set-rpath" in binary-build-system for
binaries to find dependencies in Guix. However, this will override any
previous setting, including if "$ORIGIN" was in RUNPATH.
For Electron applications specifically (like signal-desktop and heroic),
bundled libraries were not found without wrapping with LD_LIBRARY_PATH. While
this does work, it is not ideal and led to issues in child processes that
inherit LD_LIBRARY_PATH, namely breaking games using Wine/Proton in Heroic.
A possible consequence of this commit is that Guix added paths to RUNPATH are
after what was originally set, perhaps leading to library
loading/compatibility issues. However, we always try to replace all needed
libraries with Guix packages (just that Electron applications seem to require
bundled libraries in $ORIGIN).
* nonguix/build/binary-build-system.scm (patchelf): Use add-rpath instead of set-rpath.
* nongnu/packages/game-client.scm (heroic-client)[arguments]<#:phases>: Remove
'wrap-where-patchelf-does-not-work phase as it is no longer needed (needed
libraries are found with $ORIGIN preserved in RUNPATH).
* nongnu/packages/messaging.scm (element-desktop, signal-desktop): Likewise.
* nongnu/packages/editors.scm (vscodium): Likewise.
-rw-r--r-- | nongnu/packages/editors.scm | 10 | ||||
-rw-r--r-- | nongnu/packages/game-client.scm | 10 | ||||
-rw-r--r-- | nongnu/packages/messaging.scm | 20 | ||||
-rw-r--r-- | nonguix/build/binary-build-system.scm | 2 |
4 files changed, 5 insertions, 37 deletions
diff --git a/nongnu/packages/editors.scm b/nongnu/packages/editors.scm index 4d19646f..9073c9c9 100644 --- a/nongnu/packages/editors.scm +++ b/nongnu/packages/editors.scm @@ -83,15 +83,7 @@ #:startup-w-m-class "Code" #:comment '(("en" "Code Editing. Redefined.") - (#f "Code Editing. Redefined.")))))) - (add-after 'install-wrapper 'wrap-where-patchelf-does-not-work - (lambda _ - (wrap-program (string-append #$output "/bin/codium") - `("LD_LIBRARY_PATH" ":" - prefix - (,(string-join - (list (string-append #$output "/opt/vscodium")) - ":"))))))))) + (#f "Code Editing. Redefined."))))))))) (supported-systems '("armhf-linux" "aarch64-linux" "x86_64-linux")) (native-inputs (list tar)) diff --git a/nongnu/packages/game-client.scm b/nongnu/packages/game-client.scm index cb2730b8..1f8b021e 100644 --- a/nongnu/packages/game-client.scm +++ b/nongnu/packages/game-client.scm @@ -97,15 +97,7 @@ (lambda _ (mkdir-p (string-append #$output "/bin")) (symlink (string-append #$output "/lib/Heroic/heroic") - (string-append #$output "/bin/heroic")))) - (add-after 'install-wrapper 'wrap-where-patchelf-does-not-work - (lambda _ - (wrap-program (string-append #$output "/lib/Heroic/heroic") - `("LD_LIBRARY_PATH" ":" prefix - (,(string-join - (list - (string-append #$output "/lib/Heroic")) - ":"))))))))) + (string-append #$output "/bin/heroic"))))))) (home-page "https://heroicgameslauncher.com") (synopsis "A Native GOG, Amazon and Epic Games Launcher") (description "Heroic is an Open Source Game Launcher. Right now it supports launching diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 4275e2ea..4af8e6f8 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -69,15 +69,7 @@ (lambda _ (mkdir-p (string-append #$output "/bin")) (symlink (string-append #$output "/lib/Element/element-desktop") - (string-append #$output "/bin/element-desktop")))) - (add-after 'install-wrapper 'wrap-where-patchelf-does-not-work - (lambda _ - (wrap-program (string-append #$output "/lib/Element/element-desktop") - `("LD_LIBRARY_PATH" ":" prefix - (,(string-join - (list - (string-append #$output "/lib/Element")) - ":"))))))))) + (string-append #$output "/bin/element-desktop"))))))) (home-page "https://github.com/vector-im/element-desktop") (synopsis "Matrix collaboration client for desktop") (description "Element Desktop is a Matrix client for desktop with Element Web at @@ -123,15 +115,7 @@ its core.") (lambda _ (mkdir-p (string-append #$output "/bin")) (symlink (string-append #$output "/lib/Signal/signal-desktop") - (string-append #$output "/bin/signal-desktop")))) - (add-after 'install-wrapper 'wrap-where-patchelf-does-not-work - (lambda _ - (wrap-program (string-append #$output "/lib/Signal/signal-desktop") - `("LD_LIBRARY_PATH" ":" prefix - (,(string-join - (list - (string-append #$output "/lib/Signal")) - ":"))))))))) + (string-append #$output "/bin/signal-desktop"))))))) (home-page "https://signal.org/") (synopsis "Private messenger using the Signal protocol") (description "Signal Desktop is an Electron application that links with Signal on Android diff --git a/nonguix/build/binary-build-system.scm b/nonguix/build/binary-build-system.scm index ccfc3ebe..88d4e464 100644 --- a/nonguix/build/binary-build-system.scm +++ b/nonguix/build/binary-build-system.scm @@ -113,7 +113,7 @@ The inputs are optional when the file is an executable." (make-rpath name))) runpath) ":"))) - (invoke "patchelf" "--set-rpath" rpath binary))) + (invoke "patchelf" "--add-rpath" rpath binary))) #t) (display "Using patchelf version: ") |