Executing prlctl command is not an optimal way to interact with
Parallels Cloud Server (PCS), it's better to use parallels SDK,
which is a remote API to paralles dispatcher service.
We prepared opensource version of this SDK and published it on
github, it's distributed under LGPL license. Here is a git repo:
https://github.com/Parallels/parallels-sdk.
To build with parallels SDK user should get compiler and linker
options from pkg-config 'parallels-sdk' file. So fix checks in
configure script and build with parallels SDK, if that pkg-config
file exists and add gcc options to makefile.
Signed-off-by: Dmitry Guryanov <dguryanov(a)parallels.com>
---
configure.ac | 11 +++++------
src/Makefile.am | 4 +++-
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index f93c6c2..4318d24 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1046,15 +1046,14 @@ dnl
dnl Checks for the Parallels driver
dnl
+PKG_CHECK_MODULES([PARALLELS_SDK], [parallels-sdk], [PARALLELS_SDK_FOUND=yes],
[PARALLELS_SDK_FOUND=no])
+
if test "$with_parallels" = "check"; then
- with_parallels=$with_linux
- if test ! $host_cpu = 'x86_64'; then
- with_parallels=no
- fi
+ with_parallels=$PARALLELS_SDK_FOUND
fi
-if test "$with_parallels" = "yes" && test
"$with_linux" = "no"; then
- AC_MSG_ERROR([The Parallels driver can be enabled on Linux only.])
+if test "$with_parallels" = "yes" && test
"$PARALLELS_SDK_FOUND" = "no"; then
+ AC_MSG_ERROR([Parallels Virtualization SDK is needed to build the Parallels
driver.])
fi
if test "$with_parallels" = "yes"; then
diff --git a/src/Makefile.am b/src/Makefile.am
index 538530e..dad7c7f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1352,7 +1352,9 @@ if WITH_PARALLELS
noinst_LTLIBRARIES += libvirt_driver_parallels.la
libvirt_la_BUILT_LIBADD += libvirt_driver_parallels.la
libvirt_driver_parallels_la_CFLAGS = \
- -I$(top_srcdir)/src/conf $(AM_CFLAGS)
+ -I$(top_srcdir)/src/conf $(AM_CFLAGS) \
+ $(PARALLELS_SDK_CFLAGS)
+libvirt_driver_parallels_la_LIBADD = $(PARALLELS_SDK_LIBS)
libvirt_driver_parallels_la_SOURCES = $(PARALLELS_DRIVER_SOURCES)
endif WITH_PARALLELS
So previously, this was enabled for x86_64 linux hosts, now you need to
have SDK. I understand why you are doing that but perhaps do we want to
enable backward compatibility and let users use prlctl command?
Michal