Index: head/emulators/Makefile =================================================================== --- head/emulators/Makefile (revision 541863) +++ head/emulators/Makefile (revision 541864) @@ -1,185 +1,186 @@ # $FreeBSD$ # COMMENT = Emulators for other operating systems SUBDIR += adamem SUBDIR += advancemame SUBDIR += advancemenu SUBDIR += advancemess SUBDIR += almostti SUBDIR += anese SUBDIR += aqemu SUBDIR += atari800 SUBDIR += bfe SUBDIR += bochs SUBDIR += bsvc SUBDIR += cannonball SUBDIR += cinc SUBDIR += cingb SUBDIR += citra SUBDIR += citra-qt5 SUBDIR += cpmemu SUBDIR += cpmtools SUBDIR += cpmtools2 SUBDIR += darcnes SUBDIR += dgen-sdl SUBDIR += dolphin-emu SUBDIR += dosbox SUBDIR += dtcyber SUBDIR += dynagen SUBDIR += dynamips-community SUBDIR += e-uae SUBDIR += edumips64 SUBDIR += elliott-803 SUBDIR += emu64 SUBDIR += emulationstation SUBDIR += fceux SUBDIR += fmsx SUBDIR += frodo SUBDIR += fs-uae SUBDIR += fs-uae-launcher SUBDIR += fuse SUBDIR += fuse-roms SUBDIR += fuse-utils SUBDIR += gbe SUBDIR += gem5 SUBDIR += gens SUBDIR += gngb SUBDIR += gngeo SUBDIR += gxemul SUBDIR += hatari SUBDIR += hercules SUBDIR += higan SUBDIR += hugo SUBDIR += i386-wine SUBDIR += i386-wine-devel SUBDIR += ines SUBDIR += javatari SUBDIR += joytran SUBDIR += jzintv SUBDIR += kcemu SUBDIR += klh10 SUBDIR += lib765 SUBDIR += libdsk SUBDIR += libretro-ppsspp SUBDIR += libspectrum SUBDIR += linux-c7 SUBDIR += linux-power9-functional-sim SUBDIR += linux_base-c7 SUBDIR += lisaem SUBDIR += mame SUBDIR += mastergear SUBDIR += mednafen SUBDIR += mesen SUBDIR += mess SUBDIR += mgba SUBDIR += mtools SUBDIR += mupen64plus SUBDIR += mupen64plus-audio-sdl SUBDIR += mupen64plus-core SUBDIR += mupen64plus-input-sdl SUBDIR += mupen64plus-plugins SUBDIR += mupen64plus-qt SUBDIR += mupen64plus-rsp-cxd4 SUBDIR += mupen64plus-rsp-hle SUBDIR += mupen64plus-rsp-z64 SUBDIR += mupen64plus-ui-console SUBDIR += mupen64plus-video-arachnoid SUBDIR += mupen64plus-video-glide64 SUBDIR += mupen64plus-video-glide64mk2 SUBDIR += mupen64plus-video-rice SUBDIR += mupen64plus-video-z64 SUBDIR += nemu SUBDIR += nestopia SUBDIR += nonpareil SUBDIR += o2em SUBDIR += ods2reader SUBDIR += open-vm-tools SUBDIR += open-vm-tools-nox11 SUBDIR += openmsx SUBDIR += p5-Acme-6502 SUBDIR += parallels-tools SUBDIR += pcem SUBDIR += pcemu SUBDIR += pcsxr SUBDIR += playonbsd SUBDIR += ppsspp SUBDIR += ppsspp-qt5 SUBDIR += py-gns3-converter SUBDIR += py-unicorn SUBDIR += qemu SUBDIR += qemu-cheri SUBDIR += qemu-devel SUBDIR += qemu-powernv SUBDIR += qemu-sbruno SUBDIR += qemu-user-static SUBDIR += qemu-user-static-devel SUBDIR += qemu-utils SUBDIR += qemu31 SUBDIR += qemu40 + SUBDIR += qemu41 SUBDIR += qmc2 SUBDIR += quasi88 SUBDIR += riscv-fesvr SUBDIR += riscv-isa-sim SUBDIR += rpcs3 SUBDIR += rtc SUBDIR += rubygem-fission SUBDIR += simh SUBDIR += simh-hp2100 SUBDIR += simh-hp3000 SUBDIR += simh-hpdoc SUBDIR += skyeye SUBDIR += snes9x-gtk SUBDIR += spim SUBDIR += stella SUBDIR += stonx SUBDIR += teo SUBDIR += tiemu3 SUBDIR += tilem SUBDIR += tme SUBDIR += tpm-emulator SUBDIR += tuxnes SUBDIR += uae SUBDIR += ucon64 SUBDIR += ukncbtl SUBDIR += unicorn SUBDIR += vba SUBDIR += vboxtool SUBDIR += vgb-bin SUBDIR += vgba-bin SUBDIR += vice SUBDIR += virtualbox-ose SUBDIR += virtualbox-ose-additions SUBDIR += virtualbox-ose-additions-nox11 SUBDIR += virtualbox-ose-kmod SUBDIR += virtualbox-ose-nox11 SUBDIR += visualboyadvance-m SUBDIR += vmips SUBDIR += vmsbackup SUBDIR += vmw SUBDIR += vpcs SUBDIR += vxtools SUBDIR += wine SUBDIR += wine-devel SUBDIR += wine-gecko SUBDIR += wine-gecko-devel SUBDIR += wine-mono SUBDIR += wine-mono-devel SUBDIR += winetricks SUBDIR += wxmupen64plus SUBDIR += x16-emulator SUBDIR += x16-rom SUBDIR += x48 SUBDIR += x49gp SUBDIR += xbraitenberg SUBDIR += xcpc SUBDIR += xen-kernel SUBDIR += xhomer SUBDIR += xsystem35 SUBDIR += xzx SUBDIR += yuzu SUBDIR += yuzu-qt5 SUBDIR += zsnes .include Index: head/emulators/qemu41/Makefile =================================================================== --- head/emulators/qemu41/Makefile (nonexistent) +++ head/emulators/qemu41/Makefile (revision 541864) @@ -0,0 +1,159 @@ +# Created by: Juergen Lock +# $FreeBSD$ + +PORTNAME= qemu +PORTVERSION= 4.1.1 +CATEGORIES= emulators +MASTER_SITES= https://download.qemu.org/ +PKGNAMESUFFIX= 41 +DIST_SUBDIR= qemu/${PORTVERSION} + +MAINTAINER?= bofh@FreeBSD.org +COMMENT?= QEMU CPU Emulator - 4.1.X branch + +LICENSE= GPLv2 + +BUILD_DEPENDS= sphinx-build:textproc/py-sphinx@${PY_FLAVOR} +LIB_DEPENDS?= libnettle.so:security/nettle \ + libfontconfig.so:x11-fonts/fontconfig \ + libfreetype.so:print/freetype2 \ + libepoxy.so:graphics/libepoxy \ + libpcre2-8.so:devel/pcre2 + +ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 +USES= bison compiler:c11 cpe gmake gnome iconv:wchar_t perl5 \ + pkgconfig python:build tar:xz xorg +USE_XORG= pixman +USE_GNOME= cairo glib20 libxml2 + +USE_PERL5= build + +PORTSCOUT= limit:^4\.1\. + +HAS_CONFIGURE= yes +MAKE_ENV+= BSD_MAKE="${MAKE}" V=1 + +OPTIONS_DEFINE= SAMBA X11 GTK3 OPENGL GNUTLS SASL JPEG PNG CURL \ + VDE CDROM_DMA PCAP USBREDIR X86_TARGETS \ + STATIC_LINK DOCS ISCSI +OPTIONS_SINGLE= NCURSES +OPTIONS_SINGLE_NCURSES= NCURSES_DEFAULT NCURSES_BASE NCURSES_PORT +CDROM_DMA_DESC= IDE CDROM DMA +GNUTLS_DESC= gnutls dependency (vnc encryption) +ISCSI_DESC= libiscsi dependency (iSCSI client for emulated drives) +JPEG_DESC= jpeg dependency (vnc lossy compression) +NCURSES_DEFAULT_DESC= Depend on ncurses (ports if installed, otherwise base) +NCURSES_BASE_DESC= Depend on ncurses in base +NCURSES_PORT_DESC= Depend on devel/ncurses in ports +PCAP_DESC= pcap dependency (networking with bpf) +PNG_DESC= png dependency (vnc compression) +SAMBA_DESC= samba dependency (for -smb) +SASL_DESC= cyrus-sasl dependency (vnc encryption) +STATIC_LINK_DESC= Statically link the executables +USBREDIR_DESC= usb device network redirection (experimental!) +VDE_DESC= vde dependency (for vde networking) +X86_TARGETS_DESC= Build only x86 system targets +OPTIONS_DEFAULT=X11 GTK3 OPENGL GNUTLS SASL JPEG PNG CDROM_DMA CURL PCAP NCURSES_DEFAULT VDE +OPTIONS_SUB= yes +CURL_CONFIGURE_OFF= --disable-curl +CURL_LIB_DEPENDS= libcurl.so:ftp/curl +DOCS_BUILD_DEPENDS= texi2html:textproc/texi2html +DOCS_MAKE_ARGS_OFF= NOPORTDOCS=1 +DOCS_USES= makeinfo +GNUTLS_CONFIGURE_OFF= --disable-gnutls +GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls +GTK3_CONFIGURE_OFF= --disable-gtk --disable-vte +GTK3_LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon +GTK3_USE= GNOME=gdkpixbuf2,gtk30,vte3 XORG=x11,xext +GTK3_USES= gettext gl +ISCSI_LIB_DEPENDS= libiscsi.so:net/libiscsi +ISCSI_CONFIGURE_OFF= --disable-libiscsi +JPEG_CONFIGURE_OFF= --disable-vnc-jpeg +JPEG_USES= jpeg +NCURSES_DEFAULT_USES= ncurses +NCURSES_BASE_USES= ncurses:base +NCURSES_PORT_USES= ncurses:port +OPENGL_CONFIGURE_OFF= --disable-opengl +OPENGL_USE= GL=gl +OPENGL_USES= gl +PCAP_CONFIGURE_ON= --enable-pcap +PCAP_EXTRA_PATCHES= ${FILESDIR}/pcap-patch-qapi_net.json ${FILESDIR}/pcap-patch-net_net.c \ + ${FILESDIR}/pcap-patch-net_clients.h +PNG_CONFIGURE_OFF= --disable-vnc-png +PNG_LIB_DEPENDS= libpng.so:graphics/png +SAMBA_CONFIGURE_ON= --smbd=${LOCALBASE}/sbin/smbd +SAMBA_USES= samba:run # smbd +SASL_CONFIGURE_OFF= --disable-vnc-sasl +SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 +STATIC_LINK_CONFIGURE_ON= --static +STATIC_LINK_PREVENTS= GTK3 X11 +STATIC_LINK_PREVENTS_MSG= X11 ui cannot be built static +USBREDIR_BUILD_DEPENDS= usbredir>=0.6:net/usbredir +USBREDIR_CONFIGURE_OFF= --disable-usb-redir +USBREDIR_RUN_DEPENDS= usbredir>=0.6:net/usbredir +VDE_CONFIGURE_OFF= --disable-vde +VDE_LIB_DEPENDS= libvdeplug.so:net/vde2 +X11_CONFIGURE_ENABLE= sdl +X11_USE= SDL=sdl2 XORG=x11,xext GNOME=gdkpixbuf2 +X11_USES= sdl +X86_TARGETS_USE_OFF= XORG=pixman,x11 +X86_TARGETS_USES_OFF= xorg +INSTALLS_ICONS= yes + +PORTDOCS?= docs interop/.buildinfo interop/* qemu-doc.html qemu-doc.txt qemu-ga-ref.html qemu-ga-ref.txt \ + qemu-qmp-ref.html qemu-qmp-ref.txt specs/.buildinfo specs/* + +WITHOUT_CPU_CFLAGS=yes #to avoid problems with register allocation +CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//} +CONFIGURE_ARGS?= --localstatedir=/var --extra-ldflags=-L\"/usr/lib\" \ + --extra-ldflags=-L\"${LOCALBASE}/lib\" --disable-libssh --enable-debug \ + --prefix=${PREFIX} --cc=${CC} --enable-netmap --enable-docs --disable-kvm \ + --disable-linux-user --disable-linux-aio --disable-xen \ + --enable-debug-info --python=${PYTHON_CMD} \ + --extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\" + +.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 + +PLIST_SUB+= LINUXBOOT_DMA="" + +post-patch-CDROM_DMA-off: + @${REINPLACE_CMD} -e '/USE_DMA_CDROM/d' ${WRKSRC}/include/hw/ide/internal.h + +# 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-* + +post-install-DOCS-on: + @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${DOCSDIR}/) +.endif + +.include Property changes on: head/emulators/qemu41/Makefile ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/emulators/qemu41/files/patch-configure =================================================================== --- head/emulators/qemu41/files/patch-configure (nonexistent) +++ head/emulators/qemu41/files/patch-configure (revision 541864) @@ -0,0 +1,213 @@ +--- configure.orig 2019-11-14 18:06:20 UTC ++++ configure +@@ -404,7 +404,7 @@ DSOSUF=".so" + LDFLAGS_SHARED="-shared" + modules="no" + prefix="/usr/local" +-mandir="\${prefix}/share/man" ++mandir="\${prefix}/man" + datadir="\${prefix}/share" + firmwarepath="\${prefix}/share/qemu-firmware" + qemu_docdir="\${prefix}/share/doc/qemu" +@@ -484,6 +484,9 @@ numa="" + tcmalloc="no" + jemalloc="no" + replication="yes" ++pcap="no" ++pcap_create="no" ++bpf="no" + vxhs="" + bochs="yes" + cloop="yes" +@@ -1141,6 +1144,10 @@ for opt do + ;; + --enable-vnc-png) vnc_png="yes" + ;; ++ --enable-pcap) pcap="yes" ++ ;; ++ --disable-pcap) pcap="no" ++ ;; + --disable-slirp) slirp="no" + ;; + --enable-slirp=git) slirp="git" +@@ -2998,6 +3005,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 +@@ -3655,7 +3670,7 @@ for i in $glib_modules; do + glib_libs=$($pkg_config --libs $i) + QEMU_CFLAGS="$glib_cflags $QEMU_CFLAGS" + LIBS="$glib_libs $LIBS" +- libs_qga="$glib_libs $libs_qga" ++ libs_qga="$glib_libs -lintl $libs_qga" + else + error_exit "glib-$glib_req_ver $i is required to compile QEMU" + fi +@@ -4747,11 +4762,6 @@ has_sphinx_build() { + if test "$docs" != "no" ; then + if has makeinfo && has pod2man && has_sphinx_build; then + docs=yes +- else +- if test "$docs" = "yes" ; then +- feature_not_found "docs" "Install texinfo, Perl/perl-podlators and python-sphinx" +- fi +- docs=no + fi + fi + +@@ -4885,7 +4895,7 @@ fi + + # check for libusb + if test "$libusb" != "no" ; then +- if $pkg_config --atleast-version=1.0.13 libusb-1.0; then ++ if $pkg_config libusb-1.0; then + libusb="yes" + libusb_cflags=$($pkg_config --cflags libusb-1.0) + libusb_libs=$($pkg_config --libs libusb-1.0) +@@ -5275,7 +5285,51 @@ if test "$debug_stack_usage" = "yes"; then + 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" ++ + ########################################## + # check if we have open_by_handle_at + +@@ -6241,27 +6295,30 @@ if ( [ "$linux_user" = yes ] || [ "$bsd_user" = yes ] + cat > $TMPC </dev/null 2>&1; then +- error_exit \ +- "We need to link the QEMU user mode binaries at a" \ +- "specific text address. Unfortunately your linker" \ +- "doesn't support either the -Ttext-segment option or" \ +- "printing the default linker script with --verbose." \ +- "If you don't want the user mode binaries, pass the" \ +- "--disable-user option to configure." +- fi ++ textseg_ldflags="-Wl,-Ttext-segment=$textseg_addr" ++ if ! compile_prog "" "$textseg_ldflags"; then ++ # In case ld does not support -Ttext-segment, edit the default linker ++ # script via sed to set the .text start addr. This is needed on FreeBSD ++ # at least. ++ if ! $ld --verbose >/dev/null 2>&1; then ++ error_exit \ ++ "We need to link the QEMU user mode binaries at a" \ ++ "specific text address. Unfortunately your linker" \ ++ "doesn't support either the -Ttext-segment option or" \ ++ "printing the default linker script with --verbose." \ ++ "If you don't want the user mode binaries, pass the" \ ++ "--disable-user option to configure." ++ fi + +- $ld --verbose | sed \ +- -e '1,/==================================================/d' \ +- -e '/==================================================/,$d' \ +- -e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \ +- -e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > config-host.ld +- textseg_ldflags="-Wl,-T../config-host.ld" ++ $ld --verbose | sed \ ++ -e '1,/==================================================/d' \ ++ -e '/==================================================/,$d' \ ++ -e "s/[.] = [0-9a-fx]* [+] SIZEOF_HEADERS/. = $textseg_addr + SIZEOF_HEADERS/" \ ++ -e "s/__executable_start = [0-9a-fx]*/__executable_start = $textseg_addr/" > config-host.ld ++ textseg_ldflags="-Wl,-T../config-host.ld" ++ fi + fi + fi + fi +@@ -6377,6 +6434,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 "Multipath support $mpath" + echo "VNC support $vnc" + if test "$vnc" = "yes" ; then +@@ -6617,6 +6675,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" != "no"; then + echo "CONFIG_SLIRP=y" >> $config_host_mak + echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak +@@ -6864,6 +6931,9 @@ fi + # if this macro is set. + if test "$have_fsxattr" = "yes" ; then + echo "HAVE_FSXATTR=y" >> $config_host_mak ++fi ++if test "$have_ifaddrs_h" = "yes" ; then ++ echo "HAVE_IFADDRS_H=y" >> $config_host_mak + fi + if test "$have_copy_file_range" = "yes" ; then + echo "HAVE_COPY_FILE_RANGE=y" >> $config_host_mak Property changes on: head/emulators/qemu41/files/patch-configure ___________________________________________________________________ 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/qemu41/files/patch-pc-bios_spapr-rtas_Makefile =================================================================== --- head/emulators/qemu41/files/patch-pc-bios_spapr-rtas_Makefile (nonexistent) +++ head/emulators/qemu41/files/patch-pc-bios_spapr-rtas_Makefile (revision 541864) @@ -0,0 +1,15 @@ +--- pc-bios/spapr-rtas/Makefile.orig 2020-01-08 10:52:05 UTC ++++ pc-bios/spapr-rtas/Makefile +@@ -15,10 +15,10 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/spapr-rtas) + build-all: spapr-rtas.bin + + %.o: %.S +- $(call quiet-command,$(CCAS) -mbig -c -o $@ $<,"CCAS","$(TARGET_DIR)$@") ++ $(call quiet-command,$(CCAS) -c -o $@ $<,"CCAS","$(TARGET_DIR)$@") + + %.img: %.o +- $(call quiet-command,$(CC) -nostdlib -mbig -o $@ $<,"Building","$(TARGET_DIR)$@") ++ $(call quiet-command,$(CC) -nostdlib -o $@ $<,"Building","$(TARGET_DIR)$@") + + %.bin: %.img + $(call quiet-command,$(OBJCOPY) -O binary -j .text $< $@,"Building","$(TARGET_DIR)$@") Property changes on: head/emulators/qemu41/files/patch-pc-bios_spapr-rtas_Makefile ___________________________________________________________________ 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/qemu41/files/patch-Makefile =================================================================== --- head/emulators/qemu41/files/patch-Makefile (nonexistent) +++ head/emulators/qemu41/files/patch-Makefile (revision 541864) @@ -0,0 +1,42 @@ +--- Makefile.orig 2019-04-23 18:14:45 UTC ++++ Makefile +@@ -311,9 +311,14 @@ LIBS+=-lz $(LIBS_TOOLS) + HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = qemu-bridge-helper$(EXESUF) + + ifdef BUILD_DOCS ++ifdef NOPORTDOCS ++DOCS=qemu.1 qemu-img.1 qemu-nbd.8 qemu-ga.8 ++DOCS+=docs/interop/qemu-qmp-ref.7 docs/interop/qemu-ga-ref.7 ++else + DOCS=qemu-doc.html qemu-doc.txt qemu.1 qemu-img.1 qemu-nbd.8 qemu-ga.8 + DOCS+=docs/interop/qemu-qmp-ref.html docs/interop/qemu-qmp-ref.txt docs/interop/qemu-qmp-ref.7 + DOCS+=docs/interop/qemu-ga-ref.html docs/interop/qemu-ga-ref.txt docs/interop/qemu-ga-ref.7 ++endif + DOCS+=docs/qemu-block-drivers.7 + DOCS+=docs/qemu-cpu-models.7 + ifdef CONFIG_VIRTFS +@@ -742,11 +747,13 @@ install-sphinxdocs: sphinxdocs + $(call install-manual,interop) + + install-doc: $(DOCS) install-sphinxdocs ++ifndef NOPORTDOCS + $(INSTALL_DIR) "$(DESTDIR)$(qemu_docdir)" + $(INSTALL_DATA) qemu-doc.html "$(DESTDIR)$(qemu_docdir)" + $(INSTALL_DATA) qemu-doc.txt "$(DESTDIR)$(qemu_docdir)" + $(INSTALL_DATA) docs/interop/qemu-qmp-ref.html "$(DESTDIR)$(qemu_docdir)" + $(INSTALL_DATA) docs/interop/qemu-qmp-ref.txt "$(DESTDIR)$(qemu_docdir)" ++endif + ifdef CONFIG_POSIX + $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1" + $(INSTALL_DATA) qemu.1 "$(DESTDIR)$(mandir)/man1" +@@ -764,8 +771,10 @@ ifdef CONFIG_TRACE_SYSTEMTAP + endif + ifneq (,$(findstring qemu-ga,$(TOOLS))) + $(INSTALL_DATA) qemu-ga.8 "$(DESTDIR)$(mandir)/man8" ++ifndef NOPORTDOCS + $(INSTALL_DATA) docs/interop/qemu-ga-ref.html "$(DESTDIR)$(qemu_docdir)" + $(INSTALL_DATA) docs/interop/qemu-ga-ref.txt "$(DESTDIR)$(qemu_docdir)" ++endif + $(INSTALL_DATA) docs/interop/qemu-ga-ref.7 "$(DESTDIR)$(mandir)/man7" + endif + endif Property changes on: head/emulators/qemu41/files/patch-Makefile ___________________________________________________________________ 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/qemu41/files/patch-disas_libvixl_vixl_a64_disasm-a64.cc =================================================================== --- head/emulators/qemu41/files/patch-disas_libvixl_vixl_a64_disasm-a64.cc (nonexistent) +++ head/emulators/qemu41/files/patch-disas_libvixl_vixl_a64_disasm-a64.cc (revision 541864) @@ -0,0 +1,11 @@ +--- disas/libvixl/vixl/a64/disasm-a64.cc.orig 2019-04-23 18:14:45 UTC ++++ disas/libvixl/vixl/a64/disasm-a64.cc +@@ -2693,7 +2693,7 @@ void Disassembler::AppendPCRelativeOffsetToOutput(cons + 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/qemu41/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/qemu41/files/patch-include_net_net.h =================================================================== --- head/emulators/qemu41/files/patch-include_net_net.h (nonexistent) +++ head/emulators/qemu41/files/patch-include_net_net.h (revision 541864) @@ -0,0 +1,13 @@ +--- include/net/net.h.orig 2019-04-23 18:14:46 UTC ++++ include/net/net.h +@@ -209,8 +209,8 @@ void qmp_netdev_add(QDict *qdict, QObject **ret, Error + 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" + Property changes on: head/emulators/qemu41/files/patch-include_net_net.h ___________________________________________________________________ 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/qemu41/files/patch-include_qemu_atomic.h =================================================================== --- head/emulators/qemu41/files/patch-include_qemu_atomic.h (nonexistent) +++ head/emulators/qemu41/files/patch-include_qemu_atomic.h (revision 541864) @@ -0,0 +1,54 @@ +--- include/qemu/atomic.h.orig 2019-04-23 18:14:46 UTC ++++ include/qemu/atomic.h +@@ -201,10 +201,12 @@ + /* Provide shorter names for GCC atomic builtins, return old value */ + #define atomic_fetch_inc(ptr) __atomic_fetch_add(ptr, 1, __ATOMIC_SEQ_CST) + #define atomic_fetch_dec(ptr) __atomic_fetch_sub(ptr, 1, __ATOMIC_SEQ_CST) ++#ifndef __cplusplus + #define atomic_fetch_add(ptr, n) __atomic_fetch_add(ptr, n, __ATOMIC_SEQ_CST) + #define atomic_fetch_sub(ptr, n) __atomic_fetch_sub(ptr, n, __ATOMIC_SEQ_CST) + #define atomic_fetch_and(ptr, n) __atomic_fetch_and(ptr, n, __ATOMIC_SEQ_CST) + #define atomic_fetch_or(ptr, n) __atomic_fetch_or(ptr, n, __ATOMIC_SEQ_CST) ++#endif + #define atomic_fetch_xor(ptr, n) __atomic_fetch_xor(ptr, n, __ATOMIC_SEQ_CST) + + #define atomic_inc_fetch(ptr) __atomic_add_fetch(ptr, 1, __ATOMIC_SEQ_CST) +@@ -218,10 +220,12 @@ + /* And even shorter names that return void. */ + #define atomic_inc(ptr) ((void) __atomic_fetch_add(ptr, 1, __ATOMIC_SEQ_CST)) + #define atomic_dec(ptr) ((void) __atomic_fetch_sub(ptr, 1, __ATOMIC_SEQ_CST)) ++#ifndef __cplusplus + #define atomic_add(ptr, n) ((void) __atomic_fetch_add(ptr, n, __ATOMIC_SEQ_CST)) + #define atomic_sub(ptr, n) ((void) __atomic_fetch_sub(ptr, n, __ATOMIC_SEQ_CST)) + #define atomic_and(ptr, n) ((void) __atomic_fetch_and(ptr, n, __ATOMIC_SEQ_CST)) + #define atomic_or(ptr, n) ((void) __atomic_fetch_or(ptr, n, __ATOMIC_SEQ_CST)) ++#endif + #define atomic_xor(ptr, n) ((void) __atomic_fetch_xor(ptr, n, __ATOMIC_SEQ_CST)) + + #else /* __ATOMIC_RELAXED */ +@@ -389,10 +393,12 @@ + + #define atomic_inc_fetch(ptr) __sync_add_and_fetch(ptr, 1) + #define atomic_dec_fetch(ptr) __sync_add_and_fetch(ptr, -1) ++#ifndef __cplusplus + #define atomic_add_fetch(ptr, n) __sync_add_and_fetch(ptr, n) + #define atomic_sub_fetch(ptr, n) __sync_sub_and_fetch(ptr, n) + #define atomic_and_fetch(ptr, n) __sync_and_and_fetch(ptr, n) + #define atomic_or_fetch(ptr, n) __sync_or_and_fetch(ptr, n) ++#endif + #define atomic_xor_fetch(ptr, n) __sync_xor_and_fetch(ptr, n) + + #define atomic_cmpxchg(ptr, old, new) __sync_val_compare_and_swap(ptr, old, new) +@@ -401,10 +407,12 @@ + /* And even shorter names that return void. */ + #define atomic_inc(ptr) ((void) __sync_fetch_and_add(ptr, 1)) + #define atomic_dec(ptr) ((void) __sync_fetch_and_add(ptr, -1)) ++#ifndef __cplusplus + #define atomic_add(ptr, n) ((void) __sync_fetch_and_add(ptr, n)) + #define atomic_sub(ptr, n) ((void) __sync_fetch_and_sub(ptr, n)) + #define atomic_and(ptr, n) ((void) __sync_fetch_and_and(ptr, n)) + #define atomic_or(ptr, n) ((void) __sync_fetch_and_or(ptr, n)) ++#endif + #define atomic_xor(ptr, n) ((void) __sync_fetch_and_xor(ptr, n)) + + #endif /* __ATOMIC_RELAXED */ Property changes on: head/emulators/qemu41/files/patch-include_qemu_atomic.h ___________________________________________________________________ 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/qemu41/files/patch-net_tap-bsd.c =================================================================== --- head/emulators/qemu41/files/patch-net_tap-bsd.c (nonexistent) +++ head/emulators/qemu41/files/patch-net_tap-bsd.c (revision 541864) @@ -0,0 +1,10 @@ +--- net/tap-bsd.c.orig 2019-04-23 18:14:46 UTC ++++ net/tap-bsd.c +@@ -31,6 +31,7 @@ + + #if defined(__NetBSD__) || defined(__FreeBSD__) + #include ++#include + #include + #include + #endif Property changes on: head/emulators/qemu41/files/patch-net_tap-bsd.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/qemu41/files/patch-qemu-doc.texi =================================================================== --- head/emulators/qemu41/files/patch-qemu-doc.texi (nonexistent) +++ head/emulators/qemu41/files/patch-qemu-doc.texi (revision 541864) @@ -0,0 +1,21 @@ +--- qemu-doc.texi.orig 2019-04-23 18:14:46 UTC ++++ qemu-doc.texi +@@ -200,7 +200,7 @@ VGA BIOS. + QEMU uses YM3812 emulation by Tatsuyuki Satoh. + + QEMU uses GUS emulation (GUSEMU32 @url{http://www.deinmeister.de/gusemu/}) +-by Tibor "TS" Schütz. ++by Tibor "TS" Schuetz. + + Note that, by default, GUS shares IRQ(7) with parallel ports and so + QEMU must be told to not have parallel ports to have working GUS. +@@ -560,7 +560,8 @@ Send the escape character to the frontend + + @c man begin SEEALSO + The HTML documentation of QEMU for more precise information and Linux +-user mode emulator invocation. ++user mode emulator invocation, as well as the FreeBSD host notes in ++@file{pkg-message} in the relevant qemu port directory. + @c man end + + @c man begin AUTHOR Property changes on: head/emulators/qemu41/files/patch-qemu-doc.texi ___________________________________________________________________ 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/qemu41/files/pcap-patch-qapi_net.json =================================================================== --- head/emulators/qemu41/files/pcap-patch-qapi_net.json (nonexistent) +++ head/emulators/qemu41/files/pcap-patch-qapi_net.json (revision 541864) @@ -0,0 +1,56 @@ +--- qapi/net.json.orig 2018-04-24 16:30:47 UTC ++++ qapi/net.json +@@ -388,6 +388,19 @@ + '*helper': 'str' } } + + ## ++# @NetdevPcapOptions: ++# ++# Use ifname as a source to capture ++# ++# @ifname: #required to determine which interface to capture ++# ++# Since: 1.2 ++## ++{ 'struct': 'NetdevPcapOptions', ++ 'data': { ++ '*ifname': 'str' } } ++ ++## + # @NetdevHubPortOptions: + # + # Connect two or more net clients through a software hub. +@@ -454,7 +467,7 @@ + ## + { 'enum': 'NetClientDriver', + 'data': [ 'none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'vde', +- 'bridge', 'hubport', 'netmap', 'vhost-user' ] } ++ 'bridge', 'hubport', 'netmap', 'vhost-user', 'pcap' ] } + + ## + # @Netdev: +@@ -478,6 +491,7 @@ + 'user': 'NetdevUserOptions', + 'tap': 'NetdevTapOptions', + 'l2tpv3': 'NetdevL2TPv3Options', ++ 'pcap': 'NetdevPcapOptions', + 'socket': 'NetdevSocketOptions', + 'vde': 'NetdevVdeOptions', + 'bridge': 'NetdevBridgeOptions', +@@ -514,7 +528,7 @@ + ## + { 'enum': 'NetLegacyOptionsType', + 'data': ['none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'vde', +- 'bridge', 'netmap', 'vhost-user'] } ++ 'bridge', 'netmap', 'vhost-user', 'pcap'] } + + ## + # @NetLegacyOptions: +@@ -532,6 +546,7 @@ + 'user': 'NetdevUserOptions', + 'tap': 'NetdevTapOptions', + 'l2tpv3': 'NetdevL2TPv3Options', ++ 'pcap': 'NetdevPcapOptions', + 'socket': 'NetdevSocketOptions', + 'vde': 'NetdevVdeOptions', + 'bridge': 'NetdevBridgeOptions', Property changes on: head/emulators/qemu41/files/pcap-patch-qapi_net.json ___________________________________________________________________ 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/qemu41/files/pcap-patch-net_clients.h =================================================================== --- head/emulators/qemu41/files/pcap-patch-net_clients.h (nonexistent) +++ head/emulators/qemu41/files/pcap-patch-net_clients.h (revision 541864) @@ -0,0 +1,13 @@ +--- net/clients.h.orig 2018-04-24 16:30:47 UTC ++++ net/clients.h +@@ -61,4 +61,10 @@ int net_init_netmap(const Netdev *netdev, const char * + int net_init_vhost_user(const Netdev *netdev, const char *name, + NetClientState *peer, Error **errp); + ++#ifdef CONFIG_PCAP ++int net_init_pcap(const Netdev *netdev, const char *name, ++ NetClientState *peer, Error **errp); ++#endif ++ ++ + #endif /* QEMU_NET_CLIENTS_H */ Property changes on: head/emulators/qemu41/files/pcap-patch-net_clients.h ___________________________________________________________________ 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/qemu41/files/pcap-patch-net_net.c =================================================================== --- head/emulators/qemu41/files/pcap-patch-net_net.c (nonexistent) +++ head/emulators/qemu41/files/pcap-patch-net_net.c (revision 541864) @@ -0,0 +1,250 @@ +--- net/net.c.orig 2018-04-24 16:30:47 UTC ++++ net/net.c +@@ -52,6 +52,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 +@@ -929,7 +934,225 @@ static int net_init_nic(const Netdev *netdev, const ch + 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_DRIVER_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 Netdev *netdev, ++ const char *name, NetClientState *peer, Error **errp) ++{ ++ const NetdevPcapOptions *pcap_opts; ++ NetClientState *nc; ++ struct PCAPState *s; ++ const char *ifname; ++ char errbuf[PCAP_ERRBUF_SIZE]; ++#if defined(_WIN32) ++ HANDLE h; ++#endif ++ int i; ++ ++ assert(netdev->type == NET_CLIENT_DRIVER_PCAP); ++ pcap_opts = &netdev->u.pcap; ++ 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_DRIVER__MAX])( + const Netdev *netdev, + const char *name, +@@ -955,6 +1178,9 @@ static int (* const net_client_init_fun[NET_CLIENT_DRI + #endif + #ifdef CONFIG_L2TPV3 + [NET_CLIENT_DRIVER_L2TPV3] = net_init_l2tpv3, ++#endif ++#ifdef CONFIG_PCAP ++ [NET_CLIENT_DRIVER_PCAP] = net_init_pcap, + #endif + }; + Property changes on: head/emulators/qemu41/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/qemu41/files/qemu-ifdown.sample =================================================================== --- head/emulators/qemu41/files/qemu-ifdown.sample (nonexistent) +++ head/emulators/qemu41/files/qemu-ifdown.sample (revision 541864) @@ -0,0 +1,2 @@ +#!/bin/sh +exec true Property changes on: head/emulators/qemu41/files/qemu-ifdown.sample ___________________________________________________________________ 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/qemu41/files/qemu-ifup.sample =================================================================== --- head/emulators/qemu41/files/qemu-ifup.sample (nonexistent) +++ head/emulators/qemu41/files/qemu-ifup.sample (revision 541864) @@ -0,0 +1,2 @@ +#!/bin/sh +exec true Property changes on: head/emulators/qemu41/files/qemu-ifup.sample ___________________________________________________________________ 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/qemu41/distinfo =================================================================== --- head/emulators/qemu41/distinfo (nonexistent) +++ head/emulators/qemu41/distinfo (revision 541864) @@ -0,0 +1,3 @@ +TIMESTAMP = 1574567528 +SHA256 (qemu/4.1.1/qemu-4.1.1.tar.xz) = ed6fdbbdd272611446ff8036991e9b9f04a2ab2e3ffa9e79f3bab0eb9a95a1d2 +SIZE (qemu/4.1.1/qemu-4.1.1.tar.xz) = 61932460 Property changes on: head/emulators/qemu41/distinfo ___________________________________________________________________ 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/qemu41/pkg-plist =================================================================== --- head/emulators/qemu41/pkg-plist (nonexistent) +++ head/emulators/qemu41/pkg-plist (revision 541864) @@ -0,0 +1,175 @@ +bin/elf2dmp +bin/qemu-edid +bin/qemu-ga +bin/qemu-i386 +bin/qemu-img +bin/qemu-io +%%GTK3%%bin/qemu-keymap +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 +%%NO_X86_TARGETS%%bin/qemu-system-hppa +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-nios2 +%%NO_X86_TARGETS%%bin/qemu-system-or1k +%%NO_X86_TARGETS%%bin/qemu-system-ppc +%%NO_X86_TARGETS%%bin/qemu-system-ppc64 +%%NO_X86_TARGETS%%bin/qemu-system-riscv32 +%%NO_X86_TARGETS%%bin/qemu-system-riscv64 +%%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/man7/qemu-block-drivers.7.gz +man/man7/qemu-cpu-models.7.gz +man/man7/qemu-ga-ref.7.gz +man/man7/qemu-qmp-ref.7.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%%/bamboo.dtb +%%DATADIR%%/bios-256k.bin +%%DATADIR%%/bios.bin +%%DATADIR%%/canyonlands.dtb +%%DATADIR%%/edk2-aarch64-code.fd +%%DATADIR%%/edk2-arm-code.fd +%%DATADIR%%/edk2-arm-vars.fd +%%DATADIR%%/edk2-i386-code.fd +%%DATADIR%%/edk2-i386-secure-code.fd +%%DATADIR%%/edk2-i386-vars.fd +%%DATADIR%%/edk2-licenses.txt +%%DATADIR%%/edk2-x86_64-code.fd +%%DATADIR%%/edk2-x86_64-secure-code.fd +%%DATADIR%%/efi-e1000.rom +%%DATADIR%%/efi-e1000e.rom +%%DATADIR%%/efi-eepro100.rom +%%DATADIR%%/efi-ne2k_pci.rom +%%DATADIR%%/efi-pcnet.rom +%%DATADIR%%/efi-rtl8139.rom +%%DATADIR%%/efi-virtio.rom +%%DATADIR%%/efi-vmxnet3.rom +%%DATADIR%%/firmware/50-edk2-i386-secure.json +%%DATADIR%%/firmware/50-edk2-x86_64-secure.json +%%DATADIR%%/firmware/60-edk2-aarch64.json +%%DATADIR%%/firmware/60-edk2-arm.json +%%DATADIR%%/firmware/60-edk2-i386.json +%%DATADIR%%/firmware/60-edk2-x86_64.json +%%DATADIR%%/hppa-firmware.img +%%DATADIR%%/keymaps/ar +%%DATADIR%%/keymaps/bepo +%%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/nl +%%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 +%%DATADIR%%/kvmvapic.bin +%%DATADIR%%/linuxboot.bin +%%LINUXBOOT_DMA%%%%DATADIR%%/linuxboot_dma.bin +%%DATADIR%%/multiboot.bin +%%DATADIR%%/openbios-ppc +%%DATADIR%%/openbios-sparc32 +%%DATADIR%%/openbios-sparc64 +%%DATADIR%%/opensbi-riscv32-virt-fw_jump.bin +%%DATADIR%%/opensbi-riscv64-sifive_u-fw_jump.bin +%%DATADIR%%/opensbi-riscv64-virt-fw_jump.bin +%%DATADIR%%/palcode-clipper +%%DATADIR%%/petalogix-ml605.dtb +%%DATADIR%%/petalogix-s3adsp1800.dtb +%%DATADIR%%/ppc_rom.bin +%%DATADIR%%/pvh.bin +%%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%%/qemu-nsis.bmp +%%DATADIR%%/qemu_vga.ndrv +%%DATADIR%%/s390-ccw.img +%%DATADIR%%/s390-netboot.img +%%DATADIR%%/sgabios.bin +%%DATADIR%%/skiboot.lid +%%DATADIR%%/slof.bin +%%DATADIR%%/spapr-rtas.bin +%%DATADIR%%/trace-events-all +%%DATADIR%%/u-boot-sam460-20100605.bin +%%DATADIR%%/u-boot.e500 +%%DATADIR%%/vgabios.bin +%%DATADIR%%/vgabios-bochs-display.bin +%%DATADIR%%/vgabios-ati.bin +%%DATADIR%%/vgabios-cirrus.bin +%%DATADIR%%/vgabios-qxl.bin +%%DATADIR%%/vgabios-ramfb.bin +%%DATADIR%%/vgabios-stdvga.bin +%%DATADIR%%/vgabios-virtio.bin +%%DATADIR%%/vgabios-vmware.bin +share/icons/hicolor/128x128/apps/qemu.png +share/icons/hicolor/16x16/apps/qemu.png +share/icons/hicolor/24x24/apps/qemu.png +share/icons/hicolor/256x256/apps/qemu.png +share/icons/hicolor/32x32/apps/qemu.bmp +share/icons/hicolor/32x32/apps/qemu.png +share/icons/hicolor/48x48/apps/qemu.png +share/icons/hicolor/512x512/apps/qemu.png +share/icons/hicolor/64x64/apps/qemu.png +share/icons/hicolor/scalable/apps/qemu.svg +share/applications/qemu.desktop +%%GTK3%%share/locale/bg/LC_MESSAGES/qemu.mo +%%GTK3%%share/locale/de_DE/LC_MESSAGES/qemu.mo +%%GTK3%%share/locale/fr_FR/LC_MESSAGES/qemu.mo +%%GTK3%%share/locale/hu/LC_MESSAGES/qemu.mo +%%GTK3%%share/locale/it/LC_MESSAGES/qemu.mo +%%GTK3%%share/locale/tr/LC_MESSAGES/qemu.mo +%%GTK3%%share/locale/zh_CN/LC_MESSAGES/qemu.mo Property changes on: head/emulators/qemu41/pkg-plist ___________________________________________________________________ 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/qemu41/pkg-message =================================================================== --- head/emulators/qemu41/pkg-message (nonexistent) +++ head/emulators/qemu41/pkg-message (revision 541864) @@ -0,0 +1,188 @@ +[ +{ type: install + message: </etc/resolv.conf but + i've been told that that's normal. (fixed on FreeSBIE 1.1.) And you have + to wait a bit for dhclient to do its thing; traffic to address 10.0.2.2 is + routed to 127.1 on the host. + +- Expect timer problems when guest kernel HZ is > hosts, for example time + sleep 1 takes 49 seconds and booting sleeps for minutes at the acd0 probe + with a FreeSBIE 1.0 guest, thats because its kernel is built with HZ=5000, + and FreeBSD's default is 100... (no longer a problem with FreeSBIE 1.1.) + The linux 2.6 kernel uses 1000 by default btw. (changed to 250 later, and + recent linux kernels now no longer have a fixed HZ, aka `tickless + kernel'...) Enabling /dev/rtc doesn't seem to help either (not included + since it needs a patch to emulators/rtc.) + +- Update: the above problem has gotten worse with FreeBSD guests + somewhere before 8.0, mainly since the kernel now usually wants + double or even quadruple number of timer irqs compared to HZ if + it detects an apic (and at least early versions of FreeBSD 8 had + a bug that essentially halved qemu's clock rate too); the only + reason you usually don't see symptoms of this with FreeBSD 8 + guests is they automatically reduce their HZ to 100 when running + in a VM while the default for the host kernel is still HZ=1000. + Workaround: you can disable the apic clock in the guest by setting + + hint.apic.0.clock="0" + + in loader.conf(5) (or manually at the loader prompt), if that + doesn't work the only things you can do is either reduce the + guest's HZ to, say, 100 by setting e.g. + + kern.hz="100" + + from the loader as above (which usually is a good idea in a VM + anyway and FreeBSD 8 now does by itself as mentioned), or otherwise + increase the host's HZ to 2000 or even 4000 from the loader in + the same way. + +- The -smb option (smb-export local dir to guest using the default + slirp networking) needs the samba port/package installed + in addition to qemu. (SAMBA knob.) + +- If you want to use usb devices connected to the host in the guest + yot need either recent 10-current (not tested yet much) or you can + use usbredir over the network (see below); also unless you are + running qemu as root you then need to fix permissions for /dev/ugen* + device nodes: if you are on 5.x or later (devfs) put a rule in + /etc/devfs.rules, activate it in /etc/rc.conf and run /etc/rc.d/devfs + restart. Example devfs.rules: + + [ugen_ruleset=20] + add path 'ugen*' mode 660 group operator + + corresponding rc.conf line: + + devfs_system_ruleset="ugen_ruleset" + +- If you want to test the new (in 0.15.0) usb network redirection (USBREDIR + option) see this thread by Hans de Goede redhat.com>: + + http://thread.gmane.org/gmane.comp.emulators.qemu/110176/focus=110183 + + Quote: + + Example usage: + + 1) Start usbredirserver for a usb device: + sudo usbredirserver 045e:0772 + 2) Start qemu with usb2 support + a chardev talking to usbredirserver + + a usb-redir device using this chardev: + qemu -usb \ + -readconfig docs/ich9-ehci-uhci.cfg \ + -chardev socket,id=usbredirchardev,host=localhost,port=4000 \ + -device usb-redir,chardev=usbredirchardev,id=usbredirdev ... + + [you would replace docs/ich9-ehci-uhci.cfg with e.g. + /usr/local/share/doc/qemu/docs/ich9-ehci-uhci.cfg, but turns out + ehci was broken for me here with FreeBSD guests and the previous + qemu version at least, I got: + + FETCHENTRY: entry at 22C5484 is of type 2 which is not supported yet +processing error - resetting ehci HC + Assertion failed: (0), function ehci_advance_state, file /data/ports/emulators/qemu-devel/work/qemu-0.15.0/hw/usb-ehci.c, line 2045. + + The new qemu version works better tho.] + +- Still usb: since the hub is no longer attached to the uchi controller and + the wakeup mechanism, resume interrupt is not implemented yet linux guests + will suspend the bus, i.e. they wont see devices usb_add'ed after its + (linux') uhci module got loaded. Workaround: either add devices before + linux loads the module or rmmod and modprobe it afterwards. [Not sure + if this still applies to the new libusb host code used on recent + 10-current.] + +- If you get repeated `atapi_poll called!' console messages with FreeBSD + guests or other weird cdrom problems then thats probably because the guest + has atapicam loaded, which for reasons still to be determined has problems + with qemu's now by default enabled cdrom dma. You can build the port with + CDROM_DMA disabled to disable it. [Looks like this is fixed in recent + FreeBSD guest versions.] + +- If you build qemu wihout SDL and then get crashes running it try passing it + -nographic. This should probably be default in that case... + +- qemu's network boot roms (-boot n) have a bug when bootfiles sizes are a + multiple of blksize, if this affects you (like with FreeBSD's /boot/pxeboot) + you can do like + + cp /boot/pxeboot pxeboot-qemu && chmod +w pxeboot-qemu && echo >>pxeboot-qemu + + and then use pxeboot-qemu. Actually you need recent btx code + (from after 7.0 was released) because of the real mode boot + problem, so use at least pxeboot from there. And I just did that + for the pxeboot extracted out of + + ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/200805/7.0-STABLE-200805-i386-bootonly.iso + + and placed it here: + + http://people.freebsd.org/~nox/qemu/pxeboot-qemu + +- If you use slirp (usernet, the default) and want to mount nfs into the guest + and you are not running qemu as root, then mountd(8) on the exporting box + needs to be run with -n in order to accept requests from ports >= 1024. + +- (not FreeBSD-specific:) There have been reports of qcow2 corruption with (at + least) win2k guests on recent kvm (which uses similar qcow2 code than qemu + now, see this thread: + + http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg00713.html - + + the consensus on that thread seems to be that qcow(2) code has always been + experimental and you should use raw images if you want reliability; raw is + also usually faster.) You should be able to migrate existing images to raw + using qemu-img(1)'s convert function; raw doesn't support advanced features + like snapshots tho. [a few important qcow2 bugfixed have been committed in + the meantime so this _might_ be less of an issue now; and meanwhile there + also is the new qed format - I don't know how stable that one is.] + +- (also not FreeBSD-specific:) It is recommended to pass raw images using the + new -drive syntax, specifying format=raw explicitly in order to avoid + malicious guests being able to exploit the format autodetection thats + otherwise getting used. (Not that you should run malicious guests anyway, + but this eleminates at least a known attack vector.) + +- qemu now has improved physical cdrom support, but still there is at + least one known problem: you need to have the guest eject the disc if you + want to change it/take it out, or otherwise the guest may continue using + state (like size) of the old disc. (You can also do like `change ide1-cd0 + /dev/acd0' in the monitor after taking out the disc if a guest cannot eject + it itself.) + +- The default configuration location (qemu-ifup script etc.) has been changed + from /etc to PREFIX/etc (usually /usr/local/etc). Move your files + accordingly. + +- The pcap code (-net nic... -net pcap,ifname=...) should work properly now, + with only one exception: Advanced features like TSO used on the host + interface can cause oversize packets which now do get truncated to avoid + confusing/panicing guests but of course still will cause retransmissions. + So if you see slow throughput and `pcap_send: packet size > ..., truncating' + messages on qemu's tty try disabling TSO etc on the host interface at least + while using pcap. + +- kqemu is no longer supported in qemu upstream after the 0.11 branch + was created, which means also not in this version. (Linux has moved + on to kvm now for qemu(-like) virtualization needs, so if you want qemu + to go faster and don't want to switch to virtualbox or stick to the older + emulators/qemu port which is at 0.11.1 atm and as such still supports + kqemu you should help getting the FreeBSD kvm port updated and + completed: + + http://wiki.freebsd.org/FabioChecconi/PortingLinuxKVMToFreeBSD + + ) +EOM +} +] Property changes on: head/emulators/qemu41/pkg-message ___________________________________________________________________ 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/qemu41/pkg-descr =================================================================== --- head/emulators/qemu41/pkg-descr (nonexistent) +++ head/emulators/qemu41/pkg-descr (revision 541864) @@ -0,0 +1,19 @@ +QEMU is a FAST! processor emulator using dynamic translation to achieve +good emulation speed. +QEMU has two operating modes: + + * Full system emulation. In this mode, QEMU emulates a full system +(for example a PC), including a processor and various peripherials. +It can be used to launch different Operating Systems without rebooting +the PC or to debug system code. + * User mode emulation (Linux host only). In this mode, QEMU can launch +Linux processes compiled for one CPU on another CPU. It can be used to +launch the Wine Windows API emulator or to ease cross-compilation and +cross-debugging. + +As QEMU requires no host kernel patches to run, it is very safe and easy to use. + +See also the preconfigured system images on http://oszoo.org/ +Many live cd isos also work. + +WWW: http://wiki.qemu.org/Main_Page Property changes on: head/emulators/qemu41/pkg-descr ___________________________________________________________________ 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