summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2012-07-02 22:04:22 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2012-07-26 10:54:48 -0500
commite641b4384977011b93c3c2a90222d459bc4c5ca6 (patch)
tree7846b824c0e040f096c6526d731aa8051c59452b
parenta6db2374fe69704ec55de86d815b127432328f24 (diff)
downloadopenrc-e641b4384977011b93c3c2a90222d459bc4c5ca6.tar.gz
openrc-e641b4384977011b93c3c2a90222d459bc4c5ca6.tar.bz2
openrc-e641b4384977011b93c3c2a90222d459bc4c5ca6.tar.xz
Bring Back prefix support
We now have a team member who is interested in OpenRC on prefix, so I am bringing it back to the main tree.
-rw-r--r--etc/rc.conf.FreeBSD1
-rw-r--r--etc/rc.conf.Linux1
-rw-r--r--etc/rc.conf.NetBSD1
-rw-r--r--init.d/adjkerntz.in2
-rw-r--r--init.d/bootmisc.in2
-rw-r--r--init.d/consolefont.in2
-rw-r--r--init.d/devd.in2
-rw-r--r--init.d/devfs.in2
-rw-r--r--init.d/dumpon.in2
-rw-r--r--init.d/fsck.in2
-rw-r--r--init.d/hostid.in2
-rw-r--r--init.d/hostname.in2
-rw-r--r--init.d/hwclock.in2
-rw-r--r--init.d/keymaps.in2
-rw-r--r--init.d/killprocs.in5
-rw-r--r--init.d/localmount.in2
-rw-r--r--init.d/mixer.in2
-rw-r--r--init.d/modules.in2
-rw-r--r--init.d/mount-ro.in2
-rw-r--r--init.d/moused.in2
-rw-r--r--init.d/mtab.in1
-rw-r--r--init.d/net.lo.in2
-rw-r--r--init.d/netmount.in2
-rw-r--r--init.d/network.in2
-rw-r--r--init.d/newsyslog.in1
-rw-r--r--init.d/numlock.in2
-rw-r--r--init.d/pf.in2
-rw-r--r--init.d/powerd.in2
-rw-r--r--init.d/procfs.in2
-rw-r--r--init.d/rc-enabled.in1
-rw-r--r--init.d/root.in2
-rw-r--r--init.d/savecore.in2
-rw-r--r--init.d/staticroute.in2
-rw-r--r--init.d/swap-blk.in2
-rw-r--r--init.d/swap.in2
-rw-r--r--init.d/swclock.in2
-rw-r--r--init.d/syscons.in2
-rw-r--r--init.d/sysctl.BSD.in1
-rw-r--r--init.d/sysctl.Linux.in2
-rw-r--r--init.d/sysfs.in2
-rw-r--r--init.d/syslogd.in1
-rw-r--r--init.d/termencoding.in2
-rw-r--r--init.d/ttys.in1
-rw-r--r--init.d/urandom.in2
-rw-r--r--init.d/wscons.in1
-rw-r--r--man/runscript.87
-rw-r--r--runlevels/Makefile18
-rw-r--r--src/librc/librc.c6
-rw-r--r--src/librc/rc.h.in1
49 files changed, 75 insertions, 40 deletions
diff --git a/etc/rc.conf.FreeBSD b/etc/rc.conf.FreeBSD
index 92640e8..cb16b83 100644
--- a/etc/rc.conf.FreeBSD
+++ b/etc/rc.conf.FreeBSD
@@ -4,6 +4,7 @@
# This is the subsystem type. Valid options on FreeBSD:
# "" - nothing special
# "jail" - FreeBSD jails
+# "prefix" - Prefix
# If this is commented out, automatic detection will be used.
#
# This should be set to the value representing the environment this file is
diff --git a/etc/rc.conf.Linux b/etc/rc.conf.Linux
index 6cc9bef..909e6a9 100644
--- a/etc/rc.conf.Linux
+++ b/etc/rc.conf.Linux
@@ -5,6 +5,7 @@
# "" - nothing special
# "lxc" - Linux Containers
# "openvz" - Linux OpenVZ
+# "prefix" - Prefix
# "uml" - Usermode Linux
# "vserver" - Linux vserver
# "xen0" - Xen0 Domain
diff --git a/etc/rc.conf.NetBSD b/etc/rc.conf.NetBSD
index 633e2a1..43f8b88 100644
--- a/etc/rc.conf.NetBSD
+++ b/etc/rc.conf.NetBSD
@@ -3,6 +3,7 @@
# This is the subsystem type. Valid options on NetBSD:
# "" - nothing special
+# "prefix" - Prefix
# "xen0" - Xen0 Domain
# "xenU" - XenU Domain
# If this is commented out, automatic detection will be used.
diff --git a/init.d/adjkerntz.in b/init.d/adjkerntz.in
index 21fc1df..76ad175 100644
--- a/init.d/adjkerntz.in
+++ b/init.d/adjkerntz.in
@@ -22,7 +22,7 @@ depend()
[ "$clock" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
need root
fi
- keyword -jail
+ keyword -jail -prefix
}
start()
diff --git a/init.d/bootmisc.in b/init.d/bootmisc.in
index 3144875..a2afbf9 100644
--- a/init.d/bootmisc.in
+++ b/init.d/bootmisc.in
@@ -7,7 +7,7 @@ depend()
need localmount
before logger
after clock sysctl
- keyword -timeout
+ keyword -prefix -timeout
}
: ${wipe_tmp:=${WIPE_TMP:-yes}}
diff --git a/init.d/consolefont.in b/init.d/consolefont.in
index 53c43af..66b780d 100644
--- a/init.d/consolefont.in
+++ b/init.d/consolefont.in
@@ -8,7 +8,7 @@ depend()
{
need localmount termencoding
after hotplug bootmisc
- keyword -openvz -uml -vserver -xenu -lxc
+ keyword -openvz -prefix -uml -vserver -xenu -lxc
}
start()
diff --git a/init.d/devd.in b/init.d/devd.in
index 7943e0d..b474b75 100644
--- a/init.d/devd.in
+++ b/init.d/devd.in
@@ -10,7 +10,7 @@ depend() {
need localmount
after bootmisc
before net.lo0
- keyword -jail
+ keyword -jail -prefix
}
start_pre() {
diff --git a/init.d/devfs.in b/init.d/devfs.in
index ff43f1e..6a41354 100644
--- a/init.d/devfs.in
+++ b/init.d/devfs.in
@@ -6,7 +6,7 @@ description="Mount system critical filesystems in /dev."
depend() {
use dev
- keyword -vserver
+ keyword -prefix -vserver
}
start() {
diff --git a/init.d/dumpon.in b/init.d/dumpon.in
index 282e236..4450bf9 100644
--- a/init.d/dumpon.in
+++ b/init.d/dumpon.in
@@ -6,7 +6,7 @@ description="Configures a specific kernel dump device."
depend() {
need swap
- keyword -jail
+ keyword -jail -prefix
}
start() {
diff --git a/init.d/fsck.in b/init.d/fsck.in
index 0e93d21..fcc334c 100644
--- a/init.d/fsck.in
+++ b/init.d/fsck.in
@@ -9,7 +9,7 @@ _IFS="
depend()
{
use dev clock modules
- keyword -jail -openvz -timeout -vserver -lxc
+ keyword -jail -openvz -prefix -timeout -vserver -lxc
}
_abort() {
diff --git a/init.d/hostid.in b/init.d/hostid.in
index a028c90..b682b3d 100644
--- a/init.d/hostid.in
+++ b/init.d/hostid.in
@@ -9,7 +9,7 @@ depend()
{
use root
before devd net
- keyword -jail
+ keyword -jail -prefix
}
_set()
diff --git a/init.d/hostname.in b/init.d/hostname.in
index f5b6fc8..2b0ec81 100644
--- a/init.d/hostname.in
+++ b/init.d/hostname.in
@@ -5,7 +5,7 @@
description="Sets the hostname of the machine."
depend() {
- keyword -lxc
+ keyword -prefix -lxc
}
start()
diff --git a/init.d/hwclock.in b/init.d/hwclock.in
index de6e869..eb44f62 100644
--- a/init.d/hwclock.in
+++ b/init.d/hwclock.in
@@ -28,7 +28,7 @@ depend()
else
before *
fi
- keyword -openvz -uml -vserver -xenu -lxc
+ keyword -openvz -prefix -uml -vserver -xenu -lxc
}
setupopts()
diff --git a/init.d/keymaps.in b/init.d/keymaps.in
index 86aed3e..a55a0e0 100644
--- a/init.d/keymaps.in
+++ b/init.d/keymaps.in
@@ -8,7 +8,7 @@ depend()
{
need localmount termencoding
after bootmisc
- keyword -openvz -uml -vserver -xenu -lxc
+ keyword -openvz -prefix -uml -vserver -xenu -lxc
}
start()
diff --git a/init.d/killprocs.in b/init.d/killprocs.in
index ea1e84b..7f1cf91 100644
--- a/init.d/killprocs.in
+++ b/init.d/killprocs.in
@@ -4,6 +4,11 @@
description="Kill all processes so we can unmount disks cleanly."
+depend()
+{
+ keyword -prefix
+}
+
start()
{
ebegin "Terminating remaining processes"
diff --git a/init.d/localmount.in b/init.d/localmount.in
index c432a12..8e67c38 100644
--- a/init.d/localmount.in
+++ b/init.d/localmount.in
@@ -9,7 +9,7 @@ depend()
need fsck
use lvm modules mtab
after lvm modules
- keyword -jail -openvz -vserver -lxc
+ keyword -jail -openvz -prefix -vserver -lxc
}
start()
diff --git a/init.d/mixer.in b/init.d/mixer.in
index 7163f86..a08aea1 100644
--- a/init.d/mixer.in
+++ b/init.d/mixer.in
@@ -7,7 +7,7 @@ extra_commands="restore"
depend()
{
need localmount
- keyword -jail
+ keyword -jail -prefix
}
restore()
diff --git a/init.d/modules.in b/init.d/modules.in
index 1100680..72f14e7 100644
--- a/init.d/modules.in
+++ b/init.d/modules.in
@@ -7,7 +7,7 @@ description="Loads a user defined list of kernel modules."
depend()
{
use isapnp
- keyword -openvz -vserver -lxc
+ keyword -openvz -prefix -vserver -lxc
}
start()
diff --git a/init.d/mount-ro.in b/init.d/mount-ro.in
index 369d544..881bf84 100644
--- a/init.d/mount-ro.in
+++ b/init.d/mount-ro.in
@@ -7,7 +7,7 @@ description="Re-mount filesytems read-only for a clean reboot."
depend()
{
need killprocs savecache
- keyword -openvz -vserver -lxc
+ keyword -openvz -prefix -vserver -lxc
}
start()
diff --git a/init.d/moused.in b/init.d/moused.in
index 8ce8ffa..cdcf36a 100644
--- a/init.d/moused.in
+++ b/init.d/moused.in
@@ -16,7 +16,7 @@ depend()
{
need localmount
after bootmisc
- keyword -jail
+ keyword -jail -prefix
}
start()
diff --git a/init.d/mtab.in b/init.d/mtab.in
index 69b3b49..0be5adb 100644
--- a/init.d/mtab.in
+++ b/init.d/mtab.in
@@ -7,6 +7,7 @@ description="Update /etc/mtab to match what the kernel knows about"
depend()
{
need root
+ keyword -prefix
}
start()
diff --git a/init.d/net.lo.in b/init.d/net.lo.in
index 6bf49b5..088398b 100644
--- a/init.d/net.lo.in
+++ b/init.d/net.lo.in
@@ -23,7 +23,7 @@ depend()
need sysfs
fi
after bootmisc
- keyword -jail -vserver
+ keyword -jail -prefix -vserver
case "${IFACE}" in
lo|lo0) provide lo;;
diff --git a/init.d/netmount.in b/init.d/netmount.in
index cf5971c..963ad26 100644
--- a/init.d/netmount.in
+++ b/init.d/netmount.in
@@ -35,7 +35,7 @@ depend()
need net $pmap
use afc-client amd autofs openvpn
use dns nfs nfsmount portmap rpcbind rpc.statd rpc.lockd
- keyword -jail -vserver
+ keyword -jail -prefix -vserver
}
start()
diff --git a/init.d/network.in b/init.d/network.in
index 20d46f4..f0403b4 100644
--- a/init.d/network.in
+++ b/init.d/network.in
@@ -13,7 +13,7 @@ depend()
need localmount
after bootmisc
provide net
- keyword -jail -vserver
+ keyword -jail -prefix -vserver
}
uniqify()
diff --git a/init.d/newsyslog.in b/init.d/newsyslog.in
index 878bf4d..6cf72e6 100644
--- a/init.d/newsyslog.in
+++ b/init.d/newsyslog.in
@@ -7,6 +7,7 @@ required_files="/etc/newsyslog.conf"
depend()
{
need localmount
+ keyword -prefix
}
start()
diff --git a/init.d/numlock.in b/init.d/numlock.in
index 7f79538..3cb8bee 100644
--- a/init.d/numlock.in
+++ b/init.d/numlock.in
@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend()
{
need localmount
- keyword -openvz -vserver -lxc
+ keyword -openvz -prefix -vserver -lxc
}
_setleds()
diff --git a/init.d/pf.in b/init.d/pf.in
index 804c3a0..1097ac8 100644
--- a/init.d/pf.in
+++ b/init.d/pf.in
@@ -11,7 +11,7 @@ extra_started_commands="reload"
depend() {
need localmount
- keyword -jail
+ keyword -jail -prefix
}
start()
diff --git a/init.d/powerd.in b/init.d/powerd.in
index 17e5375..10ffecc 100644
--- a/init.d/powerd.in
+++ b/init.d/powerd.in
@@ -12,7 +12,7 @@ depend()
need localmount
use logger
after bootmisc
- keyword -jail
+ keyword -jail -prefix
}
start_pre()
diff --git a/init.d/procfs.in b/init.d/procfs.in
index a167ed7..992567e 100644
--- a/init.d/procfs.in
+++ b/init.d/procfs.in
@@ -8,7 +8,7 @@ depend()
{
use modules devfs
need localmount
- keyword -openvz -vserver -lxc
+ keyword -openvz -prefix -vserver -lxc
}
start()
diff --git a/init.d/rc-enabled.in b/init.d/rc-enabled.in
index c2d38d7..9ba73b0 100644
--- a/init.d/rc-enabled.in
+++ b/init.d/rc-enabled.in
@@ -7,6 +7,7 @@ depend()
need localmount net
after *
before local
+ keyword -prefix
}
start()
diff --git a/init.d/root.in b/init.d/root.in
index fd95ab7..c8ae4f1 100644
--- a/init.d/root.in
+++ b/init.d/root.in
@@ -7,7 +7,7 @@ description="Mount the root fs read/write"
depend()
{
need fsck
- keyword -jail -openvz -vserver -lxc
+ keyword -jail -openvz -prefix -vserver -lxc
}
start()
diff --git a/init.d/savecore.in b/init.d/savecore.in
index b04d1be..c55a0ab 100644
--- a/init.d/savecore.in
+++ b/init.d/savecore.in
@@ -8,7 +8,7 @@ depend()
{
need dumpon localmount
before encswap
- keyword -jail
+ keyword -jail -prefix
}
start()
diff --git a/init.d/staticroute.in b/init.d/staticroute.in
index 91b61a4..213dddf 100644
--- a/init.d/staticroute.in
+++ b/init.d/staticroute.in
@@ -12,7 +12,7 @@ depend()
{
provide net
use network
- keyword -jail -vserver
+ keyword -jail -prefix -vserver
}
pre_flight_checks()
diff --git a/init.d/swap-blk.in b/init.d/swap-blk.in
index 6f28e21..a7862ee 100644
--- a/init.d/swap-blk.in
+++ b/init.d/swap-blk.in
@@ -5,7 +5,7 @@
depend()
{
before fsck
- keyword -jail
+ keyword -jail -prefix
}
start()
diff --git a/init.d/swap.in b/init.d/swap.in
index 9e8ddbd..fa08b4d 100644
--- a/init.d/swap.in
+++ b/init.d/swap.in
@@ -5,7 +5,7 @@
depend()
{
before localmount
- keyword -jail -openvz -vserver -lxc
+ keyword -jail -openvz -prefix -vserver -lxc
}
start()
diff --git a/init.d/swclock.in b/init.d/swclock.in
index f10689b..077f258 100644
--- a/init.d/swclock.in
+++ b/init.d/swclock.in
@@ -8,7 +8,7 @@ depend()
{
before *
provide clock
- keyword -openvz -uml -vserver -xenu -lxc
+ keyword -openvz -prefix -uml -vserver -xenu -lxc
}
# swclock is an OpenRC built in
diff --git a/init.d/syscons.in b/init.d/syscons.in
index c49799a..0666947 100644
--- a/init.d/syscons.in
+++ b/init.d/syscons.in
@@ -4,7 +4,7 @@
depend() {
need localmount
- keyword -jail
+ keyword -jail -prefix
}
start() {
diff --git a/init.d/sysctl.BSD.in b/init.d/sysctl.BSD.in
index fe69ab2..c7d2028 100644
--- a/init.d/sysctl.BSD.in
+++ b/init.d/sysctl.BSD.in
@@ -5,6 +5,7 @@
depend()
{
before bootmisc logger
+ keyword -prefix
}
start()
diff --git a/init.d/sysctl.Linux.in b/init.d/sysctl.Linux.in
index a64060f..119f6ee 100644
--- a/init.d/sysctl.Linux.in
+++ b/init.d/sysctl.Linux.in
@@ -5,7 +5,7 @@
depend()
{
before bootmisc logger
- keyword -lxc -vserver
+ keyword -lxc -prefix -vserver
}
start()
diff --git a/init.d/sysfs.in b/init.d/sysfs.in
index 5bc5c71..a90dab2 100644
--- a/init.d/sysfs.in
+++ b/init.d/sysfs.in
@@ -6,7 +6,7 @@ description="Mount the sys filesystem."
depend()
{
- keyword -vserver
+ keyword -prefix -vserver
}
mount_sys()
diff --git a/init.d/syslogd.in b/init.d/syslogd.in
index 809ac89..817afa1 100644
--- a/init.d/syslogd.in
+++ b/init.d/syslogd.in
@@ -16,4 +16,5 @@ depend()
use net newsyslog
need localmount
after bootmisc
+ keyword -prefix
}
diff --git a/init.d/termencoding.in b/init.d/termencoding.in
index 0f243e2..a8a96e5 100644
--- a/init.d/termencoding.in
+++ b/init.d/termencoding.in
@@ -9,7 +9,7 @@ ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
depend()
{
- keyword -lxc -openvz -uml -vserver -xenu
+ keyword -lxc -openvz -prefix -uml -vserver -xenu
use root
after bootmisc
}
diff --git a/init.d/ttys.in b/init.d/ttys.in
index 2ac524b..2adbe81 100644
--- a/init.d/ttys.in
+++ b/init.d/ttys.in
@@ -5,6 +5,7 @@
depend()
{
after fsck
+ keyword -prefix
}
start()
diff --git a/init.d/urandom.in b/init.d/urandom.in
index 8ee3251..bc48066 100644
--- a/init.d/urandom.in
+++ b/init.d/urandom.in
@@ -8,7 +8,7 @@ description="Initializes the random number generator."
depend()
{
need localmount
- keyword -jail -openvz
+ keyword -jail -openvz -prefix
}
save_seed()
diff --git a/init.d/wscons.in b/init.d/wscons.in
index 9416b3b..5d94eff 100644
--- a/init.d/wscons.in
+++ b/init.d/wscons.in
@@ -5,6 +5,7 @@
depend()
{
need localmount
+ keyword -prefix
}
start()
diff --git a/man/runscript.8 b/man/runscript.8
index 6d425e4..ef55de3 100644
--- a/man/runscript.8
+++ b/man/runscript.8
@@ -180,6 +180,8 @@ in
Same as -jail, but for Linux Resource Containers (LXC).
.It Dv -openvz
Same as -jail, but for OpenVZ systems.
+.It Dv -prefix
+Same as -jail, but for Prefix systems.
.It Dv -uml
Same as -jail, but for UML systems.
.It Dv -vserver
@@ -388,8 +390,9 @@ rc_provide_tap1="!net"
# To put in in /etc/rc.conf you would do it like this
rc_net_tap1_provide="!net"
-# It's also possible to negate keywords.
-rc_keyword="-keyword"
+# It's also possible to negate keywords. This is mainly useful for prefix
+# users testing OpenRC.
+rc_keyword="!-prefix"
.Ed
.Sh EXAMPLES
.Pp
diff --git a/runlevels/Makefile b/runlevels/Makefile
index 25fa029..c42b307 100644
--- a/runlevels/Makefile
+++ b/runlevels/Makefile
@@ -53,24 +53,34 @@ install:
if ! test -d "${SYSINITDIR}"; then \
${INSTALL} -d ${SYSINITDIR} || exit $$?; \
for x in ${SYSINIT}; do \
- ln -snf ${PREFIX}/etc/init.d/"$$x" ${SYSINITDIR}/"$$x" || exit $$?; \
- done \
+ if test -n "${PREFIX}"; then \
+ grep -q "keyword .*-prefix" ${INITDIR}/"$$x" && continue; \
+ fi; \
+ ln -snf ${PREFIX}/etc/init.d/"$$x" ${SYSINITDIR}/"$$x" || exit $$?; done \
fi
if ! test -d "${BOOTDIR}"; then \
${INSTALL} -d ${BOOTDIR} || exit $$?; \
for x in ${BOOT}; do \
+ if test -n "${PREFIX}"; then \
+ grep -q "keyword .*-prefix" ${INITDIR}/"$$x" && continue; \
+ fi; \
ln -snf ${PREFIX}/etc/init.d/"$$x" ${BOOTDIR}/"$$x" || exit $$?; \
done \
fi
if ! test -d "${DEFAULTDIR}"; then \
${INSTALL} -d ${DEFAULTDIR} || exit $$?; \
for x in ${DEFAULT}; do \
- ln -snf ${PREFIX}/etc/init.d/"$$x" ${DEFAULTDIR}/"$$x" || exit $$?; \
- done \
+ if test -n "${PREFIX}"; then \
+ grep -q "keyword .*-prefix" ${INITDIR}/"$$x" && continue; \
+ fi; \
+ ln -snf ${PREFIX}/etc/init.d/"$$x" ${DEFAULTDIR}/"$$x" || exit $$?; done \
fi
if ! test -d "${SHUTDOWNDIR}"; then \
${INSTALL} -d ${SHUTDOWNDIR} || exit $$?; \
for x in ${SHUTDOWN}; do \
+ if test -n "${PREFIX}"; then \
+ grep -q "keyword .*-prefix" ${INITDIR}/"$$x" && continue; \
+ fi; \
ln -snf ${PREFIX}/etc/init.d/"$$x" ${SHUTDOWNDIR}/"$$x" || exit $$?; done \
fi
diff --git a/src/librc/librc.c b/src/librc/librc.c
index ed60196..d82880f 100644
--- a/src/librc/librc.c
+++ b/src/librc/librc.c
@@ -216,6 +216,7 @@ rc_sys_v2(void)
}
/* Now do detection */
__STRING_SWITCH(systype)
+ __STRING_CASE(RC_SYS_PREFIX) { return RC_SYS_PREFIX; }
#ifdef __FreeBSD__
__STRING_CASE(RC_SYS_JAIL) { return RC_SYS_JAIL; }
#endif /* __FreeBSD__ */
@@ -245,6 +246,10 @@ librc_hidden_def(rc_sys_v2)
const char *
rc_sys_v1(void)
{
+#ifdef PREFIX
+ return RC_SYS_PREFIX;
+#else
+
#ifdef __FreeBSD__
int jailed = 0;
size_t len = sizeof(jailed);
@@ -281,6 +286,7 @@ rc_sys_v1(void)
#endif
return NULL;
+#endif /* PREFIX */
}
librc_hidden_def(rc_sys_v1)
diff --git a/src/librc/rc.h.in b/src/librc/rc.h.in
index 96926a5..e4cb60d 100644
--- a/src/librc/rc.h.in
+++ b/src/librc/rc.h.in
@@ -280,6 +280,7 @@ bool rc_service_daemons_crashed(const char *);
#define RC_SYS_JAIL "JAIL"
#define RC_SYS_OPENVZ "OPENVZ"
#define RC_SYS_LXC "LXC"
+#define RC_SYS_PREFIX "PREFIX"
#define RC_SYS_UML "UML"
#define RC_SYS_VSERVER "VSERVER"
#define RC_SYS_XEN0 "XEN0"