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(a)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(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/