
2011/5/14 Jason Helfman <jhelfman@e-e.com>:
2011/5/14 Jason Helfman <jhelfman@e-e.com>:
-----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@e-e.com>:
On Sat, May 14, 2011 at 08:45:41AM +0200, Matthias Bolte thus spake:
2011/5/14 Jason Helfman <jhelfman@e-e.com>: > > On Sat, May 14, 2011 at 08:25:13AM +0200, Matthias Bolte thus spake: >> >> 2011/5/14 Jason Helfman <jhelfman@e-e.com>: >>> >>> On Fri, May 13, 2011 at 08:38:58AM +0200, Matthias Bolte thus >>> spake: >>>> >>>> 2011/5/12 Jason Helfman <jhelfman@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)
Compiles fine now.
Matthias
does a make install work, and does it function as a library?
Thanks!
Yes works. I can use virsh and connect to libvirtd on another box. The only problem I currently have is that virsh fails to enter interactive mode because sysconf(_SC_GETPW_R_SIZE_MAX) fails, but we'll get that fixed. Matthias