Date: Wed, 16 Dec 2015 14:15:19 +0000 (UTC) From: Muhammad Moinur Rahman <bofh@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r403864 - in head/emulators/qemu: . files Message-ID: <201512161415.tBGEFJqi052300@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: bofh Date: Wed Dec 16 14:15:19 2015 New Revision: 403864 URL: https://svnweb.freebsd.org/changeset/ports/403864 Log: emulators/qemu: Update version 0.11.1=>2.4.1 - MASTER_SITES has been changed from SAVANNAH and local repo of nox@ to new wiki.qemu.org - Take MAINTAINERSHIP - Updated to maintain version release with UPSTREAM. qemu-devel will be updated to maintain with SNAPSHOTS - Some of the patches has been converted to OPTIONSNG with post-patch - Most of the patches are now makepatch compatible - Converted most of the LEGACY OPTIONS to OPTIONSNG Added: head/emulators/qemu/files/patch-disas_libvixl_a64_disasm-a64.cc (contents, props changed) head/emulators/qemu/files/patch-include_net_net.h (contents, props changed) head/emulators/qemu/files/patch-include_qemu-common.h (contents, props changed) head/emulators/qemu/files/patch-net_tap-bsd.c (contents, props changed) head/emulators/qemu/files/patch-qemu-char.c (contents, props changed) head/emulators/qemu/files/patch-slirp_slirp__config.h (contents, props changed) head/emulators/qemu/files/patch-ui_x__keymap.c (contents, props changed) Deleted: head/emulators/qemu/files/cdrom-dma-patch head/emulators/qemu/files/gns3-patch head/emulators/qemu/files/patch-0001-qcow2-Bring-synchronous-read-write-back-to-life head/emulators/qemu/files/patch-90_security head/emulators/qemu/files/patch-CVE-2015-3209 head/emulators/qemu/files/patch-CVE-2015-3456 head/emulators/qemu/files/patch-fbsd head/emulators/qemu/files/patch-hw-eepro100.c head/emulators/qemu/files/patch-hw-vmware_vga.c head/emulators/qemu/files/patch-iopl-workaround head/emulators/qemu/files/patch-libmath head/emulators/qemu/files/patch-libmath2 head/emulators/qemu/files/patch-libmath_FreeBSD-version head/emulators/qemu/files/patch-osdep.c head/emulators/qemu/files/patch-pc-bios-optionrom-multiboot.S head/emulators/qemu/files/patch-qemu_Makefiles head/emulators/qemu/files/patch-qemu_configure_1 head/emulators/qemu/files/patch-qemu_configure_2 head/emulators/qemu/files/patch-qemu_net.c head/emulators/qemu/files/patch-qemu_slirp_slirp_config.h head/emulators/qemu/files/patch-smc-fix head/emulators/qemu/files/patch-tapclose head/emulators/qemu/files/patch-vl.c head/emulators/qemu/files/patch-vl.c-serial head/emulators/qemu/files/patch-x_keymap.c head/emulators/qemu/files/patch-z-bandaid-usb-current head/emulators/qemu/files/rtl8139-re-patch Modified: head/emulators/qemu/Makefile head/emulators/qemu/distinfo head/emulators/qemu/files/patch-Makefile head/emulators/qemu/files/patch-configure head/emulators/qemu/files/patch-qemu-doc.texi head/emulators/qemu/files/pcap-patch head/emulators/qemu/pkg-descr head/emulators/qemu/pkg-message head/emulators/qemu/pkg-plist Modified: head/emulators/qemu/Makefile ============================================================================== --- head/emulators/qemu/Makefile Wed Dec 16 14:11:42 2015 (r403863) +++ head/emulators/qemu/Makefile Wed Dec 16 14:15:19 2015 (r403864) @@ -2,107 +2,133 @@ # $FreeBSD$ PORTNAME= qemu -PORTVERSION= 0.11.1 -PORTREVISION= 20 +PORTVERSION= 2.4.1 CATEGORIES= emulators -MASTER_SITES= SAVANNAH \ - http://bellard.org/qemu/ -DIST_SUBDIR= qemu +MASTER_SITES= http://wiki.qemu.org/download/ +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} +DIST_SUBDIR= qemu/${PORTVERSION} -MAINTAINER= ports@FreeBSD.org -COMMENT= QEMU CPU Emulator +MAINTAINER= bofh@FreeBSD.org +COMMENT?= QEMU CPU Emulator -LICENSE= GPLv2 # or later -LICENSE_FILE= ${WRKSRC}/COPYING +LICENSE= GPLv2 HAS_CONFIGURE= yes -USES= compiler:features cpe gmake perl5 +USES= cpe gmake pkgconfig bison perl5 python:2,build tar:bzip2 USE_PERL5= build -PATCH_STRIP= -p1 +USE_XORG= pixman +USE_GNOME+= glib20 MAKE_ENV+= BSD_MAKE="${MAKE}" -ONLY_FOR_ARCHS= amd64 i386 -CONFLICTS= qemu-devel-[0-9]* qemu-sbruno-[0-9]* +ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 # XXX someone wants to debug sparc64 hosts? -OPTIONS_DEFINE= KQEMU RTL8139_TIMER SAMBA SDL GNUTLS CURL PCAP GNS3 \ - CDROM_DMA ADD_AUDIO ALL_TARGETS DOCS -KQEMU_DESC= Build with (alpha!) accelerator module -RTL8139_TIMER_DESC= allow use of re(4) nic with FreeBSD guests +OPTIONS_DEFINE= SAMBA X11 GTK2 OPENGL GNUTLS SASL JPEG PNG CURL \ + CDROM_DMA PCAP USBREDIR GNS3 X86_TARGETS \ + STATIC_LINK DOCS BSD_USER SAMBA_DESC= samba dependency (for -smb) -SDL_DESC= SDL/X dependency (graphical output) GNUTLS_DESC= gnutls dependency (vnc encryption) -CURL_DESC= libcurl dependency (remote images) -PCAP_DESC= pcap dependency (networking with bpf) -GNS3_DESC= gns3 patches (udp, promiscuous multicast) +SASL_DESC= cyrus-sasl dependency (vnc encryption) +JPEG_DESC= jpeg dependency (vnc lossy compression) +PNG_DESC= png dependency (vnc compression) CDROM_DMA_DESC= IDE CDROM DMA -ADD_AUDIO_DESC= Emulate more audio hardware (experimental!) -ALL_TARGETS_DESC= Also build non-x86 targets -OPTIONS_DEFAULT= SDL GNUTLS CURL PCAP GNS3 CDROM_DMA - -.include <bsd.port.pre.mk> +PCAP_DESC= pcap dependency (networking with bpf) +USBREDIR_DESC= usb device network redirection (experimental!) +GNS3_DESC= gns3 patches (promiscuous multicast) +X86_TARGETS_DESC= Don't build non-x86 system targets +BSD_USER_DESC= Also build bsd-user targets (for testing) +STATIC_LINK_DESC= Statically link the executables +OPTIONS_DEFAULT=X11 GTK2 OPENGL GNUTLS SASL JPEG PNG CDROM_DMA CURL PCAP GNS3 +OPTIONS_SUB= yes +X11_USE= SDL=sdl +X11_CONFIGURE_ON= --enable-sdl +X11_CONFIGURE_OFF= --disable-sdl +GTK2_USE= GNOME=gtk20,vte +GTK2_USES= gettext +GTK2_CONFIGURE_OFF= --disable-gtk --disable-vte +GNUTLS_LIB_DEPENDS= libgnutls.so:${PORTSDIR}/security/gnutls +GNUTLS_CONFIGURE_OFF= --disable-vnc-tls +SASL_LIB_DEPENDS= libsasl2.so:${PORTSDIR}/security/cyrus-sasl2 +SASL_CONFIGURE_OFF= --disable-vnc-sasl +JPEG_USES= jpeg +JPEG_CONFIGURE_OFF= --disable-vnc-jpeg +PNG_LIB_DEPENDS= libpng.so:${PORTSDIR}/graphics/png +PNG_CONFIGURE_OFF= --disable-vnc-png +CURL_LIB_DEPENDS= libcurl.so:${PORTSDIR}/ftp/curl +CURL_CONFIGURE_OFF= --disable-curl +OPENGL_USE= GL=yes +OPENGL_CONFIGURE_OFF= --disable-opengl +USBREDIR_BUILD_DEPENDS= usbredir>=0.6:${PORTSDIR}/net/usbredir +USBREDIR_RUN_DEPENDS= usbredir>=0.6:${PORTSDIR}/net/usbredir +USBREDIR_CONFIGURE_OFF= --disable-usb-redir +PCAP_CONFIGURE_ON= --enable-pcap +STATIC_LINK_CONFIGURE_ON= --static +SAMBA_RUN_DEPENDS= ${LOCALBASE}/sbin/smbd:${PORTSDIR}/net/samba36 +DOCS_BUILD_DEPENDS= texi2html:${PORTSDIR}/textproc/texi2html +DOCS_USES= makeinfo +DOCS_MAKE_ARGS_OFF= NOPORTDOCS=1 -.if ${ARCH} == "i386" && ${COMPILER_TYPE} == "clang" -# gcc49 breaks target-i386 on i386, and gcc48 breaks ALL_TARGETS on i386: -# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196855 -USE_GCC= 4.7 -.else -USE_GCC= any +.if !defined(QEMU_USER_STATIC) +CONFLICTS_INSTALL= qemu--devel-[0-9]* qemu-sbruno-[0-9]* .endif -.if empty(PORT_OPTIONS:MALL_TARGETS) -CONFIGURE_ARGS+= --target-list=i386-softmmu,x86_64-softmmu -PLIST_SUB+= ALLTARGETS="@comment " -.else -PLIST_SUB+= ALLTARGETS="" -.endif +PORTDOCS= docs qemu-doc.html qemu-tech.html qmp-commands.txt WITHOUT_CPU_CFLAGS=yes #to avoid problems with register allocation CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//} -CONFIGURE_ARGS+= --prefix=${PREFIX} --cc=${CC} +CONFIGURE_ARGS+=--localstatedir=/var --extra-ldflags=-L\"${LOCALBASE}/lib\" \ + --disable-smartcard-nss --disable-libssh2 --enable-debug \ + --prefix=${PREFIX} --cc=${CC} --enable-docs --disable-kvm \ + --disable-linux-user --disable-linux-aio --disable-xen \ + --smbd=${LOCALBASE}/sbin/smbd --enable-debug-info --python=${PYTHON_CMD} \ + --extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\" + +.include <bsd.port.options.mk> -.if empty(PORT_OPTIONS:MSDL) -CONFIGURE_ARGS+= --disable-sdl +.if defined(QEMU_USER_STATIC) +.if ${ARCH} != "amd64" +CONFIGURE_ARGS+= --target-list=i386-bsd-user,sparc-bsd-user,arm-bsd-user,mips-bsd-user,mipsel-bsd-user .else -USE_SDL= sdl +CONFIGURE_ARGS+= --target-list=i386-bsd-user,x86_64-bsd-user,sparc-bsd-user,sparc64-bsd-user,arm-bsd-user,mips-bsd-user,mipsel-bsd-user,mips64-bsd-user,mips64el-bsd-user .endif - -.if empty(PORT_OPTIONS:MGNUTLS) -CONFIGURE_ARGS+= --disable-vnc-tls .else -LIB_DEPENDS+= libgnutls.so:${PORTSDIR}/security/gnutls +.if ${PORT_OPTIONS:MX86_TARGETS} +.if ${PORT_OPTIONS:MBSD_USER} +.if ${ARCH} != "amd64" +CONFIGURE_ARGS+= --target-list=i386-softmmu,x86_64-softmmu,i386-bsd-user,sparc-bsd-user,arm-bsd-user,mips-bsd-user,mipsel-bsd-user +.else +CONFIGURE_ARGS+= --target-list=i386-softmmu,x86_64-softmmu,i386-bsd-user,x86_64-bsd-user,sparc-bsd-user,sparc64-bsd-user,arm-bsd-user,mips-bsd-user,mipsel-bsd-user,mips64-bsd-user,mips64el-bsd-user .endif - -.if empty(PORT_OPTIONS:MCURL) -CONFIGURE_ARGS+= --disable-curl .else -LIB_DEPENDS+= libcurl.so:${PORTSDIR}/ftp/curl +CONFIGURE_ARGS+= --target-list=i386-softmmu,x86_64-softmmu +.endif +.else +.if empty(PORT_OPTIONS:MBSD_USER) +CONFIGURE_ARGS+= --disable-bsd-user +.else +.if ${ARCH} != "amd64" +CONFIGURE_ARGS+= --target-list=i386-softmmu,x86_64-softmmu,aarch64-softmmu,alpha-softmmu,arm-softmmu,cris-softmmu,lm32-softmmu,m68k-softmmu,microblaze-softmmu,microblazeel-softmmu,mips-softmmu,mipsel-softmmu,mips64-softmmu,mips64el-softmmu,or32-softmmu,ppc-softmmu,ppcemb-softmmu,ppc64-softmmu,sh4-softmmu,sh4eb-softmmu,sparc-softmmu,sparc64-softmmu,s390x-softmmu,xtensa-softmmu,xtensaeb-softmmu,unicore32-softmmu,moxie-softmmu,i386-bsd-user,sparc-bsd-user,arm-bsd-user,mips-bsd-user,mipsel-bsd-user +.endif .endif - -.if ${PORT_OPTIONS:MPCAP} -CONFIGURE_ARGS+= --enable-pcap .endif - -.if ${PORT_OPTIONS:MADD_AUDIO} -CONFIGURE_ARGS+= --audio-card-list=ac97,es1370,sb16,cs4231a,adlib,gus .endif -# XXX -CONFIGURE_ARGS+= --disable-bsd-user - -.if ${PORT_OPTIONS:MSAMBA} -RUN_DEPENDS+= ${LOCALBASE}/sbin/smbd:${PORTSDIR}/net/samba36 +.if ${PORT_OPTIONS:MBSD_USER} && ${ARCH} == "sparc64" +IGNORE= bsd-user targets not tested on sparc64 .endif -.if ${PORT_OPTIONS:MKQEMU} -BUILD_DEPENDS+= kqemu-kmod-devel>=1.4.0pre1:${PORTSDIR}/emulators/kqemu-kmod-devel -RUN_DEPENDS+= kqemu-kmod-devel>=1.4.0pre1:${PORTSDIR}/emulators/kqemu-kmod-devel +.if empty(PORT_OPTIONS:MBSD_USER) || ${ARCH} != "amd64" +PLIST_SUB+= BSD_USER64="@comment " .else -CONFIGURE_ARGS+= --disable-kqemu +PLIST_SUB+= BSD_USER64="" .endif -.if ${PORT_OPTIONS:MDOCS} -BUILD_DEPENDS+= texi2html:${PORTSDIR}/textproc/texi2html +.if defined(QEMU_USER_STATIC) +PLIST_SUB+= SOFTMMU="@comment " STATIC="-static" .else -MAKE_ARGS+= NOPORTDOCS=1 +PLIST_SUB+= SOFTMMU="" STATIC="" +.endif + +.if ${PORT_OPTIONS:MSTATIC_LINK} && (${PORT_OPTIONS:MGTK2} || ${PORT_OPTIONS:MX11}) +IGNORE= X11 ui cannot be built static .endif .if !defined(STRIP) || ${STRIP} == "" @@ -113,29 +139,24 @@ CONFIGURE_ARGS+=--disable-strip MAKE_ARGS+= ARCH=x86_64 .endif -post-extract: - @${MKDIR} ${WRKSRC}/kqemu - @${TOUCH} ${WRKSRC}/kqemu/Makefile - @${ECHO} all: > ${WRKSRC}/kqemu/Makefile.freebsd - -pre-patch: - @for A in ${ONLY_FOR_ARCHS}; do \ - ${MKDIR} ${WRKSRC}/bsd/$$A; \ - done - -post-patch: -.if ${PORT_OPTIONS:MRTL8139_TIMER} - @cd ${WRKSRC} && ${PATCH} --quiet < ${FILESDIR}/rtl8139-re-patch -.endif -.if ${PORT_OPTIONS:MPCAP} - @cd ${WRKSRC} && ${PATCH} --quiet < ${FILESDIR}/pcap-patch +.if ${ARCH} == "powerpc" +MAKE_ARGS+= ARCH=ppc .endif -.if ${PORT_OPTIONS:MGNS3} - @cd ${WRKSRC} && ${PATCH} -p1 --quiet < ${FILESDIR}/gns3-patch + +.if ${ARCH} == "powerpc64" +MAKE_ARGS+= ARCH=ppc64 .endif -.if empty(PORT_OPTIONS:MCDROM_DMA) - @cd ${WRKSRC} && ${PATCH} --quiet < ${FILESDIR}/cdrom-dma-patch + +.if ${ARCH} == "sparc64" +CONFIGURE_ARGS+= --sparc_cpu=v9 .endif + +# -lprocstat actually only _needs_ -lelf after r249666 or r250870 (MFC) +# but it shouldn't matter much +post-patch: + @${REINPLACE_CMD} -e '/LIBS/s|-lprocstat|-lprocstat -lelf|' \ + ${WRKSRC}/configure + @${REINPLACE_CMD} -e '/libs_qga=/s|glib_libs|glib_libs -lintl|' ${WRKSRC}/configure @${REINPLACE_CMD} -E \ -e "/^by Tibor .TS. S/s|Sch.*z.$$|Schuetz.|" \ ${WRKSRC}/qemu-doc.texi @@ -149,7 +170,17 @@ post-patch: ${WRKSRC}/Makefile @${REINPLACE_CMD} -E \ -e "1s|^(#! )/usr/bin/perl|\1${PERL}|" \ - ${WRKSRC}/texi2pod.pl + ${WRKSRC}/scripts/texi2pod.pl + +post-patch-CDROM_DMA-off: + @${REINPLACE_CMD} -e '/USE_DMA_CDROM/d' ${WRKSRC}/hw/ide/internal.h + +post-patch-GNS3-on: + @${REINPLACE_CMD} -e 's|(buf\[0\] & 1) && (rctl & E1000_RCTL_MPE)|buf[0] \& 1|' \ + ${WRKSRC}/hw/net/e1000.c + +post-patch-PCAP-on: + @cd ${WRKSRC} && ${PATCH} --quiet < ${FILESDIR}/pcap-patch # XXX need to disable usb host code on head while it's not ported to the # new usb stack yet @@ -158,8 +189,14 @@ post-configure: -e "s|^(HOST_USB=)bsd|\1stub|" \ ${WRKSRC}/config-host.mak +.if !target(post-install) post-install: ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample ${STAGEDIR}${PREFIX}/etc ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample ${STAGEDIR}${PREFIX}/etc + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-* + +post-install-DOCS-on: + @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${DOCSDIR}/) +.endif -.include <bsd.port.post.mk> +.include <bsd.port.mk> Modified: head/emulators/qemu/distinfo ============================================================================== --- head/emulators/qemu/distinfo Wed Dec 16 14:11:42 2015 (r403863) +++ head/emulators/qemu/distinfo Wed Dec 16 14:15:19 2015 (r403864) @@ -1,2 +1,2 @@ -SHA256 (qemu/qemu-0.11.1.tar.gz) = 2ecd2fc0af2ce5d96067ae82cc98a08275c596de53fc929484bedee1d6e7893a -SIZE (qemu/qemu-0.11.1.tar.gz) = 3830070 +SHA256 (qemu/2.4.1/qemu-2.4.1.tar.bz2) = e3d5cf4c8b1f9129c9c797329a515bfb6b3b1ded0ab8b394c8a316490fe3a177 +SIZE (qemu/2.4.1/qemu-2.4.1.tar.bz2) = 25087522 Modified: head/emulators/qemu/files/patch-Makefile ============================================================================== --- head/emulators/qemu/files/patch-Makefile Wed Dec 16 14:11:42 2015 (r403863) +++ head/emulators/qemu/files/patch-Makefile Wed Dec 16 14:15:19 2015 (r403864) @@ -1,47 +1,25 @@ -Index: qemu/Makefile -@@ -25,7 +25,11 @@ - LDFLAGS += -static - endif +--- Makefile.orig 2015-11-03 20:01:30 UTC ++++ Makefile +@@ -88,7 +88,11 @@ LIBS+=-lz $(LIBS_TOOLS) + HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF) + ifdef BUILD_DOCS +ifdef NOPORTDOCS +DOCS=qemu.1 qemu-img.1 qemu-nbd.8 +else - DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 + DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 qmp-commands.txt +endif - else - DOCS= - endif -@@ -190,6 +190,8 @@ - obj-$(CONFIG_XEN) += xen_backend.o xen_devconfig.o - obj-$(CONFIG_XEN) += xen_console.o xenfb.o xen_disk.o xen_nic.o - -+QEMU_CFLAGS+=$(CURL_CFLAGS) -+ - LIBS+=$(CURL_LIBS) - - cocoa.o: cocoa.m -@@ -260,13 +264,13 @@ + ifdef CONFIG_LINUX + DOCS+=kvm_stat.1 endif +@@ -390,8 +394,10 @@ endif install-doc: $(DOCS) + $(INSTALL_DIR) "$(DESTDIR)$(qemu_docdir)" +ifndef NOPORTDOCS - $(INSTALL_DIR) "$(DESTDIR)$(docdir)" - $(INSTALL_DATA) qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)" + $(INSTALL_DATA) qemu-doc.html qemu-tech.html "$(DESTDIR)$(qemu_docdir)" + $(INSTALL_DATA) qmp-commands.txt "$(DESTDIR)$(qemu_docdir)" +endif - ifndef CONFIG_WIN32 + ifdef CONFIG_POSIX $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1" - $(INSTALL_DATA) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1" -- $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man8" -- $(INSTALL_DATA) qemu-nbd.8 "$(DESTDIR)$(mandir)/man8" - endif - - install: all $(if $(BUILD_DOCS),install-doc) -@@ -321,7 +321,7 @@ cscope: - - # documentation - %.html: %.texi -- $(call quiet-command,texi2html -I=. -monolithic -number $<," GEN $@") -+ $(call quiet-command,texi2html -I=. -monolithic --number-sections $<," GEN $@") - - %.info: %.texi - $(call quiet-command,makeinfo -I . $< -o $@," GEN $@") + $(INSTALL_DATA) qemu.1 "$(DESTDIR)$(mandir)/man1" Modified: head/emulators/qemu/files/patch-configure ============================================================================== --- head/emulators/qemu/files/patch-configure Wed Dec 16 14:11:42 2015 (r403863) +++ head/emulators/qemu/files/patch-configure Wed Dec 16 14:15:19 2015 (r403864) @@ -1,33 +1,73 @@ -Index: qemu/configure -@@ -1154,8 +1154,9 @@ - #include <curl/curl.h> - int main(void) { return curl_easy_init(); } - EOF -+ curl_cflags=`curl-config --cflags 2>/dev/null` - curl_libs=`curl-config --libs 2>/dev/null` -- if $cc $ARCH_CFLAGS $curl_libs -o $TMPE $TMPC > /dev/null 2> /dev/null ; then -+ if $cc $ARCH_CFLAGS $curl_cflags $curl_libs -o $TMPE $TMPC > /dev/null 2> /dev/null ; then - curl=yes - fi - fi # test "$curl" -@@ -1395,9 +1395,9 @@ +--- configure.orig 2015-11-03 20:01:31 UTC ++++ configure +@@ -273,7 +273,7 @@ DSOSUF=".so" + LDFLAGS_SHARED="-shared" + modules="no" + prefix="/usr/local" +-mandir="\${prefix}/share/man" ++mandir="\${prefix}/man" + datadir="\${prefix}/share" + qemu_docdir="\${prefix}/share/doc/qemu" + bindir="\${prefix}/bin" +@@ -2102,7 +2102,7 @@ if test "$gtk" != "no"; then + gtk_cflags="$gtk_cflags $x11_cflags" + gtk_libs="$gtk_libs $x11_libs" + fi +- libs_softmmu="$gtk_libs $libs_softmmu" ++ libs_softmmu="$gtk_libs -lintl $libs_softmmu" + gtk="yes" + elif test "$gtk" = "yes"; then + feature_not_found "gtk" "Install gtk2 or gtk3 devel" +@@ -3643,15 +3643,18 @@ if compile_prog "" "" ; then fi # Check if tools are available to build documentation. --if test "$build_docs" = "yes" -a \( ! -x "`which texi2html 2>/dev/null`" -o ! -x "`which pod2man 2>/dev/null`" \) ; then -- build_docs="no" --fi -+#if test "$build_docs" = "yes" -a \( ! -x "`which texi2html 2>/dev/null`" -o ! -x "`which pod2man 2>/dev/null`" \) ; then -+# build_docs="no" ++#if test "$docs" != "no" ; then ++# if has makeinfo && has pod2man; then ++# docs=yes ++# else ++# if test "$docs" = "yes" ; then ++# feature_not_found "docs" "Install texinfo and Perl/perl-podlators" ++# fi ++# docs=no ++# fi +#fi + if test "$docs" != "no" ; then +- if has makeinfo && has pod2man; then +- docs=yes +- else +- if test "$docs" = "yes" ; then +- feature_not_found "docs" "Install texinfo and Perl/perl-podlators" +- fi +- docs=no +- fi ++ docs=yes + fi + + # Search for bswap_32 function +@@ -3793,6 +3796,17 @@ fi - ########################################## - # Do we need librt -@@ -1760,6 +1761,7 @@ - echo "CONFIG_CURL=y" >> $config_host_mak - echo "CURL_LIBS=$curl_libs" >> $config_host_mak - echo "#define CONFIG_CURL 1" >> $config_host_h -+ echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak + # check for libusb + if test "$libusb" != "no" ; then ++ cat > $TMPC << EOF ++#include <libusb.h> ++ ++int main(void) { return libusb_get_port_path(NULL, NULL, NULL, 0); } ++EOF ++ if compile_prog "-Werror" "-lusb -pthread" ; then ++ libusb="yes" ++ libusb_cflags="" ++ libusb_libs=-lusb ++ libs_softmmu="$libs_softmmu $libusb_libs" ++ else + if $pkg_config --atleast-version=1.0.13 libusb-1.0; then + libusb="yes" + libusb_cflags=$($pkg_config --cflags libusb-1.0) +@@ -3805,6 +3819,7 @@ if test "$libusb" != "no" ; then + fi + libusb="no" + fi ++ fi fi - if test "$brlapi" = "yes" ; then - echo "CONFIG_BRLAPI=y" >> $config_host_mak + + # check for usbredirparser for usb network redirection support Added: head/emulators/qemu/files/patch-disas_libvixl_a64_disasm-a64.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/qemu/files/patch-disas_libvixl_a64_disasm-a64.cc Wed Dec 16 14:15:19 2015 (r403864) @@ -0,0 +1,11 @@ +--- disas/libvixl/a64/disasm-a64.cc.orig 2015-11-03 20:01:31 UTC ++++ disas/libvixl/a64/disasm-a64.cc +@@ -1362,7 +1362,7 @@ void Disassembler::AppendPCRelativeOffse + int64_t offset) { + USE(instr); + char sign = (offset < 0) ? '-' : '+'; +- AppendToOutput("#%c0x%" PRIx64, sign, std::abs(offset)); ++ AppendToOutput("#%c0x%" PRIx64, sign, offset < 0 ? -offset : offset); + } + + Added: head/emulators/qemu/files/patch-include_net_net.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/qemu/files/patch-include_net_net.h Wed Dec 16 14:15:19 2015 (r403864) @@ -0,0 +1,13 @@ +--- include/net/net.h.orig 2015-11-03 20:01:34 UTC ++++ include/net/net.h +@@ -202,8 +202,8 @@ void qmp_netdev_add(QDict *qdict, QObjec + int net_hub_id_for_client(NetClientState *nc, int *id); + NetClientState *net_hub_port_find(int hub_id); + +-#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup" +-#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown" ++#define DEFAULT_NETWORK_SCRIPT PREFIX "/etc/qemu-ifup" ++#define DEFAULT_NETWORK_DOWN_SCRIPT PREFIX "/etc/qemu-ifdown" + #define DEFAULT_BRIDGE_HELPER CONFIG_QEMU_HELPERDIR "/qemu-bridge-helper" + #define DEFAULT_BRIDGE_INTERFACE "br0" + Added: head/emulators/qemu/files/patch-include_qemu-common.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/qemu/files/patch-include_qemu-common.h Wed Dec 16 14:15:19 2015 (r403864) @@ -0,0 +1,12 @@ +--- include/qemu-common.h.orig 2015-11-03 20:01:34 UTC ++++ include/qemu-common.h +@@ -568,7 +568,9 @@ void qemu_hexdump(const char *buf, FILE + #define VEC_OR(v1, v2) ((v1) | (v2)) + /* altivec.h may redefine the bool macro as vector type. + * Reset it to POSIX semantics. */ ++#ifndef __cplusplus + #define bool _Bool ++#endif + #elif defined __SSE2__ + #include <emmintrin.h> + #define VECTYPE __m128i Added: head/emulators/qemu/files/patch-net_tap-bsd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/qemu/files/patch-net_tap-bsd.c Wed Dec 16 14:15:19 2015 (r403864) @@ -0,0 +1,10 @@ +--- net/tap-bsd.c.orig 2015-11-03 20:01:34 UTC ++++ net/tap-bsd.c +@@ -29,6 +29,7 @@ + + #if defined(__NetBSD__) || defined(__FreeBSD__) + #include <sys/ioctl.h> ++#include <sys/socket.h> + #include <net/if.h> + #include <net/if_tap.h> + #endif Added: head/emulators/qemu/files/patch-qemu-char.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/qemu/files/patch-qemu-char.c Wed Dec 16 14:15:19 2015 (r403864) @@ -0,0 +1,19 @@ +--- qemu-char.c.orig 2015-12-16 00:54:18 UTC ++++ qemu-char.c +@@ -1507,10 +1507,14 @@ static void tty_serial_init(int fd, int + cfsetospeed(&tty, spd); + + tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP +- |INLCR|IGNCR|ICRNL|IXON); +- tty.c_oflag |= OPOST; ++ |INLCR|IGNCR|ICRNL|IXON|IMAXBEL); ++ tty.c_oflag &= ~OPOST; /* Don't do any output processing! */ + tty.c_lflag &= ~(ECHO|ECHONL|ICANON|IEXTEN|ISIG); + tty.c_cflag &= ~(CSIZE|PARENB|PARODD|CRTSCTS|CSTOPB); ++#ifdef __FreeBSD__ ++ cfmakeraw(&tty); ++#endif ++ + switch(data_bits) { + default: + case 8: Modified: head/emulators/qemu/files/patch-qemu-doc.texi ============================================================================== --- head/emulators/qemu/files/patch-qemu-doc.texi Wed Dec 16 14:11:42 2015 (r403863) +++ head/emulators/qemu/files/patch-qemu-doc.texi Wed Dec 16 14:15:19 2015 (r403864) @@ -1,5 +1,6 @@ -Index: qemu/qemu-doc.texi -@@ -985,7 +985,8 @@ +--- qemu-doc.texi.orig 2015-11-03 20:01:35 UTC ++++ qemu-doc.texi +@@ -355,7 +355,8 @@ Send Ctrl-a @c man begin SEEALSO The HTML documentation of QEMU for more precise information and Linux Added: head/emulators/qemu/files/patch-slirp_slirp__config.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/qemu/files/patch-slirp_slirp__config.h Wed Dec 16 14:15:19 2015 (r403864) @@ -0,0 +1,38 @@ +--- slirp/slirp_config.h.orig 2015-11-03 20:01:35 UTC ++++ slirp/slirp_config.h +@@ -83,7 +83,7 @@ + //#undef HOST_WORDS_BIGENDIAN + + /* Define if you have readv */ +-#undef HAVE_READV ++#define HAVE_READV + + /* Define if iovec needs to be declared */ + #undef DECLARE_IOVEC +@@ -92,7 +92,7 @@ + #endif + + /* Define if you have a POSIX.1 sys/wait.h */ +-#undef HAVE_SYS_WAIT_H ++#define HAVE_SYS_WAIT_H + + /* Define if you have sys/select.h */ + #undef HAVE_SYS_SELECT_H +@@ -110,7 +110,7 @@ + #endif + + /* Define if you have sys/signal.h */ +-#undef HAVE_SYS_SIGNAL_H ++#define HAVE_SYS_SIGNAL_H + + /* Define if you have sys/stropts.h */ + #undef HAVE_SYS_STROPTS_H +@@ -179,7 +179,7 @@ + #undef HAVE_GRANTPT + + /* Define if you have fchmod */ +-#undef HAVE_FCHMOD ++#define HAVE_FCHMOD + + /* Define if you have <sys/type32.h> */ + #undef HAVE_SYS_TYPES32_H Added: head/emulators/qemu/files/patch-ui_x__keymap.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/qemu/files/patch-ui_x__keymap.c Wed Dec 16 14:15:19 2015 (r403864) @@ -0,0 +1,15 @@ +--- ui/x_keymap.c.orig 2015-12-16 00:59:05 UTC ++++ ui/x_keymap.c +@@ -43,9 +43,9 @@ static const uint8_t x_keycode_to_pc_key + 0xb5, /* 112 Divide */ + 0xb8, /* 113 Alt-R */ + 0xc6, /* 114 Break */ +- 0x0, /* 115 */ +- 0x0, /* 116 */ +- 0x0, /* 117 */ ++ 0xdb, /* 115 left windows key */ ++ 0xdc, /* 116 right windows key */ ++ 0xdd, /* 117 right menu key */ + 0x0, /* 118 */ + 0x0, /* 119 */ + 0x0, /* 120 */ Modified: head/emulators/qemu/files/pcap-patch ============================================================================== --- head/emulators/qemu/files/pcap-patch Wed Dec 16 14:11:42 2015 (r403863) +++ head/emulators/qemu/files/pcap-patch Wed Dec 16 14:15:19 2015 (r403864) @@ -1,47 +1,33 @@ ---- Makefile.target.orig 2010-01-29 14:39:26.000000000 -0500 -+++ Makefile.target 2010-01-29 14:39:28.000000000 -0500 -@@ -616,6 +616,13 @@ ifdef CONFIG_COREAUDIO - COCOA_LIBS+=-framework CoreAudio - endif - endif -+ifdef CONFIG_PCAP -+ifdef CONFIG_WIN32 -+LIBS+=-lwpcap -+else -+LIBS+=-lpcap -+endif -+endif - ifdef CONFIG_SLIRP - CPPFLAGS+=-I$(SRC_PATH)/slirp - endif ---- configure.orig 2010-01-29 14:39:26.000000000 -0500 -+++ configure 2010-01-29 14:39:27.000000000 -0500 -@@ -203,6 +203,9 @@ sdl="yes" - sdl_x11="no" - xen="yes" - pkgversion="" +--- configure.orig 2015-08-11 19:11:05 UTC ++++ configure +@@ -338,6 +338,9 @@ libssh2="" + vhdx="" + numa="" + tcmalloc="no" +pcap="no" +pcap_create="no" +bpf="no" - # OS specific - if check_define __linux__ ; then -@@ -428,6 +431,8 @@ for opt do + # parse CC options first + for opt do +@@ -896,6 +899,10 @@ for opt do ;; - --disable-vnc-sasl) vnc_sasl="no" + --enable-vnc-png) vnc_png="yes" ;; + --enable-pcap) pcap="yes" + ;; ++ --disable-pcap) pcap="no" ++ ;; --disable-slirp) slirp="no" ;; - --disable-vde) vde="no" -@@ -925,6 +930,48 @@ EOF + --disable-uuid) uuid="no" +@@ -2354,6 +2361,51 @@ EOF fi ########################################## +# pcap probe + -+if test "$pcap" = "yes" ; then ++if test "$pcap" = "yes" -a "$pcap" != "no"; then + cat > $TMPC << EOF +#include <pcap.h> +int main(void) { return (pcap_lib_version() == (char *)0 ? 1 : 0); } @@ -51,7 +37,9 @@ + else + libpcap=-lwpcap + fi -+ if ! $cc $ARCH_CFLAGS -o $TMPE $libpcap $TMPC 2> /dev/null ; then ++ if compile_prog "" "$libpcap" ; then ++ : ++ else + echo + echo "Error: Could not find pcap" + echo "Make sure to have the pcap libs and headers installed." @@ -66,7 +54,7 @@ + return (pcap_create("foo", errbuf) == (pcap_t *)0 ? 1 : 0); +} +EOF -+ if $cc $ARCH_CFLAGS -o $TMPE $libpcap $TMPC 2> /dev/null ; then ++ if compile_prog "" "$libpcap" ; then + pcap_create="yes" + fi + cat > $TMPC << EOF @@ -75,72 +63,111 @@ +#include <net/bpf.h> +int main(void) { return (BPF_MAJOR_VERSION); } +EOF -+ if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then ++ if compile_prog ; then + bpf="yes" + fi ++ libs_softmmu="$libpcap $libs_softmmu" +fi # test "$pcap" + +########################################## - # VNC TLS detection - if test "$vnc_tls" = "yes" ; then - cat > $TMPC <<EOF -@@ -1436,6 +1483,7 @@ if test "$vnc_sasl" = "yes" ; then - echo " SASL CFLAGS $vnc_sasl_cflags" - echo " SASL LIBS $vnc_sasl_libs" - fi + # VNC TLS/WS detection + if test "$vnc" = "yes" -a "$vnc_tls" != "no" ; then + cat > $TMPC <<EOF +@@ -4515,6 +4567,7 @@ echo "Audio drivers $audio_drv_list" + echo "Block whitelist (rw) $block_drv_rw_whitelist" + echo "Block whitelist (ro) $block_drv_ro_whitelist" + echo "VirtFS support $virtfs" +echo "pcap support $pcap" - if test -n "$sparc_cpu"; then - echo "Target Sparc Arch $sparc_cpu" - fi -@@ -1589,6 +1637,16 @@ fi - if test $profiler = "yes" ; then - echo "#define CONFIG_PROFILER 1" >> $config_host_h + echo "VNC support $vnc" + if test "$vnc" = "yes" ; then + echo "VNC TLS support $vnc_tls" +@@ -4692,6 +4745,15 @@ fi + if test "$profiler" = "yes" ; then + echo "CONFIG_PROFILER=y" >> $config_host_mak fi +if test "$pcap" = "yes" ; then -+ echo "CONFIG_PCAP=yes" >> $config_host_mak -+ echo "#define CONFIG_PCAP 1" >> $config_host_h ++ echo "CONFIG_PCAP=y" >> $config_host_mak + if test "$pcap_create" = "yes" ; then -+ echo "#define HAVE_PCAP_CREATE 1" >> $config_host_h ++ echo "CONFIG_PCAP_CREATE=y" >> $config_host_mak + fi + if test "$bpf" = "yes" ; then -+ echo "#define HAVE_BPF 1" >> $config_host_h ++ echo "CONFIG_BPF=y" >> $config_host_mak + fi +fi if test "$slirp" = "yes" ; then echo "CONFIG_SLIRP=y" >> $config_host_mak - echo "#define CONFIG_SLIRP 1" >> $config_host_h -Index: net.c -@@ -688,6 +688,201 @@ static void config_error(Monitor *mon, c - va_end(ap); + echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak +--- net/clients.h.orig 2015-08-11 19:11:09 UTC ++++ net/clients.h +@@ -49,6 +49,12 @@ int net_init_bridge(const NetClientOptio + + int net_init_l2tpv3(const NetClientOptions *opts, const char *name, + NetClientState *peer, Error **errp); ++ ++#ifdef CONFIG_PCAP ++int net_init_pcap(const NetClientOptions *opts, const char *name, ++ NetClientState *peer); ++#endif ++ + #ifdef CONFIG_VDE + int net_init_vde(const NetClientOptions *opts, const char *name, + NetClientState *peer, Error **errp); +--- net/hub.c.orig 2015-08-11 19:11:09 UTC ++++ net/hub.c +@@ -322,6 +322,7 @@ void net_hub_check_clients(void) + case NET_CLIENT_OPTIONS_KIND_SOCKET: + case NET_CLIENT_OPTIONS_KIND_VDE: + case NET_CLIENT_OPTIONS_KIND_VHOST_USER: ++ case NET_CLIENT_OPTIONS_KIND_PCAP: + has_host_dev = 1; + break; + default: +--- net/net.c.orig 2015-08-11 19:11:09 UTC ++++ net/net.c +@@ -45,6 +45,11 @@ + #include "qapi/dealloc-visitor.h" + #include "sysemu/sysemu.h" + ++#include <sys/ioctl.h> ++#ifdef __FreeBSD__ ++#include <net/if.h> ++#endif ++ + /* Net bridge is currently not supported for W32. */ + #if !defined(_WIN32) + # define CONFIG_NET_BRIDGE +@@ -880,6 +885,221 @@ static int net_init_nic(const NetClientO + return idx; } +#if defined(CONFIG_PCAP) -+#if defined(HAVE_BPF) ++#if defined(CONFIG_BPF) +#define PCAP_DONT_INCLUDE_PCAP_BPF_H +#include <net/bpf.h> +#endif +#include <pcap.h> + -+typedef struct PCAPState { -+ VLANClientState *vc; -+ pcap_t *handle; -+ int max_eth_frame_size; -+} PCAPState; ++struct PCAPState { ++ NetClientState nc; ++ pcap_t *handle; ++ int max_eth_frame_size; ++}; + -+static ssize_t pcap_receive(VLANClientState *vc, const uint8_t *buf, size_t size) ++static ssize_t pcap_receive(NetClientState *nc, const uint8_t *buf, size_t size) +{ -+ PCAPState *s = (PCAPState *)vc->opaque; ++ struct PCAPState *s = DO_UPCAST(struct PCAPState, nc, nc); + + return pcap_inject(s->handle, (u_char*)buf, size); +} + -+static void pcap_callback(u_char *user, struct pcap_pkthdr *phdr, u_char *pdata) ++static void pcap_callback(u_char *user, struct pcap_pkthdr *phdr, u_char *pdata ++ ) +{ -+ VLANClientState *vc = (VLANClientState *)user; ++ NetClientState *nc = (NetClientState *)user; + + int len = phdr->len; +#ifdef __FreeBSD__ -+ PCAPState *s = vc->opaque; ++ struct PCAPState *s = DO_UPCAST(struct PCAPState, nc, nc); + int max_eth_frame_size = s->max_eth_frame_size; + + if (len > max_eth_frame_size) { @@ -150,42 +177,63 @@ Index: net.c + len = max_eth_frame_size; + } +#endif -+ qemu_send_packet(vc, pdata, len); ++ qemu_send_packet(nc, pdata, len); +} + +static void pcap_send(void *opaque) +{ -+ PCAPState *s = (PCAPState *)opaque; ++ struct PCAPState *s = (struct PCAPState *)opaque; + + for (;;) { -+ if (pcap_dispatch(s->handle, 0, (pcap_handler)&pcap_callback, (u_char *)s->vc) >= 0) ++ if (pcap_dispatch(s->handle, 0, (pcap_handler)&pcap_callback, (u_char *)&s->nc) >= 0) + break; + } +} + -+static void pcap_cleanup(VLANClientState *vc) ++static void pcap_cleanup(NetClientState *nc) +{ -+ PCAPState *s = vc->opaque; ++ struct PCAPState *s = DO_UPCAST(struct PCAPState, nc, nc); + ++ qemu_purge_queued_packets(nc); + pcap_close(s->handle); -+ qemu_free(s); +} + -+static int net_pcap_init(VLANState *vlan, const char *model, const char *name, char *ifname) ++static NetClientInfo net_pcap_info = { ++ .type = NET_CLIENT_OPTIONS_KIND_PCAP, ++ .size = sizeof(struct PCAPState), ++ .receive = pcap_receive, ++// .receive_raw = pcap_receive_raw, ++// .receive_iov = pcap_receive_iov, ++// .poll = pcap_poll, ++ .cleanup = pcap_cleanup, ++}; ++/* ++ * ... -net pcap,ifname="..." ++ */ ++ ++int net_init_pcap(const NetClientOptions *opts, const char *name, NetClientState *peer) +{ -+ PCAPState *s = NULL; ++ const NetdevPcapOptions *pcap_opts = opts->pcap; ++ NetClientState *nc; ++ struct PCAPState *s; ++ const char *ifname; + char errbuf[PCAP_ERRBUF_SIZE]; +#if defined(_WIN32) + HANDLE h; +#endif + int i; + -+ s = qemu_mallocz(sizeof(PCAPState)); -+ if (!s) ++ if (!pcap_opts->has_ifname) + return -1; + ++ ifname = pcap_opts->ifname; ++ ++ /* create the object */ ++ nc = qemu_new_net_client(&net_pcap_info, peer, "pcap", ifname); ++ s = DO_UPCAST(struct PCAPState, nc, nc); ++ + if (ifname == NULL && (ifname = pcap_lookupdev(errbuf)) == NULL) { -+ fprintf(stderr, "qemu: pcap_lookupdev: %s\n", errbuf); ++ fprintf(stderr, "qemu: pcap_create: %s\n", errbuf); + goto fail; + } + @@ -208,7 +256,8 @@ Index: net.c + close(i); + } +#endif -+#if defined(HAVE_PCAP_CREATE) || defined(_WIN32) ++ ++#if defined(CONFIG_PCAP_CREATE) || defined(_WIN32) + /* + * Create pcap handle for the device, set promiscuous mode and activate. + */ @@ -218,11 +267,11 @@ Index: net.c + goto fail; + } + if (pcap_set_promisc(s->handle, 1) != 0) { -+ pcap_perror(s->handle, "qemu: pcap_set_promisc:"); ++ pcap_perror(s->handle, (char *)"qemu: pcap_set_promisc:"); + goto fail; + } + if (pcap_activate(s->handle) != 0) { -+ pcap_perror(s->handle, "qemu: pcap_activate:"); ++ pcap_perror(s->handle, (char *)"qemu: pcap_activate:"); + goto fail; + } +#else @@ -249,7 +298,7 @@ Index: net.c + goto fail; + } +#else /* !_WIN32 */ -+#if defined(HAVE_BPF) ++#if defined(CONFIG_BPF) +#if defined(BIOCIMMEDIATE) + /* + * Tell the kernel that the packet has to be seen immediately. @@ -262,7 +311,6 @@ Index: net.c + } + } +#endif /* BIOCIMMEDIATE */ -+ +#if defined(BIOCFEEDBACK) + /* + * Tell the kernel that the sent packet has to be fed back. @@ -276,11 +324,10 @@ Index: net.c + } + } +#endif /* BIOCFEEDBACK */ -+#endif /* HAVE_BPF */ ++#endif /* CONFIG_BPF */ +#endif /* _WIN32 */ + -+ s->vc = qemu_new_vlan_client(vlan, model, name, NULL, pcap_receive, NULL, pcap_cleanup, s); -+ snprintf(s->vc->info_str, sizeof(s->vc->info_str), "pcap redirector"); ++ snprintf(s->nc.info_str, sizeof(s->nc.info_str), "pcap redirector"); + +#if defined(_WIN32) + if ((h = pcap_getevent(s->handle)) == NULL) { @@ -302,43 +349,43 @@ Index: net.c + if (s) { + if (s->handle) + pcap_close(s->handle); -+ qemu_free(s); + } + + return -1; +} -+#endif /* CONFIG_PCAP */ + - #if defined(CONFIG_SLIRP) - - /* slirp network adapter */ -@@ -2596,6 +2791,16 @@ int net_client_init(Monitor *mon, const - are wanted */ - ret = 0; - } else -+#ifdef CONFIG_PCAP -+ if (!strcmp(device, "pcap")) { -+ char ifname[64]; -+ vlan->nb_host_devs++; -+ if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) -+ ret = net_pcap_init(vlan, device, name, NULL); -+ else -+ ret = net_pcap_init(vlan, device, name, ifname); -+ } else +#endif - #ifdef CONFIG_SLIRP - if (!strcmp(device, "user")) { - static const char * const slirp_params[] = { ---- qemu-options.hx.orig 2009-12-02 15:27:02.000000000 -0500 *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201512161415.tBGEFJqi052300>