From bec84f2d1cbd0027d64a720028cf03d57e548d39 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Thu, 15 Jan 2026 16:42:03 +0100 Subject: [PATCH 1/2] RPM: Fixes for systemd service file; reorder spec Store systemd service in /usr/lib/systemd/system. Use systemd-rpm-macros for dealing with systemd service in post, preun, postun. Proper log file /var/log/pazpar2.log --- pazpar2.spec | 82 +++++++++++++++++++++++-------------------- rpm/pazpar2.service | 1 - rpm/pazpar2.sysconfig | 6 ++-- 3 files changed, 47 insertions(+), 42 deletions(-) diff --git a/pazpar2.spec b/pazpar2.spec index eca35d15..a5d2dbe5 100644 --- a/pazpar2.spec +++ b/pazpar2.spec @@ -9,22 +9,50 @@ Source: pazpar2-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRequires: libyaz5-devel >= 5.18.0 BuildRequires: pkgconfig +%if 0%{?rhel} >= 9 +BuildRequires: systemd-rpm-macros +%else +BuildRequires: systemd +%endif Packager: Adam Dickmeiss -URL: http://www.indexdata.com/pazpar2 +URL: https://www.indexdata.com/pazpar2 Summary: pazpar2 daemon Requires: libyaz5 >= 5.29.0 Requires: pazpar2-xsl -%description -Pazpar2 is a high-performance, user interface-independent, data -model-independent metasearching middleware featuring merging, relevance -ranking, record sorting, and faceted results. +# Use systemd macros for safe scriptlets +%{?systemd_requires} + +%package -n pazpar2-xsl +Summary: XSLTs for converting to pz2 format +Group: Data %package -n pazpar2-js Summary: pazpar2 JS Group: Data Requires: pazpar2 +%package -n pazpar2-doc +Summary: pazpar2 documentation +Group: Data + +%description +Pazpar2 is a high-performance, user interface-independent, data +model-independent metasearching middleware featuring merging, relevance +ranking, record sorting, and faceted results. + +%description -n pazpar2-xsl +This package includes XSLTs for converting from various input XML formats +to Pazpar2's internal XML format. + +%description -n pazpar2-js +This package includes the Java Script library pz2.js. It also adds an +Alias for Apache2 so that this library and other demo portals are +available. + +%description -n pazpar2-doc +This package includes documentation for Pazpar2 - the metasearcher. + %post for f in /usr/share/pazpar2/xsl/*.xsl; do e=/etc/pazpar2/`basename $f` @@ -34,53 +62,31 @@ for f in /usr/share/pazpar2/xsl/*.xsl; do fi fi done -if [ $1 = 1 ]; then - /usr/bin/systemctl daemon-reload > /dev/null 2>&1 - /usr/bin/systemctl enable pazpar2 > /dev/null 2>&1 - /usr/bin/systemctl start pazpar2 > /dev/null 2>&1 -else - /usr/bin/systemctl restart pazpar2 > /dev/null 2>&1 -fi -%preun -if [ $1 = 0 ]; then - /usr/bin/systemctl stop pazpar2 > /dev/null 2>&1 -fi +%systemd_post pazpar2.service -%description -n pazpar2-js -This package includes the Java Script library pz2.js. It also adds an -Alias for Apache2 so that this library and other demo portals are -available. +%postun +%systemd_postun_with_restart pazpar2.service %posttrans -n pazpar2-js if [ -d /etc/httpd/conf.d ]; then ln -sf /etc/pazpar2/ap2pazpar2-js.cfg /etc/httpd/conf.d/pazpar2-js.conf fi + +%preun +%systemd_preun pazpar2.service + %preun -n pazpar2-js if [ $1 = 0 ]; then if [ -L /etc/httpd/conf.d/pazpar2-js.conf ]; then rm /etc/httpd/conf.d/pazpar2-js.conf fi fi -%package -n pazpar2-xsl -Summary: XSLTs for converting to pz2 format -Group: Data - -%description -n pazpar2-xsl -This package includes XSLTs for converting from various input XML formats -to Pazpar2's internal XML format. - -%package -n pazpar2-doc -Summary: pazpar2 documentation -Group: Data - -%description -n pazpar2-doc -This package includes documentation for Pazpar2 - the metasearcher. %prep + %setup %build - CFLAGS="$RPM_OPT_FLAGS" \ ./configure --prefix=%{_prefix} --libdir=%{_libdir} --mandir=%{_mandir} \ --with-yaz=pkg @@ -104,8 +110,8 @@ cp etc/settings/*.xml ${RPM_BUILD_ROOT}/etc/pazpar2/settings/ cp -r etc/settings/mkc ${RPM_BUILD_ROOT}/etc/pazpar2/settings mkdir -p ${RPM_BUILD_ROOT}/usr/share/pazpar2/xsl cp etc/xsl/*.xsl ${RPM_BUILD_ROOT}/usr/share/pazpar2/xsl -mkdir -p ${RPM_BUILD_ROOT}/etc/systemd/system -install -m755 rpm/pazpar2.service ${RPM_BUILD_ROOT}/etc/systemd/system/pazpar2.service +mkdir -p ${RPM_BUILD_ROOT}/usr/lib/systemd/system +install -m644 rpm/pazpar2.service ${RPM_BUILD_ROOT}/usr/lib/systemd/system/pazpar2.service mkdir -p ${RPM_BUILD_ROOT}/etc/sysconfig install -m644 rpm/pazpar2.sysconfig ${RPM_BUILD_ROOT}/etc/sysconfig/pazpar2 echo "Alias /pazpar2 /usr/share/pazpar2" >${RPM_BUILD_ROOT}/etc/pazpar2/ap2pazpar2-js.cfg @@ -130,8 +136,8 @@ rm -fr ${RPM_BUILD_ROOT} %config %{_sysconfdir}/pazpar2/settings/*/*.xml %config %{_sysconfdir}/pazpar2/services-available/*.xml %config %{_sysconfdir}/sysconfig/pazpar2 -%config %{_sysconfdir}/systemd/system/pazpar2.service %config(noreplace) /etc/logrotate.d/pazpar2 +/usr/lib/systemd/system/pazpar2.service %{_mandir}/man1/pazpar2* %{_mandir}/man5/pazpar2* %{_mandir}/man7/pazpar2* diff --git a/rpm/pazpar2.service b/rpm/pazpar2.service index 660ca60e..d0141429 100644 --- a/rpm/pazpar2.service +++ b/rpm/pazpar2.service @@ -10,7 +10,6 @@ Type=simple EnvironmentFile=/etc/sysconfig/pazpar2 Restart=on-abort KillMode=process -PIDFile=${PP2_PID_FILE} ExecStart=/bin/bash -ce "exec /usr/sbin/pazpar2 ${PP2_OPTIONS}" [Install] diff --git a/rpm/pazpar2.sysconfig b/rpm/pazpar2.sysconfig index ae3f60dd..5656ba9c 100644 --- a/rpm/pazpar2.sysconfig +++ b/rpm/pazpar2.sysconfig @@ -1,4 +1,4 @@ PP2_USER=nobody -PP2_LOG=/var/log/pazpar2 -PP2_PID_FILE=/var/run/pazpar2.pid -PP2_OPTIONS="-u ${PP2_USER} -l ${PP2_LOG} -f /etc/pazpar2/server.xml -p $PP2_PID_FILE" +PP2_LOG=/var/log/pazpar2.log +PP2_PID_FILE=/run/pazpar2.pid +PP2_OPTIONS="-u ${PP2_USER} -l ${PP2_LOG} -p ${PP2_PID_FILE} -f /etc/pazpar2/server.xml" From 8b99460f83c9229ef4a804a053097b19fc0df7fa Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Fri, 16 Jan 2026 17:17:23 +0100 Subject: [PATCH 2/2] Update rpm/pazpar2.sysconfig Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rpm/pazpar2.sysconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rpm/pazpar2.sysconfig b/rpm/pazpar2.sysconfig index 5656ba9c..f6733414 100644 --- a/rpm/pazpar2.sysconfig +++ b/rpm/pazpar2.sysconfig @@ -1,4 +1,3 @@ PP2_USER=nobody PP2_LOG=/var/log/pazpar2.log -PP2_PID_FILE=/run/pazpar2.pid -PP2_OPTIONS="-u ${PP2_USER} -l ${PP2_LOG} -p ${PP2_PID_FILE} -f /etc/pazpar2/server.xml" +PP2_OPTIONS="-u ${PP2_USER} -l ${PP2_LOG} -f /etc/pazpar2/server.xml"