a36066c
diff -uN xen-4.5.0/tools/hotplug/Linux/systemd.orig/Makefile xen-4.5.0/tools/hotplug/Linux/systemd/Makefile
a36066c
--- xen-4.5.0/tools/hotplug/Linux/systemd.orig/Makefile	2015-01-12 16:53:24.000000000 +0000
a36066c
+++ xen-4.5.0/tools/hotplug/Linux/systemd/Makefile	2015-01-25 22:23:26.000000000 +0000
a36066c
@@ -14,7 +14,8 @@
a36066c
 XEN_SYSTEMD_SERVICE += xen-qemu-dom0-disk-backend.service
a36066c
 XEN_SYSTEMD_SERVICE += xendomains.service
a36066c
 XEN_SYSTEMD_SERVICE += xen-watchdog.service
a36066c
-XEN_SYSTEMD_SERVICE += xen-init-dom0.service
a36066c
+#XEN_SYSTEMD_SERVICE += xen-init-dom0.service
a36066c
+XEN_SYSTEMD_SERVICE += oxenstored.service
a36066c
 
a36066c
 ALL_XEN_SYSTEMD =	$(XEN_SYSTEMD_MODULES)  \
a36066c
 			$(XEN_SYSTEMD_MOUNT)	\
a36066c
diff -uN xen-4.5.0/tools/hotplug/Linux/systemd.orig/oxenstored.service.in xen-4.5.0/tools/hotplug/Linux/systemd/oxenstored.service.in
a36066c
--- xen-4.5.0/tools/hotplug/Linux/systemd.orig/oxenstored.service.in	1970-01-01 01:00:00.000000000 +0100
a36066c
+++ xen-4.5.0/tools/hotplug/Linux/systemd/oxenstored.service.in	2015-01-25 22:37:15.000000000 +0000
185876b
@@ -0,0 +1,26 @@
a36066c
+[Unit]
a36066c
+Description=The ocaml version of Xen xenstore
a36066c
+Requires=xenstored_ro.socket xenstored.socket proc-xen.mount var-lib-xenstored.mount
a36066c
+After=proc-xen.mount var-lib-xenstored.mount
a36066c
+Before=libvirtd.service libvirt-guests.service
a36066c
+Conflicts=xenstored.service
a36066c
+RefuseManualStop=true
a36066c
+ConditionPathExists=/proc/xen/capabilities
a36066c
+
a36066c
+[Service]
a36066c
+Type=notify
185876b
+KillMode=none
a36066c
+Sockets=xenstored.socket xenstored_ro.socket
a36066c
+Environment=XENSTORED_ARGS=
a36066c
+EnvironmentFile=-@CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons
a36066c
+ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
a36066c
+ExecStartPre=-/bin/rm -f @XEN_LIB_STORED@/tdb*
a36066c
+ExecStartPre=/bin/mkdir -p @XEN_RUN_DIR@
a36066c
+ExecStart=@sbindir@/oxenstored --no-fork $XENSTORED_ARGS
a36066c
+ExecStartPost=-@LIBEXEC_BIN@/xen-init-dom0
a36066c
+
a36066c
+[Install]
a36066c
+WantedBy=multi-user.target
a36066c
+Also=xenstored_ro.socket xenstored.socket
a36066c
+Also=proc-xen.mount
a36066c
+Also=var-lib-xenstored.mount
a36066c
diff -uN xen-4.5.0/tools/hotplug/Linux/systemd.orig/var-lib-xenstored.mount.in xen-4.5.0/tools/hotplug/Linux/systemd/var-lib-xenstored.mount.in
a36066c
--- xen-4.5.0/tools/hotplug/Linux/systemd.orig/var-lib-xenstored.mount.in	2015-01-12 16:53:24.000000000 +0000
a36066c
+++ xen-4.5.0/tools/hotplug/Linux/systemd/var-lib-xenstored.mount.in	2015-01-25 22:28:59.000000000 +0000
a36066c
@@ -9,4 +9,4 @@
a36066c
 What=xenstore
a36066c
 Where=@XEN_LIB_STORED@
a36066c
 Type=tmpfs
