nonguix-mirrors/nonguix
John Kehayias e65677969e
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.
2025-02-03 15:57:36 -05:00
..
build nonguix: binary-build-system: Use add-rpath instead of set-rpath. 2025-02-03 15:57:36 -05:00
build-system build-system: binary: Add comment about patchelf version. 2024-11-10 16:24:17 -05:00
download.scm *.scm: Use SPDX license identifiers. 2022-12-19 17:17:39 +01:00
licenses.scm *.scm: Use SPDX license identifiers. 2022-12-19 17:17:39 +01:00
modules.scm *.scm: Use SPDX license identifiers. 2022-12-19 17:17:39 +01:00
multiarch-container.scm nonguix: multiarch-container: Handle empty shares env variable. 2025-01-08 17:57:05 -05:00
utils.scm nonguix: Add with-transformation. 2025-01-20 23:52:23 +08:00