Skip to content

feat(xpkg): 0.0.54 — interposer farm-first RPATH and vendor closure assertion - #178

Merged
Sunrisepeak merged 1 commit into
mainfrom
feat/xpkg-0.0.54
Aug 6, 2026
Merged

feat(xpkg): 0.0.54 — interposer farm-first RPATH and vendor closure assertion#178
Sunrisepeak merged 1 commit into
mainfrom
feat/xpkg-0.0.54

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

openxlings/libxpkg#38. Two changes to host_link_interposer:

  • The subos lib directory -- the one name that does not move, a symlink farm the
    packages declare into -- goes FIRST in the RPATH, with the resolver's
    version-pinned payload directories after it as the fallback. Written into an
    ELF, the old order was a snapshot: upgrade libX11 and every entry still named
    1.8.10. Every ecosystem that hands a foreign driver a search path converged on
    a stable indirection directory (/run/opengl-driver, /overrides,
    $SNAP/gpu-2404); we had one at the wrong end of the list.

  • The vendor's own DT_NEEDED closure is resolved against the final RPATH and the
    fraction reported. The three existing assertions check the shape of the object
    we made, and all three can hold while an RPATH naming the wrong directories
    sends the vendor's dependencies to the host -- which still renders, on
    llvmpipe, and prints nothing.

Entry added to all three platform blocks. A bump landing in only one xpm.
reads as "not found" on the others, which both index repos now enforce in CI.

CN asset published with gtc and verified by GET (HEAD answers 401): byte-identical
to the GitHub tag tarball, sha256 5fec15183be54a0a6d937da2289340da21fb42a023e68a975dfc43eb523391ef.

…ssertion

openxlings/libxpkg#38. Two changes to host_link_interposer:

* The subos lib directory -- the one name that does not move, a symlink farm the
  packages declare into -- goes FIRST in the RPATH, with the resolver's
  version-pinned payload directories after it as the fallback. Written into an
  ELF, the old order was a snapshot: upgrade libX11 and every entry still named
  1.8.10. Every ecosystem that hands a foreign driver a search path converged on
  a stable indirection directory (/run/opengl-driver, /overrides,
  $SNAP/gpu-2404); we had one at the wrong end of the list.

* The vendor's own DT_NEEDED closure is resolved against the final RPATH and the
  fraction reported. The three existing assertions check the shape of the object
  we made, and all three can hold while an RPATH naming the wrong directories
  sends the vendor's dependencies to the host -- which still renders, on
  llvmpipe, and prints nothing.

Entry added to all three platform blocks. A bump landing in only one xpm.<platform>
reads as "not found" on the others, which both index repos now enforce in CI.

CN asset published with gtc and verified by GET (HEAD answers 401): byte-identical
to the GitHub tag tarball, sha256 5fec15183be54a0a6d937da2289340da21fb42a023e68a975dfc43eb523391ef.
@Sunrisepeak
Sunrisepeak merged commit 0374b3f into main Aug 6, 2026
5 checks passed
@Sunrisepeak
Sunrisepeak deleted the feat/xpkg-0.0.54 branch August 6, 2026 23:51
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.

1 participant