I've been tasked with integrating libvirt into a server running Parallel Cloud Server 6.0. However, it seems I've ran into some trouble getting the vz/parallel driver to compile. It appears there might be an issue with the version of parallels-virtualization-sdk thats installed (6.10.24195)
I first tried using the latest libvirt version, 1.2.21. After finding the magical configure arguments and ENV variables to get it to find the SDK, the configure script reported "Yes" next to the vz driver. I then proceeded to run a make, and was confronted with the following error message:
I then tried to use libvirt 1.2.16, thinking that if I go back a few versions to before the driver was renamed (parallels -> vz), it might work. This appears to have sorted out the compiler errors, however, when it goes to link the modules, I get the following:
make[3]: Entering directory `/root/libvirt-1.2.16/src'
CCLD libvirt_sanlock_helper
./.libs/libvirt.so: undefined reference to `PrlSrv_GetSrvConfig'
./.libs/libvirt.so: undefined reference to `PrlApi_Deinit'
./.libs/libvirt.so: undefined reference to `PrlSrv_AddVirtualNetwork'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetNetAdaptersCount'
./.libs/libvirt.so: undefined reference to `PrlSrv_GetVmListEx'
./.libs/libvirt.so: undefined reference to `PrlJob_GetResult'
./.libs/libvirt.so: undefined reference to `PrlHandle_GetType'
./.libs/libvirt.so: undefined reference to `PrlEvent_GetType'
./.libs/libvirt.so: undefined reference to `PrlVm_BeginEdit'
./.libs/libvirt.so: undefined reference to `PrlVmDev_GetStackIndex'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_SetAdapterType'
./.libs/libvirt.so: undefined reference to `PrlVmDev_GetIfaceType'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetDescription'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_SetHostInterfaceName'
./.libs/libvirt.so: undefined reference to `PrlVmDevHd_SetMountPoint'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetVNCHostName'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_GetHostInterfaceName'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetEmulatedType'
./.libs/libvirt.so: undefined reference to `PrlVm_StopEx'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetDiskCacheWriteBack'
./.libs/libvirt.so: undefined reference to `PrlSrv_Create'
./.libs/libvirt.so: undefined reference to `PrlBootDev_SetIndex'
./.libs/libvirt.so: undefined reference to `PrlJob_GetRetCode'
./.libs/libvirt.so: undefined reference to `PrlHndlList_GetItem'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetAutoStart'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetVmType'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetStackIndex'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetFriendlyName'
./.libs/libvirt.so: undefined reference to `PrlSrv_UnregEventHandler'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetVNCPort'
./.libs/libvirt.so: undefined reference to `PrlVm_Pause'
./.libs/libvirt.so: undefined reference to `PrlVmDev_GetImagePath'
./.libs/libvirt.so: undefined reference to `PrlHandle_AddRef'
./.libs/libvirt.so: undefined reference to `PrlVm_RefreshConfig'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetSerialPortsCount'
./.libs/libvirt.so: undefined reference to `PrlVm_Resume'
./.libs/libvirt.so: undefined reference to `PrlSrv_Logoff'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetHomePath'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetCpuMode'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetCpuMask'
./.libs/libvirt.so: undefined reference to `PrlVm_CommitEx'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetVNCMode'
./.libs/libvirt.so: undefined reference to `PrlJob_Wait'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_GetVirtualNetworkId'
./.libs/libvirt.so: undefined reference to `PrlEvent_GetIssuerId'
./.libs/libvirt.so: undefined reference to `PrlVm_RegEx'
./.libs/libvirt.so: undefined reference to `PrlResult_GetParamsCount'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_SetMacAddress'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_GetAdapterType'
./.libs/libvirt.so: undefined reference to `PrlVm_Suspend'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetCpuMode'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetCpuCount'
./.libs/libvirt.so: undefined reference to `PrlBootDev_SetSequenceIndex'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetBootDev'
./.libs/libvirt.so: undefined reference to `PrlBootDev_SetInUse'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetOpticalDisk'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetEnvId'
./.libs/libvirt.so: undefined reference to `PrlVirtNet_SetNetworkId'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetOfflineManagementEnabled'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetEnabled'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetNetAdapter'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetCpuMask'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetHardDisk'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetVNCMode'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetBootDevCount'
./.libs/libvirt.so: undefined reference to `PrlBootDev_SetType'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetCpuCount'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetIfaceType'
./.libs/libvirt.so: undefined reference to `PrlApi_InitEx'
./.libs/libvirt.so: undefined reference to `PrlVmDev_Remove'
./.libs/libvirt.so: undefined reference to `PrlJob_GetError'
./.libs/libvirt.so: undefined reference to `PrlEvent_GetErrCode'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetRamSize'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetVideoRamSize'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetName'
./.libs/libvirt.so: undefined reference to `PrlApi_GetResultDescription'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetVideoRamSize'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetUuid'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetOsTemplate'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetDefaultConfig'
./.libs/libvirt.so: undefined reference to `PrlSrv_DeleteVirtualNetwork'
./.libs/libvirt.so: undefined reference to `PrlVmDev_GetIndex'
./.libs/libvirt.so: undefined reference to `PrlVmDevHd_GetMountPoint'
./.libs/libvirt.so: undefined reference to `PrlVm_Reg'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetName'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetVNCPort'
./.libs/libvirt.so: undefined reference to `PrlSrv_GetDefaultVmConfig'
./.libs/libvirt.so: undefined reference to `PrlSrv_CreateVm'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetVNCHostName'
./.libs/libvirt.so: undefined reference to `PrlVm_DropSuspendedState'
./.libs/libvirt.so: undefined reference to `PrlSrv_GetVmConfig'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetRamSize'
./.libs/libvirt.so: undefined reference to `PrlVm_Unreg'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_SetPktFilterPreventMacSpoof'
./.libs/libvirt.so: undefined reference to `PrlBootDev_Remove'
./.libs/libvirt.so: undefined reference to `PrlHndlList_GetItemsCount'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetImagePath'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetHardDisksCount'
./.libs/libvirt.so: undefined reference to `PrlResult_GetParamByIndex'
./.libs/libvirt.so: undefined reference to `PrlSrv_LoginLocalEx'
./.libs/libvirt.so: undefined reference to `PrlVirtNet_Create'
./.libs/libvirt.so: undefined reference to `PrlVmDevSerial_SetSocketMode'
./.libs/libvirt.so: undefined reference to `PrlVmInfo_GetState'
./.libs/libvirt.so: undefined reference to `PrlVm_GetState'
./.libs/libvirt.so: undefined reference to `PrlEvtPrm_ToInt32'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_GetMacAddressCanonical'
./.libs/libvirt.so: undefined reference to `PrlVmDev_GetFriendlyName'
./.libs/libvirt.so: undefined reference to `PrlHandle_Free'
./.libs/libvirt.so: undefined reference to `PrlVmDev_IsConnected'
./.libs/libvirt.so: undefined reference to `PrlVm_StartEx'
./.libs/libvirt.so: undefined reference to `PrlVmDev_GetEmulatedType'
./.libs/libvirt.so: undefined reference to `PrlBootDev_GetType'
./.libs/libvirt.so: undefined reference to `PrlApi_SwitchConsoleLogging'
./.libs/libvirt.so: undefined reference to `PrlVirtNet_SetNetworkType'
./.libs/libvirt.so: undefined reference to `PrlEvent_GetParamByName'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_SetUuid'
./.libs/libvirt.so: undefined reference to `PrlEvent_GetErrString'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetSerialPort'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_CreateVmDev'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetIndex'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetAllDevices'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetSysName'
./.libs/libvirt.so: undefined reference to `PrlVmDev_SetConnected'
./.libs/libvirt.so: undefined reference to `PrlSrv_RegEventHandler'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_CreateBootDev'
./.libs/libvirt.so: undefined reference to `PrlVmDevNet_SetVirtualNetworkId'
./.libs/libvirt.so: undefined reference to `PrlVmCfg_GetOpticalDisksCount'
To me, these errors seem to be related to the parallels sdk, But I am unable to figure out a way to get around them. I've added PARALLELS_SDK_CFLAGS and PARALLELS_SDK_LIBS to my env with the proper compiler and linker flags, I've also tried adjusting CFLAGS and LDFLAGS directly with the same results.
Any help with this would be great, as we would like to continue using libvirt as much as possible (We use it with a couple other drivers).
Thank you
--
Frank Laszlo
Nexcess - Beyond Hosting
21700 Melrose Ave.
Southfield, MI. 48075
Cell: +1.248.602.6123
Phone: +1.866.639.2377
Fax: +1.248.281.0473