NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.07k stars 14.12k forks source link

`everest-mons`: Missing dependency #334434

Open griffi-gh opened 2 months ago

griffi-gh commented 2 months ago

Describe the bug

Installer fails because of missing libicu dependency.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Install package
  2. Add Celeste instance: mons add main /home/user/.local/share/Steam/steamapps/common/Celeste/
  3. Try to install Everest mod loader: mons install --latest main
  4. Installer fails due to missing libicu dependency

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

image

Additional context

Installer succeeds if run with steam-run like this:

steam-run mons install --latest main

Notify maintainers

@UlyssesZh

Metadata

Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
- system: `"x86_64-linux"`
- host os: `Linux 6.10.3, NixOS, 24.11 (Vicuna), 24.11.20240809.5e0ca22`
- multi-user?: `yes`
- sandbox: `relaxed`
- version: `nix-env (Nix) 2.24.0pre20240723_fb450de2`
- nixpkgs: `/nix/store/0jr2kk95c34c0b6yxi75q4fqgb43kqkm-source`

Add a :+1: reaction to issues you find important.

UlyssesZh commented 2 months ago

You need to add libicu to nix-ld packages or use steam-run.

griffi-gh commented 2 months ago

I still believe the package should be wrapped properly, if possible... (using buildfhsenv in the worst case) Using nix-ld or steam-run is just a workaround.

UlyssesZh commented 2 months ago

I don't know whether there is a convenient proper way to do this. How mons works is to run a binary (MonoInstaller) in a subprocess. I could make the subprocess use steam-run, but I don't want the package to depend on steam-run.

UlyssesZh commented 2 months ago

If the user already has nix-ld installed, simply adding libicu to NIX_LD_LIBRARY_PATH should work. However, this requires nix-ld anyway, so it cannot be considered a good solution.