Skip to content

Commit

Permalink
spec: Avoid DNF warnings on traditional Fedora hosts and DNF on atomics
Browse files Browse the repository at this point in the history
It will be good to make it easier to have gratis, self-supported Red Hat
Enterprise Linux OCI containers on Fedora Silverblue and Workstation
through the RHEL Developer Suite subscription [1].  This includes Toolbx
containers created with:
  $ toolbox create --distro rhel --release 9.5

However, when subscription-manager was installed on a Fedora host with
DNF4, the subscription-manager DNF plugin printed some spurious warning
messages that users didn't like because it made them think that
something is wrong.  eg., when the host is unregistered:
  $ sudo dnf update
  Updating Subscription Management repositories.
  Unable to read consumer identity

  This system is not registered with an entitlement server. You can use
      subscription-manager to register.

  Last metadata expiration check: ...

Or, when the host has been registered:
  $ sudo dnf update
  Updating Subscription Management repositories.

  This system is registered with an entitlement server, but is not
      receiving updates. You can use subscription-manager to assign
      subscriptions.

  Last metadata expiration check: ...

These warnings have no relevance in Fedora, because the purpose of using
subscription-manager(8) on a Fedora host is to access RHEL content in
OCI containers.  There is no need for RHEL content on the Fedora host
itself.

Note that these warnings aren't visible on Fedora hosts with DNF5
because the subscription-manager plugin doesn't work with it.

Secondly, until now, subscription-manager had %{_bindir}/dnf-3 and
%{_bindir}/dnf4 in its dependency chain.  This meant that installing
subscription-manager on Fedora Silverblue pulled them in, even though
those executables shouldn't be present on Silverblue because they don't
work there.

Both these problems can be addressed by disabling the DNF and libdnf
plugins on Fedora.

[1] https://developers.redhat.com/blog/2016/03/31/no-cost-rhel-developer-subscription-now-available

https://bugzilla.redhat.com/show_bug.cgi?id=2246833
https://bugzilla.redhat.com/show_bug.cgi?id=2262228
  • Loading branch information
debarshiray committed Feb 28, 2025
1 parent 7615781 commit b79a4b9
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions subscription-manager.spec
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
# Plugin for container (docker, podman) is not supported on RHEL
%if 0%{?rhel}
%global use_container_plugin 0
%global use_dnf 1
%else
%global use_container_plugin 1
%global use_dnf 0
%endif

%global dmidecode_arches %{ix86} x86_64 aarch64
Expand All @@ -23,8 +25,7 @@
%global use_inotify 0
%endif

%global use_dnf (0%{?fedora} || (0%{?rhel}))
%global create_libdnf_rpm (0%{?fedora} || 0%{?rhel} > 8)
%global create_libdnf_rpm (0%{?rhel} > 8)

%global python_sitearch %python3_sitearch
%global python_sitelib %python3_sitelib
Expand Down Expand Up @@ -96,7 +97,7 @@

Name: subscription-manager
Version: 1.30.5
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Tools and libraries for subscription and repository management
%if 0%{?suse_version}
Group: Productivity/Networking/System
Expand Down Expand Up @@ -161,6 +162,7 @@ Requires: platform-python-setuptools
%endif

%if %{use_dnf}

%if %{create_libdnf_rpm}
Requires: python3-dnf
Requires: python3-dnf-plugins-core
Expand All @@ -174,6 +176,12 @@ Obsoletes: dnf-plugin-subscription-manager < 1.29.0
%else
Requires: dnf-plugin-subscription-manager = %{version}-%{release}
%endif

%else

Obsoletes: dnf-plugin-subscription-manager < 1.30.5-3
Obsoletes: libdnf-plugin-subscription-manager < 1.30.5-3

%endif

%if %use_inotify
Expand Down

0 comments on commit b79a4b9

Please sign in to comment.