Fixes the de-32 build break introduced by vibe-node #2912 (galileo 3.0.3 -> 3.0.8, merged as bc4cecf). Job ad580587: #16 chmod: cannot access '/0g/bin/0gchaind': No such file or directory The Dockerfile hardcoded 'galileo -> mv <root>/rpc /0g'. That held for 3.0.3, where every profile dir carried its own copy of the binaries. 3.0.8 DEDUPLICATED them into a shared <root>/bin/ (168 MB -> 69 MB), leaving rpc/ as configs-only — so the move produced configs and no binaries, and the build died two layers later on a chmod. Note 'does <root>/rpc exist' is not a sufficient test: 3.0.8 still ships rpc/, it just no longer holds bin/. Verified layouts: galileo 3.0.3 <root>/{rpc,validator,archive,seed}/bin/ + configs galileo 3.0.8 <root>/bin/ shared + <root>/{rpc,...}/ configs aristotle 1.0.6 <root>/bin/ + configs, no profile dirs So: take configs from the profile dir when present, then top the binaries up from the shared root bin/ if the profile dir did not supply them. Also asserts both binaries exist immediately after extraction, naming the chain, the version and the known layouts — so the next upstream reshuffle reports itself at the point of failure rather than as an anonymous chmod error. Verified against the real artifacts — all three now yield an identical /0g (bin/0gchaind 76M, bin/geth 46M, geth-config.toml, geth-genesis.json, kzg-trusted-setup.json, 0g-home/, rollback_cl.sh), and a synthetic unknown layout exits 1 with the diagnostic instead of reaching chmod. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4.6 KiB
4.6 KiB