NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.49k stars 13.68k forks source link

Activation script breaks bind mounted files #247065

Closed lelgenio closed 9 months ago

lelgenio commented 1 year ago

Describe the bug

Running nixos-rebuild switch while steam is running makes steam(or it's fhsenv) enter a bugged state in which it can no longer start proton games.

One line from steam's log stands out to me:

bwrap: Can't bind mount /oldroot/etc/group on /newroot/etc/group: Unable to mount source on destination: No such file or directory

Steps To Reproduce

1 - Open Steam 2 - Start a proton game, works fine 3 - Run nixos-rebuild switch 4 - Start a proton game, does not work 5 - Start a non-proton game, works fine 6 - Restart Steam 7 - Start a proton game, works fine

Expected behavior

Switching generations should not affect Steam's ability to launch games.

Additional context

This issue has occurred since release 22.11, it was not fixed by 23.05, and is not fixed on unstable. Using nixos-rebuild switch --rollback does not fix the issue.
As far as I know there is no workaround other than restarting steam every time you switch generations. I tried my hand at fixing this (throwing stuff at the wall and seeing what sticks) and came up with this hack:

diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix
index 6c9b71624c2b..0d36d87bf052 100644
--- a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix
+++ b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix
@@ -152,6 +152,10 @@ let
       fi
       if [[ -L $i ]]; then
         symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$i")
+      elif [[ -f $i && -r $i ]]; then
+        SNAPSHOT=$(mktemp --dry-run)
+        cp "$i" "$SNAPSHOT"
+        ro_mounts+=(--ro-bind-try "$SNAPSHOT" "$i")
       else
         ro_mounts+=(--ro-bind-try "$i" "$i")
       fi

stdout+stderr from running "Steps to Reproduce"

Normal log


steam.sh[2183765]: Running Steam on nixos 22.11 64-bit
steam.sh[2183765]: STEAM_RUNTIME is enabled automatically
setup.sh[2183843]: Steam runtime environment up-to-date!
run.sh[2183855]: Warning: An unexpected error occurred while executing "/sbin/ldconfig -XNv", the exit status was 127
steam.sh[2183765]: Steam client's requirements are satisfied
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Loaded SDL version 2.27.0-p7692409
ComputeStartupMode: found registry default startup mode: 0Installing breakpad exception handler for appid(steam)/version(1674790765)
steamwebhelper.sh[2183895]: Runtime for steamwebhelper: defaulting to /home/lelgenio/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[2183895]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
CAppInfoCacheReadFromDiskThread took 114 milliseconds to initialize
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)

(steam:2183878): Gtk-WARNING **: 11:39:37.408: gtk_disable_setlocale() must be called before gtk_init()
Installing breakpad exception handler for appid(steam)/version(1674790765)
Local Device Found
  type: 054c 09cc
  path: /dev/hidraw4
  serial_number: 84:30:95:97:1a:79 - 0
  Manufacturer: Sony Interactive Entertainment
  Product:      Wireless Controller
  Release:      100
  Interface:    3

!! Steam controller device opened for index 0.
[2023-01-28 11:39:38.401] [MANGOHUD] [info] [blacklist.cpp:49] process 'vulkandriverquery' is blacklisted in MangoHud
[2023-01-28 11:39:38.401] [MANGOHUD] [info] [blacklist.cpp:49] process 'vulkandriverquery' is blacklisted in MangoHud
[2023-01-28 11:39:38.406] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
[2023-01-28 11:39:38.945] [MANGOHUD] [info] [blacklist.cpp:49] process 'vulkandriverquery' is blacklisted in MangoHud
[2023-01-28 11:39:38.945] [MANGOHUD] [info] [blacklist.cpp:49] process 'vulkandriverquery' is blacklisted in MangoHud
[2023-01-28 11:39:38.949] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
Installing breakpad exception handler for appid(steam)/version(1674790765)
local (potentially out of sync) copy of roaming config loaded - 3091 bytes.
Fossilize INFO: Setting autogroup scheduling.
roaming config store loaded successfully - 3091 bytes.
migrating temporary roaming config store
Installing breakpad exception handler for appid(steam)/version(1674790765)
BRefreshApplicationsInLibrary 1: 1ms
Installing breakpad exception handler for appid(steam)/version(1674790765)
Failed to init SteamVR because it isn't installed
ExecCommandLine: "'/home/lelgenio/.local/share/Steam/ubuntu12_32/steam'"
System startup time: 3.51 seconds
BuildCompleteAppOverviewChange: 363 apps

