commit cb434199191d81784c0c93d7bbdef00bb34845c4
Author: Adam Gołębiowski <ad...@pld-linux.org>
Date:   Mon Feb 20 08:59:27 2023 +0100

    - init scripts, adapterized

 xe-guest-utilities.init      | 95 ++++++++++++++++++++++++++++++++++++++++++++
 xe-guest-utilities.spec      | 50 ++++++++++++++++-------
 xe-guest-utilities.sysconfig |  1 +
 3 files changed, 132 insertions(+), 14 deletions(-)
---
diff --git a/xe-guest-utilities.spec b/xe-guest-utilities.spec
index c78fba4..90cc122 100644
--- a/xe-guest-utilities.spec
+++ b/xe-guest-utilities.spec
@@ -5,6 +5,8 @@ Release:        0.0.1
 License:       BSD
 Source0:       
https://github.com/xenserver/xe-guest-utilities/archive/refs/heads/master/%{name}-%{version}-git.tar.gz
 # Source0-md5: 77e4b209aac1243ac806920710c5916c
+Source1:       %{name}.init
+Source2:       %{name}.sysconfig
 URL:           https://github.com/xenserver/xe-guest-utilities/
 BuildRequires: golang
 BuildRequires: rpmbuild(macros) >= 2.009
@@ -14,9 +16,9 @@ BuildRoot:    %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define                _debugsource_packages   0
 
 %description
-xe-daemon for monitoring Virtual Machines on a Xen Hypervisor.
-Writes distribution version information, disk and networking
-statistics to XenStore.
+xe-daemon for monitoring Virtual Machines on a Xen Hypervisor. Writes
+distribution version information, disk and networking statistics to
+XenStore.
 
 %prep
 %setup -q -n %{name}-master
