From 9526679bbc882f6eb904a401380cf3d6574ba91a Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 27 Jul 2023 13:11:18 -0400 Subject: ci: Update base images to Debian 12 --- .gitlab/ci/docker/debian10-aarch64/Dockerfile | 26 ------ .../ci/docker/debian10-aarch64/deps_packages.lst | 94 ------------------- .gitlab/ci/docker/debian10-aarch64/docker-clean | 0 .gitlab/ci/docker/debian10-aarch64/dpkg-exclude | 21 ----- .gitlab/ci/docker/debian10-aarch64/install_deps.sh | 5 - .gitlab/ci/docker/debian10/Dockerfile | 62 ------------- .gitlab/ci/docker/debian10/deps_packages.lst | 100 -------------------- .gitlab/ci/docker/debian10/docker-clean | 0 .gitlab/ci/docker/debian10/dpkg-exclude | 21 ----- .gitlab/ci/docker/debian10/install_deps.sh | 15 --- .gitlab/ci/docker/debian10/install_iwyu.sh | 23 ----- .gitlab/ci/docker/debian10/install_rvm.sh | 20 ---- .gitlab/ci/docker/debian10/iwyu_packages.lst | 9 -- .gitlab/ci/docker/debian10/rvm_packages.lst | 25 ----- .gitlab/ci/docker/debian12-aarch64/Dockerfile | 26 ++++++ .../ci/docker/debian12-aarch64/deps_packages.lst | 93 +++++++++++++++++++ .gitlab/ci/docker/debian12-aarch64/docker-clean | 0 .gitlab/ci/docker/debian12-aarch64/dpkg-exclude | 21 +++++ .gitlab/ci/docker/debian12-aarch64/install_deps.sh | 5 + .gitlab/ci/docker/debian12-x86_64/Dockerfile | 62 +++++++++++++ .../ci/docker/debian12-x86_64/deps_packages.lst | 102 +++++++++++++++++++++ .gitlab/ci/docker/debian12-x86_64/docker-clean | 0 .gitlab/ci/docker/debian12-x86_64/dpkg-exclude | 21 +++++ .gitlab/ci/docker/debian12-x86_64/install_deps.sh | 15 +++ .gitlab/ci/docker/debian12-x86_64/install_iwyu.sh | 22 +++++ .gitlab/ci/docker/debian12-x86_64/install_rvm.sh | 20 ++++ .../ci/docker/debian12-x86_64/iwyu_packages.lst | 9 ++ .gitlab/ci/docker/debian12-x86_64/rvm_packages.lst | 25 +++++ 28 files changed, 421 insertions(+), 421 deletions(-) delete mode 100644 .gitlab/ci/docker/debian10-aarch64/Dockerfile delete mode 100644 .gitlab/ci/docker/debian10-aarch64/deps_packages.lst delete mode 100644 .gitlab/ci/docker/debian10-aarch64/docker-clean delete mode 100644 .gitlab/ci/docker/debian10-aarch64/dpkg-exclude delete mode 100755 .gitlab/ci/docker/debian10-aarch64/install_deps.sh delete mode 100644 .gitlab/ci/docker/debian10/Dockerfile delete mode 100644 .gitlab/ci/docker/debian10/deps_packages.lst delete mode 100644 .gitlab/ci/docker/debian10/docker-clean delete mode 100644 .gitlab/ci/docker/debian10/dpkg-exclude delete mode 100755 .gitlab/ci/docker/debian10/install_deps.sh delete mode 100755 .gitlab/ci/docker/debian10/install_iwyu.sh delete mode 100755 .gitlab/ci/docker/debian10/install_rvm.sh delete mode 100644 .gitlab/ci/docker/debian10/iwyu_packages.lst delete mode 100644 .gitlab/ci/docker/debian10/rvm_packages.lst create mode 100644 .gitlab/ci/docker/debian12-aarch64/Dockerfile create mode 100644 .gitlab/ci/docker/debian12-aarch64/deps_packages.lst create mode 100644 .gitlab/ci/docker/debian12-aarch64/docker-clean create mode 100644 .gitlab/ci/docker/debian12-aarch64/dpkg-exclude create mode 100755 .gitlab/ci/docker/debian12-aarch64/install_deps.sh create mode 100644 .gitlab/ci/docker/debian12-x86_64/Dockerfile create mode 100644 .gitlab/ci/docker/debian12-x86_64/deps_packages.lst create mode 100644 .gitlab/ci/docker/debian12-x86_64/docker-clean create mode 100644 .gitlab/ci/docker/debian12-x86_64/dpkg-exclude create mode 100755 .gitlab/ci/docker/debian12-x86_64/install_deps.sh create mode 100755 .gitlab/ci/docker/debian12-x86_64/install_iwyu.sh create mode 100755 .gitlab/ci/docker/debian12-x86_64/install_rvm.sh create mode 100644 .gitlab/ci/docker/debian12-x86_64/iwyu_packages.lst create mode 100644 .gitlab/ci/docker/debian12-x86_64/rvm_packages.lst diff --git a/.gitlab/ci/docker/debian10-aarch64/Dockerfile b/.gitlab/ci/docker/debian10-aarch64/Dockerfile deleted file mode 100644 index a0687e3..0000000 --- a/.gitlab/ci/docker/debian10-aarch64/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# syntax=docker/dockerfile:1 - -ARG BASE_IMAGE=arm64v8/debian:10 - -FROM ${BASE_IMAGE} AS apt-cache -# Populate APT cache w/ the fresh metadata and prefetch packages. -# Use an empty `docker-clean` file to "hide" the image-provided -# file to disallow removing packages after `apt-get` operations. -RUN --mount=type=tmpfs,target=/var/log \ - --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ - --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \ - apt-get update \ - && apt-get --download-only -y install $(grep -h '^[^#]\+$' /root/*.lst) - -FROM ${BASE_IMAGE} -LABEL maintainer="Brad King " - -RUN --mount=type=bind,source=install_deps.sh,target=/root/install_deps.sh \ - --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \ - --mount=type=bind,source=dpkg-exclude,target=/etc/dpkg/dpkg.cfg.d/exclude \ - --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ - --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ - --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ - --mount=type=tmpfs,target=/var/log \ - --mount=type=tmpfs,target=/tmp \ - sh /root/install_deps.sh diff --git a/.gitlab/ci/docker/debian10-aarch64/deps_packages.lst b/.gitlab/ci/docker/debian10-aarch64/deps_packages.lst deleted file mode 100644 index ca83323..0000000 --- a/.gitlab/ci/docker/debian10-aarch64/deps_packages.lst +++ /dev/null @@ -1,94 +0,0 @@ -# Install build requirements. -libssl-dev - -# Install development tools. -g++ -curl -git - -# Install optional external build dependencies. -libarchive-dev -libbz2-dev -libcurl4-gnutls-dev -libexpat1-dev -libjsoncpp-dev -liblzma-dev -libncurses-dev -librhash-dev -libuv1-dev -libzstd-dev -zlib1g-dev - -# Install iwyu runtime deps. -clang-6.0 -libncurses6 - -# Tools needed for the test suite. -jq - -# Packages needed to test CTest. -bzr bzr-xmloutput -cvs -subversion -mercurial - -# Packages needed to test find modules. -alsa-utils -doxygen graphviz -freeglut3-dev -gnutls-dev -libarchive-dev -libblas-dev -libboost-dev -libboost-filesystem-dev -libboost-program-options-dev -libboost-python-dev -libboost-thread-dev -libbz2-dev -libcups2-dev -libcurl4-gnutls-dev -libdevil-dev -libfontconfig1-dev -libfreetype6-dev -libgdal-dev -libgif-dev -libgl1-mesa-dev -libglew-dev -libgmock-dev -libgrpc++-dev libgrpc-dev -libgsl-dev -libgtest-dev -libgtk2.0-dev -libhdf5-dev -libhdf5-mpich-dev -libhdf5-openmpi-dev -libicu-dev -libinput-dev -libjpeg-dev -libjsoncpp-dev -liblapack-dev -liblzma-dev -libmagick++-dev -libopenal-dev -libopenmpi-dev openmpi-bin -libosp-dev -libpng-dev -libpq-dev postgresql-server-dev-11 -libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc -libsdl-dev -libsqlite3-dev -libtiff-dev -libuv1-dev -libwxgtk3.0-dev -libx11-dev -libxalan-c-dev -libxerces-c-dev -libxml2-dev libxml2-utils -libxslt-dev xsltproc -openjdk-11-jdk -python2 python2-dev python-numpy pypy pypy-dev -python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv -qtbase5-dev qtbase5-dev-tools -ruby ruby-dev -swig -unixodbc-dev diff --git a/.gitlab/ci/docker/debian10-aarch64/docker-clean b/.gitlab/ci/docker/debian10-aarch64/docker-clean deleted file mode 100644 index e69de29..0000000 diff --git a/.gitlab/ci/docker/debian10-aarch64/dpkg-exclude b/.gitlab/ci/docker/debian10-aarch64/dpkg-exclude deleted file mode 100644 index 60b6565..0000000 --- a/.gitlab/ci/docker/debian10-aarch64/dpkg-exclude +++ /dev/null @@ -1,21 +0,0 @@ -# Drop all man pages -path-exclude=/usr/share/man/* - -# Drop all info pages -path-exclude=/usr/share/info/* - -# Drop all README files except from the some packages -path-exclude=/usr/**/*README* -path-include=/usr/share/devscripts/templates/README.mk-build-deps -path-include=/usr/share/equivs/template/debian/README.Debian.in - -# Drop all translations -path-exclude=/usr/share/locale/*/LC_MESSAGES/*.mo - -# Drop all documentation ... -path-exclude=/usr/share/doc/* -path-exclude=/usr/share/doc-base/* -path-exclude=/usr/share/gtk-doc/* - -# Per package excludes -path-exclude=/usr/share/gnupg/help.*.txt diff --git a/.gitlab/ci/docker/debian10-aarch64/install_deps.sh b/.gitlab/ci/docker/debian10-aarch64/install_deps.sh deleted file mode 100755 index d1c8aed..0000000 --- a/.gitlab/ci/docker/debian10-aarch64/install_deps.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -set -e - -apt-get install -y $(grep '^[^#]\+$' /root/deps_packages.lst) diff --git a/.gitlab/ci/docker/debian10/Dockerfile b/.gitlab/ci/docker/debian10/Dockerfile deleted file mode 100644 index d866428..0000000 --- a/.gitlab/ci/docker/debian10/Dockerfile +++ /dev/null @@ -1,62 +0,0 @@ -# syntax=docker/dockerfile:1 - -ARG BASE_IMAGE=debian:10 - -FROM ${BASE_IMAGE} AS apt-cache -# Populate APT cache w/ the fresh metadata and prefetch packages. -# Use an empty `docker-clean` file to "hide" the image-provided -# file to disallow removing packages after `apt-get` operations. -RUN --mount=type=tmpfs,target=/var/log \ - --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ - --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \ - --mount=type=bind,source=iwyu_packages.lst,target=/root/iwyu_packages.lst \ - --mount=type=bind,source=rvm_packages.lst,target=/root/rvm_packages.lst \ - apt-get update \ - && apt-get --download-only -y install $(grep -h '^[^#]\+$' /root/*.lst) - - -FROM ${BASE_IMAGE} AS iwyu-build -LABEL maintainer="Ben Boeckel " - -RUN --mount=type=bind,source=install_iwyu.sh,target=/root/install_iwyu.sh \ - --mount=type=bind,source=iwyu_packages.lst,target=/root/iwyu_packages.lst \ - --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ - --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ - --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ - --mount=type=tmpfs,target=/var/log \ - --mount=type=tmpfs,target=/tmp \ - sh /root/install_iwyu.sh - - -FROM ${BASE_IMAGE} AS rvm-build -LABEL maintainer="Ben Boeckel " - -RUN --mount=type=bind,source=install_rvm.sh,target=/root/install_rvm.sh \ - --mount=type=bind,source=rvm_packages.lst,target=/root/rvm_packages.lst \ - --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ - --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ - --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ - --mount=type=tmpfs,target=/var/log \ - --mount=type=tmpfs,target=/tmp \ - sh /root/install_rvm.sh - - -FROM ${BASE_IMAGE} -LABEL maintainer="Ben Boeckel " - -RUN --mount=type=bind,source=install_deps.sh,target=/root/install_deps.sh \ - --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \ - --mount=type=bind,source=dpkg-exclude,target=/etc/dpkg/dpkg.cfg.d/exclude \ - --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ - --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ - --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ - --mount=type=tmpfs,target=/var/log \ - --mount=type=tmpfs,target=/tmp \ - sh /root/install_deps.sh - -RUN --mount=type=bind,from=iwyu-build,source=/root,target=/root \ - tar -C / -xf /root/iwyu.tar \ - && ln -s /usr/lib/llvm-6.0/bin/include-what-you-use /usr/bin/include-what-you-use-6.0 - -RUN --mount=type=bind,from=rvm-build,source=/root,target=/root \ - tar -C /usr/local -xf /root/rvm.tar diff --git a/.gitlab/ci/docker/debian10/deps_packages.lst b/.gitlab/ci/docker/debian10/deps_packages.lst deleted file mode 100644 index fc5c174..0000000 --- a/.gitlab/ci/docker/debian10/deps_packages.lst +++ /dev/null @@ -1,100 +0,0 @@ -# Install build requirements. -libssl-dev - -# Install development tools. -g++ -curl -git - -# Install optional external build dependencies. -libarchive-dev -libbz2-dev -libcurl4-gnutls-dev -libexpat1-dev -libjsoncpp-dev -liblzma-dev -libncurses-dev -librhash-dev -libuv1-dev -libzstd-dev -zlib1g-dev - -# Install iwyu runtime deps. -clang-6.0 -libncurses6 - -# Tools needed for the test suite. -jq - -# Packages needed to test CTest. -bzr bzr-xmloutput -cvs -subversion -mercurial - -# Install swift runtime deps. -libncurses5 - -# Packages needed to test find modules. -alsa-utils -doxygen graphviz -freeglut3-dev -gnutls-dev -libarchive-dev -libblas-dev -libboost-dev -libboost-filesystem-dev -libboost-program-options-dev -libboost-python-dev -libboost-thread-dev -libbz2-dev -libcups2-dev -libcurl4-gnutls-dev -libdevil-dev -libfontconfig1-dev -libfreetype6-dev -libgdal-dev -libgif-dev -libgl1-mesa-dev -libglew-dev -libgmock-dev -libgrpc++-dev libgrpc-dev -libgsl-dev -libgtest-dev -libgtk2.0-dev -libhdf5-dev -libhdf5-mpich-dev -libhdf5-openmpi-dev -libicu-dev -libinput-dev -libjpeg-dev -libjsoncpp-dev -liblapack-dev -liblzma-dev -libmagick++-dev -libopenal-dev -libopenmpi-dev openmpi-bin -libosp-dev -libpng-dev -libpq-dev postgresql-server-dev-11 -libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc -libsdl-dev -libsqlite3-dev -libtiff-dev -libuv1-dev -libwxgtk3.0-dev -libx11-dev -libxalan-c-dev -libxerces-c-dev -libxml2-dev libxml2-utils -libxslt-dev xsltproc -openjdk-11-jdk -python2 python2-dev python-numpy pypy pypy-dev -python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv -qtbase5-dev qtbase5-dev-tools -ruby ruby-dev -swig -unixodbc-dev - -# CMake_TEST_FindPython2_IronPython -libmono-system-windows-forms4.0-cil diff --git a/.gitlab/ci/docker/debian10/docker-clean b/.gitlab/ci/docker/debian10/docker-clean deleted file mode 100644 index e69de29..0000000 diff --git a/.gitlab/ci/docker/debian10/dpkg-exclude b/.gitlab/ci/docker/debian10/dpkg-exclude deleted file mode 100644 index 60b6565..0000000 --- a/.gitlab/ci/docker/debian10/dpkg-exclude +++ /dev/null @@ -1,21 +0,0 @@ -# Drop all man pages -path-exclude=/usr/share/man/* - -# Drop all info pages -path-exclude=/usr/share/info/* - -# Drop all README files except from the some packages -path-exclude=/usr/**/*README* -path-include=/usr/share/devscripts/templates/README.mk-build-deps -path-include=/usr/share/equivs/template/debian/README.Debian.in - -# Drop all translations -path-exclude=/usr/share/locale/*/LC_MESSAGES/*.mo - -# Drop all documentation ... -path-exclude=/usr/share/doc/* -path-exclude=/usr/share/doc-base/* -path-exclude=/usr/share/gtk-doc/* - -# Per package excludes -path-exclude=/usr/share/gnupg/help.*.txt diff --git a/.gitlab/ci/docker/debian10/install_deps.sh b/.gitlab/ci/docker/debian10/install_deps.sh deleted file mode 100755 index a00e322..0000000 --- a/.gitlab/ci/docker/debian10/install_deps.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -set -e - -apt-get install -y $(grep '^[^#]\+$' /root/deps_packages.lst) - -curl -L -O https://github.com/IronLanguages/ironpython2/releases/download/ipy-2.7.10/ironpython_2.7.10.deb -echo 'e1aceec1d49ffa66e9059a52168a734999dcccc50164a60e2936649cae698f3e ironpython_2.7.10.deb' > ironpython.sha256sum -sha256sum --check ironpython.sha256sum -dpkg -i ironpython_2.7.10.deb -rm ironpython_2.7.10.deb ironpython.sha256sum - -# Perforce -curl -L https://www.perforce.com/downloads/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz -o - \ - | tar -C /usr/local/bin -xvzf - -- p4 p4d diff --git a/.gitlab/ci/docker/debian10/install_iwyu.sh b/.gitlab/ci/docker/debian10/install_iwyu.sh deleted file mode 100755 index 4814a71..0000000 --- a/.gitlab/ci/docker/debian10/install_iwyu.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -set -e - -# Install development tools. -apt-get install -y $(grep '^[^#]\+$' /root/iwyu_packages.lst) - -cd /root -git clone "https://github.com/include-what-you-use/include-what-you-use.git" -cd include-what-you-use -readonly llvm_version="$( clang-6.0 --version | head -n1 | cut -d' ' -f3 | cut -d. -f-2 )" -git checkout "clang_$llvm_version" -mkdir build -cd build - -cmake -GNinja \ - -DCMAKE_BUILD_TYPE=Release \ - "-DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$llvm_version" \ - "-DIWYU_LLVM_ROOT_PATH=/usr/lib/llvm-$llvm_version" \ - .. -ninja -DESTDIR=/root/iwyu-destdir ninja install -tar -C /root/iwyu-destdir -cf /root/iwyu.tar . diff --git a/.gitlab/ci/docker/debian10/install_rvm.sh b/.gitlab/ci/docker/debian10/install_rvm.sh deleted file mode 100755 index c6fff70..0000000 --- a/.gitlab/ci/docker/debian10/install_rvm.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -set -e - -apt-get install -y $(grep '^[^#]\+$' /root/rvm_packages.lst) - -gpg2 --keyserver hkps://keyserver.ubuntu.com \ - --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \ - 7D2BAF1CF37B13E2069D6956105BD0E739499BDB - -curl -sSL https://get.rvm.io | bash -s stable - -# keep version in sync with `env_debian*_ninja.sh` -/usr/local/rvm/bin/rvm install ruby-2.7.0 - -for p in archives examples gem-cache log src; do - touch /usr/local/rvm/${p}/.tar_exclude -done - -tar -C /usr/local --exclude-tag-under=.tar_exclude -cf /root/rvm.tar rvm diff --git a/.gitlab/ci/docker/debian10/iwyu_packages.lst b/.gitlab/ci/docker/debian10/iwyu_packages.lst deleted file mode 100644 index 9e291c9..0000000 --- a/.gitlab/ci/docker/debian10/iwyu_packages.lst +++ /dev/null @@ -1,9 +0,0 @@ -# Install development tools. -clang-6.0 -libclang-6.0-dev -llvm-6.0-dev -libz-dev -g++ -cmake -ninja-build -git diff --git a/.gitlab/ci/docker/debian10/rvm_packages.lst b/.gitlab/ci/docker/debian10/rvm_packages.lst deleted file mode 100644 index 80f079c..0000000 --- a/.gitlab/ci/docker/debian10/rvm_packages.lst +++ /dev/null @@ -1,25 +0,0 @@ -autoconf -automake -bison -bzip2 -curl -g++ -gawk -gcc -gnupg2 -libc6-dev -libffi-dev -libgdbm-dev -libgmp-dev -libncurses5-dev -libreadline-dev -libsqlite3-dev -libssl-dev -libtool -libyaml-dev -make -patch -pkg-config -procps -sqlite3 -zlib1g-dev diff --git a/.gitlab/ci/docker/debian12-aarch64/Dockerfile b/.gitlab/ci/docker/debian12-aarch64/Dockerfile new file mode 100644 index 0000000..58b5e0e --- /dev/null +++ b/.gitlab/ci/docker/debian12-aarch64/Dockerfile @@ -0,0 +1,26 @@ +# syntax=docker/dockerfile:1 + +ARG BASE_IMAGE=arm64v8/debian:12 + +FROM ${BASE_IMAGE} AS apt-cache +# Populate APT cache w/ the fresh metadata and prefetch packages. +# Use an empty `docker-clean` file to "hide" the image-provided +# file to disallow removing packages after `apt-get` operations. +RUN --mount=type=tmpfs,target=/var/log \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \ + apt-get update \ + && apt-get --download-only -y install $(grep -h '^[^#]\+$' /root/*.lst) + +FROM ${BASE_IMAGE} +LABEL maintainer="Brad King " + +RUN --mount=type=bind,source=install_deps.sh,target=/root/install_deps.sh \ + --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \ + --mount=type=bind,source=dpkg-exclude,target=/etc/dpkg/dpkg.cfg.d/exclude \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ + --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ + --mount=type=tmpfs,target=/var/log \ + --mount=type=tmpfs,target=/tmp \ + sh /root/install_deps.sh diff --git a/.gitlab/ci/docker/debian12-aarch64/deps_packages.lst b/.gitlab/ci/docker/debian12-aarch64/deps_packages.lst new file mode 100644 index 0000000..c92c715 --- /dev/null +++ b/.gitlab/ci/docker/debian12-aarch64/deps_packages.lst @@ -0,0 +1,93 @@ +# Install build requirements. +libssl-dev + +# Install development tools. +g++ +curl +git + +# Install optional external build dependencies. +libarchive-dev +libbz2-dev +libcurl4-gnutls-dev +libexpat1-dev +libjsoncpp-dev +liblzma-dev +libncurses-dev +librhash-dev +libuv1-dev +libzstd-dev +zlib1g-dev + +# Install iwyu runtime deps. +clang-15 +libncurses6 + +# Tools needed for the test suite. +jq + +# Packages needed to test CTest. +bzr +cvs +subversion +mercurial + +# Packages needed to test find modules. +alsa-utils +doxygen graphviz +freeglut3-dev +gnutls-dev +libarchive-dev +libblas-dev +libboost-dev +libboost-filesystem-dev +libboost-program-options-dev +libboost-python-dev +libboost-thread-dev +libbz2-dev +libcups2-dev +libcurl4-gnutls-dev +libdevil-dev +libfontconfig1-dev +libfreetype6-dev +libgdal-dev +libgif-dev +libgl1-mesa-dev +libglew-dev +libgmock-dev +libgrpc++-dev libgrpc-dev +libgsl-dev +libgtest-dev +libgtk2.0-dev +libhdf5-dev +libhdf5-mpich-dev +libhdf5-openmpi-dev +libicu-dev +libinput-dev +libjpeg-dev +libjsoncpp-dev +liblapack-dev +liblzma-dev +libmagick++-dev +libopenal-dev +libopenmpi-dev openmpi-bin +libosp-dev +libpng-dev +libpq-dev postgresql-server-dev-15 +libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc +libsdl1.2-dev +libsqlite3-dev +libtiff-dev +libuv1-dev +libwxgtk3.2-dev +libx11-dev +libxalan-c-dev +libxerces-c-dev +libxml2-dev libxml2-utils +libxslt-dev xsltproc +openjdk-17-jdk +python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv +qtbase5-dev qtbase5-dev-tools +ruby ruby-dev +swig +unixodbc-dev diff --git a/.gitlab/ci/docker/debian12-aarch64/docker-clean b/.gitlab/ci/docker/debian12-aarch64/docker-clean new file mode 100644 index 0000000..e69de29 diff --git a/.gitlab/ci/docker/debian12-aarch64/dpkg-exclude b/.gitlab/ci/docker/debian12-aarch64/dpkg-exclude new file mode 100644 index 0000000..60b6565 --- /dev/null +++ b/.gitlab/ci/docker/debian12-aarch64/dpkg-exclude @@ -0,0 +1,21 @@ +# Drop all man pages +path-exclude=/usr/share/man/* + +# Drop all info pages +path-exclude=/usr/share/info/* + +# Drop all README files except from the some packages +path-exclude=/usr/**/*README* +path-include=/usr/share/devscripts/templates/README.mk-build-deps +path-include=/usr/share/equivs/template/debian/README.Debian.in + +# Drop all translations +path-exclude=/usr/share/locale/*/LC_MESSAGES/*.mo + +# Drop all documentation ... +path-exclude=/usr/share/doc/* +path-exclude=/usr/share/doc-base/* +path-exclude=/usr/share/gtk-doc/* + +# Per package excludes +path-exclude=/usr/share/gnupg/help.*.txt diff --git a/.gitlab/ci/docker/debian12-aarch64/install_deps.sh b/.gitlab/ci/docker/debian12-aarch64/install_deps.sh new file mode 100755 index 0000000..d1c8aed --- /dev/null +++ b/.gitlab/ci/docker/debian12-aarch64/install_deps.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +set -e + +apt-get install -y $(grep '^[^#]\+$' /root/deps_packages.lst) diff --git a/.gitlab/ci/docker/debian12-x86_64/Dockerfile b/.gitlab/ci/docker/debian12-x86_64/Dockerfile new file mode 100644 index 0000000..477e763 --- /dev/null +++ b/.gitlab/ci/docker/debian12-x86_64/Dockerfile @@ -0,0 +1,62 @@ +# syntax=docker/dockerfile:1 + +ARG BASE_IMAGE=debian:12 + +FROM ${BASE_IMAGE} AS apt-cache +# Populate APT cache w/ the fresh metadata and prefetch packages. +# Use an empty `docker-clean` file to "hide" the image-provided +# file to disallow removing packages after `apt-get` operations. +RUN --mount=type=tmpfs,target=/var/log \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \ + --mount=type=bind,source=iwyu_packages.lst,target=/root/iwyu_packages.lst \ + --mount=type=bind,source=rvm_packages.lst,target=/root/rvm_packages.lst \ + apt-get update \ + && apt-get --download-only -y install $(grep -h '^[^#]\+$' /root/*.lst) + + +FROM ${BASE_IMAGE} AS iwyu-build +LABEL maintainer="Ben Boeckel " + +RUN --mount=type=bind,source=install_iwyu.sh,target=/root/install_iwyu.sh \ + --mount=type=bind,source=iwyu_packages.lst,target=/root/iwyu_packages.lst \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ + --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ + --mount=type=tmpfs,target=/var/log \ + --mount=type=tmpfs,target=/tmp \ + sh /root/install_iwyu.sh + + +FROM ${BASE_IMAGE} AS rvm-build +LABEL maintainer="Ben Boeckel " + +RUN --mount=type=bind,source=install_rvm.sh,target=/root/install_rvm.sh \ + --mount=type=bind,source=rvm_packages.lst,target=/root/rvm_packages.lst \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ + --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ + --mount=type=tmpfs,target=/var/log \ + --mount=type=tmpfs,target=/tmp \ + sh /root/install_rvm.sh + + +FROM ${BASE_IMAGE} +LABEL maintainer="Ben Boeckel " + +RUN --mount=type=bind,source=install_deps.sh,target=/root/install_deps.sh \ + --mount=type=bind,source=deps_packages.lst,target=/root/deps_packages.lst \ + --mount=type=bind,source=dpkg-exclude,target=/etc/dpkg/dpkg.cfg.d/exclude \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ + --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ + --mount=type=tmpfs,target=/var/log \ + --mount=type=tmpfs,target=/tmp \ + sh /root/install_deps.sh + +RUN --mount=type=bind,from=iwyu-build,source=/root,target=/root \ + tar -C / -xf /root/iwyu.tar \ + && ln -s /usr/lib/llvm-15/bin/include-what-you-use /usr/bin/include-what-you-use-15 + +RUN --mount=type=bind,from=rvm-build,source=/root,target=/root \ + tar -C /usr/local -xf /root/rvm.tar diff --git a/.gitlab/ci/docker/debian12-x86_64/deps_packages.lst b/.gitlab/ci/docker/debian12-x86_64/deps_packages.lst new file mode 100644 index 0000000..a59f2c9 --- /dev/null +++ b/.gitlab/ci/docker/debian12-x86_64/deps_packages.lst @@ -0,0 +1,102 @@ +# Install build requirements. +libssl-dev + +# Install development tools. +g++ +curl +git + +# Install optional external build dependencies. +libarchive-dev +libbz2-dev +libcurl4-gnutls-dev +libexpat1-dev +libjsoncpp-dev +liblzma-dev +libncurses-dev +librhash-dev +libuv1-dev +libzstd-dev +zlib1g-dev + +# Install iwyu runtime deps. +clang-15 +libncurses6 + +# Tools needed for the test suite. +jq + +# Packages needed to test CTest. +bzr +cvs +subversion +mercurial + +# Install HIP language toolchain. +hipcc + +# Install swift runtime deps. +libncurses5 + +# Packages needed to test find modules. +alsa-utils +doxygen graphviz +freeglut3-dev +gnutls-dev +libarchive-dev +libblas-dev +libboost-dev +libboost-filesystem-dev +libboost-program-options-dev +libboost-python-dev +libboost-thread-dev +libbz2-dev +libcups2-dev +libcurl4-gnutls-dev +libdevil-dev +libfontconfig1-dev +libfreetype6-dev +libgdal-dev +libgif-dev +libgl1-mesa-dev +libglew-dev +libgmock-dev +libgrpc++-dev libgrpc-dev +libgsl-dev +libgtest-dev +libgtk2.0-dev +libhdf5-dev +libhdf5-mpich-dev +libhdf5-openmpi-dev +libicu-dev +libinput-dev +libjpeg-dev +libjsoncpp-dev +liblapack-dev +liblzma-dev +libmagick++-dev +libopenal-dev +libopenmpi-dev openmpi-bin +libosp-dev +libpng-dev +libpq-dev postgresql-server-dev-15 +libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc +libsdl1.2-dev +libsqlite3-dev +libtiff-dev +libuv1-dev +libwxgtk3.2-dev +libx11-dev +libxalan-c-dev +libxerces-c-dev +libxml2-dev libxml2-utils +libxslt-dev xsltproc +openjdk-17-jdk +python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv +qtbase5-dev qtbase5-dev-tools +ruby ruby-dev +swig +unixodbc-dev + +# Packages needed to test ironpython. +libmono-system-windows-forms4.0-cil diff --git a/.gitlab/ci/docker/debian12-x86_64/docker-clean b/.gitlab/ci/docker/debian12-x86_64/docker-clean new file mode 100644 index 0000000..e69de29 diff --git a/.gitlab/ci/docker/debian12-x86_64/dpkg-exclude b/.gitlab/ci/docker/debian12-x86_64/dpkg-exclude new file mode 100644 index 0000000..60b6565 --- /dev/null +++ b/.gitlab/ci/docker/debian12-x86_64/dpkg-exclude @@ -0,0 +1,21 @@ +# Drop all man pages +path-exclude=/usr/share/man/* + +# Drop all info pages +path-exclude=/usr/share/info/* + +# Drop all README files except from the some packages +path-exclude=/usr/**/*README* +path-include=/usr/share/devscripts/templates/README.mk-build-deps +path-include=/usr/share/equivs/template/debian/README.Debian.in + +# Drop all translations +path-exclude=/usr/share/locale/*/LC_MESSAGES/*.mo + +# Drop all documentation ... +path-exclude=/usr/share/doc/* +path-exclude=/usr/share/doc-base/* +path-exclude=/usr/share/gtk-doc/* + +# Per package excludes +path-exclude=/usr/share/gnupg/help.*.txt diff --git a/.gitlab/ci/docker/debian12-x86_64/install_deps.sh b/.gitlab/ci/docker/debian12-x86_64/install_deps.sh new file mode 100755 index 0000000..7bfcacd --- /dev/null +++ b/.gitlab/ci/docker/debian12-x86_64/install_deps.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +apt-get install -y $(grep '^[^#]\+$' /root/deps_packages.lst) + +curl -L -O https://github.com/IronLanguages/ironpython3/releases/download/v3.4.0/ironpython_3.4.0.deb +echo '7dcd10b7a0ec0342bd7e20eebb597a96bb15267eb797d59358a3b1cfaa3e1adc ironpython_3.4.0.deb' > ironpython.sha256sum +sha256sum --check ironpython.sha256sum +dpkg -i ironpython_3.4.0.deb +rm ironpython_3.4.0.deb ironpython.sha256sum + +# Perforce +curl -L https://www.perforce.com/downloads/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz -o - \ + | tar -C /usr/local/bin -xvzf - -- p4 p4d diff --git a/.gitlab/ci/docker/debian12-x86_64/install_iwyu.sh b/.gitlab/ci/docker/debian12-x86_64/install_iwyu.sh new file mode 100755 index 0000000..bbeceb8 --- /dev/null +++ b/.gitlab/ci/docker/debian12-x86_64/install_iwyu.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +# Install development tools. +apt-get install -y $(grep '^[^#]\+$' /root/iwyu_packages.lst) + +cd /root +git clone "https://github.com/include-what-you-use/include-what-you-use.git" +cd include-what-you-use +readonly llvm_version="$( clang-15 --version | head -n1 | cut -d' ' -f4 | cut -d. -f-1 )" +git checkout "clang_$llvm_version" +mkdir build +cd build + +cmake -GNinja \ + -DCMAKE_BUILD_TYPE=Release \ + "-DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$llvm_version" \ + .. +ninja +DESTDIR=/root/iwyu-destdir ninja install +tar -C /root/iwyu-destdir -cf /root/iwyu.tar . diff --git a/.gitlab/ci/docker/debian12-x86_64/install_rvm.sh b/.gitlab/ci/docker/debian12-x86_64/install_rvm.sh new file mode 100755 index 0000000..1ad42c4 --- /dev/null +++ b/.gitlab/ci/docker/debian12-x86_64/install_rvm.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +set -e + +apt-get install -y $(grep '^[^#]\+$' /root/rvm_packages.lst) + +gpg2 --keyserver hkps://keyserver.ubuntu.com \ + --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \ + 7D2BAF1CF37B13E2069D6956105BD0E739499BDB + +curl -sSL https://get.rvm.io | bash -s stable + +# keep version in sync with `env_debian*_ninja.sh` +/usr/local/rvm/bin/rvm install ruby-3.2.2 + +for p in archives examples gem-cache log src; do + touch /usr/local/rvm/${p}/.tar_exclude +done + +tar -C /usr/local --exclude-tag-under=.tar_exclude -cf /root/rvm.tar rvm diff --git a/.gitlab/ci/docker/debian12-x86_64/iwyu_packages.lst b/.gitlab/ci/docker/debian12-x86_64/iwyu_packages.lst new file mode 100644 index 0000000..2dbddba --- /dev/null +++ b/.gitlab/ci/docker/debian12-x86_64/iwyu_packages.lst @@ -0,0 +1,9 @@ +# Install development tools. +clang-15 +libclang-15-dev +llvm-15-dev +libz-dev +g++ +cmake +ninja-build +git diff --git a/.gitlab/ci/docker/debian12-x86_64/rvm_packages.lst b/.gitlab/ci/docker/debian12-x86_64/rvm_packages.lst new file mode 100644 index 0000000..80f079c --- /dev/null +++ b/.gitlab/ci/docker/debian12-x86_64/rvm_packages.lst @@ -0,0 +1,25 @@ +autoconf +automake +bison +bzip2 +curl +g++ +gawk +gcc +gnupg2 +libc6-dev +libffi-dev +libgdbm-dev +libgmp-dev +libncurses5-dev +libreadline-dev +libsqlite3-dev +libssl-dev +libtool +libyaml-dev +make +patch +pkg-config +procps +sqlite3 +zlib1g-dev -- cgit v0.12