From 341ce043b978c08a41e25cd970a2c3f79fbd21dd Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Fri, 26 Sep 2025 10:21:36 +0200 Subject: [PATCH] Add support for Image Mode Resolves: RHEL-90737 --- tog-pegasus.spec | 33 +++++++++++++++++++++++---------- tog-pegasus.sysusers | 3 +++ tog-pegasus.tmpfiles | 3 +++ 3 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 tog-pegasus.sysusers diff --git a/tog-pegasus.spec b/tog-pegasus.spec index f90a3e3..ce91735 100644 --- a/tog-pegasus.spec +++ b/tog-pegasus.spec @@ -3,12 +3,10 @@ %global srcname pegasus %global major_ver 2.14 -%global pegasus_gid 65 -%global pegasus_uid 66 Name: tog-pegasus Version: %{major_ver}.1 -Release: 65%{?dist} +Release: 66%{?dist} Epoch: 2 Summary: OpenPegasus WBEM Services for Linux @@ -38,6 +36,8 @@ Source10: generate-certs Source11: snmptrapd.conf # 12: repupgrade man page based on pegasus/src/Clients/repupgrade/doc/repupgrade.html Source12: repupgrade.1.gz +# 13: sysusers conf file for dynamic creation of the 'pegasus' user and group +Source13: tog-pegasus.sysusers # 1: http://cvs.rdg.opengroup.org/bugzilla/show_bug.cgi?id=5011 # Removing insecure -rpath @@ -116,7 +116,7 @@ BuildRequires: bash, sed, grep, coreutils, procps, gcc, gcc-c++ BuildRequires: libstdc++, make, pam-devel BuildRequires: openssl-devel BuildRequires: net-snmp-devel, openslp-devel -BuildRequires: systemd-units +BuildRequires: systemd-units systemd-rpm-macros Requires: net-snmp-libs Requires: %{name}-libs = %{epoch}:%{version}-%{release} Requires: openssl @@ -134,8 +134,7 @@ sources. %package devel Summary: The OpenPegasus Software Development Kit -Requires: tog-pegasus >= %{version}-%{release} -Obsoletes: tog-pegasus-sdk +Requires: tog-pegasus >= %{epoch}:%{version}-%{release} %description devel The OpenPegasus WBEM Services for Linux SDK is the developer's kit for the @@ -156,7 +155,7 @@ The OpenPegasus libraries. %if %{PEGASUS_BUILD_TEST_RPM} %package test Summary: The OpenPegasus Tests -Requires: tog-pegasus >= %{version}-%{release}, make +Requires: tog-pegasus >= %{epoch}:%{version}-%{release}, make Requires: %{name}-libs = %{epoch}:%{version}-%{release} %description test @@ -370,6 +369,9 @@ install -p Schemas/CIM238/DMTF/Core/CIM_AbstractComponent.mof $RPM_BUILD_ROOT/us mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man1/ cp %SOURCE12 ${RPM_BUILD_ROOT}/%{_mandir}/man1/ +# install sysusers conf file +install -p -D -m 0644 %{SOURCE13} %{buildroot}%{_sysusersdir}/tog-pegasus.conf + %check # run unit tests export LD_LIBRARY_PATH=$RPM_BUILD_ROOT/usr/%{_lib} @@ -442,6 +444,7 @@ rm $RPM_BUILD_ROOT/usr/share/Pegasus/test/testtracer4.trace.0 /usr/share/Pegasus/html %files libs +%{_sysusersdir}/tog-pegasus.conf %defattr(0755, root, pegasus, 0755) %{_libdir}/* %exclude /usr/lib/debug @@ -493,6 +496,8 @@ if [ $1 -ge 1 ]; then fi; /bin/systemctl try-restart tog-pegasus.service >/dev/null 2>&1 || :; fi; + # copy content of /var/lib/Pegasus to temporary place for Image Mode + (mkdir -p /usr/share/factory/var/lib && cp -a /var/lib/Pegasus /usr/share/factory/var/lib/Pegasus) >/dev/null 2>&1 || :; fi :; @@ -501,6 +506,7 @@ fi if [ $1 -eq 0 ]; then # Package removal, not upgrade rm -rf /var/run/tog-pegasus + rm -rf /usr/share/factory/var/lib/Pegasus fi :; @@ -517,9 +523,9 @@ fi %pre libs if [ $1 -eq 1 ]; then # first install: create the 'pegasus' user and group: - /usr/sbin/groupadd -g %{pegasus_gid} -f -r pegasus >/dev/null 2>&1 || :; - /usr/sbin/useradd -u %{pegasus_uid} -r -N -M -g pegasus -s /sbin/nologin -d /var/lib/Pegasus \ - -c "tog-pegasus OpenPegasus WBEM/CIM services" pegasus >/dev/null 2>&1 || :; + { + %sysusers_create_compat %{SOURCE13} + } >/dev/null 2>&1 || :; fi :; @@ -565,6 +571,13 @@ fi %changelog +* Fri Sep 26 2025 Vitezslav Crhonek - 2:2.14.1-66 +- Use systemd-sysusers for the 'pegasus' user and group creation +- Fix Requires of subpackages + Related: RHEL-90737 +- Add support for Image Mode + Resolves: RHEL-90737 + * Fri Apr 11 2025 Vitezslav Crhonek - 2:2.14.1-65 - Update OpenSSL certificates set up Resolves: RHEL-81721 diff --git a/tog-pegasus.sysusers b/tog-pegasus.sysusers new file mode 100644 index 0000000..dd9fc26 --- /dev/null +++ b/tog-pegasus.sysusers @@ -0,0 +1,3 @@ +#Type Name ID GECOS Home directory Shell +g pegasus 65 +u pegasus 66 "tog-pegasus OpenPegasus WBEM/CIM services" /var/lib/Pegasus /sbin/nologin diff --git a/tog-pegasus.tmpfiles b/tog-pegasus.tmpfiles index 639f413..0f6b241 100644 --- a/tog-pegasus.tmpfiles +++ b/tog-pegasus.tmpfiles @@ -1 +1,4 @@ d /run/tog-pegasus 1750 root pegasus - + +# populate /var/lib/Pegaus with content from /usr/share/factory/var/lib/Pegasus +C /var/lib/Pegasus - - - -