From 23955ec5e21ec186d4b1fd49af33d5e8da3f255a Mon Sep 17 00:00:00 2001 From: Le Philousophe Date: Sun, 24 Jan 2021 11:22:45 +0000 Subject: [PATCH] ALL: Rework toolchain start to use a specific Debian version A M4 header is used which is common to all toolchains. This enforce that every platform will use the same base. For workers it was already the case, just specify the version. --- check-versions/config.py | 22 ++++++++++++++++++++++ toolchains/amigaos4/Dockerfile.m4 | 15 +++------------ toolchains/apple-sdks/Dockerfile.m4 | 17 ++++------------- toolchains/caanoo/Dockerfile.m4 | 15 +++------------ toolchains/devkit3ds/Dockerfile.m4 | 5 ++--- toolchains/devkitarm/Dockerfile.m4 | 16 +++------------- toolchains/devkitnds/Dockerfile.m4 | 5 ++--- toolchains/devkitppc/Dockerfile.m4 | 16 +++------------- toolchains/devkitswitch/Dockerfile.m4 | 16 +++------------- toolchains/iphone/Dockerfile.m4 | 15 +++------------ toolchains/m4/android/start.m4 | 17 +++-------------- toolchains/m4/debian-toolchain-base.m4 | 13 +++++++++++++ toolchains/m4/macosx.m4 | 19 +++++-------------- toolchains/mxe/Dockerfile.m4 | 16 +++------------- toolchains/open2x/Dockerfile.m4 | 15 +++------------ toolchains/openpandora/Dockerfile.m4 | 15 +++------------ toolchains/ps3/Dockerfile.m4 | 16 +++------------- toolchains/psp/Dockerfile.m4 | 15 +++------------ toolchains/raspberrypi/Dockerfile.m4 | 16 +++------------- toolchains/riscos/Dockerfile.m4 | 21 ++++----------------- toolchains/vita/Dockerfile.m4 | 20 +++++--------------- workers/fetcher/Dockerfile.m4 | 3 ++- workers/m4/debian-builder-base.m4 | 3 ++- 23 files changed, 100 insertions(+), 231 deletions(-) create mode 100644 toolchains/m4/debian-toolchain-base.m4 diff --git a/check-versions/config.py b/check-versions/config.py index 70809a5..866ebb8 100644 --- a/check-versions/config.py +++ b/check-versions/config.py @@ -65,6 +65,23 @@ libiconv_check = { 'prefix': 'v', } +# Distributions images checks +debian_check = { + 'check': 'docker tag', + 'registry': 'https://registry-1.docker.io', + 'image name': 'library/debian', + 'architecture': 'amd64', + 'reference': 'stable-slim', + 'tag_format': 'stable-{0}-slim', +} +alpine_check = { + 'check': 'docker tag', + 'registry': 'https://registry-1.docker.io', + 'image name': 'library/alpine', + 'architecture': 'amd64', + 'reference': 'latest', +} + # The checks parameter for each version tag # Every entry in the dictionary is keyed by a tuple made of path (relative to ROOT) and package name # Every value is a dictionnary with a 'check' entry specifying the check to use and its parameters @@ -81,6 +98,8 @@ VERSIONS = { 'exclude pattern': r'.*(b|rc).*' }, + ('./toolchains/m4/debian-toolchain-base.m4', 'DEBIAN'): debian_check, + ('./toolchains/amigaos4/packages/libsdl2/build.sh', 'SDL2'): { 'check': 'git tag', 'repository': 'https://github.com/AmigaPorts/SDL.git', @@ -391,4 +410,7 @@ VERSIONS = { 'repository': 'https://github.com/frangarcj/vita2dlib.git', 'branch': 'fbo', }, + + ('./workers/fetcher/Dockerfile.m4', 'ALPINE'): alpine_check, + ('./workers/m4/debian-builder-base.m4', 'DEBIAN'): debian_check, } diff --git a/toolchains/amigaos4/Dockerfile.m4 b/toolchains/amigaos4/Dockerfile.m4 index 45d89fa..48da96a 100644 --- a/toolchains/amigaos4/Dockerfile.m4 +++ b/toolchains/amigaos4/Dockerfile.m4 @@ -1,19 +1,10 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ COPY functions-platform.sh lib-helpers/ RUN apt-get update && \ diff --git a/toolchains/apple-sdks/Dockerfile.m4 b/toolchains/apple-sdks/Dockerfile.m4 index 8f951db..bc50d0c 100644 --- a/toolchains/apple-sdks/Dockerfile.m4 +++ b/toolchains/apple-sdks/Dockerfile.m4 @@ -1,17 +1,8 @@ -FROM toolchains/common AS helpers - m4_include(`packages.m4')m4_dnl - -FROM debian:stable-slim AS extractor -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_define(`STAGE_IMAGE_NAME',extractor) +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/caanoo/Dockerfile.m4 b/toolchains/caanoo/Dockerfile.m4 index 6f25613..d779241 100644 --- a/toolchains/caanoo/Dockerfile.m4 +++ b/toolchains/caanoo/Dockerfile.m4 @@ -1,19 +1,10 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ COPY functions-platform.sh lib-helpers/ # Create fake links because those got deleted when installing gawk diff --git a/toolchains/devkit3ds/Dockerfile.m4 b/toolchains/devkit3ds/Dockerfile.m4 index 18fd115..87d14e4 100644 --- a/toolchains/devkit3ds/Dockerfile.m4 +++ b/toolchains/devkit3ds/Dockerfile.m4 @@ -1,9 +1,8 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl +FROM toolchains/common AS helpers + FROM toolchains/devkitarm # For bannertool diff --git a/toolchains/devkitarm/Dockerfile.m4 b/toolchains/devkitarm/Dockerfile.m4 index 91e7d47..61ec592 100644 --- a/toolchains/devkitarm/Dockerfile.m4 +++ b/toolchains/devkitarm/Dockerfile.m4 @@ -1,24 +1,14 @@ m4_define(`DEVKITARM_VERSION',20200730) -FROM toolchains/common AS helpers - # This version of devkitARM depends on a Debian Stretch # For now it works with stable-slim, we will have to ensure it stays like that FROM devkitpro/devkitarm:DEVKITARM_VERSION AS original-toolchain m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/devkitnds/Dockerfile.m4 b/toolchains/devkitnds/Dockerfile.m4 index 2f18a9e..4c1b5b9 100644 --- a/toolchains/devkitnds/Dockerfile.m4 +++ b/toolchains/devkitnds/Dockerfile.m4 @@ -1,9 +1,8 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl +FROM toolchains/common AS helpers + FROM toolchains/devkitarm ENV PREFIX=${DEVKITPRO}/portlibs/nds HOST=arm-none-eabi diff --git a/toolchains/devkitppc/Dockerfile.m4 b/toolchains/devkitppc/Dockerfile.m4 index 9f81f2c..5ea67b1 100644 --- a/toolchains/devkitppc/Dockerfile.m4 +++ b/toolchains/devkitppc/Dockerfile.m4 @@ -1,24 +1,14 @@ m4_define(`DEVKITPPC_VERSION',20190212) -FROM toolchains/common AS helpers - # This version of devkitPPC depends on a Debian Stretch # For now it works with stable-slim, we will have to ensure it stays like that FROM devkitpro/devkitppc:DEVKITPPC_VERSION AS original-toolchain m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/devkitswitch/Dockerfile.m4 b/toolchains/devkitswitch/Dockerfile.m4 index cbd5e3d..d4e56a1 100644 --- a/toolchains/devkitswitch/Dockerfile.m4 +++ b/toolchains/devkitswitch/Dockerfile.m4 @@ -1,24 +1,14 @@ m4_define(`DEVKITA64_VERSION',20200730) -FROM toolchains/common AS helpers - # This version of devkitA64 depends on a Debian Stretch # For now it works with stable-slim, we will have to ensure it stays like that FROM devkitpro/devkita64:DEVKITA64_VERSION AS original-toolchain m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/iphone/Dockerfile.m4 b/toolchains/iphone/Dockerfile.m4 index 969807e..3693329 100644 --- a/toolchains/iphone/Dockerfile.m4 +++ b/toolchains/iphone/Dockerfile.m4 @@ -1,4 +1,3 @@ -FROM toolchains/common AS helpers FROM toolchains/apple-sdks AS sdks m4_dnl These settings must be kept in sync between toolchain and worker @@ -7,19 +6,11 @@ m4_define(`IPHONE_SDK_VERSION',14.3)m4_dnl m4_define(`IPHONEOS_DEPLOYMENT_TARGET',7.0)m4_dnl m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/m4/android/start.m4 b/toolchains/m4/android/start.m4 index d8188c4..bd6dac2 100644 --- a/toolchains/m4/android/start.m4 +++ b/toolchains/m4/android/start.m4 @@ -1,28 +1,17 @@ m4_define(`local_sdk_package', COPY packages/$1 lib-helpers/packages/$1/ RUN $3 lib-helpers/packages/$1/build.sh $2)m4_dnl - m4_define(`local_package', COPY packages/$1 lib-helpers/packages/$1/ RUN $3 lib-helpers/multi-build.sh lib-helpers/packages/$1/build.sh $2)m4_dnl - m4_define(`helpers_package', COPY --from=helpers /lib-helpers/packages/$1 lib-helpers/packages/$1/ RUN $3 lib-helpers/multi-build.sh lib-helpers/packages/$1/build.sh $2)m4_dnl - m4_define(`android_package', COPY --from=android-helpers /lib-helpers/packages/$1 lib-helpers/packages/$1/ RUN $3 lib-helpers/multi-build.sh lib-helpers/packages/$1/build.sh $2) -FROM toolchains/common AS helpers FROM toolchains/android-common AS android-helpers -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl COPY --from=android-helpers /lib-helpers/functions-platform.sh \ /lib-helpers/multi-build.sh lib-helpers/ diff --git a/toolchains/m4/debian-toolchain-base.m4 b/toolchains/m4/debian-toolchain-base.m4 new file mode 100644 index 0000000..52f8bb4 --- /dev/null +++ b/toolchains/m4/debian-toolchain-base.m4 @@ -0,0 +1,13 @@ +m4_define(`DEBIAN_VERSION',20210111) +FROM toolchains/common AS helpers + +FROM debian:stable-DEBIAN_VERSION-slim m4_ifdef(`STAGE_IMAGE_NAME',AS STAGE_IMAGE_NAME,) +USER root + +WORKDIR /usr/src + +# Copy and execute each step separately to avoid invalidating cache +COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ +RUN lib-helpers/prepare.sh + +COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ diff --git a/toolchains/m4/macosx.m4 b/toolchains/m4/macosx.m4 index c39426f..4d6e7ca 100644 --- a/toolchains/m4/macosx.m4 +++ b/toolchains/m4/macosx.m4 @@ -1,25 +1,16 @@ -FROM toolchains/common AS helpers -FROM toolchains/apple-sdks AS sdks -FROM toolchains/macosx-common AS macosx-common - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl m4_define(`helpers_package', helpers_package($1,$2,$3) && osxcross-macports fake-install $1 && rm -Rf ${TARGET_DIR}/macports/cache)m4_dnl m4_define(`common_package', COPY --from=macosx-common /lib-helpers/packages/$1 lib-helpers/packages/$1/ RUN $3 lib-helpers/packages/$1/build.sh $2)m4_dnl m4_define(`ports_package', RUN $3 osxcross-macports ``${MACOSX_PORTS_ARCH_ARG}'' -s install $1 $2 && rm -Rf ${TARGET_DIR}/macports/cache)m4_dnl -FROM debian:stable-slim -USER root +FROM toolchains/apple-sdks AS sdks +FROM toolchains/macosx-common AS macosx-common -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/mxe/Dockerfile.m4 b/toolchains/mxe/Dockerfile.m4 index f8a955b..44331eb 100644 --- a/toolchains/mxe/Dockerfile.m4 +++ b/toolchains/mxe/Dockerfile.m4 @@ -1,8 +1,6 @@ m4_define(`MXE_VERSION',build-2021-01-10)m4_dnl -FROM toolchains/common AS helpers m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl m4_define(`mxe_package', RUN cd "${MXE_DIR}" && \ $3 make $1 $2 PREFIX="${MXE_PREFIX_DIR}" && \ @@ -12,17 +10,9 @@ m4_dnl FIXME: don't hardcode /usr/src here m4_define(`local_mxe_package', COPY packages/$1 lib-helpers/packages/$1/ mxe_package($1, MXE_PLUGIN_DIRS="/usr/src/lib-helpers/packages/$1/" $2, $3)) - -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/open2x/Dockerfile.m4 b/toolchains/open2x/Dockerfile.m4 index 13a3363..6a17b02 100644 --- a/toolchains/open2x/Dockerfile.m4 +++ b/toolchains/open2x/Dockerfile.m4 @@ -1,19 +1,10 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ COPY functions-platform.sh lib-helpers/ RUN apt-get update && \ diff --git a/toolchains/openpandora/Dockerfile.m4 b/toolchains/openpandora/Dockerfile.m4 index c510aa7..8f9f37f 100644 --- a/toolchains/openpandora/Dockerfile.m4 +++ b/toolchains/openpandora/Dockerfile.m4 @@ -1,19 +1,10 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ COPY functions-platform.sh lib-helpers/ # Create fake links because those got deleted when installing gawk diff --git a/toolchains/ps3/Dockerfile.m4 b/toolchains/ps3/Dockerfile.m4 index 866f1a4..0ab21af 100644 --- a/toolchains/ps3/Dockerfile.m4 +++ b/toolchains/ps3/Dockerfile.m4 @@ -1,19 +1,9 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/psp/Dockerfile.m4 b/toolchains/psp/Dockerfile.m4 index 1cc33a2..fcb2ed0 100644 --- a/toolchains/psp/Dockerfile.m4 +++ b/toolchains/psp/Dockerfile.m4 @@ -1,18 +1,9 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Don't need to run prepare as everything we need is already installed (we don't use all build stuff, just fetch) - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/raspberrypi/Dockerfile.m4 b/toolchains/raspberrypi/Dockerfile.m4 index 0e6d7ca..0376617 100644 --- a/toolchains/raspberrypi/Dockerfile.m4 +++ b/toolchains/raspberrypi/Dockerfile.m4 @@ -1,22 +1,12 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_include(`packages.m4')m4_dnl m4_define(`multistrap_package',m4_dnl `m4_define(`MULTISTRAP_PACKAGES',m4_ifdef(`MULTISTRAP_PACKAGES',m4_dnl m4_defn(`MULTISTRAP_PACKAGES')` ',)`$1')') -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/riscos/Dockerfile.m4 b/toolchains/riscos/Dockerfile.m4 index 4a8593a..f3a3c2a 100644 --- a/toolchains/riscos/Dockerfile.m4 +++ b/toolchains/riscos/Dockerfile.m4 @@ -1,29 +1,16 @@ -FROM toolchains/common AS helpers - m4_include(`paths.m4')m4_dnl - m4_define(`local_sdk_package', COPY packages/$1 lib-helpers/packages/$1/ RUN $3 lib-helpers/packages/$1/build.sh $2)m4_dnl - m4_define(`local_package', COPY packages/$1 lib-helpers/packages/$1/ RUN $3 lib-helpers/multi-build.sh lib-helpers/packages/$1/build.sh $2)m4_dnl - m4_define(`helpers_package', COPY --from=helpers /lib-helpers/packages/$1 lib-helpers/packages/$1/ RUN $3 lib-helpers/multi-build.sh lib-helpers/packages/$1/build.sh $2)m4_dnl -FROM debian:stable-slim -USER root +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ -COPY functions-platform.sh lib-helpers/ - -COPY multi-build.sh lib-helpers/ +COPY multi-build.sh functions-platform.sh lib-helpers/ RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ diff --git a/toolchains/vita/Dockerfile.m4 b/toolchains/vita/Dockerfile.m4 index dffa687..fb8b411 100644 --- a/toolchains/vita/Dockerfile.m4 +++ b/toolchains/vita/Dockerfile.m4 @@ -1,21 +1,11 @@ +m4_include(`paths.m4')m4_dnl +m4_include(`packages.m4')m4_dnl m4_define(`vdpm_package', RUN lib-helpers/install-vdpm.sh $1)m4_dnl -FROM toolchains/common AS helpers +m4_dnl Include Debian base preparation steps +m4_dnl This ensures all common steps are shared by all toolchains +m4_include(`debian-toolchain-base.m4')m4_dnl -m4_include(`paths.m4')m4_dnl - -m4_include(`packages.m4')m4_dnl - -FROM debian:stable-slim -USER root - -WORKDIR /usr/src - -# Copy and execute each step separately to avoid invalidating cache -COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/ -RUN lib-helpers/prepare.sh - -COPY --from=helpers /lib-helpers/functions.sh lib-helpers/ COPY functions-platform.sh install-vdpm.sh lib-helpers/ RUN apt-get update && \ diff --git a/workers/fetcher/Dockerfile.m4 b/workers/fetcher/Dockerfile.m4 index b2c578a..7ae4fa8 100644 --- a/workers/fetcher/Dockerfile.m4 +++ b/workers/fetcher/Dockerfile.m4 @@ -1,4 +1,5 @@ -FROM alpine:latest +m4_define(`ALPINE_VERSION',3.13.0)m4_dnl +FROM alpine:ALPINE_VERSION m4_define(`BASE_ALPINE',`')m4_dnl USER root diff --git a/workers/m4/debian-builder-base.m4 b/workers/m4/debian-builder-base.m4 index cc15f09..2ac736d 100644 --- a/workers/m4/debian-builder-base.m4 +++ b/workers/m4/debian-builder-base.m4 @@ -1,5 +1,6 @@ +m4_define(`DEBIAN_VERSION',20210111) m4_define(`BASE_DEBIAN',`')m4_dnl -FROM debian:stable-slim +FROM debian:stable-DEBIAN_VERSION-slim USER root m4_include(`install-buildbot.m4')m4_dnl