Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[20.10 backport] rpm: fix circular dependency between scan-cli-plugin and docker-ce-cli #659

Merged

Conversation

thaJeztah
Copy link
Member

@thaJeztah thaJeztah commented Mar 27, 2022

backport of #657

This fixes a problem when installing the packages from local files instead of
from the package repository. The current packages had a strong dependency set
in both directions (docker-ce-cli requires docker-scan-plugin, and vice-
versa). This caused a circular dependency, which could not be resolved when
trying to install the packages offline (from downloaded rpm files);

yum install ./docker-scan-plugin-0.17.0-3.fc35.x86_64.rpm
Last metadata expiration check: 1:09:40 ago on Tue Mar  8 08:30:47 2022.
Error:
Problem: conflicting requests
- nothing provides docker-ce-cli needed by docker-scan-plugin-0.17.0-3.fc35.x86_64
  (try to add '--skip-broken' to skip uninstallable packages)

yum install ./docker-ce-cli-20.10.13-3.fc35.x86_64.rpm
Last metadata expiration check: 1:10:23 ago on Tue Mar  8 08:30:47 2022.
Error:
Problem: conflicting requests
- nothing provides docker-scan-plugin(x86-64) needed by docker-ce-cli-1:20.10.13-3.fc35.x86_64
  (try to add '--skip-broken' to skip uninstallable packages)

This patch

  • changes the docker-scan-plugin to `Enhances
  • changes the docker-ce-cli package to mark the scan plugin as Recommends,
    with the exception of CentOS/RHEL 7, which do not yet support weak dependencies.
    For those, we continue to use Requires.

The Recommends dependency should be installed by default, but users can opt-out
by passing --setopt=install_weak_deps=False to dnf.

Signed-off-by: Sebastiaan van Stijn github@gone.nl
(cherry picked from commit 51098f9)
Signed-off-by: Sebastiaan van Stijn github@gone.nl

This fixes a problem when installing the packages from local files instead of
from the package repository. The current packages had a strong dependency set
in both directions (`docker-ce-cli` requires `docker-scan-plugin`, and vice-
versa). This caused a circular dependency, which could not be resolved when
trying to install the packages offline (from downloaded rpm files);

    yum install ./docker-scan-plugin-0.17.0-3.fc35.x86_64.rpm
    Last metadata expiration check: 1:09:40 ago on Tue Mar  8 08:30:47 2022.
    Error:
    Problem: conflicting requests
    - nothing provides docker-ce-cli needed by docker-scan-plugin-0.17.0-3.fc35.x86_64
      (try to add '--skip-broken' to skip uninstallable packages)

    yum install ./docker-ce-cli-20.10.13-3.fc35.x86_64.rpm
    Last metadata expiration check: 1:10:23 ago on Tue Mar  8 08:30:47 2022.
    Error:
    Problem: conflicting requests
    - nothing provides docker-scan-plugin(x86-64) needed by docker-ce-cli-1:20.10.13-3.fc35.x86_64
      (try to add '--skip-broken' to skip uninstallable packages)

This patch

- changes the `docker-scan-plugin` to `Enhances
- changes the `docker-ce-cli` package to mark the scan plugin as `Recommends`,
  with the exception of CentOS/RHEL 7, which do not yet support weak dependencies.
  For those, we continue to use `Requires`.

The `Recommends` dependency should be installed by default, but users can opt-out
by passing `--setopt=install_weak_deps=False` to `dnf`.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 51098f9)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
@thaJeztah thaJeztah marked this pull request as ready for review May 10, 2022
rumpl
rumpl approved these changes May 10, 2022
@thaJeztah
Copy link
Member Author

thaJeztah commented May 10, 2022

thanks!

@thaJeztah thaJeztah merged commit a5d869e into docker:20.10 May 10, 2022
2 checks passed
@thaJeztah thaJeztah deleted the 20.10_backport_fix_scan_dependency branch May 10, 2022
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.

None yet

2 participants