(steam:2183878): Gtk-WARNING **: 11:39:41.714: gtk_disable_setlocale() must be called before gtk_init()
RegisterForAppOverview 1: 8ms
RegisterForAppOverview 2: 9ms
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to SynchronizingCloud with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to SynchronizingControllerConfig with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0/home/lelgenio/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1229490 -- /home/lelgenio/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/lelgenio/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0'/proton waitforexitandrun  '/home/lelgenio/Games/SteamLibrary/steamapps/common/ULTRAKILL/ULTRAKILL.exe'\0
Game process added : AppID 1229490 "/home/lelgenio/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1229490 -- /home/lelgenio/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/lelgenio/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0'/proton waitforexitandrun  '/home/lelgenio/Games/SteamLibrary/steamapps/common/ULTRAKILL/ULTRAKILL.exe'", ProcID 2184246, IP 0.0.0.0:0
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 2184252 != 2184247, skipping destruction (fork without exec?)
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to Completed with ""
No cached sticky mapping in DeactivateActionSetLayer.pressure-vessel-wrap[2184247]: W: Found more than one possible libdrm data directory from provider
/nix/store/261d2xwvkr913y0hxnvdpffi5b7css1k-gvfs-1.50.2/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_source_tag
Failed to load module: /nix/store/261d2xwvkr913y0hxnvdpffi5b7css1k-gvfs-1.50.2/lib/gio/modules/libgioremote-volume-monitor.so
/nix/store/261d2xwvkr913y0hxnvdpffi5b7css1k-gvfs-1.50.2/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_source_tag
Failed to load module: /nix/store/261d2xwvkr913y0hxnvdpffi5b7css1k-gvfs-1.50.2/lib/gio/modules/libgvfsdbus.so
/nix/store/9a9i436p6za6svxk4314jxkarjlr5p23-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: undefined symbol: g_hash_table_get_keys_as_array
Failed to load module: /nix/store/9a9i436p6za6svxk4314jxkarjlr5p23-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
fsync: up and running.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
ThreadGetProcessExitCode: no such process 2184400
ThreadGetProcessExitCode: no such process 2184398
ThreadGetProcessExitCode: no such process 2184394
ThreadGetProcessExitCode: no such process 2184393
ThreadGetProcessExitCode: no such process 2184250
Game process updated : AppID 1229490 "/home/lelgenio/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1229490 -- /home/lelgenio/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/lelgenio/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0'/proton waitforexitandrun  '/home/lelgenio/Games/SteamLibrary/steamapps/common/ULTRAKILL/ULTRAKILL.exe'", ProcID 2184399, IP 0.0.0.0:0
Setting breakpad minidump AppID = 1229490
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198161946297 [API loaded no]
[2023-01-28 11:39:51.503] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine-explorer.conf' [ not found ]
[2023-01-28 11:39:51.503] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/MangoHud.conf' [ not found ]
[2023-01-28 11:39:51.503] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine64-preloader.conf' [ not found ]
[2023-01-28 11:39:51.503] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
[2023-01-28 11:39:51.515] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine-explorer.conf' [ not found ]
[2023-01-28 11:39:51.515] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/MangoHud.conf' [ not found ]
[2023-01-28 11:39:51.515] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine64-preloader.conf' [ not found ]
[2023-01-28 11:39:51.515] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
ThreadGetProcessExitCode: no such process 2184407
[2023-01-28 11:39:52.617] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine-ULTRAKILL.conf' [ not found ]
[2023-01-28 11:39:52.617] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/MangoHud.conf' [ not found ]
[2023-01-28 11:39:52.617] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine64-preloader.conf' [ not found ]
[2023-01-28 11:39:52.617] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
[2023-01-28 11:39:52.690] [MANGOHUD] [error] [file_utils.cpp:43] Error opening directory '/sys/class/drm/card0-HDMI-A-1/device/hwmon/': No such file or directory
[2023-01-28 11:39:52.690] [MANGOHUD] [info] [overlay.cpp:768] Uploading is disabled (permit_upload = 0)
Fossilize INFO: Overriding serialization path: "/home/lelgenio/Games/SteamLibrary/steamapps/shadercache/1229490/fozpipelinesv6/steamapprun_pipeline_cache".
[2023-01-28 11:39:52.815] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine-ULTRAKILL.conf' [ not found ]
[2023-01-28 11:39:52.815] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/MangoHud.conf' [ not found ]
[2023-01-28 11:39:52.815] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine64-preloader.conf' [ not found ]
[2023-01-28 11:39:52.815] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
[2023-01-28 11:39:52.974] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine-ULTRAKILL.conf' [ not found ]
[2023-01-28 11:39:52.974] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/MangoHud.conf' [ not found ]
[2023-01-28 11:39:52.974] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine64-preloader.conf' [ not found ]
[2023-01-28 11:39:52.974] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
Installing breakpad exception handler for appid(steam)/version(1674790765)
[2023-01-28 11:39:54.218] [MANGOHUD] [error] [file_utils.cpp:43] Error opening directory '/sys/class/drm/card0-HDMI-A-1/device/hwmon/': No such file or directory
[2023-01-28 11:39:54.218] [MANGOHUD] [info] [overlay.cpp:768] Uploading is disabled (permit_upload = 0)
[2023-01-28 11:39:54.278] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine-ULTRAKILL.conf' [ not found ]
[2023-01-28 11:39:54.278] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/MangoHud.conf' [ not found ]
[2023-01-28 11:39:54.278] [MANGOHUD] [info] [config.cpp:118] skipping config: '/home/lelgenio/.config/MangoHud/wine64-preloader.conf' [ not found ]
[2023-01-28 11:39:54.278] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
[2023-01-28 11:39:55.218] [MANGOHUD] [error] [battery.cpp:29] No battery found
Installing breakpad exception handler for appid(gameoverlayui)/version(20221215212704)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(gameoverlayui)/version(1.0)
Installing breakpad exception handler for appid(steam)/version(1674790765)
ThreadGetProcessExitCode: no such process 2184776
ThreadGetProcessExitCode: no such process 2184533
ThreadGetProcessExitCode: no such process 2184511
ThreadGetProcessExitCode: no such process 2184441
ThreadGetProcessExitCode: no such process 2184434
ThreadGetProcessExitCode: no such process 2184412
ThreadGetProcessExitCode: no such process 2184409
ThreadGetProcessExitCode: no such process 2184399
ThreadGetProcessExitCode: no such process 2184392
pid 2184401 != 2184400, skipping destruction (fork without exec?)
Game process removed: AppID 1229490 "/home/lelgenio/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1229490 -- /home/lelgenio/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/lelgenio/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0'/proton waitforexitandrun  '/home/lelgenio/Games/SteamLibrary/steamapps/common/ULTRAKILL/ULTRAKILL.exe'", ProcID 2184530 
ThreadGetProcessExitCode: no such process 2184530
ThreadGetProcessExitCode: no such process 2184421
ThreadGetProcessExitCode: no such process 2184247
Uploaded AppInterfaceStats to Steam
Fossilize INFO: Setting autogroup scheduling.

