diff --git a/0001-Allow-network-interface-to-be-configured.patch b/0001-Allow-network-interface-to-be-configured.patch new file mode 100644 index 0000000..bf55230 --- /dev/null +++ b/0001-Allow-network-interface-to-be-configured.patch @@ -0,0 +1,53 @@ +From b5b87cdb764dc757295316878a7fd6e2ff01bec4 Mon Sep 17 00:00:00 2001 +From: Richard Jones +Date: Fri, 7 Aug 2009 09:31:35 +0100 +Subject: [PATCH] Allow network interface to be configured. + +Add ./configure --with-net-if=(virtio|ne2k_pci) option. + +This lets you workaround the following virtio_net bug: + +https://bugzilla.redhat.com/show_bug.cgi?id=516022 +--- + configure.ac | 11 +++++++++++ + src/guestfs.c | 2 +- + 2 files changed, 12 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f6f1735..cf0591d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -138,6 +138,17 @@ AC_ARG_WITH([drive-if], + [with_drive_if=ide]) + AC_DEFINE_UNQUOTED([DRIVE_IF],["$with_drive_if"],[Default drive interface.]) + ++dnl Set interface used by the network. Normally you should ++dnl leave this at the default (virtio) but you can use the ++dnl alternative (ne2k_pci) because of bugs in virtio networking ++dnl eg. https://bugzilla.redhat.com/show_bug.cgi?id=516022 ++AC_ARG_WITH([net-if], ++ [AS_HELP_STRING([--with-net-if], ++ [set default net driver (virtio|ne2k_pci) @<:@default=virtio@:>@])], ++ [], ++ [with_net_if=virtio]) ++AC_DEFINE_UNQUOTED([NET_IF],["$with_net_if"],[Default network interface.]) ++ + dnl Check for febootstrap etc. + AC_CHECK_PROG([FEBOOTSTRAP], + [febootstrap],[febootstrap],[no]) +diff --git a/src/guestfs.c b/src/guestfs.c +index de63275..186c570 100644 +--- a/src/guestfs.c ++++ b/src/guestfs.c +@@ -1103,7 +1103,7 @@ guestfs_launch (guestfs_h *g) + } + #endif + add_cmdline (g, "-net"); +- add_cmdline (g, "nic,model=virtio,vlan=0"); /* model=ne2k_pci also works */ ++ add_cmdline (g, "nic,model=" NET_IF ",vlan=0"); + + /* These options recommended by KVM developers to improve reliability. */ + if (qemu_supports (g, "-no-hpet")) +-- +1.6.2.5 + diff --git a/libguestfs.spec b/libguestfs.spec index e640660..172b1cb 100644 --- a/libguestfs.spec +++ b/libguestfs.spec @@ -5,13 +5,15 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 Version: 1.0.66 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: Development/Libraries URL: http://libguestfs.org/ Source0: http://libguestfs.org/download/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +Patch0: 0001-Allow-network-interface-to-be-configured.patch + # Basic build requirements: BuildRequires: /usr/bin/pod2man BuildRequires: /usr/bin/pod2text @@ -292,6 +294,8 @@ Requires: jpackage-utils mkdir -p daemon/m4 +%patch0 -p1 + %build %if %{buildnonet} @@ -303,12 +307,14 @@ createrepo repo %define extra %nil %endif +# --with-net-if=ne2k_pci is a workaround for RHBZ#516022. ./configure \ --prefix=%{_prefix} --libdir=%{_libdir} \ --mandir=%{_mandir} \ --with-qemu="qemu-kvm qemu-system-%{_build_arch} qemu" \ --enable-debug-command \ --enable-supermin \ + --with-net-if=ne2k_pci \ %{extra} # This ensures that /usr/sbin/chroot is on the path. Not needed @@ -340,11 +346,12 @@ export LIBGUESTFS_DEBUG=1 # 507066 all F-12 sequence of chroot calls (FIXED) # 513249 all F-12 guestfwd broken in qemu (FIXED) # 516022 all F-12 virtio-net gives "Network is unreachable" errors +# (WORKAROUND ENABLED) # 516096 ? F-11 race condition in swapoff/blockdev --rereadpt -#%ifarch x86_64 -#make check -#%endif +%ifarch x86_64 +make check +%endif %install @@ -538,6 +545,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Aug 7 2009 Richard W.M. Jones - 1.0.66-2 +- Set network interface to ne2k_pci (workaround for RHBZ#516022). + * Thu Aug 6 2009 Richard W.M. Jones - 1.0.66-1 - New upstream release 1.0.66.