On Tue, Nov 26, 2013 at 10:14:36AM +0000, Daniel P. Berrange wrote:
On Tue, Nov 26, 2013 at 10:58:25AM +0100, Martin Kletzander wrote:
> Adding a support for LIBVIRT_API_PATH evironment variable, which can
> control where the script should look for the 'libvirt-api.xml' file.
> This allows building libvirt-python against different libvirt than the
> one installed in the system. This may be used for example in autotest
> or by packagers without the need to install libvirt into the system.
>
> Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
> ---
> setup.py | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/setup.py b/setup.py
> index 17b4722..566c210 100755
> --- a/setup.py
> +++ b/setup.py
> @@ -109,7 +109,17 @@ class my_build(build):
> """Check with pkg-config that libvirt is present and
extract
> the API XML file paths we need from it"""
>
> - libvirt_api = get_pkgconfig_data(["--variable",
"libvirt_api"], "libvirt")
> + libvirt_api = os.getenv("LIBVIRT_API_PATH")
> +
> + if libvirt_api:
> + if not libvirt_api.endswith("-api.xml"):
> + raise ValueError("Invalid path '%s' for API XML"
% libvirt_api)
> + if not os.path.exists(libvirt_api):
> + raise ValueError("API XML '%s' does not exist, "
> + "have you built libvirt?" %
libvirt_api)
> + else:
> + libvirt_api = get_pkgconfig_data(["--variable",
"libvirt_api"],
> + "libvirt")
>
> offset = libvirt_api.index("-api.xml")
> libvirt_qemu_api = libvirt_api[0:offset] + "-qemu-api.xml"
NACK, setting pkg-config already takes care of this. See the
build-many.sh scrpit attached to this mail which demonstrates
use of PKG_CONFIG_PATH to build against every version of libvirt
back to 0.9.11
This still means you have to configure libvirt with different prefix,
install it and then you can use PKG_CONFIG_PATH. This variable (which
is unused if unset) makes it easier to use in case you have it built
with default prefix etc. It would help me a lot, but if everyone else
is OK with installing libvirt in order to build python bindings just
to test something, I'll keep this in my git.
Martin