From 47b8824df7cd0d0ca9da10289b28a65837365ede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Tue, 24 Sep 2024 20:00:59 +0000 Subject: [PATCH] buildmaster: add static apk utility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We need a relatively recent `apk` that can sign package indexes. You can find more details in the referenced issue below. However, it has not been released yet and is not available as a prebuilt download. Therefore, until it becomes available, let's build a static version and use that in the meantime. Fixes: a94d4e15fdc1 ("add APK signing logic") References: https://gitlab.alpinelinux.org/alpine/apk-tools/-/issues/11008 Signed-off-by: Petr Štetiar --- docker/buildmaster/Dockerfile | 26 ++++++++++++++++++++++++++ tests/cram/master/02-apk.t | 4 ++++ 2 files changed, 30 insertions(+) create mode 100644 tests/cram/master/02-apk.t diff --git a/docker/buildmaster/Dockerfile b/docker/buildmaster/Dockerfile index 8d21245..51b9d9b 100644 --- a/docker/buildmaster/Dockerfile +++ b/docker/buildmaster/Dockerfile @@ -1,3 +1,28 @@ +FROM alpinelinux/build-base:latest-x86_64 AS apk-builder + +RUN abuild-apk add -u \ + gcc \ + git \ + linux-headers \ + lua5.3-dev \ + lua5.3-lzlib \ + make \ + musl-dev \ + openssl-dev \ + openssl-libs-static \ + zlib-dev \ + zlib-static \ + zstd-dev \ + zstd-static + +ARG APK_TOOLS_COMMIT=74de0e9bd73d1af8720df40aa68d472943909804 + +RUN git clone https://gitlab.alpinelinux.org/alpine/apk-tools.git /tmp/apk-tools +WORKDIR /tmp/apk-tools +RUN git checkout $APK_TOOLS_COMMIT +RUN make -j$(nproc) static + + FROM debian:11 MAINTAINER OpenWrt Maintainers @@ -55,6 +80,7 @@ COPY docker/buildmaster/files/start.sh /start.sh COPY phase1 /phase1 COPY phase2 /phase2 COPY scripts /scripts +COPY --from=apk-builder /tmp/apk-tools/src/apk.static /usr/bin/apk RUN \ groupadd buildbot && \ diff --git a/tests/cram/master/02-apk.t b/tests/cram/master/02-apk.t new file mode 100644 index 0000000..17818ff --- /dev/null +++ b/tests/cram/master/02-apk.t @@ -0,0 +1,4 @@ +Check that apk is available and usable in master container: + + $ docker run --entrypoint apk local/master | grep usage + usage: apk [...] COMMAND [...]