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.
We do not need to rename the patches as Software Heritage keeps the old
ones from nixpkgs repo available.
* nongnu/packages/linux.scm (broadcom-sta-patch): Use rpmfusion repo as
nixpkgs no longer maintains those patches.
(broadcom-sta-x86_64-source): Add patch for linux@6.12 and update a
comment.
Launching a package, like steam, with GUIX_SANDBOX_EXTRA_SHARES= (set to an
empty string) will cause guix shell to fail to launch with "guix shell: error:
statfs: : No such file or directory".
* nonguix/multiarch-container.scm (make-container-wrapper): Check that the
environment variable GUIX_SANDBOX_EXTRA_SHARES is both set and not an empty
string.
Reported-by: apoorv569
Upstream Guix defaulted linux-libre-lts to 6.12 in commit
1dcd0ded86e341cbfd0567cefde1e71684c0cdba. Do the same here.
* nongnu/packages/linux.scm (linux-lts): Use linux-6.12.
Closes#241.
See discussion in above issue, but the summary is that the container (or any
package/program) shouldn't be trying to start pulseaudio (or other home/system
services, especially that can be started on demand). While previously this
was done to avoid some issue, it is not clear if that is still the case and it
may possibly lead to other issues. So, let's default to a more
expected (non-) behavior.
* nonguix/multiarch-container.scm (make-container-wrapper): Remove invoke of
pulseaudio.
This should allow Electron apps to detect whether they are running on Wayland
or X11. If they are on Wayland, then they should default to using Wayland
libraries. This should help with HiDPI monitors, fractional scaling, and all
the other issues that Wayland solved over X11.
This environment variable is only supported by Electron versions >=28. All
earlier versions relied on command-line arguments instead.
* nonguix/build/chromium-binary-build-system (install-wrapper): Add
ELECTRON_OZONE_PLATFORM_HINT environment variable and set to "auto".
Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
linux-libre@4.19 was removed from upstream Guix in commit
7b40b9d2d2ddafd6945f18f19f5e621086d57169 as it is no longer supported
upstream.
Fixes#361.
* nongnu/packages/linux.scm (linux-4.19): Remove variable.
Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
* nongnu/packages/patches/firefox-use-system-wide-dir.patch: New file.
* nongnu/packages/mozilla.scm (firefox)[source]: Add it along with
firefox-esr-compare-paths.patch.