@@ -28,28 +30,48 @@ ln -sf %{_libdir}/golang/src/cmd/vendor/golang.org vendor
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_sbindir}
-mv -v build/stage%{_sbindir}/* $RPM_BUILD_ROOT%{_sbindir}
-install -d $RPM_BUILD_ROOT%{_libexecdir}/%{name}
-mv -v build/stage%{_bindir}/* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+install -d $RPM_BUILD_ROOT{%{_sbindir},%{_libexecdir}/%{name}} \
+       $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d} \
+       $RPM_BUILD_ROOT{%{systemdunitdir},%{_udevrulesdir}} \
+       $RPM_BUILD_ROOT%{_localstatedir}/cache
 
-install -d $RPM_BUILD_ROOT%{systemdunitdir}
-cp -p mk/xe-linux-distribution.service $RPM_BUILD_ROOT%{systemdunitdir}
-install -d $RPM_BUILD_ROOT%{_udevrulesdir}
-cp -p mk/xen-vcpu-hotplug.rules 
$RPM_BUILD_ROOT%{_udevrulesdir}/z10-xen-vcpu-hotplug.rules
+install -p build/stage%{_sbindir}/* $RPM_BUILD_ROOT%{_sbindir}
+install -p build/stage%{_bindir}/* $RPM_BUILD_ROOT%{_libexecdir}/%{name}
+install -p mk/xe-linux-distribution.service $RPM_BUILD_ROOT%{systemdunitdir}
+install -p mk/xen-vcpu-hotplug.rules 
$RPM_BUILD_ROOT%{_udevrulesdir}/z10-xen-vcpu-hotplug.rules
+
+cp -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
 
-install -d $RPM_BUILD_ROOT%{_localstatedir}/cache
 touch $RPM_BUILD_ROOT%{_localstatedir}/cache/xe-linux-distribution
 
+%post
+/sbin/chkconfig --add xe-guest-utilities
+%service xe-guest-utilities restart "xe-guest-utilities"
+%systemd_reload
+
+%preun
+if [ "$1" = "0" ]; then
+       %service xe-guest-utilitites stop
+       /sbin/chkconfig --del xe-guest-utilitites
+fi
+%systemd_preun xe-guest-utilitites.service
+
+%postun
+%systemd_reload
+
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc README.md LICENSE
+%doc CODEOWNERS LICENSE README.md
 %attr(755,root,root) %{_sbindir}/xe-daemon
 %attr(755,root,root) %{_sbindir}/xe-linux-distribution
+%config(noreplace) %verify(not md5 mtime size) 
/etc/sysconfig/xe-guest-utilities
 %{systemdunitdir}/xe-linux-distribution.service
 %{_udevrulesdir}/z10-xen-vcpu-hotplug.rules
 %{_libexecdir}/xe-guest-utilities
-#%%ghost /var/cache/xe-linux-distribution
+%attr(754,root,root) /etc/rc.d/init.d/xe-guest-utilities
+%ghost /var/cache/xe-linux-distribution
diff --git a/xe-guest-utilities.init b/xe-guest-utilities.init
new file mode 100755
index 0000000..9666777
--- /dev/null
+++ b/xe-guest-utilities.init
@@ -0,0 +1,95 @@
+#!/bin/sh
+#
+# xe-guest-utilities   write information to XenStore.
+#
+# chkconfig:   345 12 88
+#
+# description: writes system information XenStore.
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get service config - may override defaults
+[ -f /etc/sysconfig/xe-guest-utilities ] && . /etc/sysconfig/xe-guest-utilities
+
+pidfile="/var/run/xe-guest-utilities.pid"
+XE_LINUX_DISTRIBUTION=/usr/sbin/xe-linux-distribution
+XE_LINUX_DISTRIBUTION_CACHE=/var/cache/xe-linux-distribution
+
+start() {
+       # Check if the service is already running?
+       if [ -f /var/lock/subsys/xe-guest-utilities ]; then
+               msg_already_running "xe-guest-utilities"
+               return
+       fi
+
+       # make sure xenfs is mounted
+       if [ ! -e /proc/xen/xenbus ] ; then
+               if [ ! -d /proc/xen ] ; then
+                       fail
+                       show "Could not find /proc/xen directory."
+                       show "You need a post 2.6.29-rc1 kernel with 
CONFIG_XEN_COMPAT_XENFS=y and CONFIG_XENFS=y|m"
+               else
+                       mount -t xenfs none /proc/xen
+               fi
+       fi
+
+       msg_starting "xe-guest-utilities"
+        ${XE_LINUX_DISTRIBUTION} ${XE_LINUX_DISTRIBUTION_CACHE}
+       daemon --fork /usr/sbin/xe-daemon -p ${pidfile} 
${XE_GUEST_UTILITIES_OPTIONS}
+       RETVAL=$?
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/xe-guest-utilities
+}
+
+stop() {
+       if [ ! -f /var/lock/subsys/xe-guest-utilities ]; then
+               msg_not_running "xe-guest-utilities"
+               return
+       fi
+
+       # Stop daemons.
+       msg_stopping "xe-guest-utilities"
+       killproc --pidfile $pidfile xe-guest-utilities -TERM
+       rm -f /var/lock/subsys/xe-guest-utilities
+}
+
+condrestart() {
+       if [ ! -f /var/lock/subsys/xe-guest-utilities ]; then
+               msg_not_running "xe-guest-utilities"
+               RETVAL=$1
+               return
+       fi
+
+       stop
+       start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart)
+       stop
+       start
+       ;;
+  try-restart)
+       condrestart 0
+       ;;
+  force-reload)
+       condrestart 7
+       ;;
+  status)
+       status --pidfile $pidfile xe-guest-utilities
+       RETVAL=$?
+       ;;
+  *)
+       msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+       exit 3
+esac
+
+exit $RETVAL
diff --git a/xe-guest-utilities.sysconfig b/xe-guest-utilities.sysconfig
new file mode 100644
index 0000000..c14d45a
--- /dev/null
+++ b/xe-guest-utilities.sysconfig
@@ -0,0 +1 @@
+XE_GUEST_UTILITIES_OPTIONS="-i 60"
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/xe-guest-utilities.git/commitdiff/263ed683afd64a14f808ff22199ab74c538f8484

_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to