Public bug reported:

Package: docker-compose-v2
Version: 2.40.3+ds1-0ubuntu1
Distribution: Ubuntu 26.04 (resolute)

# Summary

`docker-compose-v2` (Ubuntu universe) and `docker-compose-plugin` from
the upstream Docker repository (https://download.docker.com/linux/ubuntu)
both install the same binary at:

    /usr/libexec/docker/cli-plugins/docker-compose

Neither package declares `Conflicts:`, `Replaces:`, or `Provides:`
against the other. As a result, dpkg aborts the unpack phase whenever a
single apt transaction selects both packages, breaking any unattended
provisioning that combines `apt install ansible` (which pulls
`docker-compose-v2` as a dependency) with the upstream
`docker-compose-plugin`.

# Reproducer

On a fresh `ubuntu:latest` (= 26.04 resolute):

    apt-get update
    apt-get install -y ca-certificates curl gnupg
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
        | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu resolute stable" \
        > /etc/apt/sources.list.d/docker.list
    apt-get update
    apt-get install -y docker-compose-plugin ansible

# Expected

apt resolves the dependencies and installs both packages, OR it fails
early with a clear "conflicts with" message naming both packages.

# Actual

dpkg fails mid-unpack:

    Preparing to unpack .../docker-compose-v2_2.40.3+ds1-0ubuntu1_amd64.deb ...
    dpkg: error processing archive 
.../docker-compose-v2_2.40.3+ds1-0ubuntu1_amd64.deb (--unpack):
     trying to overwrite '/usr/libexec/docker/cli-plugins/docker-compose',
     which is also in package docker-compose-plugin 
(5.1.3-1~ubuntu.26.04~resolute)
    dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
    E: Sub-process /usr/bin/dpkg returned an error code (1)

# Suggested fix

Add a proper `Conflicts:` (and ideally `Replaces:` / `Provides:`) marker
between `docker-compose-v2` and `docker-compose-plugin` so apt can
resolve the clash automatically, in line with Debian Policy §10.1
(file conflicts) and §7.6 (Conflicts vs Replaces).

# Workaround in use

Pinning `docker-compose-v2` to priority -1 in
`/etc/apt/preferences.d/`, plus `apt-get -y purge docker-compose-v2`
before installing `docker-compose-plugin`. See infinito-nexus
core@<commit-hash>:roles/sys-svc-container/files/install-cli.sh for
the concrete pin we ship.

# Impact

Any automation pipeline that provisions a fresh Ubuntu 26.04 host with
both Docker upstream and ansible (or any other package whose
recommended/depends chain pulls `docker-compose-v2`) breaks unattended.
GitHub Actions runners, ansible-driven server bootstraps, and CI
images on `ubuntu:latest` are all affected.

** Affects: docker-compose-v2 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2151249

Title:
  docker-compose-v2 conflicts with docker-compose-plugin: both ship
  /usr/libexec/docker/cli-plugins/docker-compose without Conflicts:
  marker

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/docker-compose-v2/+bug/2151249/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to