Skip to content

fix(ci): restore the macOS Intel leg after Homebrew dropped the platform - #1373

Merged
got3nks merged 1 commit into
amule-org:masterfrom
got3nks:fix/macos-intel-bottle-pins
Sep 11, 2026
Merged

fix(ci): restore the macOS Intel leg after Homebrew dropped the platform#1373
got3nks merged 1 commit into
amule-org:masterfrom
got3nks:fix/macos-intel-bottle-pins

Conversation

@got3nks

@got3nks got3nks commented Sep 11, 2026

Copy link
Copy Markdown

The macOS .app (x86_64) packaging job has been failing since 2026-09-11 08:00 UTC. Two unrelated Homebrew changes landed overnight and this restores the leg against both. Nothing here touches the arm64 leg, which stayed green throughout.

The installer stopped supporting Intel

Homebrew/install#1140 merged at 07:10 UTC and made install.sh abort before it creates the prefix:

Homebrew on macOS is only supported on Apple Silicon processors!

Because the workflow fetched the installer from HEAD, it adopted that the moment it landed. The job died at step 3, before any source was read, which is why the failure had nothing to do with the commits it appeared on. The first failing run was 07:59 UTC, 49 minutes after the merge.

The installer is now pinned to df3c2556, the last commit that installs to /usr/local. Pinning a ref also removes a fetch-HEAD-and-pipe-to-bash hazard that was there regardless.

Eight more formulae lost their Intel bottles

Homebrew has reduced Intel macOS to Tier 3 and dropped its Intel CI, so a formula loses its Intel bottle the next time it is revised. wxwidgets lost its at 01:56 UTC the same night. The workflow already source-built pcre2 and openssl@3 for exactly this reason; the list now covers every formula in the dependency closure that has no Intel bottle:

aom  jpeg-turbo  json-c  libmaxminddb  libtiff  libupnp  lz4  pkgconf  wxwidgets

pkgconf is there as a build dependency rather than a runtime one: aom, libmaxminddb and wxwidgets all need it to build and it has no Intel bottle either, so leaving it implicit risks the same abort one level down.

The list was derived by walking the full 35-formula closure, runtime dependencies throughout plus build dependencies for anything compiled, and checking each against the published bottle tags. Eleven formulae have no Intel bottle and all eleven are covered.

What this costs

A cold cache now pays for ten source builds instead of two, with aom and wxwidgets the expensive additions. The kegs are cached on the resolved versions, so only a version bump pays it again. Everything lands at its current version, so the two slices of the Universal2 build stay matched and openssl@3 keeps current CVE fixes.

A dead end worth recording

Pouring the last published Intel bottle from ghcr.io looks like it should work and does not. Bottles carry @@HOMEBREW_PREFIX@@ in every install name, and Homebrew rewrites it during its own pour with a Mach-O edit and a re-sign. An untarred bottle unpacks cleanly, passes its checksum, contains the right architecture, and is silently broken until something links against it. There is a comment in the workflow recording this so it does not get retried.

Longer term

This is a bridge, not a destination. Homebrew's own notice now points Intel users at MacPorts, Apple dropped Intel in macOS 27, and GitHub retires the Intel runners in 2027. Whether aMule keeps shipping an Intel slice is a separate decision; this change keeps packaging green while that gets made.

Two independent breakages landed overnight on 2026-09-11.

install.sh now aborts with "Homebrew on macOS is only supported on Apple
Silicon processors!" before it creates /usr/local, so the Rosetta
bootstrap fails at step 3 and no source is ever read. Pin the installer
to df3c2556, the last commit that installs to that prefix. Pinning also
removes a fetch-HEAD-and-pipe-to-bash hazard.

Separately, aom, jpeg-turbo, json-c, libmaxminddb, libtiff, libupnp, lz4
and wxwidgets have all lost their Intel bottles as Homebrew retires the
platform, joining pcre2 and openssl@3. Build them from source alongside
the two, cache the kegs, and relink each one after a cache restore.

Pouring the last published Intel bottle from ghcr instead was tried and
does not work: bottles carry @@HOMEBREW_PREFIX@@ in every install name
and Homebrew rewrites it during its own pour with a Mach-O edit and a
re-sign, so an untarred bottle is silently broken. The comment records
this so the next person does not repeat it.
@got3nks
got3nks merged commit 1044e54 into amule-org:master Sep 11, 2026
5 checks passed
@got3nks
got3nks deleted the fix/macos-intel-bottle-pins branch September 11, 2026 15:28
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