[libvirt] [Libvirt-announce] Availability of 0.10.0 release candidate 2

Daniel Veillard veillard at redhat.com
Tue Aug 28 08:05:36 UTC 2012


On Mon, Aug 27, 2012 at 11:32:11AM -0500, Doug Goldstein wrote:
> On Mon, Aug 27, 2012 at 4:57 AM, Justin Clift <jclift at redhat.com> wrote:
> > On 27/08/2012, at 1:00 PM, Daniel Veillard wrote:
> >>  I tagged the rc2 in the git tree and pushed tarball and rpms to
> >> the usual place:
> >>  ftp://libvirt.org/libvirt/
> >>
> >> it should include the various fixes that were made on top of rc1
> >> and fix the compilation problem exposed on OS-X, as well as picking
> >> libnl3 if available,
> >>
> >>  please give it a try and report, I am still shooting for a final
> >> release this Wednesday,
> >
> > Still a no go on OSX.  Different error this time:
> >
> >   ...
> >   libvirtd.c: In function 'main':
> >   libvirtd.c:1316: error: 'NETLINK_ROUTE' undeclared (first use in this function)
> >   libvirtd.c:1316: error: (Each undeclared identifier is reported only once
> >   libvirtd.c:1316: error: for each function it appears in.)
> >   libvirtd.c:1322: error: 'NETLINK_KOBJECT_UEVENT' undeclared (first use in this function)
> >   make[3]: *** [libvirtd-libvirtd.o] Error 1
> >   make[3]: *** Waiting for unfinished jobs....
> >
> > Any ideas?
> >
> > + Justin
> >
> 
> You can try something like the following to get you a little farther
> and see if it fails farther on. Just trying to see if we can get Mac
> OS X built and see what changes need to happen before 0.10.0 goes out
> final, not necessary "proper" patches just yet.
> 
> diff --git a/src/util/virnetlink.h b/src/util/virnetlink.h
> index 1982dae..c3f3e81 100644
> --- a/src/util/virnetlink.h
> +++ b/src/util/virnetlink.h
> @@ -34,6 +34,9 @@ struct nl_msg;
>  struct sockaddr_nl;
>  struct nlattr;
> 
> +#define NETLINK_ROUTE       0   /* Routing/device hook              */
> +#define NETLINK_KOBJECT_UEVENT  15  /* Kernel messages to userspace */
> +
>  # endif /* __linux__ */
> 
>  int virNetlinkStartup(void);

  I don't like too much the idea of adding kernel defines in our headers.
Basically this is all due to commits
d57567940153147f4d43875fb92c3030b3178b03 and
080bf330e3749d94ebe094f8deca0e3e67d3f2fe

  The fact that it breaks only in daemon.c, i.e. after the library
  compiled is a good infocation that the guards
#if WITH_VIRTUALPORT in src/util/virnetdevvportprofile.c
#if WITH_MACVTAP     in src/util/virnetdevmacvlan.c
and
#if defined(__linux__) && defined(HAVE_LIBNL) && defined(IFLA_VF_MAX)
 in src/util/virnetdev.c

seems sufficient to avoid the portability problem in those files
and the remaining problem is really about daemon/libvirtd.c and
I would suggest a fix along those lines:

Daniel

diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index 19dd26b..352d4fe 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -1312,17 +1312,21 @@ int main(int argc, char **argv) {
         goto cleanup;
     }
 
+#if defined(__linux__) && defined(NETLINK_ROUTE)
     /* Register the netlink event service for NETLINK_ROUTE */
     if (virNetlinkEventServiceStart(NETLINK_ROUTE, 0) < 0) {
         ret = VIR_DAEMON_ERR_NETWORK;
         goto cleanup;
     }
+#endif
 
+#if defined(__linux__) && defined(NETLINK_KOBJECT_UEVENT)
     /* Register the netlink event service for NETLINK_KOBJECT_UEVENT */
     if (virNetlinkEventServiceStart(NETLINK_KOBJECT_UEVENT, 1) < 0) {
         ret = VIR_DAEMON_ERR_NETWORK;
         goto cleanup;
     }
+#endif
 
     /* Run event loop. */
     virNetServerRun(srv);
-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list