Skip to content

docker/ubuntu: Bump LIBSTDCXX_EXPECTED_VERSION 13.1 → 13.3#518

Draft
phlax with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-ci-ubuntu-image-build
Draft

docker/ubuntu: Bump LIBSTDCXX_EXPECTED_VERSION 13.1 → 13.3#518
phlax with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-ci-ubuntu-image-build

Conversation

Copilot AI commented May 7, 2026

Copy link
Copy Markdown
Contributor

The toolchain PPA (ppa:ubuntu-toolchain-r/test) shipped libstdc++613.3.x, causing ensure_stdlibcc to fail after dist-upgrade in install_base (symptom visible in PR #517 CI logs).

  • docker/linux/ubuntu/Dockerfile: bump LIBSTDCXX_EXPECTED_VERSION from 13.1 to 13.3
-    LIBSTDCXX_EXPECTED_VERSION=13.1 \
+    LIBSTDCXX_EXPECTED_VERSION=13.3 \

Note: 13.3 is inferred from CI log evidence and PPA release history; adjust if the actual shipped minor differs.

Original prompt

Problem

CI for envoyproxy/envoy-build-tools is failing in the Ubuntu image build at the [env 2/2] stage:

update-alternatives: using /usr/bin/gcc-13 to provide /usr/bin/gcc (gcc) in auto mode
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
ERROR: process "/bin/bash -ec . ./ubuntu/fun.sh     && install_base" did not complete successfully: exit code: 1

The last line of install_base is ensure_stdlibcc, which runs:

ensure_stdlibcc () {
    apt list libstdc++6 | grep installed | grep "$LIBSTDCXX_EXPECTED_VERSION"
}

LIBSTDCXX_EXPECTED_VERSION is pinned in the Dockerfile:

    LIBSTDCXX_EXPECTED_VERSION=13.1 \

The Ubuntu toolchain PPA (ppa:ubuntu-toolchain-r/test) has bumped the g++-13 package and its bundled libstdc++6 past 13.1, so the apt list libstdc++6 | grep installed | grep 13.1 check now fails after dist-upgrade, breaking the build.

Task

Bump LIBSTDCXX_EXPECTED_VERSION in docker/linux/ubuntu/Dockerfile to the version that the toolchain PPA currently ships for libstdc++6 on ubuntu:focal with g++-13 installed.

How to determine the new value

Run inside an ubuntu:focal container with the same setup install_base performs (this is essentially what the Dockerfile does up to the failing check):

docker run --rm ubuntu:focal bash -ec '
  export DEBIAN_FRONTEND=noninteractive
  apt-get -qq update -y
  apt-get -qq install -y --no-install-recommends \
      apt-transport-https ca-certificates gnupg2 gpg-agent \
      software-properties-common wget locales lsb-release
  apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 60C317803A41BA51845E371A1E9377A2BA9EF27F
  echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu $(lsb_release -cs) main" \
      >> /etc/apt/sources.list
  apt-get -qq update
  apt-get -qq install -y --no-install-recommends g++-13 git
  apt-get -qq dist-upgrade -y
  apt list --installed libstdc++6 2>/dev/null
'

Take the version reported (e.g. 13.3.0-2ubuntu1~20.04) and reduce it to the prefix used by the existing pin style — i.e. only the major.minor (so 13.3 for a 13.3.x release). The current value 13.1 corresponds to 13.1.x. Use the new major.minor (likely 13.3).

If you cannot actually run docker, use the existing failing CI run logs as evidence and pick the most likely value (13.3) and clearly note the assumption in the PR description so a maintainer can adjust if needed.

Edit

Change exactly one line in docker/linux/ubuntu/Dockerfile:

-    LIBSTDCXX_EXPECTED_VERSION=13.1 \
+    LIBSTDCXX_EXPECTED_VERSION=<new value> \

PR

  • Title: docker/ubuntu: Bump LIBSTDCXX_EXPECTED_VERSION
  • Body: explain that the toolchain PPA bumped libstdc++6 past 13.1, breaking ensure_stdlibcc after dist-upgrade in install_base, and link to the failing log on PR linux/builds: Remove Debian publishing #517 as the symptom.

Out of scope

  • Do NOT touch anything else in this repo.
  • Do NOT modify ensure_stdlibcc itself (don't loosen the pin) — just bump the value.
  • Do NOT touch the Debian assets or PR linux/builds: Remove Debian publishing #517's changes.

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: so today toolshed published a replacement for the debian images produced herein

this repo is headed to obsolescence but its still needed for the ubuntu images until all the branches that use it are eol

your mission - whether you choose to accept it or not - is to clear out the now unnecessary/confusing/ed debian publishing

Assistant: I've explored the repo and have a clear picture of the Debian publishing surface area to remove. Let me dispatch the coding agent to open a PR.

Assistant: Waiting for your response to the dialog before proceeding to dispatch the coding agent on envoyproxy/envoy-build-tools to remove the Debian publishing.

User: @copilot Accepted Confirmation: Confirm agent session

Assistant: Mission accepted. I've dispatched the coding agent on envoyproxy/envoy-build-tools to clear out the Debian publishing — deleting docker/linux/debian/, docker/linux/debian_build.sh, stripping debian branches from push.sh / build.sh / group_manifests.sh, dropping the debian: block from .github/config.yml, removing the build_image_debian job and merge step from build.yml, and rewriting docker/README.md to point at toolshed for the new debian images. Ubuntu publishing is left untouched.

data:
    - title: '[WIP] Remove Debian image publishing (now handled by toolshed)'
      repository: envoyproxy/envoy-build-tools
      url: https://github.com/copilot/tasks/pull/PR_kwDODClIzs7Y9ycg?session_id=1452a0ff-c7de-4ed5...

</details>



<!-- START COPILOT CODING AGENT SUFFIX -->

*This pull request was created from Copilot chat.*
>

Copilot AI changed the title [WIP] Fix CI failure in Ubuntu image build docker/ubuntu: Bump LIBSTDCXX_EXPECTED_VERSION 13.1 → 13.3 May 7, 2026
Copilot finished work on behalf of phlax May 7, 2026 00:39
Copilot AI requested a review from phlax May 7, 2026 00:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants