RPM: metaproxy running as user "metaproxy"
[metaproxy-moved-to-github.git] / metaproxy.spec
index eaf8f5c..f516c3a 100644 (file)
@@ -1,6 +1,7 @@
+%define idmetaversion %(. ./IDMETA; echo $VERSION|tr -d '\n')
 Summary: Z39.50/SRU router
 Name: metaproxy
-Version: 1.3.0
+Version: %{idmetaversion}
 Release: 1indexdata
 License: GPL
 Group: Applications/Internet
@@ -8,12 +9,12 @@ Vendor: Index Data ApS <info@indexdata.dk>
 Source: metaproxy-%{version}.tar.gz
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 Prefix: %{_prefix} /etc/metaproxy
-BuildRequires: pkgconfig, libyaz4-devel >= 4.2.3, libyazpp4-devel >= 1.2.6
+BuildRequires: pkgconfig, libyaz4-devel >= 4.2.27, libyazpp4-devel >= 1.2.7
 BuildRequires: libxslt-devel, boost-devel
 Packager: Adam Dickmeiss <adam@indexdata.dk>
 URL: http://www.indexdata.com/metaproxy
 Group:  Applications/Internet
-# Requires: 
+Requires:  libmetaproxy4 = %{version}
 
 %description
 Metaproxy daemon.
@@ -28,7 +29,7 @@ Metaproxy documentation.
 %package -n libmetaproxy4
 Summary: Metaproxy library
 Group: Libraries
-Requires: libyazpp4
+Requires: libyazpp4, libyaz4 >= 4.2.22
 
 %description -n libmetaproxy4
 The Metaproxy libraries.
@@ -59,7 +60,7 @@ make prefix=${RPM_BUILD_ROOT}/%{_prefix} mandir=${RPM_BUILD_ROOT}/%{_mandir} \
 rm ${RPM_BUILD_ROOT}/%{_libdir}/*.la
 rm -fr ${RPM_BUILD_ROOT}/%{_prefix}/share/metaproxy
 rm -f ${RPM_BUILD_ROOT}/%{_libdir}/metaproxy/*
-mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}/metaproxy/modules
+mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}/metaproxy4/modules
 mkdir -p ${RPM_BUILD_ROOT}/etc/metaproxy/filters-enabled
 mkdir -p ${RPM_BUILD_ROOT}/etc/metaproxy/filters-available
 mkdir -p ${RPM_BUILD_ROOT}/etc/logrotate.d
@@ -77,7 +78,7 @@ rm -fr ${RPM_BUILD_ROOT}
 %doc README LICENSE NEWS
 %defattr(-,root,root)
 %{_libdir}/*.so.*
-%dir %{_libdir}/metaproxy/modules
+%dir %{_libdir}/metaproxy4/modules
 
 %post -n libmetaproxy4 -p /sbin/ldconfig
 
@@ -106,6 +107,36 @@ rm -fr ${RPM_BUILD_ROOT}
 %config(noreplace) /etc/sysconfig/metaproxy
 
 %post
+[ -f /etc/sysconfig/metaproxy ] && . /etc/sysconfig/metaproxy
+[ -z "$SERVER_HOME" ] && SERVER_HOME=/var/metaproxy
+[ -z "$SERVER_USER" ] && SERVER_USER=metaproxy
+[ -z "$SERVER_NAME" ] && SERVER_NAME="Metaproxy user"
+[ -z "$SERVER_GROUP" ] && SERVER_GROUP=metaproxy
+
+ # 1. create group if not existing
+if ! getent group | grep -q "^$SERVER_GROUP:" ; then
+        echo -n "Adding group $SERVER_GROUP.."
+        groupadd -r $SERVER_GROUP 2>/dev/null ||true
+        echo "..done"
+fi
+# 2. create user if not existing
+if ! getent passwd | grep -q "^$SERVER_USER:"; then
+        echo -n "Adding system user $SERVER_USER.."
+        useradd \
+            -r \
+           -s /sbin/nologin \
+            -c "$SERVER_NAME" \
+           -d $SERVER_HOME \
+            -g $SERVER_GROUP \
+            $SERVER_USER 2>/dev/null || true
+        echo "..done"
+fi
+
+if test ! -d $SERVER_HOME; then
+       mkdir $SERVER_HOME
+       chown $SERVER_USER:$SERVER_GROUP $SERVER_HOME
+fi
+
 if [ $1 = 1 ]; then
         /sbin/chkconfig --add metaproxy
         /sbin/service metaproxy start > /dev/null 2>&1
@@ -114,7 +145,19 @@ else
 fi
 %preun
 if [ $1 = 0 ]; then
-        /sbin/service metaproxy stop > /dev/null 2>&1
-        /sbin/chkconfig --del metaproxy
+       if test -f /etc/init.d/metaproxy; then
+               /sbin/service metaproxy stop > /dev/null 2>&1
+               /sbin/chkconfig --del metaproxy
+       fi
 fi
+%postun
+[ -f /etc/sysconfig/metaproxy ] && . /etc/sysconfig/metaproxy
+[ -z "$SERVER_HOME" ] && SERVER_HOME=/var/metaproxy
+[ -z "$SERVER_USER" ] && SERVER_USER=metaproxy
+[ -z "$SERVER_NAME" ] && SERVER_NAME="Metaproxy user"
+[ -z "$SERVER_GROUP" ] && SERVER_GROUP=metaproxy
 
+if [ $1 = 0 ]; then
+       test -d $SERVER_HOME && rm -fr $SERVER_HOME
+       userdel $SERVER_USER
+fi