Work around kernel headers problem

This commit is contained in:
Daniel P. Berrange 2013-01-18 20:01:41 +00:00
parent be6e136cb1
commit 5ed69704b9
3 changed files with 100 additions and 1 deletions

View File

@ -0,0 +1,51 @@
From 1bf661caf4e926efcad6e85151a587cea5fd29f4 Mon Sep 17 00:00:00 2001
From: Eric Blake <eblake@redhat.com>
Date: Mon, 14 Jan 2013 10:47:41 -0700
Subject: [PATCH] build: further fixes for broken if_bridge.h
Commit c308a9ae was incomplete; it resolved the configure failure,
but not a later build failure.
* src/util/virnetdevbridge.c: Include pre-req header.
* configure.ac (AC_CHECK_HEADERS): Prefer standard in.h over
non-standard ip6.h.
---
configure.ac | 2 +-
src/util/virnetdevbridge.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3ab3c4e..712918f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -979,7 +979,7 @@ if test "$with_linux" = "yes"; then
if test "$with_qemu" = "yes" || test "$with_lxc" = "yes" ; then
AC_CHECK_HEADERS([linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h],,
[AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt with QEMU or LXC support])],
- [[#include <netinet/ip6.h>
+ [[#include <netinet/in.h>
]])
fi
fi
diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
index b87c601..3c00be9 100644
--- a/src/util/virnetdevbridge.c
+++ b/src/util/virnetdevbridge.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007-2012 Red Hat, Inc.
+ * Copyright (C) 2007-2013 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,6 +32,7 @@
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <net/if.h>
+#include <netinet/in.h>
#ifdef __linux__
# include <linux/sockios.h>
--
1.8.0.2

View File

@ -0,0 +1,43 @@
From c308a9ae153db619fc0366bad9fd8f6c49cfac58 Mon Sep 17 00:00:00 2001
From: Eric Blake <eblake@redhat.com>
Date: Mon, 14 Jan 2013 09:54:25 -0700
Subject: [PATCH] build: work around broken kernel header
I got this scary warning during ./configure on rawhide:
checking linux/if_bridge.h usability... no
checking linux/if_bridge.h presence... yes
configure: WARNING: linux/if_bridge.h: present but cannot be compiled
configure: WARNING: linux/if_bridge.h: check for missing prerequisite headers?
configure: WARNING: linux/if_bridge.h: see the Autoconf documentation
configure: WARNING: linux/if_bridge.h: section "Present But Cannot Be Compiled"
configure: WARNING: linux/if_bridge.h: proceeding with the compiler's result
configure: WARNING: ## ------------------------------------- ##
configure: WARNING: ## Report this to libvir-list@redhat.com ##
configure: WARNING: ## ------------------------------------- ##
checking for linux/if_bridge.h... no
* configure.ac (AC_CHECK_HEADERS): Provide struct in6_addr, since
linux/if_bridge.h uses it without declaring it.
---
configure.ac | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 8a424e7..1d0add5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -978,7 +978,9 @@ dnl
if test "$with_linux" = "yes"; then
if test "$with_qemu" = "yes" || test "$with_lxc" = "yes" ; then
AC_CHECK_HEADERS([linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h],,
- AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt with QEMU or LXC support]))
+ [AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt with QEMU or LXC support])],
+ [[#include <netinet/ip6.h>
+ ]])
fi
fi
--
1.8.0.2

View File

@ -11,7 +11,7 @@
# Default to skipping autoreconf. Distros can change just this one line
# (or provide a command-line override) if they backport any patches that
# touch configure.ac or Makefile.am.
%{!?enable_autotools:%define enable_autotools 0}
%{!?enable_autotools:%define enable_autotools 1}
# A client only build will create a libvirt.so only containing
# the generic RPC driver, and test driver and no libvirtd
@ -351,6 +351,8 @@ URL: http://libvirt.org/
%define mainturl stable_updates/
%endif
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
Patch1: %{name}-%{version}-build-work-around-broken-kernel-header.patch
Patch2: %{name}-%{version}-build-further-fixes-for-broken-if_bridge.h.patch
%if %{with_libvirtd}
Requires: libvirt-daemon = %{version}-%{release}
@ -1084,6 +1086,8 @@ of recent versions of Linux (and other OSes).
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%build
%if ! %{with_xen}
@ -1996,6 +2000,7 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysctl.d/libvirtd
%changelog
* Fri Jan 18 2013 Daniel P. Berrange <berrange@redhat.com> - 1.0.1-3
- Rebuild for libnl3 soname change
- Deal with broken kernel headers
* Mon Dec 17 2012 Cole Robinson <crobinso@redhat.com> - 1.0.1-2
- Fix scriplet warning when uninstalling libvirt-client (bz #888071)