Registration is now invite-only. Any user can make an invite, you need to create it here and give resulting link to someone to register.

Last commit

avatar
proklov_av has added e24f763281
fix i686 build

Files in

100644 | 297 lines (256 sloc) | 10.2 KB
Summary:	Tools and libraries for subscription and repository management
Name:		subscription-manager
Version:	1.29.35
Release:	1
License:	GPLv2+
Group:		System/Configuration/Packaging
Url:		https://github.com/candlepin/subscription-manager/
Source0:	https://github.com/candlepin/subscription-manager/archive/%{name}-%{version}-1.tar.gz?/%{name}-%{name}-%{version}-1.tar.gz
Source1:	https://github.com/candlepin/subscription-manager-rhsm-certificates/archive/%{name}-rhsm-certificates-20220623-1.tar.gz?/%{name}-rhsm-certificates-%{name}-rhsm-certificates-20220623-1.tar.gz
BuildRequires:	cmake
BuildRequires:	desktop-file-utils
BuildRequires:	gettext
BuildRequires:	intltool
BuildRequires:	python3dist(python-dateutil)
BuildRequires:	python3dist(setuptools)
BuildRequires:	pkgconfig(json-c)
BuildRequires:	pkgconfig(libdnf)
BuildRequires:	pkgconfig(libnotify)
BuildRequires:	pkgconfig(openssl)
BuildRequires:	pkgconfig(python3)
Requires:	logrotate
Requires:	%{name}-plugin-dnf = %{EVRD}
Requires:	%{name}-rhsm-certificates = %{EVRD}
Requires:	python3-cloud-what = %{EVRD}
Requires:	python3-gobject2
Requires:	python3-%{name}-rhsm = %{EVRD}
Requires:	usermode-consoleonly
Requires:	virt-what
Requires:	python3dist(dbus-python)
Requires:	python3dist(decorator)
Requires:	python3dist(ethtool)
Requires:	python3dist(iniparse)
Requires:	python3dist(python-dateutil)
Requires:	python3dist(python-dmidecode)
Requires:	python3dist(simplejson)
Requires:	python3-librepo
Requires:	python3-gi
Requires(post,preun,postun):	systemd

%description
The Subscription Manager package provides programs and libraries to allow users
to manage subscriptions and yum repositories from the Red Hat entitlement
platform.

