From 42394698eb3edd8877927cc066df8573a3b62022 Mon Sep 17 00:00:00 2001 From: Sergey Safarov Date: Tue, 9 Dec 2025 09:53:10 +0200 Subject: [PATCH] el: use rpm macros to create users, tmpfiles --- el/rtpengine-recording.tmpfiles | 2 ++ el/rtpengine.spec | 45 +++++++++++++++++++++++++-------- el/rtpengine.sysusers | 1 + el/rtpengine.tmpfiles | 2 ++ 4 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 el/rtpengine-recording.tmpfiles create mode 100644 el/rtpengine.sysusers create mode 100644 el/rtpengine.tmpfiles diff --git a/el/rtpengine-recording.tmpfiles b/el/rtpengine-recording.tmpfiles new file mode 100644 index 000000000..4cf804614 --- /dev/null +++ b/el/rtpengine-recording.tmpfiles @@ -0,0 +1,2 @@ +x /run/rtpengine-recording/rtpengine-recording.pid +d /run/rtpengine-recording 0700 ngcp-rtpengine ngcp-rtpengine 7d diff --git a/el/rtpengine.spec b/el/rtpengine.spec index b4ed86747..021a923cf 100644 --- a/el/rtpengine.spec +++ b/el/rtpengine.spec @@ -37,6 +37,8 @@ BuildRequires: glib2-devel libcurl-devel openssl-devel BuildRequires: pcre2-devel BuildRequires: zlib-devel hiredis-devel BuildRequires: systemd-devel +BuildRequires: systemd-rpm-macros +BuildRequires: libnftnl-devel BuildRequires: libpcap-devel libevent-devel json-glib-devel BuildRequires: mosquitto-devel BuildRequires: gperf perl-IPC-Cmd @@ -168,9 +170,15 @@ RTPENGINE_VERSION="\"%{version}-%{release}\"" make DESTDIR=%{buildroot} with_tra %endif ## Install the init.d script and configuration file +install -D -p -m644 el/%{binname}.sysusers \ + %{buildroot}%{_sysusersdir}/%{binname}.conf +install -D -p -m644 el/%{binname}.tmpfiles \ + %{buildroot}%{_tmpfilesdir}/%{binname}.conf install -D -p -m644 el/%{binname}.service \ %{buildroot}%{_unitdir}/%{binname}.service %if 0%{?with_transcoding} > 0 +install -D -p -m644 el/%{binname}-recording.tmpfiles \ + %{buildroot}%{_tmpfilesdir}/%{binname}-recording.conf install -D -p -m644 el/%{binname}-recording.service \ %{buildroot}%{_unitdir}/%{binname}-recording.service %endif @@ -215,16 +223,18 @@ install -m444 fixtures/* %{buildroot}%{_datarootdir}/%{binname}-perftest %endif %pre -getent group %{name} >/dev/null || /usr/sbin/groupadd -r %{name} -getent passwd %{name} >/dev/null || /usr/sbin/useradd -r -g %{name} \ - -s /sbin/nologin -c "%{name} daemon" -d %{_sharedstatedir}/%{name} %{name} +%sysusers_create_package %{binname} el/%{binname}.sysusers %post -if [ $1 -eq 1 ]; then - systemctl daemon-reload -fi +%tmpfiles_create %{binname}.conf +%systemd_post %{binname}.service +%if 0%{?with_transcoding} +%post recording +%tmpfiles_create %{binname}-recording.conf +%systemd_post %{binname}-recording.service +%endif %post dkms # Add to DKMS registry, build, and install module @@ -258,16 +268,25 @@ true %preun -if [ $1 = 0 ] ; then - systemctl stop %{binname}.service - systemctl disable %{binname}.service -fi +%systemd_preun %{binname}.service + +%if 0%{?with_transcoding} +%preun recording +%systemd_preun %{binname}-recording.service +%endif %preun dkms # Remove from DKMS registry dkms remove -m %{name} -v %{version}-%{release} --rpm_safe_upgrade --all true +%postun +%systemd_postun %{binname}.service + +%if 0%{?with_transcoding} +%postun recording +%systemd_postun %{binname}-recording.service +%endif %files # Userspace daemon @@ -275,6 +294,10 @@ true # CLI (command line interface) %{_bindir}/%{binname}-ctl # CLI table helper +%{_sysusersdir}/%{binname}.conf +# sysusers file for user creation +%{_tmpfilesdir}/%{binname}.conf +# tmpfiles # init.d script and configuration file %{_unitdir}/%{binname}.service %config(noreplace) %{_sysconfdir}/sysconfig/%{binname} @@ -307,6 +330,8 @@ true %files recording # Recording daemon %{_bindir}/%{binname}-recording +# tmpfiles +%{_tmpfilesdir}/%{binname}-recording.conf # Init script %{_unitdir}/%{binname}-recording.service # Sysconfig diff --git a/el/rtpengine.sysusers b/el/rtpengine.sysusers new file mode 100644 index 000000000..6e1f3554a --- /dev/null +++ b/el/rtpengine.sysusers @@ -0,0 +1 @@ +u ngcp-rtpengine - "RTPengine server" /var/lib/rtpengine diff --git a/el/rtpengine.tmpfiles b/el/rtpengine.tmpfiles new file mode 100644 index 000000000..15bf127e8 --- /dev/null +++ b/el/rtpengine.tmpfiles @@ -0,0 +1,2 @@ +x /run/rtpengine/rtpengine.pid +d /run/rtpengine 0700 ngcp-rtpengine ngcp-rtpengine 7d