mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Previously, by default we would install our python modules into /usr/lib/python/xen, for example /usr/lib/python/xen/__init__.py. Upstream python's standard install location (a) includes the Python version number and (b) puts things in site-packages by default. Our best conjecture for the reason for this was an attempt to make the installs portable between different python versions. However, that doesn't work because compiled python modules (.pyc), and C python extensions corresponding to one version of python, are not compatible across different versions of python. This is why upstream include the version number. site-packages is the standard location for locally-installed packages and is automatically included on the python search path. In this change, we abandon our own unusual python path setup: * Invoke setup.py in an entirely standard manner. We pass PREFIX and DESTDIR using the appropriate options provided by setup.py for those purposes (adding them to setup.py calls which were previously lacking them). * Since the installation locations are now on the standard python path, we no longer need to add anything to the path in any of our python utilities. Therefore remove all that code from every python script. (Many of these scripts unconditionally added /usr/lib/python and /usr/lib64/python which is wrong even in the old world.) * There is no longer any special `Xen python path'. xen-python-path is no longer needed. It is no longer called by anything in our tree. However since out-of-tree callers may still invoke it, we retain it. It now prints a fixed string referring to a directory which does not to exist; callers (who use it to augment their python path) will thus add a nonexistent directory to their python path which is harmless. * Remove various workarounds including use of setup.py --home (which is intended for something completely different). * Remove tests for the XEN_PYTHON_NATIVE_INSTALL build-time environment variable. The new behaviour is the behaviour which we should have had if this variable had been set. That is, it is now as if this variable was always set but also bugs in the resulting install have been fixed. This should be a proper fix for the bug addressed by c/s 19515. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
#!/usr/bin/env python
|
|
# -*- mode: python; -*-
|
|
import sys
|
|
import traceback
|
|
import getopt
|
|
|
|
from xen.util.security import ACMError, err, get_ssid
|
|
|
|
# getopt.gnu_getopt is better, but only exists in Python 2.3+. Use
|
|
# getopt.getopt if gnu_getopt is not available. This will mean that options
|
|
# may only be specified before positional arguments.
|
|
if not hasattr(getopt, 'gnu_getopt'):
|
|
getopt.gnu_getopt = getopt.getopt
|
|
|
|
def usage():
|
|
print "Usage: acm_getlabel -i domainid"
|
|
print " Test program illustrating the retrieval of"
|
|
print " label information (for domains) from Xen."
|
|
print " Argument is one paramter describing the domain"
|
|
print " for which the label is retrieved."
|
|
print "\t -i domain_id or --domid=domain_id"
|
|
print " Return value:"
|
|
print "\t none -- Error (e.g., unknown ssidref, label, or domain id)"
|
|
print "\t (labelname, policyname, ssidref)"
|
|
err("Usage")
|
|
|
|
try:
|
|
domid = None
|
|
(options, params) = getopt.gnu_getopt(sys.argv[1:], ':i:', ['domid='])
|
|
for (k, v) in options:
|
|
if k in ['-i', '--domid']:
|
|
if not domid:
|
|
domid = v
|
|
else:
|
|
usage()
|
|
if not domid:
|
|
usage()
|
|
|
|
print get_ssid(domid)
|
|
|
|
except ACMError:
|
|
pass
|
|
except:
|
|
traceback.print_exc(limit=1)
|