a36066c
-Options=mode=755
a36066c
+Options=mode=755,context="system_u:object_r:xenstored_var_lib_t:s0"
a36066c
diff -uN xen-4.5.0/tools/hotplug/Linux/systemd.orig/xenconsoled.service.in xen-4.5.0/tools/hotplug/Linux/systemd/xenconsoled.service.in
a36066c
--- xen-4.5.0/tools/hotplug/Linux/systemd.orig/xenconsoled.service.in	2015-01-12 16:53:24.000000000 +0000
a36066c
+++ xen-4.5.0/tools/hotplug/Linux/systemd/xenconsoled.service.in	2015-01-25 22:30:26.000000000 +0000
a36066c
@@ -1,7 +1,7 @@
a36066c
 [Unit]
a36066c
 Description=Xenconsoled - handles logging from guest consoles and hypervisor
a36066c
-Requires=proc-xen.mount xenstored.service
a36066c
-After=proc-xen.mount xenstored.service
a36066c
+Requires=proc-xen.mount
a36066c
+After=proc-xen.mount xenstored.service oxenstored.service
a36066c
 ConditionPathExists=/proc/xen/capabilities
a36066c
 
a36066c
 [Service]
a36066c
diff -uN xen-4.5.0/tools/hotplug/Linux/systemd.orig/xendomains.service.in xen-4.5.0/tools/hotplug/Linux/systemd/xendomains.service.in
a36066c
--- xen-4.5.0/tools/hotplug/Linux/systemd.orig/xendomains.service.in	2015-01-12 16:53:24.000000000 +0000
a36066c
+++ xen-4.5.0/tools/hotplug/Linux/systemd/xendomains.service.in	2015-01-25 22:31:55.000000000 +0000
a36066c
@@ -1,7 +1,7 @@
a36066c
 [Unit]
a36066c
 Description=Xendomains - start and stop guests on boot and shutdown
a36066c
-Requires=proc-xen.mount xenstored.service
a36066c
-After=proc-xen.mount xenstored.service xenconsoled.service xen-init-dom0.service
a36066c
+Requires=proc-xen.mount
a36066c
+After=proc-xen.mount xenstored.service xenconsoled.service oxenstored.service
a36066c
 After=network-online.target
a36066c
 After=remote-fs.target
a36066c
 ConditionPathExists=/proc/xen/capabilities
a36066c
diff -uN xen-4.5.0/tools/hotplug/Linux/systemd.orig/xen-qemu-dom0-disk-backend.service.in xen-4.5.0/tools/hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service.in
a36066c
--- xen-4.5.0/tools/hotplug/Linux/systemd.orig/xen-qemu-dom0-disk-backend.service.in	2015-01-12 16:53:24.000000000 +0000
a36066c
+++ xen-4.5.0/tools/hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service.in	2015-01-25 22:34:36.000000000 +0000
a36066c
@@ -1,7 +1,7 @@
a36066c
 [Unit]
a36066c
 Description=qemu for xen dom0 disk backend
a36066c
-Requires=proc-xen.mount xenstored.service
a36066c
-After=proc-xen.mount xenstored.service xenconsoled.service
a36066c
+Requires=proc-xen.mount
a36066c
+After=proc-xen.mount xenstored.service xenconsoled.service oxenstored.service
a36066c
 Before=xendomains.service libvirtd.service libvirt-guests.service
a36066c
 RefuseManualStop=true
a36066c
 ConditionPathExists=/proc/xen/capabilities
f0ae6d6
@@ -11,7 +11,7 @@
f0ae6d6
 PIDFile=@XEN_RUN_DIR@/qemu-dom0.pid
f0ae6d6
 ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
f0ae6d6
 ExecStartPre=/bin/mkdir -p @XEN_RUN_DIR@
f0ae6d6
-ExecStart=@LIBEXEC_BIN@/qemu-system-i386 -xen-domid 0 \
7f80525
+ExecStart=@bindir@/qemu-system-i386 -xen-domid 0 \
f0ae6d6
 	-xen-attach -name dom0 -nographic -M xenpv -daemonize \
f0ae6d6
 	-monitor /dev/null -serial /dev/null -parallel /dev/null \
f0ae6d6
 	-pidfile @XEN_RUN_DIR@/qemu-dom0.pid
a36066c
diff -uN xen-4.5.0/tools/hotplug/Linux/systemd.orig/xenstored.service.in xen-4.5.0/tools/hotplug/Linux/systemd/xenstored.service.in
a36066c
--- xen-4.5.0/tools/hotplug/Linux/systemd.orig/xenstored.service.in	2015-01-12 16:53:24.000000000 +0000
a36066c
+++ xen-4.5.0/tools/hotplug/Linux/systemd/xenstored.service.in	2015-01-25 22:37:27.000000000 +0000
a36066c
@@ -8,13 +8,14 @@
a36066c
 [Service]
