Hi Todd, On Wed, 16 Apr 2025, Todd Zullinger wrote: > Junio C Hamano wrote: > > GitHub Actions CI started failing the pedantic (fedora) job at the > > tip of 'master' few days ago, and the log claims the failure is due > > to missing "awk". Even though we have seen a few topics to rewrite > > Perl scriptlet, and I think at least one of them uses awk, but they > > haven't hit 'master' yet, so it is puzzling why this started failing > > all of a sudden. > > > > So here is a band-aid. I wouldn't be surprised if the base image > > was updated without telling us. We have seen Ubuntu 20.04 base > > image retired to cause CI failures as well. > > > > Almalinux does not even seem to have awk available as a package > > (or it may be called differently, but we are not suffering from > > the lack of awk on that platform anyway), so make sure we ask for > > awk only on fedora. > > > > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > > --- > > > > * As the scheduled retirement of U20.04 image broke CI jobs running > > for 'master', I started looking at making it pass again with the > > minimum change, i.e. by merging dd/sparse-glibc-workaround and > > js/ci-github-update-ubuntu topics. > > > > Then I somehow found that another job is broken. And this patch > > seems to make it work. Not knowing how it got broken is > > unsatisfactory, though. > > I can hazard a guess (or several)... > > It is likely that the image pointed to by the fedora:latest > tag has moved from fedora 41 to 42, which was released > today. The fedora 41 container images have awk installed > while the fedora 42 images do not. That change is, I > suspect, just part of reducing the size of the base > container images. Thank you for that excellent and thorough insight. This is indeed the case in the instances I looked at (for example, Git for Windows' `shears/main` branch was using F42 most recently, and failing: https://github.com/git-for-windows/git/actions/runs/14485163916/job/40629342280#step:2:38 whereas the preceding build used F41 and succeeded: https://github.com/git-for-windows/git/actions/runs/14473893559/job/40594656287#step:2:37). > In both AlmaLinux and Fedora (as well as other RHEL > derivatives/relatives), awk is provided by the gawk package. > > On Fedora, `dnf install awk` uses the package filelist data > to determine that /usr/bin/awk is provided by gawk and > installs gawk as a result. > > On AlmaLinux (8 & 9, by my quick testing), that is not the > case and you'd need to use `dnf install gawk` or `dnf > install '*bin/awk'` to get it installed. Though awk is > included in the current AlmaLinux 8 and 9 images, so it > isn't strictly needed. But it's probably better to be > explicit that we need it installed, as a defense against > some future change to the AlmaLinux container removing awk. > > Using gawk (or even '*bin/awk') would likely be clearer. > That avoids relying on 1) a case statement to set an awk > variable; and 2) the different behavior of older and newer > releases of dnf with respect to the install argument > matching on the names of binaries provided by the package. > > But that's certainly subjective. ;) This reasoning is very convincing, so I allowed myself to turn that into the following commit (which fixed the build: https://github.com/git-for-windows/git/actions/runs/14485317015/job/40629741228): -- snipsnap --