diff --git a/emulators/qemu-devel/Makefile b/emulators/qemu-devel/Makefile index e7f1b8f5e023..626e11cc7a78 100644 --- a/emulators/qemu-devel/Makefile +++ b/emulators/qemu-devel/Makefile @@ -1,164 +1,170 @@ PORTNAME= qemu -DISTVERSION= 8.2.0.20230531 +DISTVERSION= 8.2.0.20230630 CATEGORIES= emulators PKGNAMESUFFIX= -devel DIST_SUBDIR= qemu/${PORTVERSION} MAINTAINER= bofh@FreeBSD.org COMMENT= QEMU CPU Emulator - development version WWW= https://www.qemu.org/ LICENSE= GPLv2 ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 powerpc64 powerpc64le BUILD_DEPENDS= sphinx-build:textproc/py-sphinx \ ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} \ bash:shells/bash LIB_DEPENDS= libepoxy.so:graphics/libepoxy \ - libnettle.so:security/nettle \ - libpcre2-8.so:devel/pcre2 \ libzstd.so:archivers/zstd USES= bison compiler:c11 cpe gmake gnome iconv:wchar_t ninja perl5 \ - pkgconfig python:build tar:xz xorg + pkgconfig python:build shebangfix tar:xz xorg USE_GITLAB= yes USE_GNOME= cairo glib20 libxml2 USE_PERL5= build USE_PYTHON= distutils noflavors USE_XORG= pixman +SHEBANG_FILES= scripts/xml-preprocess.py + GL_ACCOUNT= qemu-project -GL_TAGNAME= 9824490dede64c1398b6a52095e5d22040529250 +GL_TAGNAME= d39a84b7348faa5cd6b09921b57969482ca4c543 GL_TUPLE= qemu-project:keycodemapdb:f5772a62ec52591ff6870b7e8ef32482371f22c6:keycodemapdb/subprojects/keycodemapdb \ qemu-project:dtc:b6910bec11614980a21e46fbccc35934b671bd81:dtc/subprojects/dtc \ qemu-project:libvfio-user:0b28d205572c80b568a1003db2c8f37ca333e4d7:libvfio/subprojects/libvfio-user \ - qemu-project:meson:cb0b6352b5b3fe548f2148999b4072eac76ff465:meson/meson \ - qemu-project:berkeley-softfloat-3:b64af41c3276f97f0e181920400ee056b9c88037:berkeleysoftfloat3/tests/fp/berkeley-softfloat-3 \ - qemu-project:berkeley-testfloat-3:40619cbb3bf32872df8c53cc457039229428a263:berkeleytestfloat3/tests/fp/berkeley-testfloat-3 + qemu-project:meson:9067139acb5f133e08ed15eba8a6d41246200b5b:meson/meson \ + qemu-project:berkeley-softfloat-3:b64af41c3276f97f0e181920400ee056b9c88037:berkeleysoftfloat3/subprojects/berkeley-softfloat-3 \ + qemu-project:berkeley-testfloat-3:40619cbb3bf32872df8c53cc457039229428a263:berkeleytestfloat3/subprojects/berkeley-testfloat-3 HAS_CONFIGURE= yes OPTIONS_SINGLE= NCURSES OPTIONS_SINGLE_NCURSES= NCURSES_DEFAULT NCURSES_BASE NCURSES_PORT OPTIONS_DEFINE= SAMBA X11 GTK3 OPENGL GNUTLS SASL JPEG PNG CURL VDE \ CDROM_DMA USBREDIR X86_TARGETS STATIC_LINK DOCS CAPSTONE OPTIONS_DEFAULT=X11 GTK3 OPENGL GNUTLS SASL JPEG PNG CDROM_DMA CURL NCURSES_DEFAULT VDE \ CAPSTONE OPTIONS_SUB= yes CAPSTONE_DESC= Disassembly framework support CDROM_DMA_DESC= IDE CDROM DMA GNUTLS_DESC= gnutls dependency (vnc encryption) 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 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 CAPSTONE_CONFIGURE_ON= --enable-capstone --extra-cflags=-I${LOCALBASE}/include/capstone CAPSTONE_CONFIGURE_OFF= --disable-capstone CAPSTONE_LIB_DEPENDS= libcapstone.so:devel/capstone CURL_CONFIGURE_OFF= --disable-curl CURL_LIB_DEPENDS= libcurl.so:ftp/curl DOCS_CONFIGURE_ENABLE= docs 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 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=gbm,gl OPENGL_USES= gl PNG_CONFIGURE_OFF= --disable-vnc-png PNG_LIB_DEPENDS= libpng.so:graphics/png SAMBA_CONFIGURE_ON= --smbd=${LOCALBASE}/sbin/smbd SASL_CONFIGURE_OFF= --disable-vnc-sasl SAMBA_USES= samba:run # smbd 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 PORTDOCS= .buildinfo _static/* about/* dbus-dbusindex.html devel/* \ docs genindex.html index.html interop/* objects.inv \ search.html searchindex.js specs/* system/* tools/* user/* WITHOUT_CPU_CFLAGS=yes #to avoid problems with register allocation CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//} CONFIGURE_ARGS= --localstatedir=/var --mandir=man --extra-ldflags=-L\"/usr/lib\" \ --extra-ldflags=-L\"${LOCALBASE}/lib\" --enable-debug \ --prefix=${PREFIX} --cc=${CC} --enable-netmap --disable-kvm \ --disable-linux-user --disable-linux-aio --disable-xen \ --enable-debug-info --python=${PYTHON_CMD} --disable-guest-agent \ --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" CFLAGS+= -D_CALL_SYSV MAKE_ARGS+= ARCH=ppc USE_GCC= yes .endif .if ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-bsd-user MAKE_ARGS+= ARCH=ppc64 PLIST_SUB+= BSDUSER="@comment " .else PLIST_SUB+= BSDUSER="" .endif .if ${ARCH} == "sparc64" CONFIGURE_ARGS+= --sparc_cpu=v9 .endif PLIST_SUB+= LINUXBOOT_DMA="" +post-extract: + ${CP} ${WRKSRC}/subprojects/packagefiles/berkeley-softfloat-3/* \ + ${WRKSRC}/subprojects/berkeley-softfloat-3/ + ${CP} ${WRKSRC}/subprojects/packagefiles/berkeley-testfloat-3/* \ + ${WRKSRC}/subprojects/berkeley-testfloat-3/ + post-patch-CDROM_DMA-off: @${REINPLACE_CMD} -e '/USE_DMA_CDROM/d' ${WRKSRC}/include/hw/ide/internal.h do-build: cd ${WRKSRC} && ${GMAKE} do-install: cd ${WRKSRC} && ${SETENV} DESTDIR=${STAGEDIR} ${GMAKE} install .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 diff --git a/emulators/qemu-devel/distinfo b/emulators/qemu-devel/distinfo index 95af03e8d869..b98e45fd1e7d 100644 --- a/emulators/qemu-devel/distinfo +++ b/emulators/qemu-devel/distinfo @@ -1,15 +1,15 @@ -TIMESTAMP = 1695495134 -SHA256 (qemu/8.2.0.20230531/qemu-project-qemu-9824490dede64c1398b6a52095e5d22040529250_GL0.tar.gz) = 90ca97eefb00b0b26226ceb18d23c81d540a6de0a377dbcf73de4854863499ed -SIZE (qemu/8.2.0.20230531/qemu-project-qemu-9824490dede64c1398b6a52095e5d22040529250_GL0.tar.gz) = 36800088 -SHA256 (qemu/8.2.0.20230531/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = d014b53382dbb17b8196ad12f50de7f20d0ef1b9f7d54b0be51a6cbb14209195 -SIZE (qemu/8.2.0.20230531/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = 29580 -SHA256 (qemu/8.2.0.20230531/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = e115f987eec23a1ba25150a46ced1675de3716072d3b4905afb3a9cda0f007c7 -SIZE (qemu/8.2.0.20230531/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = 205556 -SHA256 (qemu/8.2.0.20230531/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = d2f60cd4f86f345aab1332953eb736cce3518159e6e99bcc2d10467c06f717fe -SIZE (qemu/8.2.0.20230531/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = 189943 -SHA256 (qemu/8.2.0.20230531/qemu-project-meson-cb0b6352b5b3fe548f2148999b4072eac76ff465_GL0.tar.gz) = e133564389ddffa531d04e48b84c8d5f9e00a88b9c001c710a3a851b74ed1779 -SIZE (qemu/8.2.0.20230531/qemu-project-meson-cb0b6352b5b3fe548f2148999b4072eac76ff465_GL0.tar.gz) = 4656019 -SHA256 (qemu/8.2.0.20230531/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = faae889814ea6a292f7ca03d9b36e6c7e95bab2a64777804883cc822b8d48757 -SIZE (qemu/8.2.0.20230531/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = 148741 -SHA256 (qemu/8.2.0.20230531/qemu-project-berkeley-testfloat-3-40619cbb3bf32872df8c53cc457039229428a263_GL0.tar.gz) = e1374054bc43d75436f1454f92a2e4208046858ee03086d1f2dc5de6d09a3d66 -SIZE (qemu/8.2.0.20230531/qemu-project-berkeley-testfloat-3-40619cbb3bf32872df8c53cc457039229428a263_GL0.tar.gz) = 139281 +TIMESTAMP = 1695554498 +SHA256 (qemu/8.2.0.20230630/qemu-project-qemu-d39a84b7348faa5cd6b09921b57969482ca4c543_GL0.tar.gz) = bbc7f03c310462b91523bf1a4313a296cee60cbfa7ccdb7d3d5c6d85e17be5ad +SIZE (qemu/8.2.0.20230630/qemu-project-qemu-d39a84b7348faa5cd6b09921b57969482ca4c543_GL0.tar.gz) = 36907702 +SHA256 (qemu/8.2.0.20230630/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = d014b53382dbb17b8196ad12f50de7f20d0ef1b9f7d54b0be51a6cbb14209195 +SIZE (qemu/8.2.0.20230630/qemu-project-keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6_GL0.tar.gz) = 29580 +SHA256 (qemu/8.2.0.20230630/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = e115f987eec23a1ba25150a46ced1675de3716072d3b4905afb3a9cda0f007c7 +SIZE (qemu/8.2.0.20230630/qemu-project-dtc-b6910bec11614980a21e46fbccc35934b671bd81_GL0.tar.gz) = 205556 +SHA256 (qemu/8.2.0.20230630/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = d2f60cd4f86f345aab1332953eb736cce3518159e6e99bcc2d10467c06f717fe +SIZE (qemu/8.2.0.20230630/qemu-project-libvfio-user-0b28d205572c80b568a1003db2c8f37ca333e4d7_GL0.tar.gz) = 189943 +SHA256 (qemu/8.2.0.20230630/qemu-project-meson-9067139acb5f133e08ed15eba8a6d41246200b5b_GL0.tar.gz) = 0ba61decdf3c5678e3f79896b0c5b3c8f8341b326836ef5592842dd048201a33 +SIZE (qemu/8.2.0.20230630/qemu-project-meson-9067139acb5f133e08ed15eba8a6d41246200b5b_GL0.tar.gz) = 4694698 +SHA256 (qemu/8.2.0.20230630/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = faae889814ea6a292f7ca03d9b36e6c7e95bab2a64777804883cc822b8d48757 +SIZE (qemu/8.2.0.20230630/qemu-project-berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037_GL0.tar.gz) = 148741 +SHA256 (qemu/8.2.0.20230630/qemu-project-berkeley-testfloat-3-40619cbb3bf32872df8c53cc457039229428a263_GL0.tar.gz) = e1374054bc43d75436f1454f92a2e4208046858ee03086d1f2dc5de6d09a3d66 +SIZE (qemu/8.2.0.20230630/qemu-project-berkeley-testfloat-3-40619cbb3bf32872df8c53cc457039229428a263_GL0.tar.gz) = 139281 diff --git a/emulators/qemu-devel/pkg-message b/emulators/qemu-devel/pkg-message index 505d43c65f2a..42b5a63da5e4 100644 --- a/emulators/qemu-devel/pkg-message +++ b/emulators/qemu-devel/pkg-message @@ -1,156 +1,155 @@ [ { 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. +- slirp (usermode networking) is fixed now, you still have to manually + do: echo nameserver 10.0.2.3 >/etc/resolv.conf but that is normal. 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. -- 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.) +- 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>: +- If you want to test the new 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 } ]