[libvirt] libvirt, FreeBSD portability inquiry

Matthias Bolte matthias.bolte at googlemail.com
Sat May 14 07:36:17 UTC 2011


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




More information about the libvir-list mailing list