diff --git a/Makefile b/Makefile index 71e11d30..48d1372a 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,7 @@ DOCKER_ORG ?= falcosecurity ARCH := $(shell uname -m) BUILDERS := $(patsubst docker/builders/builder-%.Dockerfile,%,$(wildcard docker/builders/builder*$(ARCH)*.Dockerfile)) +BUILDERS_CMAKE_VERSION := 3.24.4 IMAGE_NAME_BUILDER_BASE ?= docker.io/$(DOCKER_ORG)/driverkit-builder @@ -58,9 +59,12 @@ image/all: image/builder image/driverkit .PHONY: image/builder image/builder: - $(foreach b,$(BUILDERS),\ - $(DOCKER) buildx build -o type=image,push="false" -f docker/builders/builder-$b.Dockerfile . ; \ - ) + @ for b in $(BUILDERS); do \ + $(DOCKER) buildx build \ + -o type=image,push="false" \ + -f docker/builders/builder-$$b.Dockerfile \ + --build-arg CMAKE_VERSION=$(BUILDERS_CMAKE_VERSION) . ; \ + done .PHONY: image/driverkit image/driverkit: diff --git a/docker/builders/builder-amazonlinux2-x86_64_gcc10.0.0.Dockerfile b/docker/builders/builder-amazonlinux2-x86_64_gcc10.0.0.Dockerfile index 8ecfcd0d..31d0080e 100644 --- a/docker/builders/builder-amazonlinux2-x86_64_gcc10.0.0.Dockerfile +++ b/docker/builders/builder-amazonlinux2-x86_64_gcc10.0.0.Dockerfile @@ -2,6 +2,9 @@ FROM amazonlinux:2.0.20240529.0 LABEL maintainer="cncf-falco-dev@lists.cncf.io" +# Cmake version to install, in the form M.m.p. +ARG CMAKE_VERSION + RUN yum -y install gcc10 \ clang \ llvm \ @@ -22,11 +25,16 @@ RUN yum -y install gcc10 \ binutils \ which \ make \ - cmake3 \ tar \ zstd \ git +# Install specific cmake version. +RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz; \ + gzip -d /tmp/cmake.tar.gz; \ + tar -xpf /tmp/cmake.tar --directory=/tmp; \ + cp -R /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/* /usr; \ + rm -rf /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/ + # Properly create soft links -RUN ln -s /usr/bin/gcc10-cc /usr/bin/gcc-10.0.0 -RUN ln -s /usr/bin/cmake3 /usr/bin/cmake \ No newline at end of file +RUN ln -s /usr/bin/gcc10-cc /usr/bin/gcc-10.0.0 \ No newline at end of file diff --git a/docker/builders/builder-any-x86_64_gcc10.0.0_gcc9.0.0.Dockerfile b/docker/builders/builder-any-x86_64_gcc10.0.0_gcc9.0.0.Dockerfile index 6dba5f30..73a96bdf 100644 --- a/docker/builders/builder-any-x86_64_gcc10.0.0_gcc9.0.0.Dockerfile +++ b/docker/builders/builder-any-x86_64_gcc10.0.0_gcc9.0.0.Dockerfile @@ -3,6 +3,8 @@ FROM debian:bullseye LABEL maintainer="cncf-falco-dev@lists.cncf.io" ARG TARGETARCH +# Cmake version to install, in the form M.m.p. +ARG CMAKE_VERSION RUN cp /etc/skel/.bashrc /root && cp /etc/skel/.profile /root @@ -39,10 +41,16 @@ RUN apt-get update \ software-properties-common \ gpg \ zstd \ - cmake \ git \ && rm -rf /var/lib/apt/lists/* +# Install specific cmake version. +RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz; \ + gzip -d /tmp/cmake.tar.gz; \ + tar -xpf /tmp/cmake.tar --directory=/tmp; \ + cp -R /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/* /usr; \ + rm -rf /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/ + # Properly create soft link RUN ln -s /usr/bin/gcc-9 /usr/bin/gcc-9.0.0 RUN ln -s /usr/bin/gcc-10 /usr/bin/gcc-10.0.0 diff --git a/docker/builders/builder-any-x86_64_gcc12.0.0_gcc11.0.0.Dockerfile b/docker/builders/builder-any-x86_64_gcc12.0.0_gcc11.0.0.Dockerfile index 77d48651..d53902f6 100644 --- a/docker/builders/builder-any-x86_64_gcc12.0.0_gcc11.0.0.Dockerfile +++ b/docker/builders/builder-any-x86_64_gcc12.0.0_gcc11.0.0.Dockerfile @@ -3,6 +3,8 @@ FROM debian:bookworm LABEL maintainer="cncf-falco-dev@lists.cncf.io" ARG TARGETARCH +# Cmake version to install, in the form M.m.p. +ARG CMAKE_VERSION RUN cp /etc/skel/.bashrc /root && cp /etc/skel/.profile /root @@ -39,10 +41,16 @@ RUN apt-get update \ software-properties-common \ gpg \ zstd \ - cmake \ git \ && rm -rf /var/lib/apt/lists/* +# Install specific cmake version. +RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz; \ + gzip -d /tmp/cmake.tar.gz; \ + tar -xpf /tmp/cmake.tar --directory=/tmp; \ + cp -R /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/* /usr; \ + rm -rf /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/ + # Properly create soft links RUN ln -s /usr/bin/gcc-11 /usr/bin/gcc-11.0.0 RUN ln -s /usr/bin/gcc-12 /usr/bin/gcc-12.0.0 diff --git a/docker/builders/builder-any-x86_64_gcc13.0.0.Dockerfile b/docker/builders/builder-any-x86_64_gcc13.0.0.Dockerfile index 02acfc68..5cb12270 100644 --- a/docker/builders/builder-any-x86_64_gcc13.0.0.Dockerfile +++ b/docker/builders/builder-any-x86_64_gcc13.0.0.Dockerfile @@ -3,6 +3,8 @@ FROM fedora:39 LABEL maintainer="cncf-falco-dev@lists.cncf.io" ARG TARGETARCH +# Cmake version to install, in the form M.m.p. +ARG CMAKE_VERSION RUN dnf install -y \ bash-completion \ @@ -33,8 +35,14 @@ RUN dnf install -y \ wget \ gpg \ zstd \ - cmake \ git +# Install specific cmake version. +RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz; \ + gzip -d /tmp/cmake.tar.gz; \ + tar -xpf /tmp/cmake.tar --directory=/tmp; \ + cp -R /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/* /usr; \ + rm -rf /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/ + # Properly create soft links RUN ln -s /usr/bin/gcc /usr/bin/gcc-13.0.0 diff --git a/docker/builders/builder-any-x86_64_gcc14.0.0.Dockerfile b/docker/builders/builder-any-x86_64_gcc14.0.0.Dockerfile index 02424c01..0f3d842d 100644 --- a/docker/builders/builder-any-x86_64_gcc14.0.0.Dockerfile +++ b/docker/builders/builder-any-x86_64_gcc14.0.0.Dockerfile @@ -3,6 +3,8 @@ FROM fedora:41 LABEL maintainer="cncf-falco-dev@lists.cncf.io" ARG TARGETARCH +# Cmake version to install, in the form M.m.p. +ARG CMAKE_VERSION RUN dnf install -y \ bash-completion \ @@ -33,8 +35,14 @@ RUN dnf install -y \ wget \ gpg \ zstd \ - cmake \ git +# Install specific cmake version. +RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz; \ + gzip -d /tmp/cmake.tar.gz; \ + tar -xpf /tmp/cmake.tar --directory=/tmp; \ + cp -R /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/* /usr; \ + rm -rf /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/ + # Properly create soft links RUN ln -s /usr/bin/gcc /usr/bin/gcc-14.0.0 diff --git a/docker/builders/builder-any-x86_64_gcc8.0.0_gcc6.0.0_gcc5.0.0_gcc4.9.0_gcc4.8.0.Dockerfile b/docker/builders/builder-any-x86_64_gcc8.0.0_gcc6.0.0_gcc5.0.0_gcc4.9.0_gcc4.8.0.Dockerfile index 26f44e70..155d89bc 100644 --- a/docker/builders/builder-any-x86_64_gcc8.0.0_gcc6.0.0_gcc5.0.0_gcc4.9.0_gcc4.8.0.Dockerfile +++ b/docker/builders/builder-any-x86_64_gcc8.0.0_gcc6.0.0_gcc5.0.0_gcc4.9.0_gcc4.8.0.Dockerfile @@ -3,6 +3,8 @@ FROM debian:buster LABEL maintainer="cncf-falco-dev@lists.cncf.io" ARG TARGETARCH +# Cmake version to install, in the form M.m.p. +ARG CMAKE_VERSION RUN cp /etc/skel/.bashrc /root && cp /etc/skel/.profile /root @@ -131,12 +133,12 @@ RUN curl -L -o binutils_2.30-22_${TARGETARCH}.deb https://download.falco.org/dep && dpkg -i *binutils*.deb \ && rm -f *binutils*.deb -# Install a recent version of cmake (debian buster has at most 3.13) -RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v3.22.5/cmake-3.22.5-linux-$(uname -m).tar.gz; \ +# Install specific cmake version. +RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz; \ gzip -d /tmp/cmake.tar.gz; \ tar -xpf /tmp/cmake.tar --directory=/tmp; \ - cp -R /tmp/cmake-3.22.5-linux-$(uname -m)/* /usr; \ - rm -rf /tmp/cmake-3.22.5-linux-$(uname -m)/ + cp -R /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/* /usr; \ + rm -rf /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/ # Properly create soft link RUN ln -s /usr/bin/gcc-4.8 /usr/bin/gcc-4.8.0 diff --git a/docker/builders/builder-centos-x86_64_gcc4.8.5.Dockerfile b/docker/builders/builder-centos-x86_64_gcc4.8.5.Dockerfile index fa5f5f01..95f5ecd6 100644 --- a/docker/builders/builder-centos-x86_64_gcc4.8.5.Dockerfile +++ b/docker/builders/builder-centos-x86_64_gcc4.8.5.Dockerfile @@ -2,6 +2,9 @@ FROM centos:7 LABEL maintainer="cncf-falco-dev@lists.cncf.io" +# Cmake version to install, in the form M.m.p. +ARG CMAKE_VERSION + # Fix broken mirrors - centos:7 eol RUN sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo; \ sed -i s/^#.*baseurl=http/baseurl=https/g /etc/yum.repos.d/*.repo; \ @@ -35,12 +38,12 @@ RUN yum -y install gcc \ make \ git -# Install cmake3.x (on centos7 `cmake` package installs cmake2.x) -RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v3.22.5/cmake-3.22.5-linux-$(uname -m).tar.gz; \ +# Install specific cmake version. +RUN curl -L -o /tmp/cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz; \ gzip -d /tmp/cmake.tar.gz; \ tar -xpf /tmp/cmake.tar --directory=/tmp; \ - cp -R /tmp/cmake-3.22.5-linux-$(uname -m)/* /usr; \ - rm -rf /tmp/cmake-3.22.5-linux-$(uname -m)/ + cp -R /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/* /usr; \ + rm -rf /tmp/cmake-${CMAKE_VERSION}-linux-$(uname -m)/ # Properly create soft link RUN ln -s /usr/bin/gcc /usr/bin/gcc-4.8.5