(process:2184702): GLib-GObject-CRITICAL **: 11:40:05.398: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
[2023-01-28 11:39:35] Startup - updater built Dec 15 2022 21:26:49
[2023-01-28 11:39:35] Startup - Steam Client launched with: '/home/lelgenio/.local/share/Steam/ubuntu12_32/steam'
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2023-01-28 11:39:35] Loading cached metrics from disk (/home/lelgenio/.local/share/Steam/package/steam_client_metrics.bin)
[2023-01-28 11:39:35] Using the following download hosts for Public, Realm steamglobal
[2023-01-28 11:39:35] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-01-28 11:39:35] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-01-28 11:39:35] 3. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-01-28 11:39:35] Checking for update on startup
[2023-01-28 11:39:35] Verificando se há atualizações...
[2023-01-28 11:39:35] Downloading manifest: https://client-update.akamai.steamstatic.com/steam_client_ubuntu12
[2023-01-28 11:39:36] Manifest download: send request
[2023-01-28 11:39:36] Manifest download: waiting for download to finish
[2023-01-28 11:39:36] Manifest download: finished
[2023-01-28 11:39:36] Download skipped: /steam_client_ubuntu12 version 1674790765, installed version 1674790765, existing pending version 0
[2023-01-28 11:39:36] Nothing to do
[2023-01-28 11:39:36] Verificando a instalação...
[2023-01-28 11:39:36] Performing checksum verification of executable files
[2023-01-28 11:39:36] Verification complete
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xecd7f790
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xecd7e060

