Name the softfp world so makepkg can build in it - #184
Merged
Conversation
makepkg turns CARCH into shell variable names -- depends_$CARCH,
provides_$CARCH and five more -- so a world name with a hyphen in it is
not a name makepkg can use. With CARCH=vita-softfp, bash reads
${provides_vita-softfp[@]} as ${provides_vita-...}: the variable
provides_vita with the default value 'softfp[@]'. It appends that
literal string to all seven arrays, and then the matching unset fails
because the identifier is invalid and makepkg aborts.
The abort is what saved us. Without it every softfp package would have
shipped with a fabricated depends=softfp[@].
pacman assumes architectures are identifiers -- x86_64, aarch64, armv7h
-- and never says so, because nobody had used a hyphen. So the world is
vita_softfp now, and Profiles.cmake refuses any name that would break
the same way.
frangarcj
added a commit
to vitasdk/vitasdk-autobuild
that referenced
this pull request
Aug 28, 2026
makepkg builds shell variable names out of CARCH, so nothing could be built for a world whose name has a hyphen in it -- see vitasdk/buildscripts#184 for what bash does with depends_vita-softfp. The core moves with the name: sdk-vita_softfp-snapshot-20260828.667.1 stamps CARCH="vita_softfp" in bin/makepkg.conf and names the same world in version_info.txt. Nothing was ever built against the old one.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No package can be built in the softfp world today. The first attempt was this morning —
32e026cin vitasdk-autobuild put softfp in the try-build matrix — and both packages tried since died the same way before compiling anything:Why
merge_arch_attrs()in makepkg builds shell variable names out ofCARCH:A hyphen makes that name unusable, and bash does not say so — it reads
${provides_vita-softfp[@]}as${provides_vita-...}: the variableprovides_vita, the-default-value operator, and the wordsoftfp[@].So the literal string
softfp[@]lands in all seven arrays —provides,conflicts,depends,replaces,optdepends,makedepends,checkdepends— and then theunsetfails and makepkg aborts.The abort is the lucky part. Without it every softfp package would have shipped with a fabricated
depends=softfp[@].pacman assumes architectures are identifiers and never says so:
x86_64,aarch64,armv7h,i686— nobody had reached for a hyphen.What changes
The world is
vita_softfp, andProfiles.cmakenow refuses any profile name that would break the same way. The tag, repository and channel names are separate fields and keep their hyphens.The published softfp core has
CARCH="vita-softfp"stamped inbin/makepkg.conf, so it has to be rebuilt — it is a nightly, and nothing has been built against it.🤖 Generated with Claude Code