{"thread":{"id":"66737","subject":"[PATCH 0/3] ci: fix jobs failing on Ubuntu 26.04","startedAt":"2026-11-01T11:02:13Z","lastAt":"2026-11-03T22:04:39Z","messageCount":5,"participants":["Harald Nordgren via GitGitGadget","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"557076","messageId":"pull.2478.git.git.1793530936.gitgitgadget@gmail.com","threadId":"66737","inReplyTo":null,"subject":"[PATCH 0/3] ci: fix jobs failing on Ubuntu 26.04","fromName":"Harald Nordgren via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2026-11-01T11:02:13Z","receivedAt":"2026-11-01T11:02:13Z","isPatch":true,"sender":{"key":"haraldnordgren@gmail.com","avatar":"https://avatars.githubusercontent.com/u/9569897?v=4"},"body":"Four CI jobs fail since ubuntu-latest moved to Ubuntu 26.04.\n\n * documentation, fuzz smoke test and static-analysis fail with ln: failed\n   to create symbolic link '/usr/bin/dirname': Already exists. Run the ln\n   with sudo.\n * linux32 cannot resolve deb.debian.org. Pin it to ubuntu-24.04. The Docker\n   update in actions/runner-images#15205 fixes this on 26.04, but a new\n   runner image will take a long time to roll out, and CI should not stay\n   broken while we wait.\n * Use apt-get in linux32 to get rid of the apt does not have a stable CLI\n   interface warnings.\n\nThe first two are based on Johannes Schindelin's fixes in Git for Windows\n(git-for-windows/git#6473).\n\nHarald Nordgren (3):\n  ci: use apt-get in the linux32 job\n  install-dependencies: work around a permission problem\n  ci: pin linux32 to ubuntu-24.04 to restore networking\n\n .github/workflows/main.yml | 6 ++++--\n ci/install-dependencies.sh | 2 +-\n 2 files changed, 5 insertions(+), 3 deletions(-)\n\n\nbase-commit: 50fe5cc63f9cd6e89b87a2c9ccf96a444f4cfdb7\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2478%2FHaraldNordgren%2Fci-linux32-apt-get-v1\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2478/HaraldNordgren/ci-linux32-apt-get-v1\nPull-Request: https://github.com/git/git/pull/2478\n-- \ngitgitgadget\n\n"},{"id":"557077","messageId":"0c9bfa3b840e4fa49f481f67e3e96bae1b911418.1793530936.git.gitgitgadget@gmail.com","threadId":"66737","inReplyTo":"pull.2478.git.git.1793530936.gitgitgadget@gmail.com","subject":"[PATCH 1/3] ci: use apt-get in the linux32 job","fromName":"Harald Nordgren via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2026-11-01T11:02:14Z","receivedAt":"2026-11-01T11:02:14Z","isPatch":true,"sender":{"key":"haraldnordgren@gmail.com","avatar":"https://avatars.githubusercontent.com/u/9569897?v=4"},"body":"From: Harald Nordgren <haraldnordgren@gmail.com>\n\nThe linux32 job prints\n\n    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.\n\ntwice, once for \"apt update\" and once for \"apt install\". apt is meant\nfor interactive use. Call apt-get instead, like ci/install-dependencies.sh\nalready does.\n\nSigned-off-by: Harald Nordgren <haraldnordgren@gmail.com>\n---\n .github/workflows/main.yml | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex d488fd10db..b564927e2c 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -449,7 +449,7 @@ jobs:\n     steps:\n     - name: prepare libc6 for actions\n       if: matrix.vector.jobname == 'linux32'\n-      run: apt -q update && apt -q -y install libc6-amd64 lib64stdc++6\n+      run: apt-get -q update && apt-get -q -y install libc6-amd64 lib64stdc++6\n     - name: install git in container\n       run: |\n         if command -v git\n-- \ngitgitgadget\n\n\n"},{"id":"557078","messageId":"15e79c5cfcd9eb59b79daa1aee7a54f433d8509b.1793530936.git.gitgitgadget@gmail.com","threadId":"66737","inReplyTo":"pull.2478.git.git.1793530936.gitgitgadget@gmail.com","subject":"[PATCH 2/3] install-dependencies: work around a permission problem","fromName":"Harald Nordgren via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2026-11-01T11:02:15Z","receivedAt":"2026-11-01T11:02:15Z","isPatch":true,"sender":{"key":"haraldnordgren@gmail.com","avatar":"https://avatars.githubusercontent.com/u/9569897?v=4"},"body":"From: Harald Nordgren <haraldnordgren@gmail.com>\n\nWhen replacing `dirname`, elevation is required, otherwise the command\nwill fail with:\n\n  + ln -sfT /usr/bin/gnudirname /usr/bin/dirname\n  ln: failed to create symbolic link '/usr/bin/dirname': Already exists\n\nas observed in\nhttps://github.com/git-for-windows/git/actions/runs/40223871341/job/121274294974?pr=6473#step:3:909\n\nBased-on-patch-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Harald Nordgren <haraldnordgren@gmail.com>\n---\n ci/install-dependencies.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh\nindex 4b1733ad15..ed2d09a0a9 100755\n--- a/ci/install-dependencies.sh\n+++ b/ci/install-dependencies.sh\n@@ -80,7 +80,7 @@ ubuntu-*|i386/debian-*|debian-*)\n \t# See <https://github.com/uutils/coreutils/issues/10508>.\n \tif test -x /usr/bin/gnudirname\n \tthen\n-\t\tln -sfT /usr/bin/gnudirname /usr/bin/dirname\n+\t\tsudo ln -sfT /usr/bin/gnudirname /usr/bin/dirname\n \tfi\n \n \tcase \"$distro\" in\n-- \ngitgitgadget\n\n\n"},{"id":"557079","messageId":"37e837ef88b91d3c745fb05466bf30ec1afae680.1793530936.git.gitgitgadget@gmail.com","threadId":"66737","inReplyTo":"pull.2478.git.git.1793530936.gitgitgadget@gmail.com","subject":"[PATCH 3/3] ci: pin linux32 to ubuntu-24.04 to restore networking","fromName":"Harald Nordgren via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2026-11-01T11:02:16Z","receivedAt":"2026-11-01T11:02:16Z","isPatch":true,"sender":{"key":"haraldnordgren@gmail.com","avatar":"https://avatars.githubusercontent.com/u/9569897?v=4"},"body":"From: Harald Nordgren <haraldnordgren@gmail.com>\n\nThe linux32 job fails DNS resolution before checkout because Docker\n29.4.2's seccomp profile on Ubuntu 26.04 blocks socketcall in i386 glibc\ncontainers. Ubuntu 24.04 avoids this host-side regression.\n\nhttps://github.com/actions/runner-images/issues/14790\n\nBased-on-patch-by: Johannes Schindelin <johannes.schindelin@gmx.de>\nSigned-off-by: Harald Nordgren <haraldnordgren@gmail.com>\n---\n .github/workflows/main.yml | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)\n\ndiff --git a/.github/workflows/main.yml b/.github/workflows/main.yml\nindex b564927e2c..d9149e9ecb 100644\n--- a/.github/workflows/main.yml\n+++ b/.github/workflows/main.yml\n@@ -442,7 +442,9 @@ jobs:\n       CC: ${{matrix.vector.cc}}\n       CI_JOB_IMAGE: ${{matrix.vector.image}}\n       CUSTOM_PATH: /custom\n-    runs-on: ubuntu-latest\n+    runs-on: >-\n+      ${{ matrix.vector.jobname == 'linux32'\n+          && 'ubuntu-24.04' || 'ubuntu-latest' }}\n     container:\n       image: ${{ matrix.vector.image }}\n       options: ${{ github.repository_visibility == 'private' && '--pids-limit 16384 --ulimit nproc=16384:16384 --ulimit nofile=32768:32768' || '' }}\n-- \ngitgitgadget\n\n"},{"id":"557384","messageId":"xmqqse1h4lmw.fsf@gitster.g","threadId":"66737","inReplyTo":"pull.2478.git.git.1793530936.gitgitgadget@gmail.com","subject":"Re: [PATCH 0/3] ci: fix jobs failing on Ubuntu 26.04","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-11-03T22:04:39Z","receivedAt":"2026-11-03T22:04:39Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Harald Nordgren via GitGitGadget\" <gitgitgadget@gmail.com> writes:\n\n> Four CI jobs fail since ubuntu-latest moved to Ubuntu 26.04.\n>\n>  * documentation, fuzz smoke test and static-analysis fail with ln: failed\n>    to create symbolic link '/usr/bin/dirname': Already exists. Run the ln\n>    with sudo.\n\nI see this breakage.  Haven't they corrected the Rust rewrite of\ndirname by now, by the way, to make this overwrite unnecessary yet?\n\n>  * linux32 cannot resolve deb.debian.org. Pin it to ubuntu-24.04. The Docker\n>    update in actions/runner-images#15205 fixes this on 26.04, but a new\n>    runner image will take a long time to roll out, and CI should not stay\n>    broken while we wait.\n\nSigh, but this one is rather straightforward.  We need to be aware\nof this change so that we can revert it when it becomes unnecessary.\n\n>  * Use apt-get in linux32 to get rid of the apt does not have a stable CLI\n>    interface warnings.\n\nI can see this well, but it is a warning only, so I do not know how\nmuch value in addressing it would be.\n\n> The first two are based on Johannes Schindelin's fixes in Git for Windows\n> (git-for-windows/git#6473).\n>\n> Harald Nordgren (3):\n>   ci: use apt-get in the linux32 job\n>   install-dependencies: work around a permission problem\n>   ci: pin linux32 to ubuntu-24.04 to restore networking\n\nWill queue.  Thanks.\n\n>\n>  .github/workflows/main.yml | 6 ++++--\n>  ci/install-dependencies.sh | 2 +-\n>  2 files changed, 5 insertions(+), 3 deletions(-)\n>\n>\n> base-commit: 50fe5cc63f9cd6e89b87a2c9ccf96a444f4cfdb7\n> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2478%2FHaraldNordgren%2Fci-linux32-apt-get-v1\n> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2478/HaraldNordgren/ci-linux32-apt-get-v1\n> Pull-Request: https://github.com/git/git/pull/2478\n\n"}]}