(steam:2183878): GLib-GObject-CRITICAL **: 11:40:09.262: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
crash_20230128114009_29.dmp[2185002]: Uploading dump (out-of-process)
/tmp/dumps/crash_20230128114009_29.dmp
/home/lelgenio/.local/share/Steam/steam.sh, linha 798: 2183878 Segmentation fault      (imagem do núcleo gravada)"$STEAMROOT/$STEAMEXEPATH" "$@"
crash_20230128114009_29.dmp[2185002]: Finished uploading minidump (out-of-process): success = yes
crash_20230128114009_29.dmp[2185002]: response: CrashID=bp-dc9c6a96-7c28-4cc1-836f-709e02230128
crash_20230128114009_29.dmp[2185002]: file ''/tmp/dumps/crash_20230128114009_29.dmp'', upload yes: ''CrashID=bp-dc9c6a96-7c28-4cc1-836f-709e02230128''


Problematic log

steam.sh[2185132]: Running Steam on nixos 22.11 64-bit
steam.sh[2185132]: STEAM_RUNTIME is enabled automatically
setup.sh[2185210]: Steam runtime environment up-to-date!
run.sh[2185222]: Warning: An unexpected error occurred while executing "/sbin/ldconfig -XNv", the exit status was 127
steam.sh[2185132]: Steam client's requirements are satisfied
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Loaded SDL version 2.27.0-p7692409
ComputeStartupMode: found registry default startup mode: 0Installing breakpad exception handler for appid(steam)/version(1674790765)
steamwebhelper.sh[2185266]: Runtime for steamwebhelper: defaulting to /home/lelgenio/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[2185266]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
CAppInfoCacheReadFromDiskThread took 101 milliseconds to initialize
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)
Installing breakpad exception handler for appid(steam)/version(1674790765)

(steam:2185245): Gtk-WARNING **: 11:40:20.433: gtk_disable_setlocale() must be called before gtk_init()
Installing breakpad exception handler for appid(steam)/version(1674790765)
Local Device Found
  type: 054c 09cc
  path: /dev/hidraw4
  serial_number: 84:30:95:97:1a:79 - 0
  Manufacturer: Sony Interactive Entertainment
  Product:      Wireless Controller
  Release:      100
  Interface:    3

!! Steam controller device opened for index 0.
Installing breakpad exception handler for appid(steam)/version(1674790765)
[2023-01-28 11:40:21.421] [MANGOHUD] [info] [blacklist.cpp:49] process 'vulkandriverquery' is blacklisted in MangoHud
[2023-01-28 11:40:21.421] [MANGOHUD] [info] [blacklist.cpp:49] process 'vulkandriverquery' is blacklisted in MangoHud
[2023-01-28 11:40:21.425] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
local (potentially out of sync) copy of roaming config loaded - 3091 bytes.
Installing breakpad exception handler for appid(steam)/version(1674790765)
[2023-01-28 11:40:21.968] [MANGOHUD] [info] [blacklist.cpp:49] process 'vulkandriverquery' is blacklisted in MangoHud
[2023-01-28 11:40:21.968] [MANGOHUD] [info] [blacklist.cpp:49] process 'vulkandriverquery' is blacklisted in MangoHud
[2023-01-28 11:40:21.971] [MANGOHUD] [info] [config.cpp:123] parsing config: '/home/lelgenio/.config/MangoHud/MangoHud.conf'
roaming config store loaded successfully - 3091 bytes.
migrating temporary roaming config store
Fossilize INFO: Setting autogroup scheduling.
Installing breakpad exception handler for appid(steam)/version(1674790765)
BRefreshApplicationsInLibrary 1: 1ms
Installing breakpad exception handler for appid(steam)/version(1674790765)
Failed to init SteamVR because it isn't installed
ExecCommandLine: "'/home/lelgenio/.local/share/Steam/ubuntu12_32/steam'"
System startup time: 3.25 seconds
BuildCompleteAppOverviewChange: 363 apps

