* [PATCH] tools/stubdom: get rid of hardcoded pathes
@ 2009-05-28 16:42 Christoph Egger
2009-05-28 18:35 ` Ian Jackson
0 siblings, 1 reply; 6+ messages in thread
From: Christoph Egger @ 2009-05-28 16:42 UTC (permalink / raw)
To: xen-devel
[-- Attachment #1: Type: text/plain, Size: 1104 bytes --]
Hi!
Attached patch makes xen-tools and stubdom-dm going independent
from hardcoded pathes. It is no possible to install into /usr/local or any
other non-default directory and use it out-of-the box.
This allows us to have different Xen versions in different directories,
simplifies packaging for distributions.
It also finds 'hvmloader' and 'qemu-dm'/'stubdom-dm' w/o specifying
an absolut path.
This allows us to migrate guests between Dom0's where even standard
install directories are different (i.e. migrate between Solaris Dom0, NetBSD
Dom0 and Linux Dom0).
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
P.S.: Above is only true for PV-guests only until Ian applies my
build system patches for ioemu. I'll resend the ioemu next week
since there's some extra stuff, that isn't in the earlier patches.
--
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Karl-Hammerschmidt-Str. 34, 85609 Dornach b. Muenchen
Geschaeftsfuehrer: Thomas M. McCoy, Giuliano Meroni
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632
[-- Attachment #2: xen_path.diff --]
[-- Type: text/x-diff, Size: 31077 bytes --]
diff -r fe84a14aacd1 Config.mk
--- a/Config.mk Thu May 28 11:07:19 2009 +0100
+++ b/Config.mk Thu May 28 18:15:43 2009 +0200
@@ -87,6 +87,28 @@ define absolutify_xen_root
export XEN_ROOT
endef
+define buildmakevars2shellvars
+ PREFIX="$(PREFIX)"; \
+ XEN_SCRIPT_DIR="$(XEN_SCRIPT_DIR)"; \
+ export PREFIX; \
+ export XEN_SCRIPT_DIR
+endef
+
+buildmakevars2file = $(eval $(call buildmakevars2file-closure,$(1)))
+define buildmakevars2file-closure
+ .PHONY: genpath
+ genpath:
+ rm -f $(1); \
+ echo "SBINDIR=\"$(SBINDIR)\"" >> $(1); \
+ echo "BINDIR=\"$(BINDIR)\"" >> $(1); \
+ echo "LIBEXEC=\"$(LIBEXEC)\"" >> $(1); \
+ echo "LIBDIR=\"$(LIBDIR)\"" >> $(1); \
+ echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> $(1); \
+ echo "XENFIRMWAREDIR=\"$(XENFIRMWAREDIR)\"" >> $(1); \
+ echo "XEN_CONFIG_DIR=\"$(XEN_CONFIG_DIR)\"" >> $(1); \
+ echo "XEN_SCRIPT_DIR=\"$(XEN_SCRIPT_DIR)\"" >> $(1)
+endef
+
ifeq ($(debug),y)
CFLAGS += -g
endif
diff -r fe84a14aacd1 config/StdGNU.mk
--- a/config/StdGNU.mk Thu May 28 11:07:19 2009 +0100
+++ b/config/StdGNU.mk Thu May 28 18:15:43 2009 +0200
@@ -36,6 +36,7 @@ MANDIR = $(SHAREDIR)/man
MAN1DIR = $(MANDIR)/man1
MAN8DIR = $(MANDIR)/man8
SBINDIR = $(PREFIX)/sbin
+XENFIRMWAREDIR = $(LIBDIR_x86_32)/xen/boot
PRIVATE_PREFIX = $(LIBDIR)/xen
PRIVATE_BINDIR = $(PRIVATE_PREFIX)/bin
diff -r fe84a14aacd1 config/SunOS.mk
--- a/config/SunOS.mk Thu May 28 11:07:19 2009 +0100
+++ b/config/SunOS.mk Thu May 28 18:15:43 2009 +0200
@@ -30,6 +30,7 @@ MANDIR = $(PREFIX)/share/man
MAN1DIR = $(MANDIR)/man1
MAN8DIR = $(MANDIR)/man8
SBINDIR = $(PREFIX)/sbin
+XENFIRMWAREDIR = $(LIBDIR)/xen/boot
PRIVATE_PREFIX = $(LIBDIR)/xen
PRIVATE_BINDIR = $(PRIVATE_PREFIX)/bin
diff -r fe84a14aacd1 stubdom/Makefile
--- a/stubdom/Makefile Thu May 28 11:07:19 2009 +0100
+++ b/stubdom/Makefile Thu May 28 18:15:43 2009 +0200
@@ -77,8 +77,12 @@ TARGET_LDFLAGS += -nostdlib -L$(CROSS_PR
TARGETS=ioemu c caml grub
+STUBDOMPATH="stubdompath.sh"
+genpath-target = $(call buildmakevars2file,$(STUBDOMPATH))
+$(eval $(genpath-target))
+
.PHONY: all
-all: build
+all: genpath build
ifeq ($(STUBDOM_SUPPORTED),1)
build: ioemu-stubdom c-stubdom pv-grub
else
@@ -270,8 +274,7 @@ libxc-$(XEN_TARGET_ARCH)/libxenctrl.a li
ioemu: cross-zlib cross-libpci libxc
[ -f ioemu/config-host.mak ] || \
( $(absolutify_xen_root); \
- PREFIX=$(PREFIX); \
- export PREFIX; \
+ $(buildmakevars2shellvars); \
cd ioemu ; \
LWIPDIR=$(CURDIR)/lwip-$(XEN_TARGET_ARCH) \
TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \
@@ -374,6 +377,7 @@ clean:
$(MAKE) -C caml clean
$(MAKE) -C c clean
rm -fr grub-$(XEN_TARGET_ARCH)
+ rm -f $(STUBDOMPATH)
[ ! -d libxc-$(XEN_TARGET_ARCH) ] || $(MAKE) -C libxc-$(XEN_TARGET_ARCH) clean
-[ ! -d ioemu ] || $(MAKE) -C ioemu clean
diff -r fe84a14aacd1 stubdom/stubdom-dm
--- a/stubdom/stubdom-dm Thu May 28 11:07:19 2009 +0100
+++ b/stubdom/stubdom-dm Thu May 28 18:15:43 2009 +0200
@@ -5,6 +5,9 @@
# dm script around stubdomains.
#
+. ./stubdompath.sh
+stubdom_configdir="${XEN_CONFIG_DIR}/stubdoms"
+
# To fit xterms nicely
height=339
@@ -72,7 +75,7 @@ term() {
(
[ -n "$vncpid" ] && kill -9 $vncpid
xm destroy $domname-dm
- rm /etc/xen/stubdoms/$domname-dm
+ rm ${stubdom_configdir}/$domname-dm
) &
# We need to exit immediately so as to let xend do the commands above
exit 0
@@ -89,9 +92,9 @@ do
done
# Generate stubdom config file
-mkdir -p /etc/xen/stubdoms &>/dev/null
-echo "#This file is autogenerated, edit $domname instead!" > /etc/xen/stubdoms/$domname-dm
-echo "kernel = '/usr/lib/xen/boot/ioemu-stubdom.gz'" >> /etc/xen/stubdoms/$domname-dm
+mkdir -p ${stubdom_configdir} &>/dev/null
+echo "#This file is autogenerated, edit $domname instead!" > ${stubdom_configdir}/$domname-dm
+echo "kernel = '${XENFIRMWAREDIR}/ioemu-stubdom.gz'" >> ${stubdom_configdir}/$domname-dm
vfb="sdl=$sdl, opengl=$opengl"
test "$DISPLAY" && vfb="$vfb, display=$DISPLAY"
@@ -100,9 +103,9 @@ test $vnc != 0 && vfb="$vfb, vnc=$vnc, v
vncpasswd=`xenstore-read /local/domain/0/backend/vfb/$domid/0/vncpasswd 2>/dev/null`
test "$vncpasswd" && vfb="$vfb, vncpasswd=$vncpasswd"
test "$keymap" && vfb="$vfb, keymap=$keymap"
-echo "vfb = ['$vfb']" >> /etc/xen/stubdoms/$domname-dm
+echo "vfb = ['$vfb']" >> ${stubdom_configdir}/$domname-dm
-echo -n "disk = [ " >> /etc/xen/stubdoms/$domname-dm
+echo -n "disk = [ " >> ${stubdom_configdir}/$domname-dm
j=0
for i in `xenstore-ls /local/domain/$domid/device/vbd | grep 'backend =' | awk '{print $3}'`
do
@@ -116,13 +119,13 @@ do
vbd_devtype=`xenstore-read $vbd_front/device-type`
if [ $j -ne 0 ]
then
- echo -n "," >> /etc/xen/stubdoms/$domname-dm
+ echo -n "," >> ${stubdom_configdir}/$domname-dm
fi
- echo -n "'$vbd_type:$vbd_disk,$vbd_dev:$vbd_devtype,$vbd_mode'" >> /etc/xen/stubdoms/$domname-dm
+ echo -n "'$vbd_type:$vbd_disk,$vbd_dev:$vbd_devtype,$vbd_mode'" >> ${stubdom_configdir}/$domname-dm
j=$(( $j + 1 ))
done
-echo " ] " >> /etc/xen/stubdoms/$domname-dm
-echo -n "vif = [ " >> /etc/xen/stubdoms/$domname-dm
+echo " ] " >> ${stubdom_configdir}/$domname-dm
+echo -n "vif = [ " >> ${stubdom_configdir}/$domname-dm
j=0
for i in `xenstore-ls /local/domain/$domid/device/vif | grep 'backend =' | awk '{print $3}'`
do
@@ -131,13 +134,13 @@ do
vif_mac=`xenstore-read $i/mac`
if [ $j -ne 0 ]
then
- echo -n "," >> /etc/xen/stubdoms/$domname-dm
+ echo -n "," >> ${stubdom_configdir}/$domname-dm
fi
- echo -n "'mac=$vif_mac'" >> /etc/xen/stubdoms/$domname-dm
+ echo -n "'mac=$vif_mac'" >> ${stubdom_configdir}/$domname-dm
j=$(( $j + 1 ))
done
-echo " ] " >> /etc/xen/stubdoms/$domname-dm
-creation="xm create -c /etc/xen/stubdoms/$domname-dm target=$domid memory=32 extra=\"$extra\""
+echo " ] " >> ${stubdom_configdir}/$domname-dm
+creation="xm create -c ${stubdom_configdir}/$domname-dm target=$domid memory=32 extra=\"$extra\""
(while true ; do sleep 60 ; done) | /bin/sh -c "$creation" &
#xterm -geometry +0+0 -e /bin/sh -c "$creation ; echo ; echo press ENTER to shut down ; read" &
diff -r fe84a14aacd1 tools/Makefile
--- a/tools/Makefile Thu May 28 11:07:19 2009 +0100
+++ b/tools/Makefile Thu May 28 18:15:43 2009 +0200
@@ -94,10 +98,7 @@ ioemu-dir-find:
fi
set -e; \
$(absolutify_xen_root); \
- PREFIX=$(PREFIX); \
- XEN_SCRIPT_DIR=$(XEN_SCRIPT_DIR); \
- export PREFIX; \
- export XEN_SCRIPT_DIR; \
+ $(buildmakevars2shellvars); \
cd ioemu-dir; \
./xen-setup $(IOEMU_CONFIGURE_CROSS)
@@ -106,6 +107,7 @@ subdir-all-ioemu-dir subdir-install-ioem
subdir-clean-ioemu-dir:
set -e; if test -d ioemu-dir/.; then \
$(absolutify_xen_root); \
+ $(buildmakevars2shellvars); \
$(MAKE) -C ioemu-dir clean; \
fi
diff -r fe84a14aacd1 tools/examples/xend-config.sxp
--- a/tools/examples/xend-config.sxp Thu May 28 11:07:19 2009 +0100
+++ b/tools/examples/xend-config.sxp Thu May 28 18:15:43 2009 +0200
@@ -1,5 +1,7 @@
# -*- sh -*-
+from xen.util import auxbin
+
#
# Xend configuration file.
#
@@ -51,7 +53,7 @@
# Optionally, the TCP Xen-API server can use SSL by specifying the private
# key and certificate location:
#
-# (9367 pam '' /etc/xen/xen-api.key /etc/xen/xen-api.crt)
+# (9367 pam '' auxbin.xen_configdir() + /xen-api.key auxbin.xen_configdir() + /xen-api.crt)
#
# Default:
# (xen-api-server ((unix)))
@@ -77,8 +79,8 @@
# SSL key and certificate to use for the legacy TCP XMLRPC interface.
# Setting these will mean that this port serves only SSL connections as
# opposed to plaintext ones.
-#(xend-tcp-xmlrpc-server-ssl-key-file /etc/xen/xmlrpc.key)
-#(xend-tcp-xmlrpc-server-ssl-cert-file /etc/xen/xmlrpc.crt)
+#(xend-tcp-xmlrpc-server-ssl-key-file auxbin.xen_configdir() + /xmlrpc.key)
+#(xend-tcp-xmlrpc-server-ssl-cert-file auxbin.xen_configdir() + /xmlrpc.crt)
# Port xend should use for the HTTP interface, if xend-http-server is set.
@@ -94,8 +96,8 @@
# SSL key and certificate to use for the ssl relocation interface, if
# xend-relocation-ssl-server is set.
-#(xend-relocation-server-ssl-key-file /etc/xen/xmlrpc.key)
-#(xend-relocation-server-ssl-cert-file /etc/xen/xmlrpc.crt)
+#(xend-relocation-server-ssl-key-file auxbin.xen_configdir() + /xmlrpc.key)
+#(xend-relocation-server-ssl-cert-file auxbin.xen_configdir() + /xmlrpc.crt)
# Whether to use ssl as default when relocating.
#(xend-relocation-ssl no)
@@ -219,7 +221,7 @@
# TightVNC/RealVNC/UltraVNC clients do not.
#
# To enable this create x509 certificates / keys in the
-# directory /etc/xen/vnc
+# directory auxbin.xen_configdir() + /vnc
#
# ca-cert.pem - The CA certificate
# server-cert.pem - The Server certificate signed by the CA
@@ -230,7 +232,7 @@
# The certificate dir can be pointed elsewhere..
#
-# (vnc-x509-cert-dir /etc/xen/vnc)
+# (vnc-x509-cert-dir auxbin.xen_configdir() + /vnc)
# The server can be told to request & validate an x509
# certificate from the client. Only clients with a cert
diff -r fe84a14aacd1 tools/examples/xeninfo.pl
--- a/tools/examples/xeninfo.pl Thu May 28 11:07:19 2009 +0100
+++ b/tools/examples/xeninfo.pl Thu May 28 18:15:43 2009 +0200
@@ -210,7 +210,7 @@ sub get_vm_type
# which is something like:
# 'PV_kernel': '/boot/vmlinuz-2.6.18-xen',
# or
- # 'PV_kernel': '/usr/lib/xen/boot/hvmloader',
+ # 'PV_kernel': 'hvmloader',
if ("$vm_pv_kernel_results->{'Value'}" =~ m/hvm/i)
{
$host_info{$host_name}{'vms'}{$vm_name_label}{'type'} = "HVM";
diff -r fe84a14aacd1 tools/examples/xmexample.hvm
--- a/tools/examples/xmexample.hvm Thu May 28 11:07:19 2009 +0100
+++ b/tools/examples/xmexample.hvm Thu May 28 18:15:43 2009 +0200
@@ -6,16 +6,9 @@
# you can set the parameters for the domain on the xm command line.
#============================================================================
-import os, re
-
-arch_libdir = 'lib'
-arch = os.uname()[4]
-if os.uname()[0] == 'Linux' and re.search('64', arch):
- arch_libdir = 'lib64'
-
#----------------------------------------------------------------------------
# Kernel image file.
-kernel = "/usr/lib/xen/boot/hvmloader"
+kernel = "hvmloader"
# The domain build function. HVM domain uses 'hvm'.
builder='hvm'
@@ -128,7 +121,7 @@ disk = [ 'file:/var/images/min-el3-i386.
#============================================================================
# Device Model to be used
-device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
+device_model = 'qemu-dm'
#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
@@ -154,7 +147,8 @@ vnc=1
#----------------------------------------------------------------------------
# address that should be listened on for the VNC server if vnc is set.
-# default is to use 'vnc-listen' setting from /etc/xen/xend-config.sxp
+# default is to use 'vnc-listen' setting from
+# auxbin.xen_configdir() + /xend-config.sxp
#vnclisten="127.0.0.1"
#----------------------------------------------------------------------------
diff -r fe84a14aacd1 tools/examples/xmexample.hvm-stubdom
--- a/tools/examples/xmexample.hvm-stubdom Thu May 28 11:07:19 2009 +0100
+++ b/tools/examples/xmexample.hvm-stubdom Thu May 28 18:15:43 2009 +0200
@@ -11,7 +11,7 @@
#----------------------------------------------------------------------------
# Kernel image file.
-kernel = "/usr/lib/xen/boot/hvmloader"
+kernel = "hvmloader"
# The domain build function. HVM domain uses 'hvm'.
builder='hvm'
@@ -118,7 +118,7 @@ disk = [ 'file:/var/images/min-el3-i386.
#
# STUBDOM: this is a script that creates the stub domain running the device
# model
-device_model = '/usr/lib/xen/bin/stubdom-dm'
+device_model = 'stubdom-dm'
#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
@@ -146,7 +146,8 @@ vnc=1
#----------------------------------------------------------------------------
# address that should be listened on for the VNC server if vnc is set.
-# default is to use 'vnc-listen' setting from /etc/xen/xend-config.sxp
+# default is to use 'vnc-listen' setting from
+# auxbin.xen_configdir() + /xend-config.sxp
#vnclisten="127.0.0.1"
#----------------------------------------------------------------------------
diff -r fe84a14aacd1 tools/examples/xmexample.pv-grub
--- a/tools/examples/xmexample.pv-grub Thu May 28 11:07:19 2009 +0100
+++ b/tools/examples/xmexample.pv-grub Thu May 28 18:15:43 2009 +0200
@@ -8,7 +8,7 @@
#----------------------------------------------------------------------------
# PV GRUB image file.
-kernel = "/usr/lib/xen/boot/pv-grub.gz"
+kernel = "pv-grub.gz"
# Optional provided menu.lst.
#ramdisk = "/boot/guests/menu.lst"
diff -r fe84a14aacd1 tools/examples/xmexample.vti
--- a/tools/examples/xmexample.vti Thu May 28 11:07:19 2009 +0100
+++ b/tools/examples/xmexample.vti Thu May 28 18:15:43 2009 +0200
@@ -12,7 +12,7 @@ arch = os.uname()[4]
#----------------------------------------------------------------------------
# Kernel image file.
-kernel = "/usr/lib/xen/boot/guest_firmware.bin"
+kernel = "guest_firmware.bin"
# The domain build function. VTI domain uses 'hvm'.
builder='hvm'
diff -r fe84a14aacd1 tools/firmware/Makefile
--- a/tools/firmware/Makefile Thu May 28 11:07:19 2009 +0100
+++ b/tools/firmware/Makefile Thu May 28 18:15:43 2009 +0200
@@ -3,7 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
# hvmloader is a 32-bit protected mode binary.
TARGET := hvmloader/hvmloader
-INST_DIR := $(DESTDIR)$(LIBDIR_x86_32)/xen/boot
+INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
SUBDIRS :=
SUBDIRS += rombios
diff -r fe84a14aacd1 tools/hotplug/Linux/block
--- a/tools/hotplug/Linux/block Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/block Thu May 28 18:15:43 2009 +0200
@@ -377,5 +377,5 @@ mount it read-write in a guest domain."
esac
# If we've reached here, $t is neither phy nor file, so fire a helper script.
-[ -x /etc/xen/scripts/block-"$t" ] && \
- /etc/xen/scripts/block-"$t" "$command" $node
+[ -x ${XEN_SCRIPT_DIR}/block-"$t" ] && \
+ ${XEN_SCRIPT_DIR}/block-"$t" "$command" $node
diff -r fe84a14aacd1 tools/hotplug/Linux/network-bridge
--- a/tools/hotplug/Linux/network-bridge Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/network-bridge Thu May 28 18:15:43 2009 +0200
@@ -2,7 +2,7 @@
#============================================================================
# Default Xen network start/stop script.
# Xend calls a network script when it starts.
-# The script name to use is defined in /etc/xen/xend-config.sxp
+# The script name to use is defined in ${XEN_CONFIG_DIR}/xend-config.sxp
# in the network-script field.
#
# This script creates a bridge (default ${netdev}), adds a device
diff -r fe84a14aacd1 tools/hotplug/Linux/network-nat
--- a/tools/hotplug/Linux/network-nat Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/network-nat Thu May 28 18:15:43 2009 +0200
@@ -2,7 +2,7 @@
#============================================================================
# Default Xen network start/stop script when using NAT.
# Xend calls a network script when it starts.
-# The script name to use is defined in /etc/xen/xend-config.sxp
+# The script name to use is defined in ${XEN_CONFIG_DIR}/xend-config.sxp
# in the network-script field.
#
# Usage:
@@ -18,6 +18,7 @@
#============================================================================
dir=$(dirname "$0")
+. "$dir/hotplugpath.sh"
. "$dir/xen-script-common.sh"
. "$dir/xen-network-common.sh"
diff -r fe84a14aacd1 tools/hotplug/Linux/network-route
--- a/tools/hotplug/Linux/network-route Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/network-route Thu May 28 18:15:43 2009 +0200
@@ -2,7 +2,7 @@
#============================================================================
# Default Xen network start/stop script.
# Xend calls a network script when it starts.
-# The script name to use is defined in /etc/xen/xend-config.sxp
+# The script name to use is defined in ${XEN_CONFIG_DIR}/xend-config.sxp
# in the network-script field.
#
# Usage:
@@ -17,6 +17,7 @@
#============================================================================
dir=$(dirname "$0")
+. "$dir/hotplugpath.sh"
. "$dir/xen-script-common.sh"
evalVariables "$@"
diff -r fe84a14aacd1 tools/hotplug/Linux/vif-bridge
--- a/tools/hotplug/Linux/vif-bridge Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/vif-bridge Thu May 28 18:15:43 2009 +0200
@@ -1,12 +1,12 @@
#!/bin/bash
#============================================================================
-# /etc/xen/vif-bridge
+# ${XEN_SCRIPT_DIR}/vif-bridge
#
# Script for configuring a vif in bridged mode.
# The hotplugging system will call this script if it is specified either in
# the device configuration given to Xend, or the default Xend configuration
-# in /etc/xen/xend-config.sxp. If the script is specified in neither of those
-# places, then this script is the default.
+# in ${XEN_CONFIG_DIR}/xend-config.sxp. If the script is specified in
+# neither of those places, then this script is the default.
#
# Usage:
# vif-bridge (add|remove|online|offline)
diff -r fe84a14aacd1 tools/hotplug/Linux/vif-nat
--- a/tools/hotplug/Linux/vif-nat Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/vif-nat Thu May 28 18:15:43 2009 +0200
@@ -1,12 +1,12 @@
#!/bin/bash
#============================================================================
-# /etc/xen/vif-nat
+# ${XEN_SCRIPT_DIR}/vif-nat
#
# Script for configuring a vif in routed-nat mode.
# The hotplugging system will call this script if it is specified either in
# the device configuration given to Xend, or the default Xend configuration
-# in /etc/xen/xend-config.sxp. If the script is specified in neither of those
-# places, then vif-bridge is the default.
+# in ${XEN_CONFIG_DIR}/xend-config.sxp. If the script is specified in
+# neither of those places, then vif-bridge is the default.
#
# Usage:
# vif-nat (add|remove|online|offline)
diff -r fe84a14aacd1 tools/hotplug/Linux/vif-route
--- a/tools/hotplug/Linux/vif-route Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/vif-route Thu May 28 18:15:43 2009 +0200
@@ -1,12 +1,12 @@
#!/bin/bash
#============================================================================
-# /etc/xen/vif-route
+# ${XEN_SCRIPT_DIR}/vif-route
#
# Script for configuring a vif in routed mode.
# The hotplugging system will call this script if it is specified either in
# the device configuration given to Xend, or the default Xend configuration
-# in /etc/xen/xend-config.sxp. If the script is specified in neither of those
-# places, then vif-bridge is the default.
+# in ${XEN_CONFIG_DIR}/xend-config.sxp. If the script is specified in
+# neither of those places, then vif-bridge is the default.
#
# Usage:
# vif-route (add|remove|online|offline)
diff -r fe84a14aacd1 tools/hotplug/Linux/xen-hotplug-cleanup
--- a/tools/hotplug/Linux/xen-hotplug-cleanup Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/xen-hotplug-cleanup Thu May 28 18:15:43 2009 +0200
@@ -3,7 +3,7 @@
dir=$(dirname "$0")
. "$dir/xen-hotplug-common.sh"
-# Claim the lock protecting /etc/xen/scripts/block. This stops a race whereby
+# Claim the lock protecting ${XEN_SCRIPT_DIR}/block. This stops a race whereby
# paths in the store would disappear underneath that script as it attempted to
# read from the store checking for device sharing.
# Any other scripts that do similar things will have to have their lock
diff -r fe84a14aacd1 tools/hotplug/Linux/xen-hotplug-common.sh
--- a/tools/hotplug/Linux/xen-hotplug-common.sh Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/Linux/xen-hotplug-common.sh Thu May 28 18:15:43 2009 +0200
@@ -17,13 +17,14 @@
dir=$(dirname "$0")
+. "$dir/hotplugpath.sh"
. "$dir/logging.sh"
. "$dir/xen-script-common.sh"
. "$dir/locking.sh"
exec 2>>/var/log/xen/xen-hotplug.log
-export PATH="/sbin:/bin:/usr/bin:/usr/sbin:$PATH"
+export PATH="${BINDIR}:${SBINDIR}:${LIBEXEC}:${PRIVATE_BINDIR}:/sbin:/bin:/usr/bin:/usr/sbin:$PATH"
export LANG="POSIX"
unset $(set | grep ^LC_ | cut -d= -f1)
diff -r fe84a14aacd1 tools/hotplug/NetBSD/block-nbsd
--- a/tools/hotplug/NetBSD/block-nbsd Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/NetBSD/block-nbsd Thu May 28 18:15:43 2009 +0200
@@ -4,7 +4,10 @@
# Called by xenbackendd
# Usage: block xsdir_backend_path state
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
+DIR=$(dirname "$0")
+. "${DIR}/hotplugpath.sh"
+
+PATH=${BINDIR}:${SBINDIR}:${LIBEXEC}:${PRIVATE_BINDIR}:/bin:/usr/bin:/sbin:/usr/sbin
export PATH
error() {
diff -r fe84a14aacd1 tools/hotplug/NetBSD/vif-bridge-nbsd
--- a/tools/hotplug/NetBSD/vif-bridge-nbsd Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/NetBSD/vif-bridge-nbsd Thu May 28 18:15:43 2009 +0200
@@ -4,7 +4,10 @@
# Called by xenbackendd
# Usage: vif-bridge xsdir_backend_path state
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
+DIR=$(dirname "$0")
+. "${DIR}/hotplugpath.sh"
+
+PATH=${BINDIR}:${SBINDIR}:${LIBEXEC}:${PRIVATE_BINDIR}:/bin:/usr/bin:/sbin:/usr/sbin
export PATH
xpath=$1
diff -r fe84a14aacd1 tools/hotplug/NetBSD/vif-ip-nbsd
--- a/tools/hotplug/NetBSD/vif-ip-nbsd Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/NetBSD/vif-ip-nbsd Thu May 28 18:15:43 2009 +0200
@@ -4,7 +4,10 @@
# Called by xenbackendd
# Usage: vif-ip xsdir_backend_path state
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
+DIR=$(dirname "$0")
+. "${DIR}/hotplugpath.sh"
+
+PATH=${BINDIR}:${SBINDIR}:${LIBEXEC}:${PRIVATE_BINDIR}:/bin:/usr/bin:/sbin:/usr/sbin
export PATH
xpath=$1
diff -r fe84a14aacd1 tools/hotplug/common/Makefile
--- a/tools/hotplug/common/Makefile Thu May 28 11:07:19 2009 +0100
+++ b/tools/hotplug/common/Makefile Thu May 28 18:15:43 2009 +0200
@@ -1,17 +1,22 @@
-XEN_ROOT = ../../../
+XEN_ROOT = ../../..
include $(XEN_ROOT)/tools/Rules.mk
+HOTPLUGPATH="hotplugpath.sh"
+
# OS-independent hotplug scripts go in this directory
-# Xen script dir and scripts to go there.
-XEN_SCRIPTS =
+# Xen scripts to go there.
+XEN_SCRIPTS = $(HOTPLUGPATH)
XEN_SCRIPT_DATA =
+genpath-target = $(call buildmakevars2file,$(HOTPLUGPATH))
+$(eval $(genpath-target))
+
.PHONY: all
-all:
+all: build
.PHONY: build
-build:
+build: genpath
.PHONY: install
install: all install-scripts
@@ -31,3 +36,4 @@ install-scripts:
.PHONY: clean
clean:
+ rm -f $(HOTPLUGPATH)
diff -r fe84a14aacd1 tools/python/Makefile
--- a/tools/python/Makefile Thu May 28 11:07:19 2009 +0100
+++ b/tools/python/Makefile Thu May 28 18:15:43 2009 +0200
@@ -13,19 +13,12 @@ POTFILE := $(PODIR)/xen-xm.pot
I18NSRCFILES = $(shell find xen/xm/ -name '*.py')
CATALOGS = $(patsubst %,xen/xm/messages/%.mo,$(LINGUAS))
NLSDIR = $(SHAREDIR)/locale
-xenpath = "xen/util/path.py"
-
-.PHONY: build buildpy genpath
-genpath:
- rm -f ${xenpath}
- echo "SBINDIR=\"$(SBINDIR)\"" >> ${xenpath}
- echo "BINDIR=\"$(BINDIR)\"" >> ${xenpath}
- echo "LIBEXEC=\"$(LIBEXEC)\"" >> ${xenpath}
- echo "LIBDIR=\"$(LIBDIR)\"" >> ${xenpath}
- echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> ${xenpath}
- echo "XEN_CONFIG_DIR=\"$(XEN_CONFIG_DIR)\"" >> ${xenpath}
- echo "XEN_SCRIPT_DIR=\"$(XEN_SCRIPT_DIR)\"" >> ${xenpath}
+XENPATH = "xen/util/path.py"
+genpath-target = $(call buildmakevars2file,$(XENPATH))
+$(eval $(genpath-target))
+
+.PHONY: build buildpy
buildpy: genpath
CC="$(CC)" CFLAGS="$(CFLAGS)" $(PYTHON) setup.py build
@@ -86,10 +79,11 @@ install-messages: all
.PHONY: test
test:
- export LD_LIBRARY_PATH=$$(readlink -f ../libxc):$$(readlink -f ../xenstore); python test.py -b -u
+ export LD_LIBRARY_PATH=$$(readlink -f ../libxc):$$(readlink -f ../xenstore); $(PYTHON) test.py -b -u
.PHONY: clean
clean:
+ rm -f $(XENPATH)
rm -rf build *.pyc *.pyo *.o *.a *~ $(CATALOGS) xen/util/auxbin.pyc
rm -f $(DEPS)
diff -r fe84a14aacd1 tools/python/xen/util/auxbin.py
--- a/tools/python/xen/util/auxbin.py Thu May 28 11:07:19 2009 +0100
+++ b/tools/python/xen/util/auxbin.py Thu May 28 18:15:43 2009 +0200
@@ -20,7 +20,7 @@ import os
import os.path
import sys
from xen.util.path import SBINDIR,BINDIR,LIBEXEC,LIBDIR,PRIVATE_BINDIR
-from xen.util.path import XEN_CONFIG_DIR, XEN_SCRIPT_DIR
+from xen.util.path import XENFIRMWAREDIR, XEN_CONFIG_DIR, XEN_SCRIPT_DIR
def execute(exe, args = None):
exepath = pathTo(exe)
@@ -33,7 +33,7 @@ def execute(exe, args = None):
print exepath, ": ", exn
sys.exit(1)
-SEARCHDIRS = [ BINDIR, SBINDIR, LIBEXEC, PRIVATE_BINDIR ]
+SEARCHDIRS = [ BINDIR, SBINDIR, LIBEXEC, PRIVATE_BINDIR, XENFIRMWAREDIR ]
def pathTo(exebin):
for dir in SEARCHDIRS:
exe = os.path.join(dir, exebin)
diff -r fe84a14aacd1 tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py Thu May 28 11:07:19 2009 +0100
+++ b/tools/python/xen/xend/XendConfig.py Thu May 28 18:15:43 2009 +0200
@@ -16,6 +16,7 @@
#============================================================================
import logging
+import os
import re
import time
import types
@@ -39,7 +40,7 @@ from xen.xend.server.netif import random
from xen.util.blkif import blkdev_name_to_number, blkdev_uname_to_file
from xen.util.pci import assigned_or_requested_vslot
from xen.util import xsconstants
-import xen.util.auxbin
+from xen.util import auxbin
log = logging.getLogger("xend.XendConfig")
log.setLevel(logging.WARN)
@@ -460,7 +461,11 @@ class XendConfig(dict):
if self.is_hvm() or self.has_rfb():
if 'device_model' not in self['platform']:
- self['platform']['device_model'] = xen.util.auxbin.pathTo("qemu-dm")
+ self['platform']['device_model'] = auxbin.pathTo("qemu-dm")
+ # device_model may be set to 'qemu-dm' or 'stubdom-dm' w/o a path
+ if not os.path.exists(self['platform']['device_model']):
+ self['platform']['device_model'] = \
+ auxbin.pathTo(self['platform']['device_model'])
if self.is_hvm():
if 'timer_mode' not in self['platform']:
@@ -478,11 +483,21 @@ class XendConfig(dict):
if 'loader' not in self['platform']:
# Old configs may have hvmloader set as PV_kernel param
if self.has_key('PV_kernel') and self['PV_kernel'] != '':
- self['platform']['loader'] = self['PV_kernel']
- self['PV_kernel'] = ''
+ # XXX basename works around a bug somewhere in the guest
+ # config file parser which prepends cwd to the kernel
+ # w/o checking if the result is valid if no absolute
+ # path is specified
+ if os.path.basename(self['PV_kernel']) == 'hvmloader':
+ self['PV_kernel'] = auxbin.pathTo('hvmloader')
+ self['platform']['loader'] = self['PV_kernel']
+ else:
+ self['platform']['loader'] = self['PV_kernel']
+ self['PV_kernel'] = ''
else:
- self['platform']['loader'] = "/usr/lib/xen/boot/hvmloader"
+ self['platform']['loader'] = auxbin.pathTo("hvmloader")
log.debug("Loader is %s" % str(self['platform']['loader']))
+ if not os.path.exists(self['platform']['loader']):
+ raise VmError("kernel '%s' not found" % str(self['platform']['loader']))
# Compatibility hack, can go away soon.
if 'soundhw' not in self['platform'] and \
@@ -1608,7 +1623,7 @@ class XendConfig(dict):
# is invoked for pvfb services
if 'device_model' not in target['platform']:
target['platform']['device_model'] = \
- xen.util.auxbin.pathTo("qemu-dm")
+ auxbin.pathTo("qemu-dm")
# Finally, if we are a pvfb, we need to make a vkbd
# as well that is not really exposed to Xen API
@@ -1734,7 +1749,7 @@ class XendConfig(dict):
try:
pci_states.append(pci_state[1])
except IndexError:
- raise XendError("Error reading state while parsing pci sxp")
+ raise VmError("Error reading state while parsing pci sxp")
dev_config['states'] = pci_states
return dev_config
diff -r fe84a14aacd1 tools/python/xen/xm/tests/test_create.py
--- a/tools/python/xen/xm/tests/test_create.py Thu May 28 11:07:19 2009 +0100
+++ b/tools/python/xen/xm/tests/test_create.py Thu May 28 18:15:43 2009 +0200
@@ -153,14 +153,14 @@ cpu_weight = 0.75
try:
os.write(fd,
'''
-kernel = "/usr/lib/xen/boot/hvmloader"
+kernel = "hvmloader"
builder='hvm'
memory = 128
name = "ExampleHVMDomain"
vcpus=1
vif = [ 'type=ioemu, bridge=xenbr0' ]
disk = [ 'file:/var/images/min-el3-i386.img,ioemu:hda,w' ]
-device_model = '/usr/lib/xen/bin/qemu-dm'
+device_model = 'qemu-dm'
sdl=0
vnc=1
vncviewer=1
@@ -170,7 +170,7 @@ ne2000=0
os.close(fd)
self.t('-f %s display=fakedisplay' % fname,
- { 'kernel' : '/usr/lib/xen/boot/hvmloader',
+ { 'kernel' : 'hvmloader',
'builder' : 'hvm',
'memory' : 128,
'name' : 'ExampleHVMDomain',
@@ -179,7 +179,7 @@ ne2000=0
'vif' : ['type=ioemu, bridge=xenbr0'],
'disk' : [['file:/var/images/min-el3-i386.img',
'ioemu:hda', 'w', None]],
- 'device_model': '/usr/lib/xen/bin/qemu-dm',
+ 'device_model': 'qemu-dm',
'extra' : ('VNC_VIEWER=%s:%d ' %
(xen.xm.create.get_host_addr(),
diff -r fe84a14aacd1 tools/xm-test/lib/XmTestLib/arch.py
--- a/tools/xm-test/lib/XmTestLib/arch.py Thu May 28 11:07:19 2009 +0100
+++ b/tools/xm-test/lib/XmTestLib/arch.py Thu May 28 18:15:43 2009 +0200
@@ -77,7 +77,7 @@ ia_HVMDefaults = {"memory" :
"acpi" : 0,
"disk" : ["file:%s/disk.img,ioemu:%s,w!" %
(getRdPath(), BLOCK_ROOT_DEV)],
- "kernel" : "/usr/lib/xen/boot/hvmloader",
+ "kernel" : "hvmloader",
"builder" : "hvm",
"sdl" : 0,
"vnc" : 0,
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] tools/stubdom: get rid of hardcoded pathes
2009-05-28 16:42 [PATCH] tools/stubdom: get rid of hardcoded pathes Christoph Egger
@ 2009-05-28 18:35 ` Ian Jackson
2009-05-28 19:49 ` Xen 3.4 / cpufreq=dom0-kernel / ondemand govenor doesn't step Carsten Schiers
2009-06-02 9:30 ` [PATCH] tools/stubdom: get rid of hardcoded pathes Christoph Egger
0 siblings, 2 replies; 6+ messages in thread
From: Ian Jackson @ 2009-05-28 18:35 UTC (permalink / raw)
To: Christoph Egger; +Cc: xen-devel
Christoph Egger writes ("[Xen-devel] [PATCH] tools/stubdom: get rid of hardcoded pathes"):
> Attached patch makes xen-tools and stubdom-dm going independent
> >from hardcoded pathes. It is no possible to install into /usr/local or any
> other non-default directory and use it out-of-the box.
I think this is a laudable goal but I'm not really convinced by the
way you've done it. Amongst my comments:
Have you considered an arrangement which substitutes the correct paths
into the relevant scripts at build time, rather than run time ?
Run-time searching can have problems as it means that you can
sometimes find the wrong copy of something if there are multiple
different installs.
> +buildmakevars2file = $(eval $(call buildmakevars2file-closure,$(1)))
> +define buildmakevars2file-closure
> + .PHONY: genpath
> + genpath:
> + rm -f $(1); \
> + echo "SBINDIR=\"$(SBINDIR)\"" >> $(1); \
> + echo "BINDIR=\"$(BINDIR)\"" >> $(1); \
This is really very ugly. Surely it would be better to have the
xen-setup[-stumbom] scripts fish things out of the build system,
rather than plumbing everything through the environment like this.
The only thing which _needs_ to be plumbed through from the
commandline or en environment at install-time is DESTDIR or its
equivalent. We can insist on the rest being set in Config.mk or its
ilk.
The paths that stubdom looks at should not vary according to the host
platform. They should be fixed, as they need to be virtualised
anyway.
> --- a/tools/examples/xend-config.sxp Thu May 28 11:07:19 2009 +0100
> +++ b/tools/examples/xend-config.sxp Thu May 28 18:15:43 2009 +0200
> @@ -1,5 +1,7 @@
> # -*- sh -*-
>
> +from xen.util import auxbin
> +
*boggle*
I stopped reading the patch at that point I'm afraid.
Ian.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Xen 3.4 / cpufreq=dom0-kernel / ondemand govenor doesn't step
2009-05-28 18:35 ` Ian Jackson
@ 2009-05-28 19:49 ` Carsten Schiers
2009-06-01 3:52 ` Liu, Jinsong
2009-06-02 9:30 ` [PATCH] tools/stubdom: get rid of hardcoded pathes Christoph Egger
1 sibling, 1 reply; 6+ messages in thread
From: Carsten Schiers @ 2009-05-28 19:49 UTC (permalink / raw)
To: xen-devel; +Cc: jinsong.liu
I have just upgraded to Xen 3.4 and its kernel. I use
cpufreq=dom0-kernel. I set
the governor to ondemand. In the same setting as Xen 3.3.1 it now
doesn't step
upwards, even when I create heavy load. Transistion table demonstrates
that:
data://sys/devices/system/cpu/cpu0/cpufreq/stats# cat trans_table
From : To
: 2100000 2000000 1800000 1000000
2100000: 0 0 0 2
2000000: 0 0 0 0
1800000: 0 0 0 0
1000000: 1 0 0 0
after an uptime of 30 minutes. The steps shown here came from a manual
setting
whilst I set the governor back to userspace. Any idea how to check
further?
Does http://xenbits.xensource.com/xen-unstable.hg?rev/674e4d43955f make
any
difference in my case? As said, I used the tarballs.
And by the way: what is the actual xen-3.4 testing, I am a bit lost on
the website.
BR,
Carsten.
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: Xen 3.4 / cpufreq=dom0-kernel / ondemand govenor doesn't step
2009-05-28 19:49 ` Xen 3.4 / cpufreq=dom0-kernel / ondemand govenor doesn't step Carsten Schiers
@ 2009-06-01 3:52 ` Liu, Jinsong
2009-06-01 7:47 ` Keir Fraser
0 siblings, 1 reply; 6+ messages in thread
From: Liu, Jinsong @ 2009-06-01 3:52 UTC (permalink / raw)
To: Carsten Schiers, xen-devel
Carsten Schiers wrote:
> I have just upgraded to Xen 3.4 and its kernel. I use
> cpufreq=dom0-kernel. I set
> the governor to ondemand. In the same setting as Xen 3.3.1 it now
> doesn't step
> upwards, even when I create heavy load. Transistion table demonstrates
> that:
>
> data://sys/devices/system/cpu/cpu0/cpufreq/stats# cat trans_table
> From : To
> : 2100000 2000000 1800000 1000000
> 2100000: 0 0 0 2
> 2000000: 0 0 0 0
> 1800000: 0 0 0 0
> 1000000: 1 0 0 0
>
> after an uptime of 30 minutes. The steps shown here came from a manual
> setting
> whilst I set the governor back to userspace. Any idea how to check
> further?
>
> Does http://xenbits.xensource.com/xen-unstable.hg?rev/674e4d43955f
> make any
> difference in my case? As said, I used the tarballs.
>
> And by the way: what is the actual xen-3.4 testing, I am a bit lost on
> the website.
>
> BR,
> Carsten.
Carsten Schiers,
Actually xen cpufreq default option is 'cpufreq=xen', means xen hypervisor will take charge of cpufreq logic, you can try this option.
'cpufreq=dom0-kernel' means dom0 will take charge of cpufreq logic, but this part was not maintained by me.
http://xenbits.xensource.com/xen-unstable.hg?rev/674e4d43955f is not related to 'cpufreq=dom0-kenrel' option.
If you use 'cpufreq=xen', you can set cpufreq para (governor, speed, sampling-rate, threshold, etc.) by grub cmdline at booting time, or by xenpm tools at runtime.
currently xenpm tools implement all para same as you can get&set from native linux /sys/devices/system/cpu/cpux/cpufreq interface.
Thanks,
Jinsong
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RE: Xen 3.4 / cpufreq=dom0-kernel / ondemand govenor doesn't step
2009-06-01 3:52 ` Liu, Jinsong
@ 2009-06-01 7:47 ` Keir Fraser
0 siblings, 0 replies; 6+ messages in thread
From: Keir Fraser @ 2009-06-01 7:47 UTC (permalink / raw)
To: Liu, Jinsong, Carsten Schiers, xen-devel
On 01/06/2009 04:52, "Liu, Jinsong" <jinsong.liu@intel.com> wrote:
> Actually xen cpufreq default option is 'cpufreq=xen', means xen hypervisor
> will take charge of cpufreq logic, you can try this option.
> 'cpufreq=dom0-kernel' means dom0 will take charge of cpufreq logic, but this
> part was not maintained by me.
>
> http://xenbits.xensource.com/xen-unstable.hg?rev/674e4d43955f is not related
> to 'cpufreq=dom0-kenrel' option.
>
> If you use 'cpufreq=xen', you can set cpufreq para (governor, speed,
> sampling-rate, threshold, etc.) by grub cmdline at booting time, or by xenpm
> tools at runtime.
> currently xenpm tools implement all para same as you can get&set from native
> linux /sys/devices/system/cpu/cpux/cpufreq interface.
...and if you want to pursue cpufreq=dom0-kernel further, Mark Langsdorf is
the person to contact. You can find his email address in the changelogs and
in the list archives, no doubt.
-- Keir
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] tools/stubdom: get rid of hardcoded pathes
2009-05-28 18:35 ` Ian Jackson
2009-05-28 19:49 ` Xen 3.4 / cpufreq=dom0-kernel / ondemand govenor doesn't step Carsten Schiers
@ 2009-06-02 9:30 ` Christoph Egger
1 sibling, 0 replies; 6+ messages in thread
From: Christoph Egger @ 2009-06-02 9:30 UTC (permalink / raw)
To: Ian Jackson; +Cc: xen-devel
On Thursday 28 May 2009 20:35:17 Ian Jackson wrote:
> Christoph Egger writes ("[Xen-devel] [PATCH] tools/stubdom: get rid of
hardcoded pathes"):
> > Attached patch makes xen-tools and stubdom-dm going independent
> >
> > >from hardcoded pathes. It is no possible to install into /usr/local or
> > > any
> >
> > other non-default directory and use it out-of-the box.
>
> I think this is a laudable goal but I'm not really convinced by the
> way you've done it. Amongst my comments:
>
>
> Have you considered an arrangement which substitutes the correct paths
> into the relevant scripts at build time, rather than run time ?
Yes. The build system is doing this.
> Run-time searching can have problems as it means that you can
> sometimes find the wrong copy of something if there are multiple
> different installs.
I talked with the python people on irc.freenode.net what is the python
way to substitute certain patterns with pathes defined by the build system.
The answer: Python has no pre-processor like C. Therefore, have the build
system to write the pathes into a file and use them. That is what I do.
Neither shell scripts have pre-precessors. So I have to do the same for
the hotplug scripts.
> > +buildmakevars2file = $(eval $(call buildmakevars2file-closure,$(1)))
> > +define buildmakevars2file-closure
> > + .PHONY: genpath
> > + genpath:
> > + rm -f $(1); \
> > + echo "SBINDIR=\"$(SBINDIR)\"" >> $(1); \
> > + echo "BINDIR=\"$(BINDIR)\"" >> $(1); \
>
> This is really very ugly. Surely it would be better to have the
> xen-setup[-stumbom] scripts fish things out of the build system,
> rather than plumbing everything through the environment like this.
To avoid maintaining three copies (tools/python/Makefile, stubdom/Makefile
and tools/hotplug/common/Makefile) each with its own tweaks and bugs, I moved
the code from tools/python/Makfile into a GNU make macro.
If you know a better way, tell me.
> The only thing which _needs_ to be plumbed through from the
> commandline or en environment at install-time is DESTDIR or its
> equivalent. We can insist on the rest being set in Config.mk or its
> ilk.
No, that's wrong. The way you suggest break the hotplug scripts
when you install into a non-default directory.
>
> The paths that stubdom looks at should not vary according to the host
> platform. They should be fixed, as they need to be virtualised
> anyway.
>
> > --- a/tools/examples/xend-config.sxp Thu May 28 11:07:19 2009 +0100
> > +++ b/tools/examples/xend-config.sxp Thu May 28 18:15:43 2009 +0200
> > @@ -1,5 +1,7 @@
> > # -*- sh -*-
> >
> > +from xen.util import auxbin
> > +
>
> *boggle*
>
> I stopped reading the patch at that point I'm afraid.
That's necessary to entangle xend from assuming the config files
are in /etc. W/o this, you can't really have a working installation
in a non-default directory.
Christoph
--
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Karl-Hammerschmidt-Str. 34, 85609 Dornach b. Muenchen
Geschaeftsfuehrer: Thomas M. McCoy, Giuliano Meroni
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-06-02 9:30 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-28 16:42 [PATCH] tools/stubdom: get rid of hardcoded pathes Christoph Egger
2009-05-28 18:35 ` Ian Jackson
2009-05-28 19:49 ` Xen 3.4 / cpufreq=dom0-kernel / ondemand govenor doesn't step Carsten Schiers
2009-06-01 3:52 ` Liu, Jinsong
2009-06-01 7:47 ` Keir Fraser
2009-06-02 9:30 ` [PATCH] tools/stubdom: get rid of hardcoded pathes Christoph Egger
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.