Fix CI: add cmake and its transitive runtime deps to the toolchain bootstrap
yajl (needed by conmon, bootstrapped from source since Slackware ships no package for it) builds via CMake, not the cmake-free autoconf script its ./configure wrapper name suggests. Tracing the failure through the actual vbatts/slackware:15.0 image on the runner host surfaced a chain of packages slackpkg does not auto-resolve (Slackware packages carry no dependency metadata at all): cmake needs libarchive, which needs lz4 and libxml2; the patched make/gmake this mirror serves needs guile, which needs gc; compiling anything needs kernel-headers for <linux/errno.h>; and this build's binutils (ar/ranlib) needs flex, while objdump needs elfutils. All added to the same slackpkg install list as the rest of the toolchain, keeping everything on one mutually consistent version set. Verified end-to-end against vbatts/slackware:15.0 on the actual runner host at each step of this dependency chain. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -75,7 +75,8 @@ if command -v slackpkg > /dev/null 2>&1; then
|
|||||||
slackpkg -batch=on -default_answer=y update
|
slackpkg -batch=on -default_answer=y update
|
||||||
slackpkg -batch=on -default_answer=y install \
|
slackpkg -batch=on -default_answer=y install \
|
||||||
gcc gcc-g++ binutils make m4 perl autoconf automake libtool pkg-config \
|
gcc gcc-g++ binutils make m4 perl autoconf automake libtool pkg-config \
|
||||||
curl nghttp2 brotli cyrus-sasl ca-certificates glib2 libcap fuse3
|
curl nghttp2 brotli cyrus-sasl ca-certificates glib2 libcap fuse3 \
|
||||||
|
cmake libarchive lz4 libxml2 guile gc kernel-headers flex elfutils
|
||||||
else
|
else
|
||||||
echo "==> slackpkg not found, assuming toolchain is already provided by the base image"
|
echo "==> slackpkg not found, assuming toolchain is already provided by the base image"
|
||||||
fi
|
fi
|
||||||
@@ -134,7 +135,9 @@ if ! pkg-config --exists yajl 2>/dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
mkdir -p "$d/src" && tar -xf "$d/src.tar.gz" -C "$d/src" --strip-components=1
|
mkdir -p "$d/src" && tar -xf "$d/src.tar.gz" -C "$d/src" --strip-components=1
|
||||||
# yajl uses its own cmake-free ./configure wrapper script.
|
# yajl's ./configure is a thin wrapper around CMake (not a cmake-free
|
||||||
|
# autoconf script, despite its name) — cmake must already be on PATH,
|
||||||
|
# see the slackpkg install list in step 0 above.
|
||||||
( cd "$d/src" && ./configure -p /usr && make -C build install )
|
( cd "$d/src" && ./configure -p /usr && make -C build install )
|
||||||
ldconfig 2>/dev/null || true
|
ldconfig 2>/dev/null || true
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user