packages: xen/xen.spec, xen/xend.init, xen/xen-initscript.patch (NEW)=?UTF-8?Q?=20?=- we ...

baggins baggins at pld-linux.org
Mon Mar 5 13:58:44 CET 2012


Author: baggins                      Date: Mon Mar  5 12:58:44 2012 GMT
Module: packages                      Tag: HEAD
---- Log message:
- we want to manage xend ourselves

---- Files affected:
packages/xen:
   xen.spec (1.104 -> 1.105) , xend.init (1.3 -> 1.4) , xen-initscript.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/xen/xen.spec
diff -u packages/xen/xen.spec:1.104 packages/xen/xen.spec:1.105
--- packages/xen/xen.spec:1.104	Mon Mar  5 00:56:17 2012
+++ packages/xen/xen.spec	Mon Mar  5 13:58:39 2012
@@ -9,7 +9,7 @@
 Summary(pl.UTF-8):	Xen - monitor maszyny wirtualnej
 Name:		xen
 Version:	4.1.2
-Release:	0.3
+Release:	0.6
 License:	GPL
 Group:		Applications/System
 Source0:	http://bits.xensource.com/oss-xen/release/%{version}/%{name}-%{version}.tar.gz
@@ -61,6 +61,7 @@
 Patch11:	xen-dumpdir.patch
 Patch12:	xen-net-disable-iptables-on-bridge.patch
 Patch13:	xen-configure-xend.patch
+Patch14:	xen-initscript.patch
 # stubdom patch
 Patch100:	grub-ext4-support.patch
 URL:		http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html
