[libvirt] libvirt, FreeBSD portability inquiry

Jason Helfman jhelfman at e-e.com
Sat May 14 16:22:57 UTC 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On Sat, May 14, 2011 at 09:36:17AM +0200, Matthias Bolte thus spake:
>2011/5/14 Jason Helfman <jhelfman at e-e.com>:
>> On Sat, May 14, 2011 at 08:45:41AM +0200, Matthias Bolte thus spake:
>>>
>>> 2011/5/14 Jason Helfman <jhelfman at e-e.com>:
>>>>
>>>> On Sat, May 14, 2011 at 08:25:13AM +0200, Matthias Bolte thus spake:
>>>>>
>>>>> 2011/5/14 Jason Helfman <jhelfman at e-e.com>:
>>>>>>
>>>>>> On Fri, May 13, 2011 at 08:38:58AM +0200, Matthias Bolte thus spake:
>>>>>>>
>>>>>>> 2011/5/12 Jason Helfman <jhelfman at e-e.com>:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I am interested in porting libvirt to FreeBSD, and am curious if
>>>>>>>> there
>>>>>>>> may
>>>>>>>> be anything that may not be possible at this point in respect to the
>>>>>>>> libvirt
>>>>>>>> source code to be aware of. Here is the log of the build of the
>>>>>>>> software:
>>>>>>>>
>>>>>>>> I know it has been ported to MacOSX, and thought it could then be
>>>>>>>> possible
>>>>>>>> with FreeBSD.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Jason
>>>>>>>
>>>>>>> libvirt should be compilable on FreeBSD. At least it was in this state
>>>>>>> a while ago when I've fixed some compile errors. I just check it
>>>>>>> again.
>>>>>>>
>>>>>>> You'll need to explicitly run
>>>>>>>
>>>>>>> ./configure --without-network --without-polkit
>>>>>>>
>>>>>>> because libvirt's virtual networking code is specific to Linux bridges
>>>>>>> and libvirt doesn't polkit on FreeBSD yet.
>>>>>>>
>>>>>>> You'll also need this patch on top of libvirt 0.9.1
>>>>>>>
>>>>>>> https://www.redhat.com/archives/libvir-list/2011-May/msg00831.html
>>>>>>>
>>>>>>> Then it compiles for me. There are still several warnings about NULL
>>>>>>> format strings and devname shadowing a global symbol.
>>>>>>>
>>>>>>> Maybe Eric knows if this warning is critical:
>>>>>>>
>>>>>>> util/sexpr.c: In function 'sexpr2string':
>>>>>>> util/sexpr.c:250: warning: null format string [-Wformat]
>>>>>>>
>>>>>>> virSexprError(VIR_ERR_SEXPR_SERIAL, NULL);
>>>>>>>
>>>>>>> So aside from possible simple compile errors you'll need to port at
>>>>>>> least the virtual networking to FreeBSD when you want to run QEMU
>>>>>>> using libvirt on FreeBSD. If you just want to support the libvirt
>>>>>>> client side to use libvirt to control a hypervisor running on a
>>>>>>> non-FreeBSD host then you're already there.
>>>>>>>
>>>>>>> Matthias
>>>>>>>
>>>>>>
>>>>>> Here is the port: http://jgh.devio.us/files/libvirt.shar.txt
>>>>>>
>>>>>> Anyone have any thoughts on it, or can report success on it?
>>>>>>
>>>>>> download the txt file
>>>>>> run sh ./libvirt.shar.txt
>>>>>> cd libvirt
>>>>>> make install
>>>>>>
>>>>>> Thanks,
>>>>>> Jason
>>>>>
>>>>> I downloaded libvirt.shar.txt to /usr/src/jason/ and running make in
>>>>> the libvirt subdirectory complains about libvirt-0.9.1.tar.gz not
>>>>> being in /usr/src/jason/libvirt/distinfo.
>>>>>
>>>>> I'm not really familiar with FreeBSD, did I miss something?
>>>>>
>>>>> Matthias
>>>>>
>>>>
>>>> What happens if you run:
>>>>
>>>> make fetch
>>>> make install
>>>>
>>>> What commands did you run to get the error? I am not having that issue.
>>>>
>>>> Thanks,
>>>> Jason
>>>
>>> make fetch gives the same error
>>>
>>> Okay, so here's what I did:
>>>
>>> mkdir -p /usr/src/foobar/jason
>>> cd /usr/src/foobar/jason
>>> wget http://jgh.devio.us/files/libvirt.shar.txt
>>> sh libvirt.shar.txt
>>>
>>> This outputs:
>>>
>>> c - libvirt/
>>> x - libvirt/Makefile
>>> x - libvirt/distinfo
>>> c - libvirt/files
>>> x - libvirt/files/patch-src__util__command.c
>>> x - libvirt/pkg-descr
>>> x - libvirt/pkg-plist
>>>
>>> Then:
>>>
>>> cd libvirt
>>> make fetch
>>>
>>> This outputs:
>>>
>>> ===>  Vulnerability check disabled, database not found
>>> ===>  License accepted by the user
>>> => libvirt-0.9.1.tar.gz is not in /usr/src/foobar/jason/libvirt/distinfo.
>>> => Either /usr/src/foobar/jason/libvirt/distinfo is out of date, or
>>> => libvirt-0.9.1.tar.gz is spelled incorrectly.
>>> *** Error code 1
>>> Stop in /usr/src/foobar/jason/libvirt.
>>>
>>> Matthias
>>>
>>
>> Try and grab a fresh copy of the txt file again. I just re-uploaded it.
>> If you get the same error, I would be suprised, but if you do run this:
>
>I have ports installed under /usr/ports and even the new version fails
>with the same error as before:
>
>> make makesum
>> make install
>
>freebsd# make makesum
>===>  Vulnerability check disabled, database not found
>===>  License accepted by the user
>=> libvirt-0.9.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>=> Attempting to fetch from http://libvirt.org/sources/.
>libvirt-0.9.1.tar.gz                          100% of   14 MB  258 kBps 00m00s
>
>freebsd# less distinfo
>MD5 (libvirt-0.9.1.tar.gz) = 4182dbe290cca4344a5387950dc06433
>SHA256 (libvirt-0.9.1.tar.gz) =
>02b3423bb188a4a904eac3ee5cb698a55f5172e4d0ac62cbbcb9245a121b7b2b
>SIZE (libvirt-0.9.1.tar.gz) = 15216787
>
>freebsd# make
>===>  Vulnerability check disabled, database not found
>===>  License accepted by the user
>===>  Extracting for libvirt-0.9.1
>=> MD5 Checksum OK for libvirt-0.9.1.tar.gz.
>=> SHA256 Checksum OK for libvirt-0.9.1.tar.gz.
>===>  Patching for libvirt-0.9.1
>...
>
>Now it start to configure and compile libgcrypt-1.4.5_1 but it's
>installed already due to gnutls and curl. In the end it fails:
>
>...
>===>  Installing for libgcrypt-1.4.5_1
>===>   Generating temporary packing list
>===>  Checking if security/libgcrypt already installed
>===>   libgcrypt-1.4.5_1 is already installed
>      You may wish to ``make deinstall'' and install this port again
>      by ``make reinstall'' to upgrade it properly.
>      If you really wish to overwrite the old port of security/libgcrypt
>      without deleting it first, set the variable "FORCE_PKG_REGISTER"
>      in your environment or the "make install" command line.
>*** Error code 1
>Stop in /usr/ports/security/libgcrypt.
>*** Error code 1
>Stop in /usr/src/foobar/jason/libvirt.
>
>When I try to resolve that as suggested and try to run make for
>libvirt again it fails with a version mismatch as it seems:
>
>freebsd# make
>===>   libvirt-0.9.1 depends on file: /usr/local/bin/python2.6 - found
>===>   libvirt-0.9.1 depends on executable: gmake - found
>===>   libvirt-0.9.1 depends on shared library: curl.6 - found
>===>   libvirt-0.9.1 depends on shared library: gcrypt.17 - not found
>===>    Verifying install for gcrypt.17 in /usr/ports/security/libgcrypt
>===>   Returning to build of libvirt-0.9.1
>Error: shared library "gcrypt.17" does not exist
>*** Error code 1
>Stop in /usr/src/foobar/jason/libvirt.
>
>Maybe my ports tree is outdated? I installed this FreeBSD 8.1 virtual
>machine like half a year ago and didn't update it since then.
>
>Matthias
>

Try altering the LIB_DEPENDS to this:

LIB_DEPENDS+=   curl:${PORTSDIR}/ftp/curl \
                 gcrypt:${PORTSDIR}/security/libgcrypt \
                 xml2:${PORTSDIR}/textproc/libxml2 \
                 gnutls:${PORTSDIR}/security/gnutls


And rebuild. To test, you could run:
make lib-depends (this will just check if you meet the library dependencies)

- -jgh

- -- 
Jason Helfman
System Administrator
experts-exchange.com
http://www.experts-exchange.com/M_4830110.html
E4AD 7CF1 1396 27F6 79DD  4342 5E92 AD66 8C8C FBA5
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (FreeBSD)

iF4EAREIAAYFAk3OrGEACgkQXpKtZoyM+6U/pAEAjJfmzND+fkSpKForvlL0dUlf
wFk8YCfm+ROGpu9eLLMA/iOpc0xKCfqAvJqCJ1NtFMViMX70UMwyAPn6Rl42psOA
=tCnY
-----END PGP SIGNATURE-----




More information about the libvir-list mailing list