Index: head/emulators/qemu-devel/Makefile =================================================================== --- head/emulators/qemu-devel/Makefile (revision 416074) +++ head/emulators/qemu-devel/Makefile (revision 416075) @@ -1,150 +1,153 @@ # Created by: Juergen Lock # $FreeBSD$ PORTNAME= qemu -DISTVERSION= 2.5.0 -PORTREVISION= 5 +DISTVERSION= 2.6.0 CATEGORIES= emulators MASTER_SITES= http://wiki.qemu.org/download/ PKGNAMESUFFIX= -devel MAINTAINER= bofh@FreeBSD.org COMMENT= QEMU CPU Emulator - development version LICENSE= GPLv2 HAS_CONFIGURE= yes USES= cpe gmake pkgconfig bison perl5 python:2,build tar:bzip2 USE_PERL5= build -USE_XORG= pixman -USE_GNOME+= glib20 +USE_XORG= pixman x11 xext +USE_GNOME+= cairo gdkpixbuf2 glib20 MAKE_ENV+= BSD_MAKE="${MAKE}" ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 # XXX someone wants to debug sparc64 hosts? OPTIONS_DEFINE= SAMBA X11 GTK2 OPENGL GNUTLS SASL JPEG PNG CURL \ CDROM_DMA PCAP USBREDIR GNS3 X86_TARGETS \ STATIC_LINK DOCS SAMBA_DESC= samba dependency (for -smb) GNUTLS_DESC= gnutls dependency (vnc encryption) 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 PCAP_DESC= pcap dependency (networking with bpf) USBREDIR_DESC= usb device network redirection (experimental!) GNS3_DESC= gns3 patches (promiscuous multicast) X86_TARGETS_DESC= Build only x86 system targets 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:security/gnutls GNUTLS_CONFIGURE_OFF= --disable-gnutls SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 SASL_CONFIGURE_OFF= --disable-vnc-sasl JPEG_USES= jpeg JPEG_CONFIGURE_OFF= --disable-vnc-jpeg PNG_LIB_DEPENDS= libpng.so:graphics/png PNG_CONFIGURE_OFF= --disable-vnc-png CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_CONFIGURE_OFF= --disable-curl OPENGL_USE= GL=yes OPENGL_CONFIGURE_OFF= --disable-opengl USBREDIR_BUILD_DEPENDS= usbredir>=0.6:net/usbredir USBREDIR_RUN_DEPENDS= usbredir>=0.6:net/usbredir USBREDIR_CONFIGURE_OFF= --disable-usb-redir PCAP_CONFIGURE_ON= --enable-pcap -PCAP_EXTRA_PATCHES= ${FILESDIR}/pcap-patch +PCAP_EXTRA_PATCHES= ${FILESDIR}/pcap-patch ${FILESDIR}/pcap-patch-net_net.c STATIC_LINK_CONFIGURE_ON= --static STATIC_LINK_PREVENTS= GTK2 X11 STATIC_LINK_PREVENTS_MSG= X11 ui cannot be built static SAMBA_RUN_DEPENDS= ${LOCALBASE}/sbin/smbd:net/samba36 DOCS_BUILD_DEPENDS= texi2html:textproc/texi2html DOCS_USES= makeinfo DOCS_MAKE_ARGS_OFF= NOPORTDOCS=1 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+=--localstatedir=/var --extra-ldflags=-L\"${LOCALBASE}/lib\" \ --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}\\\"\" + +LIB_DEPENDS+= libnettle.so:security/nettle \ + libfontconfig.so:x11-fonts/fontconfig \ + libfreetype.so:print/freetype2 .include .if !defined(STRIP) || ${STRIP} == "" CONFIGURE_ARGS+=--disable-strip .endif .if ${ARCH} == "amd64" MAKE_ARGS+= ARCH=x86_64 .endif .if ${ARCH} == "powerpc" MAKE_ARGS+= ARCH=ppc .endif .if ${ARCH} == "powerpc64" MAKE_ARGS+= ARCH=ppc64 .endif .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 @${REINPLACE_CMD} -E \ -e "s|^(CFLAGS=).*|\1${CFLAGS} -fno-strict-aliasing|" \ -e "s|^(LDFLAGS=).*|\1${LDFLAGS}|" \ ${WRKSRC}/Makefile.target @${REINPLACE_CMD} -E \ -e "s|^(CFLAGS=).*|\1${CFLAGS} -fno-strict-aliasing -I.|" \ -e "s|^(LDFLAGS=).*|\1${LDFLAGS}|" \ ${WRKSRC}/Makefile @${REINPLACE_CMD} -E \ -e "1s|^(#! )/usr/bin/perl|\1${PERL}|" \ ${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 # XXX need to disable usb host code on head while it's not ported to the # new usb stack yet post-configure: @${REINPLACE_CMD} -E \ -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-* @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/ivshmem-* post-install-DOCS-on: @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${DOCSDIR}/) .endif .include Index: head/emulators/qemu-devel/distinfo =================================================================== --- head/emulators/qemu-devel/distinfo (revision 416074) +++ head/emulators/qemu-devel/distinfo (revision 416075) @@ -1,2 +1,3 @@ -SHA256 (qemu-2.5.0.tar.bz2) = 3443887401619fe33bfa5d900a4f2d6a79425ae2b7e43d5b8c36eb7a683772d4 -SIZE (qemu-2.5.0.tar.bz2) = 25464996 +TIMESTAMP = 1464473023 +SHA256 (qemu-2.6.0.tar.bz2) = c9ac4a651b273233d21b8bec32e30507cb9cce7900841febc330956a1a8434ec +SIZE (qemu-2.6.0.tar.bz2) = 25755267 Index: head/emulators/qemu-devel/files/patch-include_qemu-common.h =================================================================== --- head/emulators/qemu-devel/files/patch-include_qemu-common.h (revision 416074) +++ head/emulators/qemu-devel/files/patch-include_qemu-common.h (nonexistent) @@ -1,12 +0,0 @@ ---- include/qemu-common.h.orig 2015-11-03 20:01:34 UTC -+++ include/qemu-common.h -@@ -469,7 +469,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 - #define VECTYPE __m128i Property changes on: head/emulators/qemu-devel/files/patch-include_qemu-common.h ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/qemu-devel/files/patch-disas_libvixl_a64_disasm-a64.cc =================================================================== --- head/emulators/qemu-devel/files/patch-disas_libvixl_a64_disasm-a64.cc (revision 416074) +++ head/emulators/qemu-devel/files/patch-disas_libvixl_a64_disasm-a64.cc (nonexistent) @@ -1,11 +0,0 @@ ---- 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); - } - - Property changes on: head/emulators/qemu-devel/files/patch-disas_libvixl_a64_disasm-a64.cc ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/emulators/qemu-devel/files/patch-Makefile =================================================================== --- head/emulators/qemu-devel/files/patch-Makefile (revision 416074) +++ head/emulators/qemu-devel/files/patch-Makefile (revision 416075) @@ -1,25 +1,25 @@ ---- Makefile.orig 2015-12-17 20:32:52 UTC +--- Makefile.orig 2016-04-14 20:19:53 UTC +++ Makefile -@@ -90,7 +90,11 @@ +@@ -90,7 +90,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 qemu-ga.8 +else DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 qemu-ga.8 +endif DOCS+=qmp-commands.txt ifdef CONFIG_LINUX DOCS+=kvm_stat.1 -@@ -407,8 +411,10 @@ +@@ -410,8 +414,10 @@ endif install-doc: $(DOCS) $(INSTALL_DIR) "$(DESTDIR)$(qemu_docdir)" +ifndef NOPORTDOCS $(INSTALL_DATA) qemu-doc.html qemu-tech.html "$(DESTDIR)$(qemu_docdir)" $(INSTALL_DATA) qmp-commands.txt "$(DESTDIR)$(qemu_docdir)" +endif ifdef CONFIG_POSIX $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1" $(INSTALL_DATA) qemu.1 "$(DESTDIR)$(mandir)/man1" Index: head/emulators/qemu-devel/files/patch-configure =================================================================== --- head/emulators/qemu-devel/files/patch-configure (revision 416074) +++ head/emulators/qemu-devel/files/patch-configure (revision 416075) @@ -1,61 +1,192 @@ ---- configure.orig 2015-12-16 20:50:32 UTC +--- configure.orig 2016-04-14 20:19:53 UTC +++ configure -@@ -276,7 +276,7 @@ DSOSUF=".so" +@@ -245,7 +245,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" -@@ -2241,7 +2241,7 @@ if test "$gtk" != "no"; then +@@ -316,6 +316,10 @@ virglrenderer="" + tpm="yes" + libssh2="" + vhdx="" ++quorum="no" ++pcap="no" ++pcap_create="no" ++bpf="no" + numa="" + tcmalloc="no" + jemalloc="no" +@@ -575,7 +579,7 @@ FreeBSD) + audio_drv_list="oss" + audio_possible_drivers="oss sdl pa" + # needed for kinfo_getvmmap(3) in libutil.h +- LIBS="-lutil $LIBS" ++ LIBS="-lprocstat -lkvm -lelf -lutil $LIBS" + netmap="" # enable netmap autodetect + HOST_VARIANT_DIR="freebsd" + ;; +@@ -878,6 +882,10 @@ for opt do + ;; + --enable-vnc-png) vnc_png="yes" + ;; ++ --enable-pcap) pcap="yes" ++ ;; ++ --disable-pcap) pcap="no" ++ ;; + --disable-slirp) slirp="no" + ;; + --disable-uuid) uuid="no" +@@ -2157,7 +2165,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" -@@ -3864,14 +3864,7 @@ fi +@@ -2384,6 +2392,14 @@ if ! check_include "ifaddrs.h" ; then + fi + ########################################## ++# getifaddrs (for tests/test-io-channel-socket ) ++ ++have_ifaddrs_h=yes ++if ! check_include "ifaddrs.h" ; then ++ have_ifaddrs_h=no ++fi ++ ++########################################## + # VTE probe + + if test "$vte" != "no"; then +@@ -2526,6 +2542,50 @@ EOF + fi + fi + ++########################################## ++# pcap probe ++ ++if test "$pcap" = "yes" -a "$pcap" != "no"; then ++ cat > $TMPC << EOF ++#include ++int main(void) { return (pcap_lib_version() == (char *)0 ? 1 : 0); } ++EOF ++ if test "$mingw32" = "no" ; then ++ libpcap=-lpcap ++ else ++ libpcap=-lwpcap ++ fi ++ if compile_prog "" "$libpcap" ; then ++ : ++ else ++ echo ++ echo "Error: Could not find pcap" ++ echo "Make sure to have the pcap libs and headers installed." ++ echo ++ exit 1 ++ fi ++ cat > $TMPC << EOF ++#include ++int main(void) ++{ ++ char errbuf[PCAP_ERRBUF_SIZE]; ++ return (pcap_create("foo", errbuf) == (pcap_t *)0 ? 1 : 0); ++} ++EOF ++ if compile_prog "" "$libpcap" ; then ++ pcap_create="yes" ++ fi ++ cat > $TMPC << EOF ++#define PCAP_DONT_INCLUDE_PCAP_BPF_H ++#include ++#include ++int main(void) { return (BPF_MAJOR_VERSION); } ++EOF ++ if compile_prog ; then ++ bpf="yes" ++ fi ++ libs_softmmu="$libpcap $libs_softmmu" ++fi # test "$pcap" + + ########################################## + # VNC SASL detection +@@ -3857,14 +3917,7 @@ fi + # Check if tools are available to build documentation. 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 # Search for bswap_32 function -@@ -3999,6 +3992,17 @@ fi +@@ -3992,6 +4045,17 @@ fi # check for libusb if test "$libusb" != "no" ; then + cat > $TMPC << EOF +#include + +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) -@@ -4011,6 +4015,7 @@ if test "$libusb" != "no" ; then +@@ -4004,6 +4068,7 @@ if test "$libusb" != "no" ; then fi libusb="no" fi + fi fi # check for usbredirparser for usb network redirection support +@@ -4769,6 +4834,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" + echo "VNC support $vnc" + if test "$vnc" = "yes" ; then + echo "VNC SASL support $vnc_sasl" +@@ -4950,6 +5016,15 @@ fi + if test "$profiler" = "yes" ; then + echo "CONFIG_PROFILER=y" >> $config_host_mak + fi ++if test "$pcap" = "yes" ; then ++ echo "CONFIG_PCAP=y" >> $config_host_mak ++ if test "$pcap_create" = "yes" ; then ++ echo "CONFIG_PCAP_CREATE=y" >> $config_host_mak ++ fi ++ if test "$bpf" = "yes" ; then ++ echo "CONFIG_BPF=y" >> $config_host_mak ++ fi ++fi + if test "$slirp" = "yes" ; then + echo "CONFIG_SLIRP=y" >> $config_host_mak + echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak +@@ -5153,6 +5228,9 @@ fi + if test "$have_ifaddrs_h" = "yes" ; then + echo "HAVE_IFADDRS_H=y" >> $config_host_mak + fi ++if test "$have_ifaddrs_h" = "yes" ; then ++ echo "HAVE_IFADDRS_H=y" >> $config_host_mak ++fi + if test "$vte" = "yes" ; then + echo "CONFIG_VTE=y" >> $config_host_mak + echo "VTE_CFLAGS=$vte_cflags" >> $config_host_mak Index: head/emulators/qemu-devel/files/patch-disas_libvixl_vixl_a64_disasm-a64.cc =================================================================== --- head/emulators/qemu-devel/files/patch-disas_libvixl_vixl_a64_disasm-a64.cc (nonexistent) +++ head/emulators/qemu-devel/files/patch-disas_libvixl_vixl_a64_disasm-a64.cc (revision 416075) @@ -0,0 +1,11 @@ +--- disas/libvixl/vixl/a64/disasm-a64.cc.orig 2016-04-14 20:19:53 UTC ++++ disas/libvixl/vixl/a64/disasm-a64.cc +@@ -2693,7 +2693,7 @@ void Disassembler::AppendPCRelativeOffse + if (offset < 0) { + abs_offset = -abs_offset; + } +- AppendToOutput("#%c0x%" PRIx64, sign, abs_offset); ++ AppendToOutput("#%c0x%" PRIx64, sign, offset < 0 ? -offset : offset); + } + + Property changes on: head/emulators/qemu-devel/files/patch-disas_libvixl_vixl_a64_disasm-a64.cc ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/qemu-devel/files/pcap-patch =================================================================== --- head/emulators/qemu-devel/files/pcap-patch (revision 416074) +++ head/emulators/qemu-devel/files/pcap-patch (revision 416075) @@ -1,446 +1,48 @@ -configure ---- configure 2015-12-17 04:04:48.000000000 +0600 -+++ configure 2015-12-25 01:32:09.000000000 +0600 -@@ -342,6 +342,10 @@ - tpm="yes" - libssh2="" - vhdx="" -+quorum="no" -+pcap="no" -+pcap_create="no" -+bpf="no" - numa="" - tcmalloc="no" - jemalloc="no" -@@ -602,7 +606,7 @@ - audio_drv_list="oss" - audio_possible_drivers="oss sdl pa" - # needed for kinfo_getvmmap(3) in libutil.h -- LIBS="-lutil $LIBS" -+ LIBS="-lprocstat -lkvm -lelf -lutil $LIBS" - netmap="" # enable netmap autodetect - HOST_VARIANT_DIR="freebsd" - ;; -@@ -905,6 +909,10 @@ - ;; - --enable-vnc-png) vnc_png="yes" - ;; -+ --enable-pcap) pcap="yes" -+ ;; -+ --disable-pcap) pcap="no" -+ ;; - --disable-slirp) slirp="no" - ;; - --disable-uuid) uuid="no" -@@ -2427,6 +2435,14 @@ - - - ########################################## -+# getifaddrs (for tests/test-io-channel-socket ) -+ -+have_ifaddrs_h=yes -+if ! check_include "ifaddrs.h" ; then -+ have_ifaddrs_h=no -+fi -+ -+########################################## - # VTE probe - - if test "$vte" != "no"; then -@@ -2569,6 +2585,50 @@ - fi - fi - -+########################################## -+# pcap probe -+ -+if test "$pcap" = "yes" -a "$pcap" != "no"; then -+ cat > $TMPC << EOF -+#include -+int main(void) { return (pcap_lib_version() == (char *)0 ? 1 : 0); } -+EOF -+ if test "$mingw32" = "no" ; then -+ libpcap=-lpcap -+ else -+ libpcap=-lwpcap -+ fi -+ if compile_prog "" "$libpcap" ; then -+ : -+ else -+ echo -+ echo "Error: Could not find pcap" -+ echo "Make sure to have the pcap libs and headers installed." -+ echo -+ exit 1 -+ fi -+ cat > $TMPC << EOF -+#include -+int main(void) -+{ -+ char errbuf[PCAP_ERRBUF_SIZE]; -+ return (pcap_create("foo", errbuf) == (pcap_t *)0 ? 1 : 0); -+} -+EOF -+ if compile_prog "" "$libpcap" ; then -+ pcap_create="yes" -+ fi -+ cat > $TMPC << EOF -+#define PCAP_DONT_INCLUDE_PCAP_BPF_H -+#include -+#include -+int main(void) { return (BPF_MAJOR_VERSION); } -+EOF -+ if compile_prog ; then -+ bpf="yes" -+ fi -+ libs_softmmu="$libpcap $libs_softmmu" -+fi # test "$pcap" - - ########################################## - # VNC SASL detection -@@ -4758,7 +4833,11 @@ - echo "GNUTLS support $gnutls" - echo "GNUTLS hash $gnutls_hash" - echo "libgcrypt $gcrypt" --echo "nettle $nettle ${nettle+($nettle_version)}" -+if test "$nettle" = "yes"; then -+ echo "nettle $nettle ($nettle_version)" -+else -+ echo "nettle $nettle" -+fi - echo "libtasn1 $tasn1" - echo "VTE support $vte" - echo "curses support $curses" -@@ -4769,6 +4848,7 @@ - echo "Block whitelist (rw) $block_drv_rw_whitelist" - echo "Block whitelist (ro) $block_drv_ro_whitelist" - echo "VirtFS support $virtfs" -+echo "pcap support $pcap" - echo "VNC support $vnc" - if test "$vnc" = "yes" ; then - echo "VNC SASL support $vnc_sasl" -@@ -4947,6 +5027,15 @@ - if test "$profiler" = "yes" ; then - echo "CONFIG_PROFILER=y" >> $config_host_mak - fi -+if test "$pcap" = "yes" ; then -+ echo "CONFIG_PCAP=y" >> $config_host_mak -+ if test "$pcap_create" = "yes" ; then -+ echo "CONFIG_PCAP_CREATE=y" >> $config_host_mak -+ fi -+ if test "$bpf" = "yes" ; then -+ echo "CONFIG_BPF=y" >> $config_host_mak -+ fi -+fi - if test "$slirp" = "yes" ; then - echo "CONFIG_SLIRP=y" >> $config_host_mak - echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak -@@ -5137,6 +5226,9 @@ - if test "$tasn1" = "yes" ; then - echo "CONFIG_TASN1=y" >> $config_host_mak - fi -+if test "$have_ifaddrs_h" = "yes" ; then -+ echo "HAVE_IFADDRS_H=y" >> $config_host_mak -+fi - if test "$vte" = "yes" ; then - echo "CONFIG_VTE=y" >> $config_host_mak - echo "VTE_CFLAGS=$vte_cflags" >> $config_host_mak diff -ruN net/clients.h net/clients.h --- net/clients.h 2015-12-17 04:04:50.000000000 +0600 +++ net/clients.h 2015-12-25 01:32:09.000000000 +0600 @@ -47,6 +47,11 @@ int net_init_bridge(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, Error **errp); +#endif + int net_init_l2tpv3(const NetClientOptions *opts, const char *name, NetClientState *peer, Error **errp); #ifdef CONFIG_VDE diff -ruN net/hub.c net/hub.c --- net/hub.c 2015-12-17 04:04:50.000000000 +0600 +++ net/hub.c 2015-12-25 01:32:09.000000000 +0600 @@ -322,6 +322,7 @@ 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: -diff -ruN net/net.c net/net.c ---- net/net.c 2015-12-17 04:04:50.000000000 +0600 -+++ net/net.c 2015-12-25 01:32:09.000000000 +0600 -@@ -46,6 +46,11 @@ - #include "sysemu/sysemu.h" - #include "net/filter.h" - -+#include -+#ifdef __FreeBSD__ -+#include -+#endif -+ - /* Net bridge is currently not supported for W32. */ - #if !defined(_WIN32) - # define CONFIG_NET_BRIDGE -@@ -942,8 +947,224 @@ - return idx; - } - -+#if defined(CONFIG_PCAP) -+#if defined(CONFIG_BPF) -+#define PCAP_DONT_INCLUDE_PCAP_BPF_H -+#include -+#endif -+#include -+ -+struct PCAPState { -+ NetClientState nc; -+ pcap_t *handle; -+ int max_eth_frame_size; -+}; -+ -+static ssize_t pcap_receive(NetClientState *nc, const uint8_t *buf, size_t size) -+{ -+ 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 -+ ) -+{ -+ NetClientState *nc = (NetClientState *)user; -+ -+ int len = phdr->len; -+#ifdef __FreeBSD__ -+ 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) { -+ fprintf(stderr, -+ "pcap_send: packet size > %d (%d), truncating\n", -+ max_eth_frame_size, len); -+ len = max_eth_frame_size; -+ } -+#endif -+ qemu_send_packet(nc, pdata, len); -+} -+ -+static void pcap_send(void *opaque) -+{ -+ struct PCAPState *s = (struct PCAPState *)opaque; -+ -+ for (;;) { -+ if (pcap_dispatch(s->handle, 0, (pcap_handler)&pcap_callback, (u_char *)&s->nc) >= 0) -+ break; -+ } -+} -+ -+static void pcap_cleanup(NetClientState *nc) -+{ -+ struct PCAPState *s = DO_UPCAST(struct PCAPState, nc, nc); -+ -+ qemu_purge_queued_packets(nc); -+ pcap_close(s->handle); -+} -+ -+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, Error **errp) -+{ -+ const NetdevPcapOptions *pcap_opts = opts->u.pcap; -+ NetClientState *nc; -+ struct PCAPState *s; -+ const char *ifname; -+ char errbuf[PCAP_ERRBUF_SIZE]; -+#if defined(_WIN32) -+ HANDLE h; -+#endif -+ int i; -+ -+ 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_create: %s\n", errbuf); -+ goto fail; -+ } -+ -+#ifdef __FreeBSD__ -+ /* -+ * We want to avoid passing oversize packets to the guest, which -+ * at least on FreeBSD can happen if the host interface uses tso -+ * (seen with an em(4) in this case) - so find out the host -+ * interface's mtu and assume the guest is configured the same. -+ */ -+ s->max_eth_frame_size = 1514; -+ i = socket(AF_INET, SOCK_DGRAM, 0); -+ if (i >= 0) { -+ struct ifreq ifr; -+ -+ (void) memset(&ifr, 0, sizeof(ifr)); -+ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); -+ if (ioctl(i, SIOCGIFMTU, &ifr) != -1) -+ s->max_eth_frame_size = ifr.ifr_mtu + 14; -+ close(i); -+ } -+#endif -+ -+#if defined(CONFIG_PCAP_CREATE) || defined(_WIN32) -+ /* -+ * Create pcap handle for the device, set promiscuous mode and activate. -+ */ -+ s->handle = (void *)pcap_create(ifname, errbuf); -+ if (!s->handle) { -+ fprintf(stderr, "qemu: pcap_create: %s\n", errbuf); -+ goto fail; -+ } -+ if (pcap_set_promisc(s->handle, 1) != 0) { -+ pcap_perror(s->handle, (char *)"qemu: pcap_set_promisc:"); -+ goto fail; -+ } -+ if (pcap_activate(s->handle) != 0) { -+ pcap_perror(s->handle, (char *)"qemu: pcap_activate:"); -+ goto fail; -+ } -+#else -+ /* Attempt to connect device. */ -+ s->handle = (void *)pcap_open_live(ifname, 65535, 1, 0, errbuf); -+ if (!s->handle) { -+ fprintf(stderr, "qemu: pcap_open_live: %s\n", errbuf); -+ goto fail; -+ } -+#endif -+ -+ /* Set non-blocking mode. */ -+ if (pcap_setnonblock(s->handle, 1, errbuf) < 0) { -+ fprintf(stderr, "qemu: pcap_setnonblock: %s\n", errbuf); -+ goto fail; -+ } -+ -+#if defined(_WIN32) -+ /* -+ * Tell the kernel that the packet has to be seen immediately. -+ */ -+ if (pcap_setmintocopy(s->handle, 0) < 0) { -+ fprintf(stderr, "qemu: pcap failed to set immediate mode\n"); -+ goto fail; -+ } -+#else /* !_WIN32 */ -+#if defined(CONFIG_BPF) -+#if defined(BIOCIMMEDIATE) -+ /* -+ * Tell the kernel that the packet has to be seen immediately. -+ */ -+ { -+ unsigned int one = 1; -+ if (ioctl(pcap_fileno(s->handle), BIOCIMMEDIATE, &one) < 0) { -+ fprintf(stderr, "qemu: pcap failed to set immediate mode\n"); -+ goto fail; -+ } -+ } -+#endif /* BIOCIMMEDIATE */ -+#if defined(BIOCFEEDBACK) -+ /* -+ * Tell the kernel that the sent packet has to be fed back. -+ * This is necessary to connect host and guest. -+ */ -+ { -+ unsigned int one = 1; -+ if (ioctl(pcap_fileno(s->handle), BIOCFEEDBACK, &one) < 0) { -+ fprintf(stderr, "qemu: pcap failed to set feedback mode\n"); -+ goto fail; -+ } -+ } -+#endif /* BIOCFEEDBACK */ -+#endif /* CONFIG_BPF */ -+#endif /* _WIN32 */ -+ -+ snprintf(s->nc.info_str, sizeof(s->nc.info_str), "pcap redirector"); -+ -+#if defined(_WIN32) -+ if ((h = pcap_getevent(s->handle)) == NULL) { -+ fprintf(stderr, "qemu: pcap_getevent failed\n"); -+ goto fail; -+ } -+ qemu_add_wait_object(h, pcap_send, s); -+#else /* !_WIN32 */ -+ if ((i = pcap_get_selectable_fd(s->handle)) < 0) { -+ fprintf(stderr, "qemu: pcap_get_selectable_fd failed\n"); -+ goto fail; -+ } -+ qemu_set_fd_handler(i, pcap_send, NULL, s); -+#endif /* _WIN32 */ -+ -+ return 0; -+ -+fail: -+ if (s) { -+ if (s->handle) -+ pcap_close(s->handle); -+ } -+ -+ return -1; -+} -+ -+#endif - --static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND_MAX])( -+static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND_MAX])( - const NetClientOptions *opts, - const char *name, - NetClientState *peer, Error **errp) = { -@@ -963,6 +1184,9 @@ - #ifdef CONFIG_NET_BRIDGE - [NET_CLIENT_OPTIONS_KIND_BRIDGE] = net_init_bridge, - #endif -+#ifdef CONFIG_PCAP -+ [NET_CLIENT_OPTIONS_KIND_PCAP] = net_init_pcap, -+#endif - [NET_CLIENT_OPTIONS_KIND_HUBPORT] = net_init_hubport, - #ifdef CONFIG_VHOST_NET_USED - [NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user, diff -ruN qapi-schema.json qapi-schema.json --- qapi-schema.json 2015-12-17 04:04:50.000000000 +0600 +++ qapi-schema.json 2015-12-25 01:32:09.000000000 +0600 @@ -2538,6 +2538,10 @@ '*br': 'str', '*helper': 'str' } } +{ 'struct': 'NetdevPcapOptions', + 'data': { + '*ifname': 'str' } } + ## # @NetdevHubPortOptions # @@ -2608,6 +2612,7 @@ 'nic': 'NetLegacyNicOptions', 'user': 'NetdevUserOptions', 'tap': 'NetdevTapOptions', + 'pcap': 'NetdevPcapOptions', 'l2tpv3': 'NetdevL2TPv3Options', 'socket': 'NetdevSocketOptions', 'vde': 'NetdevVdeOptions', Index: head/emulators/qemu-devel/files/pcap-patch-net_net.c =================================================================== --- head/emulators/qemu-devel/files/pcap-patch-net_net.c (nonexistent) +++ head/emulators/qemu-devel/files/pcap-patch-net_net.c (revision 416075) @@ -0,0 +1,248 @@ +--- net/net.c.orig 2016-04-14 20:19:54 UTC ++++ net/net.c +@@ -48,6 +48,11 @@ + #include "net/filter.h" + #include "qapi/string-output-visitor.h" + ++#include ++#ifdef __FreeBSD__ ++#include ++#endif ++ + /* Net bridge is currently not supported for W32. */ + #if !defined(_WIN32) + # define CONFIG_NET_BRIDGE +@@ -931,7 +936,223 @@ static int net_init_nic(const NetClientO + return idx; + } + ++#if defined(CONFIG_PCAP) ++#if defined(CONFIG_BPF) ++#define PCAP_DONT_INCLUDE_PCAP_BPF_H ++#include ++#endif ++#include ++ ++struct PCAPState { ++ NetClientState nc; ++ pcap_t *handle; ++ int max_eth_frame_size; ++}; ++ ++static ssize_t pcap_receive(NetClientState *nc, const uint8_t *buf, size_t size) ++{ ++ 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 ++ ) ++{ ++ NetClientState *nc = (NetClientState *)user; ++ ++ int len = phdr->len; ++#ifdef __FreeBSD__ ++ 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) { ++ fprintf(stderr, ++ "pcap_send: packet size > %d (%d), truncating\n", ++ max_eth_frame_size, len); ++ len = max_eth_frame_size; ++ } ++#endif ++ qemu_send_packet(nc, pdata, len); ++} ++ ++static void pcap_send(void *opaque) ++{ ++ struct PCAPState *s = (struct PCAPState *)opaque; ++ ++ for (;;) { ++ if (pcap_dispatch(s->handle, 0, (pcap_handler)&pcap_callback, (u_char *)&s->nc) >= 0) ++ break; ++ } ++} ++ ++static void pcap_cleanup(NetClientState *nc) ++{ ++ struct PCAPState *s = DO_UPCAST(struct PCAPState, nc, nc); ++ ++ qemu_purge_queued_packets(nc); ++ pcap_close(s->handle); ++} ++ ++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, Error **errp) ++{ ++ const NetdevPcapOptions *pcap_opts = opts->u.pcap.data; ++ NetClientState *nc; ++ struct PCAPState *s; ++ const char *ifname; ++ char errbuf[PCAP_ERRBUF_SIZE]; ++#if defined(_WIN32) ++ HANDLE h; ++#endif ++ int i; ++ ++ 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_create: %s\n", errbuf); ++ goto fail; ++ } + ++#ifdef __FreeBSD__ ++ /* ++ * We want to avoid passing oversize packets to the guest, which ++ * at least on FreeBSD can happen if the host interface uses tso ++ * (seen with an em(4) in this case) - so find out the host ++ * interface's mtu and assume the guest is configured the same. ++ */ ++ s->max_eth_frame_size = 1514; ++ i = socket(AF_INET, SOCK_DGRAM, 0); ++ if (i >= 0) { ++ struct ifreq ifr; ++ ++ (void) memset(&ifr, 0, sizeof(ifr)); ++ strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); ++ if (ioctl(i, SIOCGIFMTU, &ifr) != -1) ++ s->max_eth_frame_size = ifr.ifr_mtu + 14; ++ close(i); ++ } ++#endif ++ ++#if defined(CONFIG_PCAP_CREATE) || defined(_WIN32) ++ /* ++ * Create pcap handle for the device, set promiscuous mode and activate. ++ */ ++ s->handle = (void *)pcap_create(ifname, errbuf); ++ if (!s->handle) { ++ fprintf(stderr, "qemu: pcap_create: %s\n", errbuf); ++ goto fail; ++ } ++ if (pcap_set_promisc(s->handle, 1) != 0) { ++ pcap_perror(s->handle, (char *)"qemu: pcap_set_promisc:"); ++ goto fail; ++ } ++ if (pcap_activate(s->handle) != 0) { ++ pcap_perror(s->handle, (char *)"qemu: pcap_activate:"); ++ goto fail; ++ } ++#else ++ /* Attempt to connect device. */ ++ s->handle = (void *)pcap_open_live(ifname, 65535, 1, 0, errbuf); ++ if (!s->handle) { ++ fprintf(stderr, "qemu: pcap_open_live: %s\n", errbuf); ++ goto fail; ++ } ++#endif ++ ++ /* Set non-blocking mode. */ ++ if (pcap_setnonblock(s->handle, 1, errbuf) < 0) { ++ fprintf(stderr, "qemu: pcap_setnonblock: %s\n", errbuf); ++ goto fail; ++ } ++ ++#if defined(_WIN32) ++ /* ++ * Tell the kernel that the packet has to be seen immediately. ++ */ ++ if (pcap_setmintocopy(s->handle, 0) < 0) { ++ fprintf(stderr, "qemu: pcap failed to set immediate mode\n"); ++ goto fail; ++ } ++#else /* !_WIN32 */ ++#if defined(CONFIG_BPF) ++#if defined(BIOCIMMEDIATE) ++ /* ++ * Tell the kernel that the packet has to be seen immediately. ++ */ ++ { ++ unsigned int one = 1; ++ if (ioctl(pcap_fileno(s->handle), BIOCIMMEDIATE, &one) < 0) { ++ fprintf(stderr, "qemu: pcap failed to set immediate mode\n"); ++ goto fail; ++ } ++ } ++#endif /* BIOCIMMEDIATE */ ++#if defined(BIOCFEEDBACK) ++ /* ++ * Tell the kernel that the sent packet has to be fed back. ++ * This is necessary to connect host and guest. ++ */ ++ { ++ unsigned int one = 1; ++ if (ioctl(pcap_fileno(s->handle), BIOCFEEDBACK, &one) < 0) { ++ fprintf(stderr, "qemu: pcap failed to set feedback mode\n"); ++ goto fail; ++ } ++ } ++#endif /* BIOCFEEDBACK */ ++#endif /* CONFIG_BPF */ ++#endif /* _WIN32 */ ++ ++ snprintf(s->nc.info_str, sizeof(s->nc.info_str), "pcap redirector"); ++ ++#if defined(_WIN32) ++ if ((h = pcap_getevent(s->handle)) == NULL) { ++ fprintf(stderr, "qemu: pcap_getevent failed\n"); ++ goto fail; ++ } ++ qemu_add_wait_object(h, pcap_send, s); ++#else /* !_WIN32 */ ++ if ((i = pcap_get_selectable_fd(s->handle)) < 0) { ++ fprintf(stderr, "qemu: pcap_get_selectable_fd failed\n"); ++ goto fail; ++ } ++ qemu_set_fd_handler(i, pcap_send, NULL, s); ++#endif /* _WIN32 */ ++ ++ return 0; ++ ++fail: ++ if (s) { ++ if (s->handle) ++ pcap_close(s->handle); ++ } ++ ++ return -1; ++} ++ ++#endif ++ + static int (* const net_client_init_fun[NET_CLIENT_OPTIONS_KIND__MAX])( + const NetClientOptions *opts, + const char *name, +@@ -952,6 +1172,9 @@ static int (* const net_client_init_fun[ + #ifdef CONFIG_NET_BRIDGE + [NET_CLIENT_OPTIONS_KIND_BRIDGE] = net_init_bridge, + #endif ++#ifdef CONFIG_PCAP ++ [NET_CLIENT_OPTIONS_KIND_PCAP] = net_init_pcap, ++#endif + [NET_CLIENT_OPTIONS_KIND_HUBPORT] = net_init_hubport, + #ifdef CONFIG_VHOST_NET_USED + [NET_CLIENT_OPTIONS_KIND_VHOST_USER] = net_init_vhost_user, Property changes on: head/emulators/qemu-devel/files/pcap-patch-net_net.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/qemu-devel/pkg-plist =================================================================== --- head/emulators/qemu-devel/pkg-plist (revision 416074) +++ head/emulators/qemu-devel/pkg-plist (revision 416075) @@ -1,131 +1,129 @@ bin/ivshmem-server bin/ivshmem-client bin/qemu-ga bin/qemu-i386 bin/qemu-img bin/qemu-io bin/qemu-nbd %%NO_X86_TARGETS%%bin/qemu-sparc %%NO_X86_TARGETS%%bin/qemu-sparc64 %%NO_X86_TARGETS%%bin/qemu-system-aarch64 %%NO_X86_TARGETS%%bin/qemu-system-alpha %%NO_X86_TARGETS%%bin/qemu-system-arm %%NO_X86_TARGETS%%bin/qemu-system-cris bin/qemu-system-i386 %%NO_X86_TARGETS%%bin/qemu-system-lm32 %%NO_X86_TARGETS%%bin/qemu-system-m68k %%NO_X86_TARGETS%%bin/qemu-system-microblaze %%NO_X86_TARGETS%%bin/qemu-system-microblazeel %%NO_X86_TARGETS%%bin/qemu-system-mips %%NO_X86_TARGETS%%bin/qemu-system-mips64 %%NO_X86_TARGETS%%bin/qemu-system-mips64el %%NO_X86_TARGETS%%bin/qemu-system-mipsel %%NO_X86_TARGETS%%bin/qemu-system-moxie %%NO_X86_TARGETS%%bin/qemu-system-or32 %%NO_X86_TARGETS%%bin/qemu-system-ppc %%NO_X86_TARGETS%%bin/qemu-system-ppc64 %%NO_X86_TARGETS%%bin/qemu-system-ppcemb %%NO_X86_TARGETS%%bin/qemu-system-s390x %%NO_X86_TARGETS%%bin/qemu-system-sh4 %%NO_X86_TARGETS%%bin/qemu-system-sh4eb %%NO_X86_TARGETS%%bin/qemu-system-sparc %%NO_X86_TARGETS%%bin/qemu-system-sparc64 %%NO_X86_TARGETS%%bin/qemu-system-tricore %%NO_X86_TARGETS%%bin/qemu-system-unicore32 bin/qemu-system-x86_64 %%NO_X86_TARGETS%%bin/qemu-system-xtensa %%NO_X86_TARGETS%%bin/qemu-system-xtensaeb bin/qemu-x86_64 man/man1/qemu.1.gz man/man1/qemu-img.1.gz man/man8/qemu-ga.8.gz man/man8/qemu-nbd.8.gz @sample etc/qemu-ifup.sample @sample etc/qemu-ifdown.sample %%DATADIR%%/QEMU,tcx.bin %%DATADIR%%/QEMU,cgthree.bin %%DATADIR%%/acpi-dsdt.aml -%%DATADIR%%/q35-acpi-dsdt.aml %%DATADIR%%/bios-256k.bin %%DATADIR%%/bios.bin %%DATADIR%%/efi-e1000.rom %%DATADIR%%/efi-eepro100.rom %%DATADIR%%/efi-ne2k_pci.rom %%DATADIR%%/efi-pcnet.rom %%DATADIR%%/efi-rtl8139.rom %%DATADIR%%/efi-virtio.rom -%%DATADIR%%/s390-ccw.img %%DATADIR%%/vgabios.bin %%DATADIR%%/vgabios-cirrus.bin %%DATADIR%%/vgabios-qxl.bin %%DATADIR%%/vgabios-stdvga.bin %%DATADIR%%/vgabios-virtio.bin %%DATADIR%%/vgabios-vmware.bin %%DATADIR%%/palcode-clipper %%DATADIR%%/ppc_rom.bin %%DATADIR%%/openbios-ppc %%DATADIR%%/openbios-sparc32 %%DATADIR%%/openbios-sparc64 %%DATADIR%%/pxe-e1000.rom %%DATADIR%%/pxe-eepro100.rom %%DATADIR%%/pxe-ne2k_pci.rom %%DATADIR%%/pxe-rtl8139.rom %%DATADIR%%/pxe-pcnet.rom %%DATADIR%%/pxe-virtio.rom %%DATADIR%%/petalogix-ml605.dtb %%DATADIR%%/spapr-rtas.bin %%DATADIR%%/slof.bin -%%DATADIR%%/s390-zipl.rom +%%DATADIR%%/s390-ccw.img %%DATADIR%%/linuxboot.bin %%DATADIR%%/multiboot.bin %%DATADIR%%/sgabios.bin %%DATADIR%%/petalogix-s3adsp1800.dtb %%DATADIR%%/bamboo.dtb %%DATADIR%%/kvmvapic.bin %%DATADIR%%/qemu-icon.bmp %%DATADIR%%/qemu_logo_no_text.svg %%DATADIR%%/trace-events %%DATADIR%%/u-boot.e500 %%DATADIR%%/keymaps/ar %%DATADIR%%/keymaps/bepo %%DATADIR%%/keymaps/common %%DATADIR%%/keymaps/cz %%DATADIR%%/keymaps/da %%DATADIR%%/keymaps/de %%DATADIR%%/keymaps/de-ch %%DATADIR%%/keymaps/en-gb %%DATADIR%%/keymaps/en-us %%DATADIR%%/keymaps/es %%DATADIR%%/keymaps/et %%DATADIR%%/keymaps/fi %%DATADIR%%/keymaps/fo %%DATADIR%%/keymaps/fr %%DATADIR%%/keymaps/fr-be %%DATADIR%%/keymaps/fr-ca %%DATADIR%%/keymaps/fr-ch %%DATADIR%%/keymaps/hr %%DATADIR%%/keymaps/hu %%DATADIR%%/keymaps/is %%DATADIR%%/keymaps/it %%DATADIR%%/keymaps/ja %%DATADIR%%/keymaps/lt %%DATADIR%%/keymaps/lv %%DATADIR%%/keymaps/mk %%DATADIR%%/keymaps/modifiers %%DATADIR%%/keymaps/nl %%DATADIR%%/keymaps/nl-be %%DATADIR%%/keymaps/no %%DATADIR%%/keymaps/pl %%DATADIR%%/keymaps/pt %%DATADIR%%/keymaps/pt-br %%DATADIR%%/keymaps/ru %%DATADIR%%/keymaps/sl %%DATADIR%%/keymaps/sv %%DATADIR%%/keymaps/th %%DATADIR%%/keymaps/tr %%GTK2%%share/locale/de_DE/LC_MESSAGES/qemu.mo %%GTK2%%share/locale/fr_FR/LC_MESSAGES/qemu.mo %%GTK2%%share/locale/it/LC_MESSAGES/qemu.mo %%GTK2%%share/locale/hu/LC_MESSAGES/qemu.mo %%GTK2%%share/locale/tr/LC_MESSAGES/qemu.mo %%GTK2%%share/locale/zh_CN/LC_MESSAGES/qemu.mo