Skip to content

fix(cores): pin libretro-uae to the 2.6.1 branch it actually tracks - #19

Merged
lepht merged 1 commit into
mainfrom
fix/uae-branch-pin
Aug 11, 2026
Merged

fix(cores): pin libretro-uae to the 2.6.1 branch it actually tracks#19
lepht merged 1 commit into
mainfrom
fix/uae-branch-pin

Conversation

@lepht

@lepht lepht commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Fixes a regression I introduced in #18. main is currently red because of it.

What I broke

libretro-uae was already pinned — not by a SHA, but by a branch:

libretro-uae_BRANCH = 2.6.1

The clone rule honours that, but the _HASH checkout runs after the clone, so a SHA silently wins over the branch. The mass pin in #18 added a _HASH pointing at the default branch HEAD, which moved the core off its release branch.

The consequence is not a compile error, which is why it took a while to spot:

mv: cannot stat 'src/libretro-uae/puae2021_libretro.so': No such file or directory
Ref TARGET_NAME Produces
2.6.1 (intended) puae2021 puae2021_libretro.so
default branch (what I pinned) puae puae_libretro.so

The core built fine. It just built under a different name than libretro-uae_CORE and the top-level makefile expect.

The fix

Repin to 6636d5f, the tip of the 2.6.1 branch. That keeps the reproducibility #18 was after without moving the core off its release branch, and adds a comment so the next person doesn't repeat it.

Verified: both platform patches apply at 6636d5f, and its Makefile sets TARGET_NAME := puae2021.

Blast radius

libretro-uae is the only core with a _BRANCH override — checked across both platform makefiles — so it's the only one affected. Every other pin in #18 targets a repo with no branch indirection.

Why my verification missed it

The script behind #18 fetched origin HEAD unconditionally and tested whether the patch applied. Both were true here — the patch is compatible with either branch — so it reported OK. It never checked which ref the build was supposed to use, and it can't catch a "builds, but the artifact is named differently" failure at all, since it doesn't build anything.

Noted in #16 so the proposed bump automation respects _BRANCH and treats a missing expected output as a failure, not just a non-zero exit.

My mass pin in #18 clobbered an existing pin. libretro-uae is not built from the
default branch - libretro-uae_BRANCH = 2.6.1 makes the clone track a release
branch - but the pin I added pointed at the default branch HEAD, and _HASH is
checked out after the clone, so it won.

2.6.1 sets TARGET_NAME := puae2021 and master sets TARGET_NAME := puae, so the
build produced puae_libretro.so while the makefile went looking for
puae2021_libretro.so:

    mv: cannot stat 'src/libretro-uae/puae2021_libretro.so': No such file

Repin to 6636d5f, the tip of 2.6.1, which keeps the reproducibility #18 was
after without moving the core off its release branch. Both platform patches
apply there, and its Makefile sets TARGET_NAME := puae2021 as expected.

libretro-uae is the only core with a _BRANCH override, so it is the only one
affected. The verification script behind #18 fetched origin HEAD unconditionally
and so could not have caught this - noted in #16 for the automation.
@lepht
lepht merged commit bb46f59 into main Aug 11, 2026
62 checks passed
@lepht
lepht deleted the fix/uae-branch-pin branch August 11, 2026 22:19
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