summaryrefslogtreecommitdiff
path: root/nonguix
AgeCommit message (Collapse)Author
2025-06-11build/chromium-binary: Use 'add-input-labels' for host-inputs labels.Maxim Cournoyer
* nonguix/build-system/chromium-binary.scm (add-input-labels): New procedure. (lower) <host-inputs>: Remove labels. Adjust accordingly. * nonguix/build/chromium-binary-build-system.scm (install-wrapper): Adjust for label change of fontconfig-minimal. Signed-off-by: Hilton Chain <hako@ultrarare.space>
2025-06-11build/chromium-binary: Fix indentation.Maxim Cournoyer
* nonguix/build/chromium-binary-build-system.scm: Fix indentation. Signed-off-by: Hilton Chain <hako@ultrarare.space>
2025-05-14utils: with-transformation: Deprioritize matching of procedures.Hilton Chain
* nonguix/utils.scm (with-transformation): Deprioritize procedure matching.
2025-05-14utils: with-transformation: Handle more cases.Hilton Chain
* nonguix/utils.scm (with-transformation): Skip parameters. Avoid duplicating file system packages.
2025-05-05nonguix: multiarch-container: Use writable file system.John Kehayias
This was a change in Guix to make read-only root file system the default in containers. See commit ce363c1dc7bd63a74dcf7788d340819f6d5db89f. * nonguix/multiarch-container.scm (make-container-wrapper): Use option "--writable-root".
2025-04-18build-system: chromium-binary: Allow overriding default host-inputs.Giacomo Leidi
Some applications may crash with errors like the following: libstdc++.so.6: version `GLIBCXX_3.4.31' not found This can be fixed by using a more recent version of gcc:lib, this patch allows overriding the default gcc:lib provided by the chromium-binary-build-system. * nonguix/build-system/chromium-binary.scm (lower)[host-inputs]: Allow overriding default host-inputs by package inputs. Signed-off-by: Hilton Chain <hako@ultrarare.space> Modified-by: Hilton Chain <hako@ultrarare.space>
2025-04-18multiarch-container: Support sandbox home relative to XDG_DATA_HOME.Herman Rimm
* nonguix/multiarch-container.scm (make-container-wrapper): Set sandbox-home relative to XDG_DATA_HOME environment variable, if it exists. Signed-off-by: Hilton Chain <hako@ultrarare.space> Modified-by: Hilton Chain <hako@ultrarare.space>
2025-04-05nonguix: multiarch-container: Fix controller detection.Hilton Chain
Fixes: https://gitlab.com/nonguix/nonguix/-/issues/384 * nonguix/multiarch-container.scm (make-internal-script): Fix controller detection. Reported-by: Morgan Smith <Morgan.J.Smith@outlook.com>
2025-04-05nonguix: Add package-with-alias.Hilton Chain
* nonguix/utils.scm (package-with-alias): New procedure.
2025-04-05nonguix: nonguix-container: Set more default values.Hilton Chain
Since packages field of <nonguix-container> was never used (it's lowered to a list of store paths, which doesn't suit packages->manifest's expectation), this commit makes use of it to provide default value for various other fields: packages -> union64 + union32 -> ld.so.conf -> ld.so.cache. * nonguix/multiarch-container.scm (<nonguix-container>)[ld.so.conf,ld.so.cache] [union64,union32]: Set default value. (make-container-manifest): Remove ngc-packages reference.
2025-04-04nonguix: Add package-input-grafting.Hilton Chain
* nonguix/utils.scm (package-input-grafting): New procedure.
2025-02-16multiarch-container: make-internal-script: Add nss to LD_LIBRARY_PATH.John Kehayias
* nonguix/multiarch-container.scm (make-internal-script): Add nss to LD_LIBRARY_PATH (as nss puts libraries in lib/nss).
2025-02-09nonguix: chromium-binary-build: Extend wrapper-plan syntax.John Kehayias
This commit is similar to a0079cf1bd8ef707ab9e15a0e249cbd34f157ae4 which allowed patchelf-plan to take entries with an optional path. Here, wrapper-plan is extended to allow for additional syntax (not just a list of strings) similar to patchelf-plan. Now, entries can be a list, with the first the string for the file to be patched and the second a list which is added to the patchelf-plan. This allows, for example, to patch RPATH to effectively have $ORIGIN for binaries that need it, with an entry like `("bin/binary" (("out" "/lib/Binary")))` common for some chromium-based packages. See followup commits for these changes to reduce LD_LIBRARY_PATH wrapping in some packages. * nonguix/build-system/chromium-binary.scm (build-patchelf-plan): Handle entries in wrapper-plan which are a list so that the cdr is added to patchelf-plan for the car. (chromium-binary-build): Update doc string for this change and some basics which were not documented.
2025-01-20nonguix: Add with-transformation.Sergio Pastor Pérez
* nonguix/utils.scm (with-transformation): New procedure. Signed-off-by: Hilton Chain <hako@ultrarare.space>
2025-01-08nonguix: multiarch-container: Handle empty shares env variable.John Kehayias
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
2025-01-04nonguix: multiarch-container: Don't try to start pulseaudio.John Kehayias
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.
2025-01-04nonguix: chromium-binary-build-system: Hint Electron Ozone Platform.Karl Hallsby
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>
2024-11-10nonguix: binary-build-system: Print the patchelf version.Attila Lendvai
* nonguix/build/binary-build-system.scm (patchelf): Output patchelf version. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-11-10build-system: binary: Add comment about patchelf version.John Kehayias
This is a followup to commit c7e6962eb359493251220a1db174dde868013673. * nonguix/build-system/binary.scm (default-patchelf): Add comment and TODO about using older patchelf-0.16 due to upstream bug. Reported-by: Attila Lendvai <attila@lendvai.name>
2024-11-10build-system: binary: Use patchelf-0.16 by default.Hilton Chain
Newer patchelf may break binaries. This commit replaces patchelf with patchelf-0.16 for binary-build-system and nvidia-driver (known affected package). Fixes: https://gitlab.com/nonguix/nonguix/-/issues/350 * nonguix/build-system/binary.scm (default-patchelf): Replace patchelf with patchelf-0.16. * nongnu/packages/nvidia.scm (nvidia-driver)[native-inputs]: Likewise. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-10-02nonguix: binary: Improve .deb unpacking.Ashish SHUKLA
.deb could contain data.tar compressed in any format, not just .xz as it assumes now. * nonguix/build/binary-build-system (unpack-deb): find a data.tar archive to extract. Signed-off-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
2024-06-21build-system/chromium-binary: Remove references to source.Yelninei
Previously the resulting store object would also depend on the source. * nonguix/build-system/chromium-binary.scm (lower): Remove reference to source in #:wrap-inputs. Signed-off-by: Jonathan Brielmaier <jonathan.brielmaier@web.de> Tested-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
2024-03-30nonguix: chromium-binary: Use search-path-as-list from (guix build utils).Giacomo Leidi
We rely on the upstream implementation to avoid duplicating effort. * nonguix/build/chromium-binary-build-system (install-wrapper): Use search-path-as-list; * nonguix/build/utils.scm (build-paths-for-input): remove variable; (build-paths-from-inputs): remove variable. Signed-off-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
2024-03-22nonguix: multiarch-container: Link fonts to /usr/share/fonts.Hilton Chain
* nonguix/multiarch-container.scm (make-internal-script): Link fonts to /usr/share/fonts. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-03-22nonguix: multiarch-container: Expose /etc/os-release.Hilton Chain
* nonguix/multiarch-container.scm (make-container-wrapper): Expose /etc/os-release. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-03-22nonguix: multiarch-container: Preserve TZ and TZDIR.Hilton Chain
* nonguix/multiarch-container.scm (make-container-wrapper): Preserve TZ and TZDIR. Signed-off-by: John Kehayias <john.kehayias@protonmail.com> Co-authored-by: John Kehayias <john.kehayias@protonmail.com>
2024-03-22multiarch-container: make-internal-script: Add VDPAU paths to LD_LIBRARY_PATH.Hilton Chain
* nonguix/multiarch-container.scm (make-container-wrapper): Don't set VDPAU_DRIVER_PATH. (make-internal-script): Add VDPAU paths to LD_LIBRARY_PATH. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-03-22multiarch-container: make-container-wrapper: Set LIBVA_DRIVERS_PATH.Hilton Chain
* nonguix/multiarch-container.scm (make-container-wrapper): Set LIBVA_DRIVERS_PATH and preserve it. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-03-22nonguix: multiarch-container: Share Wayland environment.Hilton Chain
* nonguix/multiarch-container.scm (make-container-wrapper): Preserve environment variables and share socket for Wayland. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-03-22nonguix: multiarch-container: Symlink EGL configurations.Hilton Chain
* nonguix/multiarch-container.scm (make-internal-script): Symlink EGL configurations. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-03-22nonguix: multiarch-container: Symlink all available Vulkan layers.Hilton Chain
* nonguix/multiarch-container.scm (make-internal-script): Symlink all available Vulkan layers. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-03-22multiarch-container: make-internal-script: Improve icd-symlink.Hilton Chain
* nonguix/multiarch-container.scm (make-internal-script)[icd-symlink]: Allow custom directory. Rename to… [file-symlink]: …this. [get-files]: New procedure to simplify find-files use. Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2024-01-31nongnu: multiarch-container: Fix preserved-env not being used.Michal Atlas
* nonguix/multiarch-container.scm (make-container-wrapper): Use ngc-preserved-env. Signed-off-by: John Kehayias <john.kehayias@protonmail.com> Co-authored-by: John Kehayias <john.kehayias@protonmail.com>
2024-01-10nonguix: multiarch-container: Allow extra shared directories.John Kehayias
Basic fix for #237. This allows exposing other directories or drives to the nonguix container, for example to add additional library locations to Steam, by setting $GUIX_SANDBOX_EXTRA_SHARES. * nonguix/multiarch-container.scm (make-container-wrapper): Use environment variable $GUIX_SANDBOX_EXTRA_SHARES to pass extra directories to share with the container.
2024-01-06nonguix: multiarch-container: Set LD_LIBRARY_PATH inside container.John Kehayias
Fixes #303. Previously LD_LIBRARY_PATH was being set before the container was launched, which could cause issues on some foreign distros where this alters what is loaded from an FHS structure. This was only meant to be set inside the container, though this didn't cause any issues on a Guix System. * nonguix/multiarch-container.scm (make-container-wrapper): Move setting LD_LIBRARY_PATH from here ... (make-internal-script): ... to here.
2024-01-04nongnu: multiarch-container: Fix missing module on foreign distros.John Kehayias
Fixes #277. See discussion in above issue for details and some education on what went wrong here. In short, we didn't capture the needed (guix build utils) module in the container script. On a Guix System this didn't cause any problems as guix modules are found through set Guile environment variables. But on a foreign distro these weren't set without hacky workarounds. This prevented Steam from launching with a "no code for module" error. * nonguix/multiarch-container.scm (make-container-wrapper)[make-container-wrapper]: Use 'with-imported-modules' for (guix build utils).
2024-01-04nonguix: binary: Cleanup when an unknown binary extension is detected.Giacomo Leidi
The binary-unpack phase suffered from a problem for unknown binary file extensions, see: !336 (comment 1709385147) . This patch fixes the incorrect behavior by effectively restoring the state of the directory tree before the phase. * nonguix/build/binary-build-system.scm (binary-unpack): Restore the environment as it was before this phase. * nongnu/packages/clojure.scm (clj-kondo)[arguments]: No longer delete 'binary-unpack phase. * nongnu/packages/game-development.scm (libsteam)[arguments]: dito. Signed-off-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
2024-01-03nongnu: Add heroic.John Kehayias
* nongnu/packages/game-client.scm (heroic-client, heroic-extra-client-libs, heroic-container, heroic-nvidia-container, heroic, heroic-nvidia): New variables. * nonguix/multi-arch-container.scm (make-container-wrapper): Preserve "^SSL_" for heroic to use curl. (make-internal-script): Add symlink for "/usr/share/glib-2.0".
2024-01-03nongnu: steam-nvidia: Fix launching .desktop files.Timo Wilken
Steam installs .desktop files that refer to an executable called `steam'. Installing steam-nvidia as the `steam-nvidia' executable breaks this, which means Steam cannot be launched from its desktop icon. This also applies to .desktop files for individual games generated by Steam, when they are copied from `<ngc-sandbox-home>/.local/share/applications/'. Fix this by always installing Steam's wrapper executable as `steam'. We add a new field using "binary" to keep things shorter. This has the downside that the `steam' and `steam-nvidia' packages cannot be installed in the same profile, but likely people wouldn't want to do this anyway. Fixes #294. * nongnu/packages/steam-client.scm (steam-nvidia-container)[binary-name]: Specify for compatibility with .desktop files. * nonguix/multiarch-container.scm (<nonguix-container>)[binary-name, ngc-binary-name]: New field and accessor. (nonguix-container->package): Use it to set correct executable name. (make-internal-script): Use it in message. Co-authored-by: John Kehayias <john.kehayias@protonmail.com> Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2023-12-28nonguix: binary: Automatically detect and unpack .deb files.Giacomo Leidi
A new binary-unpack phase is added to the binary-build-system. When a supported binary file is detected as the only file after the unpack phase it is then decompressed in a specific directory. * nonguix/build/binary-build-system.scm (deb-file?): new variable; (unpack-deb): new variable; (binary-unpack): new variable; (%standard-phases): use the new phase. Signed-off-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
2023-11-11nonguix: multiarch-container: Make locale usable by pressure-vessel.John Kehayias
Steam's pressure-vessel startup time can be improved by not having to generate locales. So make sure locales are in and used by the pressure-vessel container by linking the expected location of /usr/lib/locale (presumably so that pressure-vessel will capture them) and setting $GUIX_LOCPATH. * nonguix/multiarch-container.scm (make-container-wrapper): Preserve and set GUIX_LOCPATH. (make-internal-script): Add symlink for /usr/lib/locale.
2023-11-11nonguix: multiarch-container: Preserve MANGOHUD.John Kehayias
Now one can have set MANGOHUD=1 in their environment to have all Steam games launch with MangoHud, rather than always setting this per game launch settings. Likewise for MANGOHUD_CONFIG for configuration. * nonguix/multiarch-container.scm (make-container-wrapper): Preserve MANGOHUD environment variables.
2023-11-11nonguix: multiarch-container: Set LD_LIBRARY_PATH (for steam).John Kehayias
Setting $LD_LIBRARY_PATH in the container allows for non-Steam games added to Steam to launch properly with Proton. Otherwise they don't make it to the pressure-vessel container as it seems they start in an environment where the rest of our setup is not active (e.g. game will fail to launch with an error about being unable to load libGL.so.1). * nonguix/multiarch-container.scm (make-container-wrapper): Preserve LD_LIBRARY_PATH and set it.
2023-11-11nonguix: multiarch-container: Remove pressure-vessel workaround.John Kehayias
Setting $PRESSURE_VESSEL_FILESYSTEMS_RO to "/gnu/store" is no longer needed for Steam as the fix has been merged upstream. Users can still set this environment variable (preserved in the container) if needed. * nonguix/multiarch-container.scm (make-container-wrapper): Remove setting $PRESSURE_VESSEL_FILESYSTEMS_RO.
2023-10-14nongnu: steam: Fix to work with newer mangohud.John Kehayias
In 0.7.0 of MangoHud the vulkan implicit layers have different names for 32- and 64-bit so we no longer need a workaround. * nonguix/multiarch-container.scm (make-internal-script): No longer create /usr/share/vulkan/implicit_layer.d. Symlink instead directly from guix-env. Remove vulkan layer renaming from mangohud.
2023-09-03nongnu: steam: Fix missing tray icon.John Kehayias
Finally, it's back! Using something like snixembed worked around this before by using a different tray icon format. * nongnu/packages/steam-client.scm (steam-client-libs): Add gdk-pixbuf. * nonguix/multiarch-container.scm (make-internal-script): Add symlink to /usr/share/mime.
2023-09-03nonguix: chromium-binary-build-system: Use gcc:lib.John Kehayias
Effectively reverts changes that came from 9d58bb6e3e93a444d35bf62d4ca98a126ae4f295 which doesn't seem to be needed anymore. These got carried into chromium-binary-build-system when it was introduced. We need libstdc++ from the gcc:lib package, which is hidden from users but directly accessible from the build system. The library from make-libstdc++ has missing symbols compared to the one from gcc:lib. The addition of libgccjit seems to also be unneeded from this change and increases the closure of e.g. signal-desktop by nearly 10% or 200 MiB. Fixes #276 and #279. * nonguix/build-system/chromium-binary.scm (lower)[host-inputs]: Use gcc:lib again and remove libgccjit.
2023-07-15nongnu: steam: Allow workaround of white box bug.John Kehayias
See <https://gitlab.com/nonguix/nonguix/-/issues/267> and <https://github.com/ValveSoftware/steam-for-linux/issues/9306>. * nonguix/multiarch-container.scm (make-container-wrapper): Preserve QT_X11_NO_MITSHM to allow setting to 1 to workaround an upstream bug where only a white box is displayed.
2023-07-12nonguix: Add chromium-binary-build-system.Giacomo Leidi
This build system is an extension to the binary-build-system, designed to abstract some common boilerplate necessary for packaging Chromium based software. * nonguix/build-system/chromium-binary.scm: New file; * nonguix/build/chromium-binary-build-system.scm: new file; * nonguix/build/utils.scm (build-paths-for-input): new variable; (build-paths-from-inputs): New variable. Signed-off-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
2023-06-29nonguix: glibc-for-fhs: Remove variable.John Kehayias
* nonguix/multiarch-container.scm (glibc-for-fhs): Remove. (fhs-min-libs): Use upstream glibc-for-fhs.