build.sh: fail on source-download errors; fetch kernel from cdn.kernel.org#115
Open
mastacontrola wants to merge 4 commits into
Open
build.sh: fail on source-download errors; fetch kernel from cdn.kernel.org#115mastacontrola wants to merge 4 commits into
mastacontrola wants to merge 4 commits into
Conversation
…l.org --fs-download-only ignored the exit status of 'make source', so the CI download_filesystem_packages job went green today (run 28741856230) despite failing to download linux-6.18.38.tar.xz for all three arches — which then poisoned the Buildroot dl cache and failed every init build downstream. Propagate the failure. Also fetch the kernel tarball from cdn.kernel.org instead of www.kernel.org: the www frontend is what was timing out today, and the CDN is the endpoint kernel.org documentation recommends for downloads (it's also Buildroot's default BR2_KERNEL_MIRROR these days). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s it in gettext-devel The dependency check greps installed package names, so on Fedora/RHEL it always reported autopoint missing (and --install-dep tried to 'dnf install autopoint', which doesn't exist). Move autopoint to the Debian list and check/install gettext-devel on RHEL-family instead. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
partclone (PARTCLONE_AUTORECONF = YES) fails at configure with "Can't exec aclocal" on hosts without automake. Ubuntu CI runners ship it preinstalled, which masked the missing entry. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…pping name lists The check piped the full installed-package list through an unanchored grep, so any package whose name contains a dependency's name satisfied the check: libtool-ltdl passed for libtool while libtoolize was actually missing. Anchoring the match instead would break names that are provided by a differently-named package (wget via wget2-wget on Fedora 40+). Ask the package manager directly instead: rpm -q --whatprovides on RHEL-family (resolves virtual provides) and dpkg -s with an installed-status check on Debian-family. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What happened today
CI run 28741856230 (kernel-6.18 experimental) failed in a way worth fixing at the root:
www.kernel.orgfrontend started timing out. Buildroot's internal wget (--tries=2 --timeout=10) gave up, and its fallback mirrorsources.buildroot.netreturned 404 (it only mirrors kernel versions pinned in Buildroot's own hash files, so a custom6.18.38headers version isn't there)../build.sh -i --fs-download-onlyranmake sourcefor all three arches, all three failed to downloadlinux-6.18.38.tar.xz— and the job still exited 0, because the exit status ofmake sourcewas never checked. The half-empty dl directory got saved into the Actions cache, and all threebuild_initrd_*jobs then failed on the same download.Changes
make sourcefailures in--fs-download-onlymode, using the samestatus/exitpattern the script already uses for the main build. A failed download job now fails visibly instead of poisoning the dl cache.kernelURL:www.kernel.org→cdn.kernel.org. The CDN is what kernel.org recommends for automated downloads and is also modern Buildroot's defaultBR2_KERNEL_MIRROR. (The kernel jobs on today's run survived only because build.sh's wget uses default retry settings — same fragile host, more patience.)dependencies.sh: fix the dependency check on Fedora/RHEL. The check greps installed package names, andautopointis a Debian package name — on RHEL-family distros the binary ships insidegettext-devel, so the check always failed (and--install-deptrieddnf install autopoint, which doesn't exist).autopointnow lives in the Debian list and RHEL-family checks/installsgettext-develinstead. Also addedautomaketo the list — partclone'sAUTORECONF = YESconfigure step needsaclocaland fails without it. Both gaps were found doing a local build on Fedora 44; CI never hits them because Ubuntu runner images ship automake preinstalled and use apt package names.dependencies.sh: query the package manager per package instead of grepping the installed-package list. The old check was an unanchored grep over all installed package names, so any package containing a dependency's name satisfied it — on Fedora,libtool-ltdlpassed thelibtoolcheck whilelibtoolizewas actually missing (found the hard way: partclone's configure died mid-build). Anchoring the grep would break the other direction (wgeton Fedora 40+ is provided by the packagewget2-wget). The check now asks the package manager directly:rpm -q --whatprovideson RHEL-family (resolves virtual provides) anddpkg -s+ installed-status on Debian-family. Verified against all 23 dependencies on Fedora 44: exactly the genuinely-missing package is flagged, no false positives or negatives.The Buildroot-side counterpart (the fs configs carry a legacy
BR2_KERNEL_MIRROR="http://www.kernel.org/pub/") is fixed on the kernel-6.18 branch in 572c994; if this PR is wanted on master too I can cherry-pick that one-liner onto master separately.Note: changing build.sh re-keys the
buildroot-dl-*Actions cache (keyed onhashFiles('**/build.sh')); the prefix restore-key means the first run after merge restores the old cache and only downloads what's missing. I also deleted today's poisoned cache entry so it can't be restored again.🤖 Generated with Claude Code