Skip to content

feat(xpkg): 0.0.49 - #156

Merged
Sunrisepeak merged 2 commits into
mainfrom
feat/xpkg-0.0.49
Aug 5, 2026
Merged

feat(xpkg): 0.0.49#156
Sunrisepeak merged 2 commits into
mainfrom
feat/xpkg-0.0.49

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

libxpkg 0.0.49 — a dependency's version range was joined as a directory name, so a consumer's RUNPATH and INTERP could come from different versions of the same package. With two glibc versions in one home that produces a binary which segfaults before main with no diagnostic. See openxlings/libxpkg#33.

Both mirrors verified byte-identical.

Dependency version ranges in a recipe were joined as directory names, so a
consumer's RUNPATH and its INTERP could come from different versions of the
same package — a binary that segfaults before main with no diagnostic. See
openxlings/libxpkg#33.

Published to both mirrors and verified byte-identical.
@Sunrisepeak
Sunrisepeak merged commit 0aa15e6 into main Aug 5, 2026
5 checks passed
@Sunrisepeak
Sunrisepeak deleted the feat/xpkg-0.0.49 branch August 5, 2026 14:41
Sunrisepeak added a commit that referenced this pull request Aug 5, 2026
…ry (#160)

`mcpplibs.xpkg@0.0.48` stopped resolving — openxlings/xlings#486. The index
file parses as valid Lua, which is why nothing caught it: the damage is
semantic, not syntactic.

0.0.49's entry lost its `sha256` line and its closing brace, so every entry
below it became a FIELD OF 0.0.49 rather than a sibling:

    ["0.0.49"] = {
        url = { ... },
    ["0.0.48"] = { ... },        <- nested
    ["0.0.47"] = { ... },        <- nested
            sha256 = "45f23...", <- 0.0.49's, orphaned down here
    },

Lua reads that happily. `xlings info mcpplibs:xpkg` then listed
0.0.50, 0.0.49, 0.0.46, 0.0.45 — with 0.0.47 and 0.0.48 simply absent, and
absent reads exactly like never published.

Mine, from #156: the reorder that moved 0.0.49 to the top of the list used a
non-greedy regex, which stopped at the closing brace of the nested `url`
table instead of the entry's own. Half the entry moved; the tail stayed.

Verified by parsing the file with lua5.4 and enumerating the keys — 9 versions
before, 11 after. A structural check is the only thing that would have caught
this, since every text-level check passes.
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