%files -f rhsm.lang
%doc README.md
%license LICENSE
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/rhsm/rhsm.conf
%attr(644,root,root) %{_sysconfdir}/rhsm/syspurpose/valid_fields.json
%attr(644,root,root) %{_tmpfilesdir}/%{name}.conf
%attr(644,root,root) %{_unitdir}/rhsmcertd.service
%attr(755,root,root) %{_bindir}/rct
%attr(755,root,root) %{_bindir}/rhsmcertd
%attr(755,root,root) %{_bindir}/rhsm-debug
%attr(755,root,root) %dir %{_sysconfdir}/pki/consumer
%attr(755,root,root) %dir %{_sysconfdir}/pki/entitlement
%attr(755,root,root) %dir %{_sysconfdir}/rhsm
%attr(755,root,root) %dir %{_sysconfdir}/rhsm/facts
%attr(755,root,root) %dir %{_var}/lib/rhsm
%attr(755,root,root) %dir %{_var}/lib/rhsm/cache
%attr(755,root,root) %dir %{_var}/lib/rhsm/facts
%attr(755,root,root) %dir %{_var}/lib/rhsm/packages
%attr(755,root,root) %dir %{_var}/log/rhsm
%attr(755,root,root) %{_libexecdir}/rhsmcertd-worker
%attr(755,root,root) %{_libexecdir}/rhsm-facts-service
%attr(755,root,root) %{_libexecdir}/rhsm-service
%attr(755,root,root) %{_libexecdir}/rhsm-package-profile-uploader
%attr(755,root,root) %{_sbindir}/%{name}
%{_bindir}/%{name}
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/dnf/plugins/%{name}.conf
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/dnf/plugins/product-id.conf
%config(noreplace) %attr(644,root,root) %{_sysconfdir}/logrotate.d/%{name}
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/com.redhat.RHSM1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/com.redhat.RHSM1.Facts.conf
%{_datadir}/bash-completion/completions/%{name}
%{_datadir}/bash-completion/completions/rct
%{_datadir}/bash-completion/completions/rhsmcertd
%{_datadir}/bash-completion/completions/rhsm-debug
%{_datadir}/dbus-1/system-services/com.redhat.RHSM1.Facts.service
%{_datadir}/dbus-1/system-services/com.redhat.RHSM1.service
%{_datadir}/polkit-1/actions/com.redhat.RHSM1.Facts.policy
%{_datadir}/polkit-1/actions/com.redhat.RHSM1.policy
%dir %{_datadir}/rhsm-plugins
%dir %{python3_sitearch}/syspurpose
%dir %{_sysconfdir}/rhsm/pluginconf.d
%ghost %attr(755,root,root) %dir %{_var}/run/rhsm
%ghost %{_sysconfdir}/yum.repos.d/redhat.repo
%ghost %{_sysconfdir}/yum.repos.d/rosa.repo
%{_libdir}/libdnf/plugins/product-id.so
%{_mandir}/man5/rhsm.conf.5.xz
%{_mandir}/man8/%{name}.8*
%{_mandir}/man8/rct.8*
%{_mandir}/man8/rhsmcertd.8*
%{_mandir}/man8/rhsm-debug.8.xz
%{python3_sitearch}/rct
%{python3_sitearch}/rhsm_debug
%{python3_sitearch}/rhsmlib/
%{python3_sitearch}/subscription_manager/
%{python3_sitearch}/subscription_manager-%{version}-py*.egg-info/
%{python3_sitearch}/syspurpose/*.py*
%{python3_sitearch}/syspurpose/__pycache__
%{_sysconfdir}/pam.d/%{name}
%{_sysconfdir}/security/console.apps/%{name}
%{_unitdir}/rhsm-facts.service
%{_unitdir}/rhsm.service

%post
%tmpfiles_create %{_tmpfilesdir}/%{name}.conf
%systemd_post rhsmcertd.service
%systemd_post rhsm.service
%systemd_post rhsm-facts.service

%preun
%systemd_preun rhsmcertd.service
%systemd_preun rhsm.service
%systemd_preun rhsm-facts.service

#----------------------------------------------------------------------------

%package -n python3-%{name}-rhsm
Summary:	A Python library to communicate with a Red Hat Unified Entitlement Platform
Group:		System/Configuration/Packaging
Requires:	python3dist(python-dateutil)
Requires:	python3dist(iniparse)
Requires:	%{name}-rhsm-certificates = %{EVRD}
Requires:	python3-cloud-what = %{EVRD}
Requires:	python3dist(rpm)
Provides:	python3-rhsm = %{EVRD}

%description -n python3-%{name}-rhsm
A small library for communicating with the REST interface of a Red Hat Unified
Entitlement Platform. This interface is used for the management of system
entitlements, certificates, and access to content.

%files -n python3-%{name}-rhsm
%doc README.md
%license LICENSE
%{python3_sitearch}/rhsm

#----------------------------------------------------------------------------

%package -n python3-cloud-what
Summary:	Python package for detection of public cloud provider
Group:		System/Configuration/Packaging
Requires:	python3dist(requests)
%ifarch %{ix86} x86_64 aarch64
Requires:	dmidecode
%endif

%description -n python3-cloud-what
This package contains a Python module for detection and collection of public
cloud metadata and signatures.

%files -n python3-cloud-what
%doc README.md
%license LICENSE
%attr(750,root,root) %dir %{_var}/cache/cloud-what
%{python3_sitearch}/cloud_what

#----------------------------------------------------------------------------

%package plugin-ostree
Summary:	A plugin for handling OSTree content
Group:		System/Configuration/Packaging
Requires:	%{name} = %{EVRD}

%description plugin-ostree
Enables handling of content of type 'ostree' in any certificates
from the server. Populates /ostree/repo/config as well as updates
the remote in the currently deployed .origin file.

%files plugin-ostree
%doc README.md
%license LICENSE
%{_datadir}/rhsm-plugins/ostree_content.py*
%{_datadir}/rhsm-plugins/__pycache__/*ostree*
%{python3_sitearch}/subscription_manager/plugin/ostree
%{_sysconfdir}/rhsm/pluginconf.d/ostree_content.OstreeContentPlugin.conf

#----------------------------------------------------------------------------

%package plugin-container
Summary:	A plugin for handling container content
Group:		System/Configuration/Packaging
Requires:	%{name} = %{EVRD}

%description plugin-container
Enables handling of content of type 'containerImage' in any certificates
from the server. Populates /etc/docker/certs.d appropriately.

%files plugin-container
%{_datadir}/rhsm-plugins/container_content.py*
%{_datadir}/rhsm-plugins/__pycache__/*container*
%{python3_sitearch}/subscription_manager/plugin/container
%{_sysconfdir}/rhsm/pluginconf.d/container_content.ContainerContentPlugin.conf

%post plugin-container
%{__python3} %{_datadir}/rhsm-plugins/container_content.py || :

#----------------------------------------------------------------------------

%package plugin-dnf
Summary:	Subscription Manager plugins for DNF
Group:		System/Configuration/Packaging
Requires:	%{name} = %{EVRD}

%description plugin-dnf
This package provides plugins to interact with repositories and subscriptions
from the Red Hat entitlement platform; contains subscription-manager and
product-id plugins.

%files plugin-dnf
%doc README.md
%license LICENSE
%{_libdir}/libdnf/plugins/product-id.so
%{python3_sitelib}/dnf-plugins

#----------------------------------------------------------------------------

%package rhsm-certificates
Summary:	Certificates required to communicate with a Red Hat Unified Entitlement Platform
Group:		System/Configuration/Packaging

%description rhsm-certificates
This package contains certificates required for communicating with the REST interface
of a Red Hat Unified Entitlement Platform, used for the management of system entitlements
and to receive access to content.

%files rhsm-certificates
%doc README.md
%license LICENSE
%dir %{_sysconfdir}/rhsm
%dir %{_sysconfdir}/rhsm/ca
%{_sysconfdir}/rhsm/ca/*.pem

#----------------------------------------------------------------------------

%prep
%autosetup -p1 -n %{name}-%{name}-%{version}-1 -a1

%build
make -f Makefile		\
	CFLAGS="%{optflags}"	\
	LDFLAGS="%{ldflags} -lpython%{py3_ver}"	\
	OS_DIST="rosa"		\
	PYTHON="%{__python3}"	\
	PYTHON_SITELIB=%{python3_sitearch}	\
	VERSION=%{version}-%{release}
pushd src/plugins/libdnf
%cmake -DCMAKE_BUILD_TYPE="Release"
%make
popd

%install
make -f Makefile install		\
	COMPLETION_DIR=%{_datadir}/bash-completion/completions	\
	DESTDIR=%{buildroot}		\
	INSTALL_DNF_PLUGINS=true	\
	OS_DIST=rosa			\
	OS_VERSION=2021.1		\
	PREFIX=%{_prefix}		\
	PYTHON=%{__python3}		\
	PYTHON_SITELIB=%{python3_sitearch}	\
	VERSION=%{version}-%{release}
pushd src/plugins/libdnf
%make_install -C build
popd

pushd %{name}-rhsm-certificates*
%make_install	\
	PREFIX=%{_prefix}	\
	SYSCONFDIR=%{_sysconfdir}
popd

# Replace physical link
ln -sf consolehelper %{buildroot}%{_bindir}/subscription-manager

mkdir -p %{buildroot}/lib/systemd/system/
mv %{buildroot}/usr/lib/systemd/system/*.service %{buildroot}/lib/systemd/system/

# fake out repo files
mkdir %{buildroot}%{_sysconfdir}/yum.repos.d
touch %{buildroot}%{_sysconfdir}/yum.repos.d/redhat.repo
touch %{buildroot}%{_sysconfdir}/yum.repos.d/rosa.repo

# fake out the certificate directories
mkdir -p %{buildroot}%{_sysconfdir}/pki/consumer
mkdir -p %{buildroot}%{_sysconfdir}/pki/entitlement

# fix timestamps on our byte compiled files so them match across arches
find %{buildroot} -name \*.py -exec touch -r %{SOURCE0} '{}' \;

%find_lang rhsm

# fix python shebang
sed '1 s,^.*$,#!%{__python3},' -i %{buildroot}%{python3_sitearch}/subscription_manager/action_client.py
chmod +x %{buildroot}%{python3_sitearch}/subscription_manager/action_client.py