(steam:2185245): Gtk-WARNING **: 11:40:24.471: gtk_disable_setlocale() must be called before gtk_init()
RegisterForAppOverview 1: 6ms
RegisterForAppOverview 2: 6ms
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to SynchronizingCloud with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to SynchronizingControllerConfig with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 1229490, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0/home/lelgenio/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1229490 -- /home/lelgenio/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/lelgenio/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0'/proton waitforexitandrun  '/home/lelgenio/Games/SteamLibrary/steamapps/common/ULTRAKILL/ULTRAKILL.exe'\0
Game process added : AppID 1229490 "/home/lelgenio/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1229490 -- /home/lelgenio/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/lelgenio/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0'/proton waitforexitandrun  '/home/lelgenio/Games/SteamLibrary/steamapps/common/ULTRAKILL/ULTRAKILL.exe'", ProcID 2186196, IP 0.0.0.0:0
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/lelgenio/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 2186202 != 2186197, skipping destruction (fork without exec?)
GameAction [AppID 1229490, ActionID 1] : LaunchApp changed task to Completed with ""

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.

(steam:2185245): LIBDBUSMENU-GLIB-WARNING **: 11:40:39.286: Trying to remove a child that doesn't believe we're it's parent.
No cached sticky mapping in DeactivateActionSetLayer.pressure-vessel-wrap[2186197]: W: Found more than one possible libdrm data directory from provider
/nix/store/261d2xwvkr913y0hxnvdpffi5b7css1k-gvfs-1.50.2/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_source_tag
Failed to load module: /nix/store/261d2xwvkr913y0hxnvdpffi5b7css1k-gvfs-1.50.2/lib/gio/modules/libgioremote-volume-monitor.so
/nix/store/261d2xwvkr913y0hxnvdpffi5b7css1k-gvfs-1.50.2/lib/gvfs/libgvfscommon.so: undefined symbol: g_task_set_source_tag
Failed to load module: /nix/store/261d2xwvkr913y0hxnvdpffi5b7css1k-gvfs-1.50.2/lib/gio/modules/libgvfsdbus.so
/nix/store/9a9i436p6za6svxk4314jxkarjlr5p23-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so: undefined symbol: g_hash_table_get_keys_as_array
Failed to load module: /nix/store/9a9i436p6za6svxk4314jxkarjlr5p23-dconf-0.40.0-lib/lib/gio/modules/libdconfsettings.so
bwrap: Can't bind mount /oldroot/etc/group on /newroot/etc/group: Unable to mount source on destination: No such file or directory
Game process removed: AppID 1229490 "/home/lelgenio/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1229490 -- /home/lelgenio/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/lelgenio/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/lelgenio/.local/share/Steam/steamapps/common/Proton 7.0'/proton waitforexitandrun  '/home/lelgenio/Games/SteamLibrary/steamapps/common/ULTRAKILL/ULTRAKILL.exe'", ProcID 2186196 
ThreadGetProcessExitCode: no such process 2186200
ThreadGetProcessExitCode: no such process 2186197
Uploaded AppInterfaceStats to Steam
Fossilize INFO: Setting autogroup scheduling.
Installing breakpad exception handler for appid(steam)/version(1674790765)
[2023-01-28 11:40:18] Startup - updater built Dec 15 2022 21:26:49
[2023-01-28 11:40:18] Startup - Steam Client launched with: '/home/lelgenio/.local/share/Steam/ubuntu12_32/steam'
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2023-01-28 11:40:19] Loading cached metrics from disk (/home/lelgenio/.local/share/Steam/package/steam_client_metrics.bin)
[2023-01-28 11:40:19] Using the following download hosts for Public, Realm steamglobal
[2023-01-28 11:40:19] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-01-28 11:40:19] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-01-28 11:40:19] 3. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-01-28 11:40:19] Checking for update on startup
[2023-01-28 11:40:19] Verificando se há atualizações...
[2023-01-28 11:40:19] Downloading manifest: https://client-update.akamai.steamstatic.com/steam_client_ubuntu12
[2023-01-28 11:40:19] Manifest download: send request
[2023-01-28 11:40:19] Manifest download: waiting for download to finish
[2023-01-28 11:40:19] Manifest download: finished
[2023-01-28 11:40:19] Download skipped: /steam_client_ubuntu12 version 1674790765, installed version 1674790765, existing pending version 0
[2023-01-28 11:40:19] Nothing to do
[2023-01-28 11:40:19] Verificando a instalação...
[2023-01-28 11:40:19] Performing checksum verification of executable files
[2023-01-28 11:40:19] Verification complete
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xecf08790
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xecf07060

