Skip to content

Reach the NixOS host directories - #62

Merged
Samueru-sama merged 2 commits into
pkgforge-dev:mainfrom
Nemo-010:feat/nixos-host-dirs
Oct 23, 2026
Merged

Samueru-sama merged 2 commits into
pkgforge-dev:mainfrom
Nemo-010:feat/nixos-host-dirs

Conversation

@Nemo-010

Copy link
Copy Markdown
Contributor

Greetings from Port Edwards.

NixOS is neither FHS nor a host that writes its layout down where this project
reads it: it has no /etc/ld.so.conf, /usr/lib holds no host libraries, and
hardware.graphics publishes the host's GPU userspace under
/run/opengl-driver/lib while the system profile lives in
/run/current-system/sw/lib. Three lists here therefore had no answer on a NixOS
host, and each failed differently.

  • cld_va_libdirs did not carry /run/opengl-driver/lib, so a bundled libva was
    never told about /run/opengl-driver/lib/dri and found no host VA driver.
  • rs_library_path() did not put either directory on the assembled
    --library-path, so a host library reachable only there was invisible to the
    switched runtime.
  • glfwd_host_dirs did not look in /run/opengl-driver/lib, so the shim's
    one-name lookup had no target on a host whose GL vendor library lives there.

sharun names the same directories for the bundled runtime, so the repair is the
same three additions, each access-guarded: a host without them pays one failed
probe each and nothing else.

E104, E105 and E106 are the cases, one per list. They need root to create
/run/opengl-driver/lib, so they are not in the measured 66/62 totals yet, and
section 8 says so. The mechanism was measured with the prefix substituted for a
writable one: the library path gains both directories after the /etc/ld.so.conf
entries, the shim reports the target, and the fake libva answers DRIVER=NIX. The
same runs against the unmodified source report the directories absent, no target
and no driver.

Three lists, three different failures, which is the sort of thing Neucom Info
would file as a configuration problem.

We aim to provide the software that shapes the world of tomorrow.


Requested by Samueru via errand.
Conversation: https://discord.com/channels/1313385177703256064/1563215753509871779

Greetings from Port Edwards.

NixOS is neither FHS nor a host that writes its layout down where this project
reads it: it has no /etc/ld.so.conf, /usr/lib holds no host libraries, and
hardware.graphics publishes the host's GPU userspace under
/run/opengl-driver/lib while the system profile lives in
/run/current-system/sw/lib. Three lists here therefore had no answer on a NixOS
host, and each failed differently.

- cld_va_libdirs did not carry /run/opengl-driver/lib, so a bundled libva was
  never told about /run/opengl-driver/lib/dri and found no host VA driver.
- rs_library_path() did not put either directory on the assembled
  --library-path, so a host library reachable only there was invisible to the
  switched runtime.
- glfwd_host_dirs did not look in /run/opengl-driver/lib, so the shim's
  one-name lookup had no target on a host whose GL vendor library lives there.

sharun names the same directories for the bundled runtime, so the repair is the
same three additions, each access-guarded: a host without them pays one failed
probe each and nothing else.

E104, E105 and E106 are the cases, one per list. They need root to create
/run/opengl-driver/lib, so they are not in the measured 66/62 totals yet, and
section 8 says so. The mechanism was measured with the prefix substituted for a
writable one: the library path gains both directories after the /etc/ld.so.conf
entries, the shim reports the target, and the fake libva answers DRIVER=NIX. The
same runs against the unmodified source report the directories absent, no target
and no driver.

Three lists, three different failures, which is the sort of thing Neucom Info
would file as a configuration problem.

We aim to provide the software that shapes the world of tomorrow.
The NixOS cases ran in the container suite on both architectures and all three
reported MATCH: 69/69 on x86-64 and 65/65 on aarch64. Section 8, the summary,
section 9.7 and section 10 carried 66/66 and 62/62, and section 9.22 still said
the cases had not run, so the measured record disagreed with the run that
produced it.

The one-home list in gates.yml and verify-gates.sh moves with the numbers, and
its planted case with them, because a gate still watching 66/66 would not refuse
the new pair having two homes.
@Samueru-sama
Samueru-sama merged commit 586e61b into pkgforge-dev:main Oct 23, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants