From c85bcb5de163a658102bea058a1ea53aea1c5476 Mon Sep 17 00:00:00 2001 From: "brian m. carlson" Date: Thu, 31 Oct 2024 23:49:32 +0000 Subject: [PATCH 1/3] gitlab-ci: switch from Ubuntu 16.04 to 20.04 Ubuntu 16.04 is past its normal LTS lifespan, so let's switch to Ubuntu 20.04 instead, which is the latest regular LTS version. Signed-off-by: brian m. carlson Signed-off-by: Taylor Blau --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 526ecfe030a43e..a1bc92893f27d6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -35,7 +35,7 @@ test:linux: parallel: matrix: - jobname: linux-old - image: ubuntu:16.04 + image: ubuntu:20.04 CC: gcc - jobname: linux-sha256 image: ubuntu:latest From ad797eace4209f34aec7fc113ed70887d05c8007 Mon Sep 17 00:00:00 2001 From: "brian m. carlson" Date: Thu, 31 Oct 2024 23:49:33 +0000 Subject: [PATCH 2/3] ci: remove clause for Ubuntu 16.04 We're no longer testing this version and it's well beyond regular LTS support now, so remove the stanza for it from the case statement in our CI code. Signed-off-by: brian m. carlson Signed-off-by: Taylor Blau --- ci/install-dependencies.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index 126e570eb46a29..d30ae53a18979e 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -55,11 +55,6 @@ ubuntu-*|ubuntu32-*) ${CC_PACKAGE:-${CC:-gcc}} $PYTHON_PACKAGE case "$distro" in - ubuntu-16.04) - # Does not support JGit, but we also don't really care about - # the others. We rather care whether Git still compiles and - # runs fine overall. - ;; ubuntu-*) mkdir --parents "$CUSTOM_PATH" From ac112fd4f088040787f501b3f4b8279caa394d4e Mon Sep 17 00:00:00 2001 From: "brian m. carlson" Date: Thu, 31 Oct 2024 23:49:34 +0000 Subject: [PATCH 3/3] Add additional CI jobs to avoid accidental breakage In general, we'd like to make sure Git works on the LTS versions of major Linux distributions. To do that, let's add CI jobs for the oldest regular (non-extended) LTS versions of the major distributions: Ubuntu 20.04, Debian 11, and RHEL 8. Because RHEL isn't available to the public at no charge, use AlmaLinux, which is binary compatible with it. Note that Debian does not offer the language-pack packages, but suitable locale support can be installed with the locales-all package. Otherwise, use the set of installation instructions which exist and are most similar to the existing supported distros. Signed-off-by: brian m. carlson Signed-off-by: Taylor Blau --- .github/workflows/main.yml | 9 +++++++++ ci/install-dependencies.sh | 14 ++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9301a1edd6d849..808ddc19b8a799 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -342,12 +342,21 @@ jobs: - jobname: linux-musl image: alpine distro: alpine-latest + # Supported until 2025-04-02. - jobname: linux32 image: i386/ubuntu:focal distro: ubuntu32-20.04 - jobname: pedantic image: fedora distro: fedora-latest + # A RHEL 8 compatible distro. Supported until 2029-05-31. + - jobname: almalinux-8 + image: almalinux:8 + distro: almalinux-8 + # Supported until 2026-08-31. + - jobname: debian-11 + image: debian:11 + distro: debian-11 env: jobname: ${{matrix.vector.jobname}} distro: ${{matrix.vector.distro}} diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index d30ae53a18979e..d020cb7aa5ef64 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -29,26 +29,32 @@ alpine-*) apache2 apache2-http2 apache2-proxy apache2-ssl apache2-webdav apr-util-dbd_sqlite3 \ bash cvs gnupg perl-cgi perl-dbd-sqlite perl-io-tty >/dev/null ;; -fedora-*) +fedora-*|almalinux-*) dnf -yq update >/dev/null && dnf -yq install make gcc findutils diffutils perl python3 gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel >/dev/null ;; -ubuntu-*|ubuntu32-*) +ubuntu-*|ubuntu32-*|debian-*) # Required so that apt doesn't wait for user input on certain packages. export DEBIAN_FRONTEND=noninteractive case "$distro" in ubuntu-*) SVN='libsvn-perl subversion' + LANGUAGES='language-pack-is' ;; - *) + ubuntu32-*) SVN= + LANGUAGES='language-pack-is' + ;; + *) + SVN='libsvn-perl subversion' + LANGUAGES='locales-all' ;; esac sudo apt-get -q update sudo apt-get -q -y install \ - language-pack-is apache2 cvs cvsps git gnupg $SVN \ + $LANGUAGES apache2 cvs cvsps git gnupg $SVN \ make libssl-dev libcurl4-openssl-dev libexpat-dev wget sudo default-jre \ tcl tk gettext zlib1g-dev perl-modules liberror-perl libauthen-sasl-perl \ libemail-valid-perl libio-pty-perl libio-socket-ssl-perl libnet-smtp-ssl-perl libdbd-sqlite3-perl libcgi-pm-perl \