(steam:2185245): GLib-GObject-CRITICAL **: 11:40:47.292: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
crash_20230128114047_29.dmp[2186400]: Uploading dump (out-of-process)
/tmp/dumps/crash_20230128114047_29.dmp
/home/lelgenio/.local/share/Steam/steam.sh, linha 798: 2185245 Segmentation fault      (imagem do núcleo gravada)"$STEAMROOT/$STEAMEXEPATH" "$@"
crash_20230128114047_29.dmp[2186400]: Finished uploading minidump (out-of-process): success = yes
crash_20230128114047_29.dmp[2186400]: response: CrashID=bp-4c7d88f1-3f01-4fe6-9709-421592230128
crash_20230128114047_29.dmp[2186400]: file ''/tmp/dumps/crash_20230128114047_29.dmp'', upload yes: ''CrashID=bp-4c7d88f1-3f01-4fe6-9709-421592230128''


Notify maintainers

As this is not a serious bug, I will not ping anyone.

Metadata

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

lelgenio commented 1 year ago

I think the issue here is that the activation script creates new files instead of replacing the contents of existing files, making a new inode, and so the file that is bind mouted inside the fhsenv no longer "exists"

Example of changing inode


$ stat /etc/group
  File: /etc/group
  Size: 981         Blocks: 8          IO Block: 4096   regular file
Device: 0,34    Inode: 187963323   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-08-04 12:34:38.540403715 -0300
Modify: 2023-08-04 12:34:38.540403715 -0300
Change: 2023-08-04 12:34:38.540403715 -0300
 Birth: 2023-08-04 12:34:38.540403715 -0300

$ sudo /run/current-system/activate
setting up /etc...

$ stat /etc/group
  File: /etc/group
  Size: 981         Blocks: 8          IO Block: 4096   regular file
Device: 0,34    Inode: 187963495   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-08-04 12:45:08.785164823 -0300
Modify: 2023-08-04 12:45:08.785164823 -0300
Change: 2023-08-04 12:45:08.785164823 -0300
 Birth: 2023-08-04 12:45:08.785164823 -0300


lelgenio commented 1 year ago

Hack 2: Disabling atomic writes during activation.

