From 7904c072b2702b82ea796a0b8e97d7335b394ff7 Mon Sep 17 00:00:00 2001 From: Luke Craig Date: Mon, 8 Jun 2026 00:48:51 -0400 Subject: [PATCH] Use canonical arch names only; drop colliding compat aliases The arm64/ppc64/ppc64el/loongarch compat aliases (added so penguin-tools could supply the legacy dylib dir names hyperfs used) collide with the real directories hyperfs still ships under those exact names: extracting the tarball over them makes tar fail (symlink-over-directory), breaking the penguin image build while hyperfs is present. These legacy names are only needed once hyperfs is gone, so the bridging belongs in penguin's hyperfs-removal change, not here. Keep penguin-tools on canonical names (matching busybox), which merge cleanly into the shared arch dirs. The pre-existing intel64/powerpc64el aliases stay -- they don't match any hyperfs dir name, so they don't collide. Verified the aarch64 bundle emits aarch64 + dylibs/aarch64 only (no arm64), and still passes the runtime link-closure check. --- src/archs.nix | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/archs.nix b/src/archs.nix index 3c33a92..c682c32 100644 --- a/src/archs.nix +++ b/src/archs.nix @@ -16,8 +16,6 @@ arm64 = { penguinName = "aarch64"; - # "arm64" is the legacy dylib/arch dir name the rest of penguin still uses. - compatNames = [ "arm64" ]; crossSystem = { config = "aarch64-linux-musl"; }; @@ -59,8 +57,6 @@ ppc64 = { penguinName = "powerpc64"; - # "ppc64" is the legacy dylib/arch dir name the rest of penguin still uses. - compatNames = [ "ppc64" ]; crossSystem = { config = "powerpc64-linux-musl"; gcc.abi = "elfv2"; @@ -69,8 +65,7 @@ ppc64el = { penguinName = "powerpc64le"; - # "ppc64el" is the legacy dylib/arch dir name the rest of penguin uses. - compatNames = [ "powerpc64el" "ppc64el" ]; + compatNames = [ "powerpc64el" ]; crossSystem = { config = "powerpc64le-linux-musl"; }; @@ -85,8 +80,6 @@ loongarch = { penguinName = "loongarch64"; - # "loongarch" is the legacy dylib/arch dir name the rest of penguin uses. - compatNames = [ "loongarch" ]; crossSystem = { config = "loongarch64-linux-musl"; };