@@ -217,6 +218,7 @@
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
+%patch14 -p1
 
 %{__rm} -v tools/check/*.orig
 
@@ -452,6 +454,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.105  2012/03/05 12:58:39  baggins
+- we want to manage xend ourselves
+
 Revision 1.104  2012/03/04 23:56:17  baggins
 - xz compression for domU kernels from upstream
 

================================================================
Index: packages/xen/xend.init
diff -u packages/xen/xend.init:1.3 packages/xen/xend.init:1.4
--- packages/xen/xend.init:1.3	Mon Mar  5 00:30:00 2012
+++ packages/xen/xend.init	Mon Mar  5 13:58:39 2012
@@ -20,18 +20,6 @@
 # Source function library.
 . /etc/rc.d/init.d/functions
 
-waitfordaemon() {
-	i=1
-	rets=10
-	/usr/sbin/xend status
-	while [ $? -ne 0 -a $i -lt $rets ]; do
-		sleep 1
-		i=$(($i + 1))
-		/usr/sbin/xend status
-	done
-	return $?
-}
-
 start() {
 	if [ -f /var/lock/subsys/xend ]; then
 		msg_already_running "Xen control daemon"
@@ -41,17 +29,10 @@
 		echo "xenconsoled and xenstored must be started first"
 		return
 	fi
-	show "Starting Xen control daemon"
-	busy
-	/usr/sbin/xend start
-	waitfordaemon
+	msg_starting "Starting Xen control daemon"
+	daemon /usr/sbin/xend
 	RETVAL=$?
-	if [ $RETVAL -eq 0 ]; then
-		touch /var/lock/subsys/xend
-		ok
-	else
-		fail
-	fi
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/xend
 }
 
 stop() {
@@ -59,38 +40,29 @@
 		msg_not_running "Xen control daemon"
 		return
 	fi
-	show "Stopping Xen control daemon"
-	busy
-	/usr/sbin/xend stop
-	ok
+	msg_stopping "Stopping Xen control daemon"
+	killproc xend
 	rm -f /var/lock/subsys/xend
 }
 
 reload() {
 	if [ ! -f /var/lock/subsys/xend ]; then
 		msg_not_running "Xen control daemon"
-		return
+		RETVAL=7
+	else
+		msg_reloading "Reloading Xen control daemon"
+		killproc /usr/sbin/xend -HUP
+		RETVAL=$?
 	fi
-	show "Reloading Xen control daemon"
-	busy
-	/usr/sbin/xend reload
-	ok
 }
 
-restart() {
+condrestart() {
 	if [ ! -f /var/lock/subsys/xend ]; then
 		msg_not_running "Xen control daemon"
-		return
-	fi
-	show "Restarting Xen control daemon"
-	busy
-	/usr/sbin/xend restart
-	waitfordaemon
-	RETVAL=$?
-	if [ $RETVAL -eq 0 ]; then
-		ok
+		RETVAL=$1
 	else
-		fail
+		stop
+		start
 	fi
 }
 
@@ -103,17 +75,22 @@
   stop)
 	stop
 	;;
-  status)
-	/usr/sbin/xend status
+  restart)
+	stop
+	start
+	;;
+  try-restart)
+	condrestart 0
 	;;
-  reload)
+  reload|force-reload)
         reload
         ;;
-  restart|force-reload)
-	restart
+  status)
+	status xend
+	exit $?
 	;;
   *)
-	msg_usage "$0 {start|stop|status|restart|reload|force-reload}"
+	msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"
 	exit 3
 esac
 

================================================================
Index: packages/xen/xen-initscript.patch
diff -u /dev/null packages/xen/xen-initscript.patch:1.1
--- /dev/null	Mon Mar  5 13:58:45 2012
+++ packages/xen/xen-initscript.patch	Mon Mar  5 13:58:39 2012
@@ -0,0 +1,138 @@
+--- xen-4.1.0/tools/misc/xend.orig	2010-02-02 20:43:01.000000000 +0000
++++ xen-4.1.0/tools/misc/xend	2010-02-02 21:16:13.000000000 +0000
+@@ -8,103 +8,16 @@
+ """Xen management daemon.
+    Provides console server and HTTP management api.
+ 
+-   Run:
+-   xend start
+-
+-   Restart:
+-   xend restart
+-
+-   The daemon is stopped with:
+-   xend stop
+-
+    The daemon should reconnect to device control interfaces
+    and recover its state when restarted.
+ 
+-   On Solaris, the daemons are SMF managed, and you should not attempt
+-   to start xend by hand.
+ """
+-import fcntl
+-import glob
+-import os
+-import os.path
+ import sys
+-import socket
+-import signal
+-import time
+-import commands
+-
+ from xen.xend.server import SrvDaemon
+ 
+-class CheckError(ValueError):
+-    pass
+-
+-def hline():
+-    print >>sys.stderr, "*" * 70
+-
+-def msg(message):
+-    print >>sys.stderr, "*" * 3, message
+-
+-def check_logging():
+-    """Check python logging is installed and raise an error if not.
+-    Logging is standard from Python 2.3 on.
+-    """
+-    try:
+-        import logging
+-    except ImportError:
+-        hline()
+-        msg("Python logging is not installed.")
+-        msg("Use 'make install-logging' at the xen root to install.")
+-        msg("")
+-        msg("Alternatively download and install from")
+-        msg("http://www.red-dove.com/python_logging.html")
+-        hline()
+-        raise CheckError("logging is not installed")
+-
+-def check_user():
+-    """Check that the effective user id is 0 (root).
+-    """
+-    if os.geteuid() != 0:
+-        hline()
+-        msg("Xend must be run as root.")
+-        hline()
+-        raise CheckError("invalid user")
+-
+-def start_daemon(daemon, *args):
+-    if os.fork() == 0:
+-        os.execvp(daemon, (daemon,) + args)
+-
+-def start_blktapctrl():
+-    start_daemon("blktapctrl", "")
+-
+ def main():
+-    try:
+-        check_logging()
+-        check_user()
+-    except CheckError:
+-        sys.exit(1)
+-    
+     daemon = SrvDaemon.instance()
+-    if not sys.argv[1:]:
+-        print 'usage: %s {start|stop|reload|restart}' % sys.argv[0]
+-    elif sys.argv[1] == 'start':
+-        if os.uname()[0] != "SunOS":
+-            start_blktapctrl()
+-        return daemon.start()
+-    elif sys.argv[1] == 'trace_start':
+-        start_blktapctrl()
+-        return daemon.start(trace=1)
+-    elif sys.argv[1] == 'stop':
+-        return daemon.stop()
+-    elif sys.argv[1] == 'reload':
+-        return daemon.reloadConfig()
+-    elif sys.argv[1] == 'restart':
+-        start_blktapctrl()
+-        return daemon.stop() or daemon.start()
+-    elif sys.argv[1] == 'status':
+-        return daemon.status()
+-    else:
+-        print 'not an option:', sys.argv[1]
+-    return 1
++    return daemon.start()
+ 
+ if __name__ == '__main__':
+     sys.exit(main())
+diff -up xen-3.4.0/tools/python/xen/xend/osdep.py.fix xen-3.4.0/tools/python/xen/xend/osdep.py
+--- xen-3.4.0/tools/python/xen/xend/osdep.py.fix	2009-05-18 13:05:38.000000000 +0200
++++ xen-3.4.0/tools/python/xen/xend/osdep.py	2009-05-20 15:39:18.000000000 +0200
+@@ -27,7 +27,7 @@ _scripts_dir = {
+ 
+ _xend_autorestart = {
+     "NetBSD": True,
+-    "Linux": True,
++    "Linux": False,
+     "SunOS": False,
+ }
+ 
+diff -up xen-3.4.0/tools/python/xen/xend/server/SrvDaemon.py.fix xen-3.4.0/tools/python/xen/xend/server/SrvDaemon.py
+--- xen-3.4.0/tools/python/xen/xend/server/SrvDaemon.py.fix	2009-05-18 13:05:38.000000000 +0200
++++ xen-3.4.0/tools/python/xen/xend/server/SrvDaemon.py	2009-05-20 15:39:18.000000000 +0200
+@@ -110,7 +110,14 @@ class Daemon:
+         # Fork, this allows the group leader to exit,
+         # which means the child can never again regain control of the
+         # terminal
+-        if os.fork():
++        child = os.fork()
++        if child:
++            if not osdep.xend_autorestart:
++                pidfile = open(XEND_PID_FILE, 'w')
++                try:
++                    pidfile.write(str(child))
++                finally:
++                    pidfile.close()
+             os._exit(0)
+ 
+         # Detach from standard file descriptors, and redirect them to
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/xen/xen.spec?r1=1.104&r2=1.105&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/xen/xend.init?r1=1.3&r2=1.4&f=u



More information about the pld-cvs-commit mailing list