diff --git a/nixos/modules/config/update-users-groups.pl b/nixos/modules/config/update-users-groups.pl
index 54352a517a24..ead0ebbd2893 100644
--- a/nixos/modules/config/update-users-groups.pl
+++ b/nixos/modules/config/update-users-groups.pl
@@ -19,7 +19,7 @@ make_path("/var/lib/nixos", { mode => 0755 }) unless $is_dry;
 sub updateFile {
     my ($path, $contents, $perms) = @_;
     return if $is_dry;
-    write_file($path, { atomic => 1, binmode => ':utf8', perms => $perms // 0644 }, $contents) or die;
+    write_file($path, { atomic => 0, binmode => ':utf8', perms => $perms // 0644 }, $contents) or die;
 }

 sub nscdInvalidate {
lelgenio commented 1 year ago

Link that explains why this issue occurs: https://unix.stackexchange.com/questions/537095/why-does-bind-mounting-a-file-after-unlink-fail-with-enoent

lelgenio commented 1 year ago

Much simpler way to reproduce:

# terminal 1

$ steam-run bash

[lelgenio@monolith:~]$ grep /nixos/etc /proc/self/mountinfo
1008 909 0:32 /nixos/etc/nix /etc/nix ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1009 909 0:32 /nixos/etc/passwd /etc/passwd ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1010 909 0:32 /nixos/etc/group /etc/group ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1011 909 0:32 /nixos/etc/shadow /etc/shadow ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1012 909 0:32 /nixos/etc/resolv.conf /etc/resolv.conf ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1013 909 0:32 /nixos/etc/profiles /etc/profiles ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1014 909 0:32 /nixos/etc/sudoers /etc/sudoers ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1015 909 0:32 /nixos/etc/machine-id /etc/machine-id ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1016 909 0:32 /nixos/etc/alsa /etc/alsa ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1017 909 0:32 /nixos/etc/ssl/certs /etc/ssl/certs ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1018 909 0:32 /nixos/etc/pki /etc/pki ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos

[lelgenio@monolith:~]$ steam-run bash

[lelgenio@monolith:~]$ echo two layers of bubblewrap, working fine
two layers of bubblewrap, working fine

[lelgenio@monolith:~]$ exit
exit

[lelgenio@monolith:~]$ echo one layer into bubblewrap, still fine
one layer into bubblewrap, still fine

# terminal 2
$ sudo nixos-rebuild switch --flake blah
....
setting up /etc...
reloading user units for lelgenio...
setting up tmpfiles

# back to terminal 1
[lelgenio@monolith:~]$ grep /nixos/etc /proc/self/mountinfo
1008 909 0:32 /nixos/etc/nix /etc/nix ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1009 909 0:32 /nixos/etc/passwd//deleted /etc/passwd ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1010 909 0:32 /nixos/etc/group//deleted /etc/group ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1011 909 0:32 /nixos/etc/shadow//deleted /etc/shadow ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1012 909 0:32 /nixos/etc/resolv.conf /etc/resolv.conf ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1013 909 0:32 /nixos/etc/profiles /etc/profiles ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1014 909 0:32 /nixos/etc/sudoers//deleted /etc/sudoers ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1015 909 0:32 /nixos/etc/machine-id /etc/machine-id ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1016 909 0:32 /nixos/etc/alsa /etc/alsa ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1017 909 0:32 /nixos/etc/ssl/certs /etc/ssl/certs ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos
1018 909 0:32 /nixos/etc/pki /etc/pki ro,nosuid,nodev,noatime master:1 - btrfs /dev/dm-0 rw,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=1593,subvol=/nixos

[lelgenio@monolith:~]$ echo Notice how some files are marked as //deleted
Notice how some files are marked as //deleted

[lelgenio@monolith:~]$ steam-run bash
bwrap: Can't bind mount /oldroot/etc/passwd on /newroot/etc/passwd: Unable to mount source on destination: No such file or directory
tejing1 commented 10 months ago

I've been brainstorming potentially clean solutions to this. Here are few, some of which probably don't work because of permission issues around user namespaces I don't know about, or requirements of pressure-vessel I don't know about:

In short, testing is needed. I've got other things going on, but I'll probably get to doing some before too long.

lelgenio commented 10 months ago

@tejing1 Looking more into the linked stack-exchange post, I'm feeling more and more that the kernel is misbehaving by not allowing the bind mount. I'll try allowing unlinked sources to be mounted, just to check what happens.

tejing1 commented 10 months ago

It does seem like the kernel really shouldn't be preventing this, yes.

But it would still be preferable for changes to /etc to propagate to existing FHS environments, which they wouldn't even if the kernel allowed the bind mounts.

tejing1 commented 9 months ago

Just had some time to work on this, and my first 2 ideas didn't go anywhere, but mounting the host's /etc elsewhere in the container, and symlinking things to it, seems to work great. Should have a PR soon, fixing this and a few other things.