Skip to content

Commit 51098f9

Browse files
committed
rpm: fix circular dependency between scan-cli-plugin and docker-ce-cli
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 <[email protected]>
1 parent 6168fab commit 51098f9

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

rpm/SPECS/docker-ce-cli.spec

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,15 @@ Requires: /bin/sh
1818
Requires: /usr/sbin/groupadd
1919
# TODO change once we support scan-plugin on other architectures
2020
%ifarch x86_64
21+
# CentOS 7 and RHEL 7 do not yet support weak dependencies
22+
#
23+
# Note that we're not using <= 7 here, to account for other RPM distros, such
24+
# as Fedora, which would not have the rhel macro set (so default to 0).
25+
%if 0%{?rhel} == 7
2126
Requires: docker-scan-plugin(x86-64)
27+
%else
28+
Recommends: docker-scan-plugin(x86-64)
29+
%endif
2230
%endif
2331

2432
BuildRequires: make

rpm/SPECS/docker-scan-plugin.spec

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ URL: https://github.com/docker/scan-cli-plugin/
1212
Vendor: Docker
1313
Packager: Docker <[email protected]>
1414

15-
Requires: docker-ce-cli
15+
# CentOS 7 and RHEL 7 do not yet support weak dependencies.
16+
#
17+
# Note that we're not using <= 7 here, to account for other RPM distros, such
18+
# as Fedora, which would not have the rhel macro set (so default to 0).
19+
%if 0%{?rhel} != 7
20+
Enhances: docker-ce-cli
21+
%endif
1622

1723
# TODO change once we support scan-plugin on other architectures
1824
BuildArch: x86_64

0 commit comments

Comments
 (0)