diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e6946a236a7a0d..1263e1e75b7c2d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -439,9 +439,8 @@ jobs: cc: gcc - jobname: linux-musl-meson image: alpine:latest - # Supported until 2025-04-02. - jobname: linux32 - image: i386/ubuntu:20.04 + image: i386/debian:latest # A RHEL 8 compatible distro. Supported until 2029-05-31. - jobname: almalinux-8 image: almalinux:8 @@ -453,7 +452,9 @@ jobs: CC: ${{matrix.vector.cc}} CI_JOB_IMAGE: ${{matrix.vector.image}} CUSTOM_PATH: /custom - runs-on: ubuntu-latest + runs-on: >- + ${{ matrix.vector.jobname == 'linux32' + && 'ubuntu-24.04' || 'ubuntu-latest' }} container: image: ${{ matrix.vector.image }} options: ${{ github.repository_visibility == 'private' && '--pids-limit 16384 --ulimit nproc=16384:16384 --ulimit nofile=32768:32768' || '' }} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cd6fd4a5047e87..85080cdf1fbd40 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -65,9 +65,8 @@ test:linux: CC: gcc - jobname: linux-musl-meson image: alpine:latest - # Supported until 2025-04-02. - jobname: linux32 - image: i386/ubuntu:20.04 + image: i386/debian:latest # A RHEL 8 compatible distro. Supported until 2029-05-31. - jobname: almalinux-8 image: almalinux:8 diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index 24f91fca4b9096..0dea5e63c1a3ce 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -39,7 +39,7 @@ fedora-*|almalinux-*) dnf -yq update >/dev/null && dnf -yq install shadow-utils sudo make pkg-config gcc findutils diffutils perl python3 gawk gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel $MESON_DEPS cargo >/dev/null ;; -ubuntu-*|i386/ubuntu-*|debian-*) +ubuntu-*|i386/debian-*|debian-*) # Required so that apt doesn't wait for user input on certain packages. export DEBIAN_FRONTEND=noninteractive @@ -48,10 +48,6 @@ ubuntu-*|i386/ubuntu-*|debian-*) SVN='libsvn-perl subversion' LANGUAGES='language-pack-is' ;; - i386/ubuntu-*) - SVN= - LANGUAGES='language-pack-is' - ;; *) SVN='libsvn-perl subversion' LANGUAGES='locales-all' @@ -84,7 +80,7 @@ ubuntu-*|i386/ubuntu-*|debian-*) # See . if test -x /usr/bin/gnudirname then - ln -sfT /usr/bin/gnudirname /usr/bin/dirname + sudo ln -sfT /usr/bin/gnudirname /usr/bin/dirname fi case "$distro" in diff --git a/ci/lib.sh b/ci/lib.sh index cad4802a55defb..06d0e4542b83be 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -262,7 +262,7 @@ then CI_OS_NAME=osx JOBS=$(nproc) ;; - *,almalinux:*|*,alpine:*|*,debian:*|*,fedora:*|*,ubuntu:*|*,i386/ubuntu:*) + *,almalinux:*|*,alpine:*|*,debian:*|*,fedora:*|*,ubuntu:*|*,i386/debian:*) CI_OS_NAME=linux JOBS=$(nproc) ;; diff --git a/t/t5551-http-fetch-smart.sh b/t/t5551-http-fetch-smart.sh index 805bec025c589f..1ec971cdbafdb4 100755 --- a/t/t5551-http-fetch-smart.sh +++ b/t/t5551-http-fetch-smart.sh @@ -17,6 +17,19 @@ fi test "$HTTP_PROTO" = "HTTP/2" && enable_http2 start_httpd +# The cURL version which Debian 12 ships (v7.88.1) can fail to retry +# authentication after an early HTTP/2 response. This bug was introduced +# in cURL v7.88.0 (8c762f5998 (http2: minor buffer and error path fixes, +# 2023-02-08)) and fixed in v8.3.0 (https://github.com/curl/curl/pull/11756). +test_lazy_prereq HAVE_CURL_HTTP2_BUG ' + test_have_prereq HTTP2 && + build_option libcurl | + awk -F. '\'' + ($1 == 7 && $2 >= 88) || ($1 == 8 && $2 < 3) { broken = 1 } + END { exit !broken } + '\'' +' + test_expect_success HTTP2 'enable client-side http/2' ' git config --global http.version HTTP/2 ' @@ -224,7 +237,8 @@ test_expect_success 'clone from auth-only-for-push repository' ' test_cmp expect actual ' -test_expect_success 'clone from auth-only-for-objects repository' ' +test_expect_success !HAVE_CURL_HTTP2_BUG \ + 'clone from auth-only-for-objects repository' ' echo two >expect && set_askpass user@host pass@host && git clone --bare "$HTTPD_URL/auth-fetch/smart/repo.git" half-auth && @@ -233,7 +247,8 @@ test_expect_success 'clone from auth-only-for-objects repository' ' test_cmp expect actual ' -test_expect_success 'no-op half-auth fetch does not require a password' ' +test_expect_success !HAVE_CURL_HTTP2_BUG \ + 'no-op half-auth fetch does not require a password' ' set_askpass wrong && # NEEDSWORK: When using HTTP(S), protocol v0 supports a "half-auth"