Skip to content

Commit 9864820

Browse files
fdcastelclaude
andcommitted
docs: record D-015 — FB3/FB4 arm64 tarballs are Android, not Linux
Per asfernandes in #38, the `.arm64.tar.gz` assets for FB3/FB4 are Android builds with a misleading filename. Linux ARM* packaging only starts at FB5. Tightens the code comment at the `-ge 5` gate in `Update-Assets` and adds a D-015 entry in DECISIONS.md so the rationale for the gate lives in the customary place (the previous code comment framed this as a fixable "packaging layout" inconsistency, which the upstream answer ruled out). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent e4f6cd1 commit 9864820

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

DECISIONS.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,9 @@ Decisions made during the v2 rewrite, with rationale.
9191
**Decision:** The `generated/` directory is committed to the repository. After a successful publish, a workflow job (`update-repo`) regenerates the Dockerfiles and README and auto-commits any changes with `[skip ci]`.
9292

9393
**Rationale:** README links to per-variant `Dockerfile`s (e.g. `generated/5.0.4/trixie/Dockerfile`) need valid targets on GitHub. Keeping the output in git guarantees the links work without requiring contributors to regenerate locally. Auto-commit prevents drift: the committed files always reflect the last successful publish. Contributors must not edit `generated/` by hand — run `Invoke-Build Prepare` to regenerate. The `[skip ci]` marker on the auto-commit prevents a trigger loop.
94+
95+
## D-015: No ARM64 for Firebird 3.x / 4.x
96+
97+
**Decision:** The ARM64 discovery gate in `Update-Assets` is `$majorVersion -ge 5`. FB3 and FB4 are published as amd64-only, even though `.arm64.tar.gz` assets exist in their GitHub releases.
98+
99+
**Rationale:** The FB3/FB4 `.arm64.tar.gz` files are **Android builds with a misleading filename**, not Linux ARM64 — confirmed by asfernandes in [FirebirdSQL/firebird-docker#38](https://github.com/FirebirdSQL/firebird-docker/issues/38): "These are Android builds manually built by Alex. Names are very misleading. But better names were introduced in v5 only, as well Linux ARM* packages." Their internal layout reflects this (pre-extracted `firebird/` tree with `AfterUntar.sh`, no `install.sh`), which is why our Dockerfile template cannot consume them — but the deeper reason is that they are fundamentally the wrong binaries for a Linux container. No upstream packaging fix will change this for existing FB3/FB4 releases; any future "teach the template two install paths" workaround would install Android binaries on Linux and must be rejected. When FB3.x or FB4.x ships a future point release with a true Linux ARM64 bundle, the gate can be widened on a per-version basis.

firebird-docker.build.ps1

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,9 @@ task Update-Assets {
8282
}
8383
}
8484

85-
# Get arm64 release (FB5+ only). FB3 and FB4 ship arm64 tarballs but
86-
# use a different layout (pre-extracted `firebird/` root with
87-
# AfterUntar.sh instead of an `install.sh` installer), which our
88-
# Dockerfile template can't consume — so we intentionally skip them
89-
# and keep FB3/FB4 as amd64-only.
85+
# Get arm64 release (FB5+ only). FB3/FB4 `.arm64.tar.gz` assets are
86+
# Android builds with a misleading name (per asfernandes, FirebirdSQL/firebird-docker#38),
87+
# not Linux ARM64 — Linux ARM* packaging starts at FB5. See DECISIONS.md D-015.
9088
if ($majorVersion -ge 5) {
9189
try {
9290
$arm64 = Find-FirebirdRelease -Version ([semver]"$version") -RuntimeIdentifier 'linux-arm64'

0 commit comments

Comments
 (0)