From: Christoph Egger <Christoph.Egger@amd.com>
To: Keir Fraser <keir.fraser@eu.citrix.com>
Cc: Sander Eikelenboom <linux@eikelenboom.it>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: is the xen toolstack backwards compatible ?
Date: Wed, 9 Dec 2009 11:06:58 +0100 [thread overview]
Message-ID: <200912091106.58517.Christoph.Egger@amd.com> (raw)
In-Reply-To: <C74500A6.3EE2%keir.fraser@eu.citrix.com>
[-- Attachment #1: Type: text/plain, Size: 1915 bytes --]
On Wednesday 09 December 2009 08:22:14 Keir Fraser wrote:
> On 09/12/2009 00:23, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
> > So if it was no coincidence but desirable, at the moment xend and xentop
> > from unstable don't seem to work on 3.4.2 hypervisor anymore.
>
> There's no compatibility guarantee across different major Xen releases. But
> Christoph Egger did a lot of work to allow multiple toolstacks to be
> installed side by side. I think you should just need to specify a
> PREFIX=/path/to value when building the tools. Is that right, Christoph?
Yes, this is right.
*Before* you start xend, you need to set two environment variables
LD_LIBRARY_PATH and PYTHONPATH.
Here is an example for PREFIX="/usr/local" and compiled with python 2.5:
export LD_LIBRARY_PATH="/usr/local/lib"
export PYTHONPATH="/usr/local/lib/python2.5/site-packages"
If these are not set correct, python tells you it can't find its modules or
the dynamic linker tells you it can't find the shared libs built from
tools/libxc.
You should use the same python version you compiled with.
If you are on a machine where 'python' does not exist as a symbolic link to
the installed python version (like me on NetBSD) you need the attached patch
or all python programs installed with "INSTALL_PYTHON_PROG"
end up with '#!' in the first line instead of '#!/path/to/python2.5'
which is stupid.
I already submitted attached patch earlier but Ian Jackson objected it because
he wants a way to have tools working with a different python version than it
has been compiled with. This sounds obscure to me when looking at the path
python modules get installed to.
Keir: Please take attached patch. This is better than the current situation
regardless Ian likes it or not. In the latter case taking the patch should
motivate him to come up with a patch finally. :)
Again:
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
[-- Attachment #2: xen_python.diff --]
[-- Type: text/x-diff, Size: 3058 bytes --]
diff -r bc3aca17cb88 tools/misc/Makefile
--- a/tools/misc/Makefile Thu Jul 23 09:01:30 2009 +0100
+++ b/tools/misc/Makefile Thu Jul 23 15:45:48 2009 +0200
@@ -25,8 +25,7 @@ INSTALL_BIN := $(INSTALL_BIN-y)
INSTALL_SBIN-y := xm xen-bugtool xen-python-path xend xenperf xsview xenpm xen-tmem-list-parse gtraceview gtracestat
INSTALL_SBIN := $(INSTALL_SBIN-y)
-DEFAULT_PYTHON_PATH := $(shell $(XEN_ROOT)/tools/python/get-path)
-PYTHON_PATH ?= $(DEFAULT_PYTHON_PATH)
+PYTHON_PATH := $(shell which $(PYTHON))
INSTALL_PYTHON_PROG = $(XEN_ROOT)/tools/python/install-wrap \
"$(PYTHON_PATH)" $(INSTALL_PROG)
diff -r bc3aca17cb88 tools/python/get-path
--- a/tools/python/get-path Thu Jul 23 09:01:30 2009 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#! /usr/bin/env bash
-set -e
-
-check () {
- set +e
- p=`type -p python$v`
- r=$?
- set -e
- if [ $r = 0 ]; then
- echo >&2 "${0##*/}: will use #!$p for python programs"
- printf "%s\n" "$p"
- exit 0
- fi
-}
-
-v="$(python -V 2>&1)"
-v="${v#* }"
-check
-v="${v%.*}"
-check
-echo >&2 'python version not determined, will use env to find python at runtime'
-printf "/usr/bin/env python\n"
diff -r bc3aca17cb88 tools/python/install-wrap
--- a/tools/python/install-wrap Thu Jul 23 09:01:30 2009 +0100
+++ b/tools/python/install-wrap Thu Jul 23 15:45:48 2009 +0200
@@ -1,44 +1,60 @@
-#! /usr/bin/env bash
+#!/bin/sh
# usage:
# .../install-wrap $(PYTHON_PATH) install <options-to-install> <src>... <dest>
# where
# PYTHON_PATH is what to put after #! and may be `/usr/bin/env python'
#
-# Used via $(INSTALL_PYTHON_PROG) in Rules.mk; PYTHON_PATH comes from
-# .../get-path alongside this script
+# Used via $(INSTALL_PYTHON_PROG) in Rules.mk; PYTHON_PATH comes from $(PYTHON)
set -e
-if [ $# -lt 2 ]; then echo >&2 "${0##*/}: too few arguments"; exit 1; fi
-pythonpath="$1"; shift
+if test $# -lt 2; then
+ echo >&2 "${0##*/}: too few arguments"
+ exit 1
+fi
-install=("$1"); shift
-srcs=()
+pythonpath="$1"
+shift
+
+install="$1"
+shift
+srcs=""
while [ $# != 0 ]; do
case "$1" in
- -|--) install=("${install[@]}" "$1"); shift; break ;;
- -*) install=("${install[@]}" "$1"); shift ;;
- *) break ;;
+ -|--) install=`echo "${install} $1"`
+ shift
+ break
+ ;;
+ -*) install=`echo "${install} $1"`
+ shift
+ ;;
+ *) break
+ ;;
esac
done
-while [ $# -gt 1 ]; do
- srcs=("${srcs[@]}" "$1"); shift
+
+while test $# -gt 1; do
+ srcs=`echo "${srcs} $1"`
+ shift
done
-dest="$1"; shift
+
+dest="$1"
+shift
destf="$dest"
-for srcf in "${srcs[@]}"; do
+for srcf in ${srcs}; do
if test -d "$dest"; then
- destf="$dest/${srcf%%*/}";
+ destf="$dest/${srcf%%*/}"
fi
org="$(sed -n '2q; /^#! *\/usr\/bin\/env python *$/p' $srcf)"
- if [ "x$org" = x ]; then
- "${install[@]}" "$srcf" "$destf"
+ if test "x$org" = x; then
+ eval "${install} $srcf $destf"
continue
fi
tmpf="$destf.tmp"
- "${install[@]}" "$srcf" "$tmpf"
+ eval "${install} $srcf $tmpf"
printf >"$tmpf" "#!%s\n" "$pythonpath"
sed -e 1d "$srcf" >>"$tmpf"
mv -f "$tmpf" "$destf"
done
+exit 0
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next prev parent reply other threads:[~2009-12-09 10:06 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-09 0:23 is the xen toolstack backwards compatible ? Sander Eikelenboom
2009-12-09 1:00 ` Dan Magenheimer
2009-12-09 6:44 ` Zhang, Xiantao
2009-12-09 7:22 ` Keir Fraser
2009-12-09 10:06 ` Christoph Egger [this message]
2009-12-09 11:25 ` Sander Eikelenboom
2009-12-09 11:42 ` Christoph Egger
2009-12-09 15:14 ` Dan Magenheimer
2009-12-09 16:56 ` Christoph Egger
2009-12-09 17:08 ` Dan Magenheimer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200912091106.58517.Christoph.Egger@amd.com \
--to=christoph.egger@amd.com \
--cc=keir.fraser@eu.citrix.com \
--cc=linux@eikelenboom.it \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.