a36066c
 Type=notify
185876b
 KillMode=none
a36066c
+Sockets=xenstored.socket xenstored_ro.socket
a36066c
 Environment=XENSTORED_ARGS=
a36066c
-Environment=XENSTORED=@XENSTORED@
a36066c
 EnvironmentFile=-@CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons
a36066c
 ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
a36066c
 ExecStartPre=-/bin/rm -f @XEN_LIB_STORED@/tdb*
a36066c
 ExecStartPre=/bin/mkdir -p @XEN_RUN_DIR@
a36066c
-ExecStart=/bin/sh -c "exec $XENSTORED --no-fork $XENSTORED_ARGS"
a36066c
+ExecStart=@sbindir@/xenstored --no-fork $XENSTORED_ARGS
a36066c
+ExecStartPost=-@LIBEXEC_BIN@/xen-init-dom0
a36066c
 
a36066c
 [Install]
a36066c
 WantedBy=multi-user.target
a36066c
--- xen-4.5.0/tools/configure.ac.orig	2015-01-12 16:53:24.000000000 +0000
a36066c
+++ xen-4.5.0/tools/configure.ac	2015-01-28 21:27:22.325653171 +0000
a36066c
@@ -12,9 +12,9 @@
a36066c
 hotplug/Linux/init.d/xen-watchdog
a36066c
 hotplug/Linux/init.d/xencommons
a36066c
 hotplug/Linux/init.d/xendomains
7901978
+hotplug/Linux/systemd/oxenstored.service
a36066c
 hotplug/Linux/systemd/proc-xen.mount
a36066c
 hotplug/Linux/systemd/var-lib-xenstored.mount
a36066c
-hotplug/Linux/systemd/xen-init-dom0.service
a36066c
 hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service
a36066c
 hotplug/Linux/systemd/xen-watchdog.service
a36066c
 hotplug/Linux/systemd/xenconsoled.service
a36066c
--- xen-4.5.0/tools/configure.orig	2015-01-12 16:53:24.000000000 +0000
a36066c
+++ xen-4.5.0/tools/configure	2015-01-28 21:26:58.559785351 +0000
a36066c
@@ -2276,7 +2276,7 @@
a36066c
 
a36066c
 
a36066c
 
a36066c
-ac_config_files="$ac_config_files ../config/Tools.mk hotplug/FreeBSD/rc.d/xencommons hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/xen-watchdog hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/systemd/proc-xen.mount hotplug/Linux/systemd/var-lib-xenstored.mount hotplug/Linux/systemd/xen-init-dom0.service hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service hotplug/Linux/systemd/xen-watchdog.service hotplug/Linux/systemd/xenconsoled.service hotplug/Linux/systemd/xendomains.service hotplug/Linux/systemd/xenstored.service hotplug/Linux/systemd/xenstored.socket hotplug/Linux/systemd/xenstored_ro.socket hotplug/Linux/vif-setup hotplug/Linux/xen-backend.rules hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains hotplug/NetBSD/rc.d/xencommons"
a36066c
+ac_config_files="$ac_config_files ../config/Tools.mk hotplug/FreeBSD/rc.d/xencommons hotplug/Linux/init.d/sysconfig.xencommons hotplug/Linux/init.d/xen-watchdog hotplug/Linux/init.d/xencommons hotplug/Linux/init.d/xendomains hotplug/Linux/systemd/oxenstored.service hotplug/Linux/systemd/proc-xen.mount hotplug/Linux/systemd/var-lib-xenstored.mount hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service hotplug/Linux/systemd/xen-watchdog.service hotplug/Linux/systemd/xenconsoled.service hotplug/Linux/systemd/xendomains.service hotplug/Linux/systemd/xenstored.service hotplug/Linux/systemd/xenstored.socket hotplug/Linux/systemd/xenstored_ro.socket hotplug/Linux/vif-setup hotplug/Linux/xen-backend.rules hotplug/Linux/xen-hotplug-common.sh hotplug/Linux/xendomains hotplug/NetBSD/rc.d/xencommons"
a36066c
 
a36066c
 ac_config_headers="$ac_config_headers config.h"
a36066c