From nobody Fri Apr 22 18:00:28 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id D655A1998978; Fri, 22 Apr 2022 18:00:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KlMdS5TPyz3D70; Fri, 22 Apr 2022 18:00:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1650650428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5tAAGFwj9+nFf+WeS3vu64R+Jo4y9zWo+aiP54xMMPk=; b=ZI8v6aekc4CPkIsXusO4/lv2ELAfyzvzeZTn4jOBhw59o37purXlE0HlH6kVGIrLy9iZrR CPWEgG5zMIi6Z5gpxZ1t6+YjhGAV+XxqMtJ4vBXGZbwWScNY3DeAP64rf/leJ37FSxkvZy 4pj28dfM8azHpEAQGGiMObQ1Np4qSxdUTKl9hohxzhDra2z0CDLjrU0RjlydygoIeppARu 5eAu0FcmZQ8wfzzZETjiysEf1JeNa1+jLlHIo2B7JTl9A6Oc9+8WU93Yev9ian2hqgvnms Ei1uTuovTO2P73m1Cq1Dc+ucG4sjxkvHwVSJ0CnV6unxXc6GoqsQnDa2+97/Mg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9B73721DC3; Fri, 22 Apr 2022 18:00:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 23MI0S2S097266; Fri, 22 Apr 2022 18:00:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 23MI0SuA097265; Fri, 22 Apr 2022 18:00:28 GMT (envelope-from git) Date: Fri, 22 Apr 2022 18:00:28 GMT Message-Id: <202204221800.23MI0SuA097265@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Muhammad Moinur Rahman Subject: git: 267102e62de6 - main - emulators/qemu6: New PORT List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bofh X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 267102e62de671320ae40fde248dccc8c91810e1 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1650650428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5tAAGFwj9+nFf+WeS3vu64R+Jo4y9zWo+aiP54xMMPk=; b=Zjmq5VRmfxQeweDVgie62DdbCjv46XhT5WIJ6NEBChpb0Z06zsPLMyHC+F5PSIpeDP1dT1 VrvKYEI/nJkkLGhqxqMJ0g4dyB32iunYWrAJREc9ODpzF2tjy60iT0l+MZTljiLXqmjR56 ZYgr4dv8ndKVQVYfDxpGfDByyTLDP2b+h10YeKeak2TMpUKZuo/yIAoBxUdKrq6YimsNuH CGfOK+KZ/PEWXgnGI+AOYfs1eAvzW/fnTAXRZi56kIceX4PkhbR8UqNvfQs4BcqVlZi50g gv1vnMB5LwFOpIiVoPeI0HkMLYdEd1cSWB+fMcXcIsvgaK7UCFr7Mpz0/XAJLQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1650650428; a=rsa-sha256; cv=none; b=pFYeUTYR9pztD6K5KxtMj4egK/faXHyOLV+0cezjeWW3xmkfnrj2n78CdKK3ZzeQXuy/2d bKKoRe/9FOQUbhy6t37QRjby2db94z0YEYylQ0lcfnsKVET86tL5r8RuCJ7q2Jids8cIbP GOfhY5ZxKunkW72TXdyDLKdcties2pvrd78Ln1DzVQv/dGiKUpHyL9a9CRsWwDyWq6aSHA XE2COSVFmruXZKS0Qvm1gr/opVh4b+Vlv0yr7jagD8Xf9YUwnzkIz9dyCF2BYJ9dQ7Cwjq Ht/ltQ/GqPT01qvlrAFoYWQXun1iogR4NMz6AL3VRmTqStltxDi1SMyXcrw4eg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by bofh: URL: https://cgit.FreeBSD.org/ports/commit/?id=267102e62de671320ae40fde248dccc8c91810e1 commit 267102e62de671320ae40fde248dccc8c91810e1 Author: Muhammad Moinur Rahman AuthorDate: 2022-04-22 17:58:49 +0000 Commit: Muhammad Moinur Rahman CommitDate: 2022-04-22 17:58:49 +0000 emulators/qemu6: New PORT qemu 7.X has been released and in preperation of updating emulators/qemu to latest version emulators/qemu has been moved to a new port. --- emulators/Makefile | 1 + emulators/qemu6/Makefile | 240 ++++++++++++++++++++++++ emulators/qemu6/distinfo | 3 + emulators/qemu6/files/patch-block_export_fuse.c | 51 +++++ emulators/qemu6/files/patch-meson.build | 20 ++ emulators/qemu6/files/qemu-ifdown.sample | 2 + emulators/qemu6/files/qemu-ifup.sample | 2 + emulators/qemu6/pkg-descr | 16 ++ emulators/qemu6/pkg-descr-tools | 7 + emulators/qemu6/pkg-message | 103 ++++++++++ emulators/qemu6/pkg-plist | 181 ++++++++++++++++++ emulators/qemu6/pkg-plist-tools | 50 +++++ 12 files changed, 676 insertions(+) diff --git a/emulators/Makefile b/emulators/Makefile index afe53c0fa4fa..7ef793c3977f 100644 --- a/emulators/Makefile +++ b/emulators/Makefile @@ -111,6 +111,7 @@ SUBDIR += qemu-user-static SUBDIR += qemu-user-static-devel SUBDIR += qemu5 + SUBDIR += qemu6 SUBDIR += qmc2 SUBDIR += quasi88 SUBDIR += ripes diff --git a/emulators/qemu6/Makefile b/emulators/qemu6/Makefile new file mode 100644 index 000000000000..8e461a6f046e --- /dev/null +++ b/emulators/qemu6/Makefile @@ -0,0 +1,240 @@ +# Created by: Juergen Lock + +PORTNAME= qemu +PORTVERSION= 6.2.0 +CATEGORIES= emulators +MASTER_SITES= https://download.qemu.org/ +DIST_SUBDIR= qemu/${PORTVERSION} + +MAINTAINER= bofh@FreeBSD.org +COMMENT= QEMU CPU Emulator ${${FLAVOR}_COMMENT} - 6.X + +LICENSE= GPLv2 + +BUILD_DEPENDS= bash:shells/bash +.if ${FLAVOR:U} != tools +LIB_DEPENDS+= libfdt.so:sysutils/dtc \ + libzstd.so:archivers/zstd +.endif +.if (${FLAVOR:U} != nox11 && ${FLAVOR:U} != tools) +LIB_DEPENDS+= libepoxy.so:graphics/libepoxy +.endif + +FLAVORS= default nox11 tools +FLAVOR?= ${FLAVORS:[1]} +default_PKGNAMESUFFIX= 6 +default_CONFLICTS_INSTALL= qemu-devel qemu-nox11 qemu-tools qemu-utils \ + qemu5* +nox11_PKGNAMESUFFIX= 6-nox11 +nox11_CONFLICTS_INSTALL= qemu qemu-devel qemu42 qemu5* +nox11_COMMENT= (without X11) +tools_PKGNAMESUFFIX= 6-tools +tools_COMMENT= (tools only) +tools_CONFLICTS_INSTALL= qemu qemu-devel qemu-nox11 qemu-utils qemu42 \ + qemu5* +tools_DESCR= ${.CURDIR}/pkg-descr-tools +tools_PLIST= ${.CURDIR}/pkg-plist-tools + +USES= cpe gmake gnome ninja perl5 pkgconfig python:build tar:xz +USE_GNOME= glib20 +USE_PERL5= build +.if ${FLAVOR:U} != tools +ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 powerpc64 powerpc64le +USES+= iconv:wchar_t +.endif +.if (${FLAVOR:U} != nox11 && ${FLAVOR:U} != tools) +USE_GNOME+= cairo +.endif + +HAS_CONFIGURE= yes +CONFIGURE_ARGS+= --cc=${CC} \ + --disable-kvm \ + --disable-linux-aio \ + --disable-linux-user \ + --disable-xen \ + --extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\" \ + --extra-ldflags=-L${LOCALBASE}/lib \ + --extra-ldflags=-L/usr/lib \ + --localstatedir=/var \ + --mandir=${PREFIX}/man \ + --prefix=${PREFIX} \ + --python=${PYTHON_CMD} + +CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//} +WITHOUT_CPU_CFLAGS= yes #to avoid problems with register allocation + +PORTDOCS= .buildinfo _static/* about/* devel/* docs genindex.html \ + index.html interop/* objects.inv search.html searchindex.js \ + specs/* system/* tools/* user/* + +OPTIONS_DEFINE= CAPSTONE CDROM_DMA CURL DEBUG DOCS GNUTLS GTK3 \ + ISCSI JPEG OPENGL PNG SAMBA SASL STATIC_LINK \ + STRIP USBREDIR VDE X11 X86_TARGETS +OPTIONS_DEFAULT= CDROM_DMA CURL GNUTLS GTK3 JPEG NCURSES_DEFAULT \ + OPENGL PNG SASL VDE X11 +OPTIONS_SINGLE= NCURSES +OPTIONS_SINGLE_NCURSES= NCURSES_BASE NCURSES_DEFAULT NCURSES_PORT +.if ${FLAVOR:U} == nox11 +OPTIONS_EXCLUDE:= GTK3 X11 +.endif +.if ${FLAVOR:U} == tools +OPTIONS_EXCLUDE:= CAPSTONE CDROM_DMA CURL DEBUG GNUTLS GTK3 ISCSI \ + JPEG NCURSES NCURSES_BASE NCURSES_DEFAULT \ + NCURSES_PORT OPENGL PNG SAMBA SASL STATIC_LINK \ + USBREDIR VDE X11 X86_TARGETS +.endif +OPTIONS_SUB= yes +CAPSTONE_DESC= Disassembly framework support +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_BASE_DESC= Depend on ncurses in base +NCURSES_DEFAULT_DESC= Depend on ncurses (ports if installed, otherwise 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_LIB_DEPENDS= libcapstone.so:devel/capstone4 +CAPSTONE_CONFIGURE_ON= --enable-capstone=system \ + --extra-cflags=-I${LOCALBASE}/include/capstone +CAPSTONE_CONFIGURE_OFF= --disable-capstone +CURL_LIB_DEPENDS= libcurl.so:ftp/curl +CURL_CONFIGURE_OFF= --disable-curl +DEBUG_CONFIGURE_ON= --enable-debug +DOCS_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx_rtd_theme>0:textproc/py-sphinx_rtd_theme@${PY_FLAVOR} \ + sphinx-build:textproc/py-sphinx@${PY_FLAVOR} +DOCS_CONFIGURE_ENABLE= docs +GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls +GNUTLS_CONFIGURE_OFF= --disable-gnutls +GTK3_LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon +GTK3_USES= gettext gl +GTK3_USE= GNOME=gdkpixbuf2,gtk30,vte3 \ + XORG=x11,xext +GTK3_CONFIGURE_OFF= --disable-gtk \ + --disable-vte +ISCSI_LIB_DEPENDS= libiscsi.so:net/libiscsi +ISCSI_CONFIGURE_OFF= --disable-libiscsi +JPEG_USES= jpeg +JPEG_CONFIGURE_OFF= --disable-vnc-jpeg +NCURSES_BASE_USES= ncurses:base +NCURSES_DEFAULT_USES= ncurses +NCURSES_PORT_USES= ncurses:port +OPENGL_USES= gl +OPENGL_USE= GL=gbm,gl +OPENGL_CONFIGURE_OFF= --disable-opengl +PNG_LIB_DEPENDS= libpng.so:graphics/png +PNG_CONFIGURE_OFF= --disable-vnc-png +SAMBA_USES= samba:run # smbd +SAMBA_CONFIGURE_ON= --smbd=${LOCALBASE}/sbin/smbd +SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 +SASL_CONFIGURE_OFF= --disable-vnc-sasl +STATIC_LINK_PREVENTS= GTK3 X11 +STATIC_LINK_PREVENTS_MSG= X11 ui cannot be built static +STATIC_LINK_CONFIGURE_ON= --static +STRIP_CONFIGURE_OFF= --disable-strip +USBREDIR_BUILD_DEPENDS= usbredir>=0.6:net/usbredir +USBREDIR_RUN_DEPENDS= usbredir>=0.6:net/usbredir +USBREDIR_CONFIGURE_OFF= --disable-usb-redir +VDE_LIB_DEPENDS= libvdeplug.so:net/vde2 +VDE_CONFIGURE_OFF= --disable-vde +X11_USES= sdl +X11_USE= GNOME=gdkpixbuf2 \ + SDL=sdl2 \ + XORG=x11,xext +X11_CONFIGURE_ENABLE= sdl +.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11) && \ + (${FLAVOR:U} != tools || ${PKGNAMESUFFIX} != "-guest-agent") +X86_TARGETS_USES_OFF= xorg +X86_TARGETS_USE_OFF= XORG=pixman,x11 +X86_TARGETS_CONFIGURE_ON= --target-list='i386-softmmu i386-bsd-user x86_64-softmmu x86_64-bsd-user' +.endif + +.if ${FLAVOR:U} != tools +CONFIGURE_ARGS+= --enable-fdt=system \ + --enable-netmap +.endif +.if ${FLAVOR:U} == tools +CONFIGURE_ARGS+= --disable-attr \ + --disable-blobs \ + --disable-brlapi \ + --disable-bzip2 \ + --disable-cap-ng \ + --disable-coroutine-pool \ + --disable-curses \ + --disable-fdt \ + --disable-gcrypt \ + --disable-glusterfs \ + --disable-guest-agent \ + --disable-libnfs \ + --disable-libusb \ + --disable-lzo \ + --disable-netmap \ + --disable-nettle \ + --disable-numa \ + --disable-rbd \ + --disable-rdma \ + --disable-seccomp \ + --disable-smartcard \ + --disable-snappy \ + --disable-spice \ + --disable-system \ + --disable-tpm \ + --disable-user \ + --disable-vhost-net \ + --disable-virtfs \ + --disable-vnc \ + --enable-tools +.endif + +.include + +.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11) && \ + (${FLAVOR:U} != tools || ${PKGNAMESUFFIX} != "-guest-agent") +.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} == "powerpc64" +MAKE_ARGS+= ARCH=ppc64 +.endif + +.if ${ARCH} == "sparc64" +CONFIGURE_ARGS+= --sparc_cpu=v9 +.endif + +PLIST_SUB+= LINUXBOOT_DMA="" +.endif + +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: +.if ${FLAVOR:U} != tools + ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample ${STAGEDIR}${PREFIX}/etc + ${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample ${STAGEDIR}${PREFIX}/etc + @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-* +.endif + +post-install-DOCS-on: + @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${STAGEDIR}${DOCSDIR}/) +.endif + +.include diff --git a/emulators/qemu6/distinfo b/emulators/qemu6/distinfo new file mode 100644 index 000000000000..be4bf5295273 --- /dev/null +++ b/emulators/qemu6/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1639582833 +SHA256 (qemu/6.2.0/qemu-6.2.0.tar.xz) = 68e15d8e45ac56326e0b9a4afa8b49a3dfe8aba3488221d098c84698bca65b45 +SIZE (qemu/6.2.0/qemu-6.2.0.tar.xz) = 115667324 diff --git a/emulators/qemu6/files/patch-block_export_fuse.c b/emulators/qemu6/files/patch-block_export_fuse.c new file mode 100644 index 000000000000..af18e3c3d9f0 --- /dev/null +++ b/emulators/qemu6/files/patch-block_export_fuse.c @@ -0,0 +1,51 @@ +--- block/export/fuse.c.orig 2021-12-10 19:29:04 UTC ++++ block/export/fuse.c +@@ -618,47 +618,7 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t + return; + } + +- if (mode & FALLOC_FL_KEEP_SIZE) { +- length = MIN(length, blk_len - offset); +- } +- +- if (mode & FALLOC_FL_PUNCH_HOLE) { +- if (!(mode & FALLOC_FL_KEEP_SIZE)) { +- fuse_reply_err(req, EINVAL); +- return; +- } +- +- do { +- int size = MIN(length, BDRV_REQUEST_MAX_BYTES); +- +- ret = blk_pdiscard(exp->common.blk, offset, size); +- offset += size; +- length -= size; +- } while (ret == 0 && length > 0); +- } +-#ifdef CONFIG_FALLOCATE_ZERO_RANGE +- else if (mode & FALLOC_FL_ZERO_RANGE) { +- if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + length > blk_len) { +- /* No need for zeroes, we are going to write them ourselves */ +- ret = fuse_do_truncate(exp, offset + length, false, +- PREALLOC_MODE_OFF); +- if (ret < 0) { +- fuse_reply_err(req, -ret); +- return; +- } +- } +- +- do { +- int size = MIN(length, BDRV_REQUEST_MAX_BYTES); +- +- ret = blk_pwrite_zeroes(exp->common.blk, +- offset, size, 0); +- offset += size; +- length -= size; +- } while (ret == 0 && length > 0); +- } +-#endif /* CONFIG_FALLOCATE_ZERO_RANGE */ +- else if (!mode) { ++ if (!mode) { + /* We can only fallocate at the EOF with a truncate */ + if (offset < blk_len) { + fuse_reply_err(req, EOPNOTSUPP); diff --git a/emulators/qemu6/files/patch-meson.build b/emulators/qemu6/files/patch-meson.build new file mode 100644 index 000000000000..5359dd16ef0e --- /dev/null +++ b/emulators/qemu6/files/patch-meson.build @@ -0,0 +1,20 @@ +--- meson.build.orig 2021-12-10 18:55:23 UTC ++++ meson.build +@@ -1901,14 +1901,10 @@ fdt_opt = get_option('fdt') + if have_system + if fdt_opt in ['enabled', 'auto', 'system'] + have_internal = fs.exists(meson.current_source_dir() / 'dtc/libfdt/Makefile.libfdt') +- fdt = cc.find_library('fdt', kwargs: static_kwargs, ++ fdt = cc.find_library('fdt', kwargs: static_kwargs, dirs: '/usr/local/lib/', + required: fdt_opt == 'system' or +- fdt_opt == 'enabled' and not have_internal) +- if fdt.found() and cc.links(''' +- #include +- #include +- int main(void) { fdt_check_full(NULL, 0); return 0; }''', +- dependencies: fdt) ++ fdt_opt == 'enabled' ) ++ if fdt.found() + fdt_opt = 'system' + elif have_internal + fdt_opt = 'internal' diff --git a/emulators/qemu6/files/qemu-ifdown.sample b/emulators/qemu6/files/qemu-ifdown.sample new file mode 100644 index 000000000000..89d9a9bff436 --- /dev/null +++ b/emulators/qemu6/files/qemu-ifdown.sample @@ -0,0 +1,2 @@ +#!/bin/sh +exec true diff --git a/emulators/qemu6/files/qemu-ifup.sample b/emulators/qemu6/files/qemu-ifup.sample new file mode 100644 index 000000000000..89d9a9bff436 --- /dev/null +++ b/emulators/qemu6/files/qemu-ifup.sample @@ -0,0 +1,2 @@ +#!/bin/sh +exec true diff --git a/emulators/qemu6/pkg-descr b/emulators/qemu6/pkg-descr new file mode 100644 index 000000000000..24ef5d4c38fe --- /dev/null +++ b/emulators/qemu6/pkg-descr @@ -0,0 +1,16 @@ +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. + +WWW: http://wiki.qemu.org/Main_Page diff --git a/emulators/qemu6/pkg-descr-tools b/emulators/qemu6/pkg-descr-tools new file mode 100644 index 000000000000..f1914609c286 --- /dev/null +++ b/emulators/qemu6/pkg-descr-tools @@ -0,0 +1,7 @@ +Miscellaneous tools that can be used without the rest of QEMU + +* qemu-img: QEMU disk image utility +* qemu-io: QEMU disk exerciser +* qemu-nbd: QEMU disk network block device server + +WWW: http://wiki.qemu.org/Main_Page diff --git a/emulators/qemu6/pkg-message b/emulators/qemu6/pkg-message new file mode 100644 index 000000000000..54a7ebc05d6d --- /dev/null +++ b/emulators/qemu6/pkg-message @@ -0,0 +1,103 @@ +[ +{ type: install + message: < hosts. 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.) + +- 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 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" + +- 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.) + +EOM +} +] diff --git a/emulators/qemu6/pkg-plist b/emulators/qemu6/pkg-plist new file mode 100644 index 000000000000..badf1fd8c7d4 --- /dev/null +++ b/emulators/qemu6/pkg-plist @@ -0,0 +1,181 @@ +%%CURL%%bin/elf2dmp +bin/qemu-edid +bin/qemu-ga +bin/qemu-i386 +bin/qemu-img +bin/qemu-io +%%GTK3%%bin/qemu-keymap +bin/qemu-nbd +bin/qemu-storage-daemon +%%NO_X86_TARGETS%%bin/qemu-system-aarch64 +%%NO_X86_TARGETS%%bin/qemu-system-alpha +%%NO_X86_TARGETS%%bin/qemu-system-avr +%%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-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-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-rx +%%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 +bin/qemu-system-x86_64 +%%NO_X86_TARGETS%%bin/qemu-system-xtensa +%%NO_X86_TARGETS%%bin/qemu-system-xtensaeb +bin/qemu-x86_64 +include/qemu-plugin.h +%%PORTDOCS%%man/man1/qemu.1.gz +%%PORTDOCS%%man/man1/qemu-img.1.gz +%%PORTDOCS%%man/man7/qemu-block-drivers.7.gz +%%PORTDOCS%%man/man7/qemu-cpu-models.7.gz +%%PORTDOCS%%man/man8/qemu-ga.8.gz +%%PORTDOCS%%man/man7/qemu-ga-ref.7.gz +%%PORTDOCS%%man/man8/qemu-nbd.8.gz +%%PORTDOCS%%man/man8/qemu-pr-helper.8.gz +%%PORTDOCS%%man/man7/qemu-qmp-ref.7.gz +%%PORTDOCS%%man/man1/qemu-storage-daemon.1.gz +%%PORTDOCS%%man/man7/qemu-storage-daemon-qmp-ref.7.gz +@sample etc/qemu-ifup.sample +@sample etc/qemu-ifdown.sample +%%DATADIR%%/QEMU,tcx.bin +%%DATADIR%%/QEMU,cgthree.bin +%%DATADIR%%/bios-256k.bin +%%DATADIR%%/bios-microvm.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%%/linuxboot.bin +%%LINUXBOOT_DMA%%%%DATADIR%%/linuxboot_dma.bin +%%DATADIR%%/multiboot.bin +%%DATADIR%%/multiboot_dma.bin +%%DATADIR%%/npcm7xx_bootrom.bin +%%DATADIR%%/openbios-ppc +%%DATADIR%%/openbios-sparc32 +%%DATADIR%%/openbios-sparc64 +%%DATADIR%%/opensbi-riscv32-generic-fw_dynamic.bin +%%DATADIR%%/opensbi-riscv32-generic-fw_dynamic.elf +%%DATADIR%%/opensbi-riscv64-generic-fw_dynamic.bin +%%DATADIR%%/opensbi-riscv64-generic-fw_dynamic.elf +%%DATADIR%%/palcode-clipper +%%DATADIR%%/petalogix-ml605.dtb +%%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%%/qboot.rom +%%DATADIR%%/qemu-nsis.bmp +%%DATADIR%%/qemu_vga.ndrv +%%DATADIR%%/s390-ccw.img +%%DATADIR%%/s390-netboot.img +%%DATADIR%%/slof.bin +%%DATADIR%%/u-boot-sam460-20100605.bin +%%DATADIR%%/vgabios.bin +%%DATADIR%%/vgabios-ati.bin +%%DATADIR%%/vgabios-cirrus.bin +%%DATADIR%%/vgabios-qxl.bin +%%DATADIR%%/vgabios-stdvga.bin +%%DATADIR%%/vgabios-virtio.bin +%%DATADIR%%/vgabios-vmware.bin +%%DATADIR%%/sgabios.bin +%%DATADIR%%/skiboot.lid +%%DATADIR%%/trace-events-all +%%DATADIR%%/petalogix-s3adsp1800.dtb +%%DATADIR%%/bamboo.dtb +%%DATADIR%%/kvmvapic.bin +%%DATADIR%%/u-boot.e500 +%%DATADIR%%/pvh.bin +%%DATADIR%%/vgabios-bochs-display.bin +%%DATADIR%%/vgabios-ramfb.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/sv/LC_MESSAGES/qemu.mo +%%GTK3%%share/locale/tr/LC_MESSAGES/qemu.mo +%%GTK3%%share/locale/zh_CN/LC_MESSAGES/qemu.mo diff --git a/emulators/qemu6/pkg-plist-tools b/emulators/qemu6/pkg-plist-tools new file mode 100644 index 000000000000..42b2a0ee3aeb --- /dev/null +++ b/emulators/qemu6/pkg-plist-tools @@ -0,0 +1,50 @@ +bin/qemu-edid +bin/qemu-img +bin/qemu-io +bin/qemu-nbd +bin/qemu-storage-daemon +include/qemu-plugin.h +%%PORTDOCS%%man/man1/qemu.1.gz +%%PORTDOCS%%man/man1/qemu-img.1.gz +%%PORTDOCS%%man/man7/qemu-block-drivers.7.gz +%%PORTDOCS%%man/man7/qemu-cpu-models.7.gz +%%PORTDOCS%%man/man8/qemu-nbd.8.gz +%%PORTDOCS%%man/man8/qemu-pr-helper.8.gz +%%PORTDOCS%%man/man7/qemu-qmp-ref.7.gz +%%PORTDOCS%%man/man1/qemu-storage-daemon.1.gz +%%PORTDOCS%%man/man7/qemu-storage-daemon-qmp-ref.7.gz +%%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%%/trace-events-all