-
Notifications
You must be signed in to change notification settings - Fork 728
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This port is a near identical copy of the qemu port created for provisioning the update of the new 9.X.X branch of qemu.
- Loading branch information
Showing
12 changed files
with
596 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
PORTNAME= qemu | ||
DISTVERSION= 8.2.2 | ||
CATEGORIES= emulators | ||
MASTER_SITES= https://download.qemu.org/ | ||
DIST_SUBDIR= qemu/${PORTVERSION} | ||
|
||
MAINTAINER= bofh@FreeBSD.org | ||
COMMENT= QEMU CPU Emulator ${${FLAVOR}_COMMENT} - 8.X.X | ||
WWW= https://www.qemu.org/ | ||
|
||
LICENSE= GPLv2 | ||
|
||
ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le | ||
# We need to check if it build with other ARCHS | ||
|
||
BUILD_DEPENDS= bash:shells/bash | ||
LIB_DEPENDS+= libfdt.so:sysutils/dtc \ | ||
libzstd.so:archivers/zstd \ | ||
libslirp.so:net/libslirp | ||
.if ${FLAVOR:U} != nox11 | ||
LIB_DEPENDS+= libepoxy.so:graphics/libepoxy | ||
.endif | ||
|
||
FLAVORS= default nox11 | ||
FLAVOR?= ${FLAVORS:[1]} | ||
default_PKGNAMESUFFIX= 8 | ||
default_CONFLICTS_INSTALL= qemu-devel qemu-nox11 qemu-tools qemu-utils \ | ||
qemu7* qemu8* | ||
nox11_PKGNAMESUFFIX= 8-nox11 | ||
nox11_CONFLICTS_INSTALL= qemu qemu-devel qemu* qemu7* qemu-guest-agent | ||
nox11_COMMENT= (without X11) | ||
|
||
USES= cpe gmake gnome ninja perl5 pkgconfig python:build shebangfix tar:xz | ||
SHEBANG_FILES= scripts/xml-preprocess.py | ||
USE_GNOME= glib20 | ||
USE_PERL5= build | ||
USES+= iconv:wchar_t | ||
.if ${FLAVOR:U} != nox11 | ||
USE_GNOME+= cairo | ||
.endif | ||
|
||
HAS_CONFIGURE= yes | ||
CONFIGURE_ARGS+= --cc=${CC} \ | ||
--disable-guest-agent \ | ||
--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}/share/man \ | ||
--prefix=${PREFIX} \ | ||
--python=${PYTHON_CMD} | ||
CONFIGURE_ARGS+= --enable-fdt=system \ | ||
--enable-netmap | ||
|
||
CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//} | ||
WITHOUT_CPU_CFLAGS= yes #to avoid problems with register allocation | ||
|
||
PORTDOCS= .buildinfo _static/* about/* dbus-dbusindex.html 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 OPENGL X11 | ||
.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/capstone | ||
CAPSTONE_CONFIGURE_ON= --enable-capstone \ | ||
--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-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) | ||
X86_TARGETS_LIB_DEPENDS_OFF= libdw.so:devel/elfutils | ||
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 | ||
|
||
.include <bsd.port.options.mk> | ||
|
||
.if (empty(FLAVOR) || ${FLAVOR:U} == default || ${FLAVOR:U} == nox11) | ||
.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*} || ${ARCH:Maarch64} | ||
CONFIGURE_ARGS+= --disable-bsd-user | ||
MAKE_ARGS+= ARCH=${ARCH:C/powerpc64.*/ppc64/} | ||
PLIST_SUB+= BSDUSER="@comment " | ||
.else | ||
PLIST_SUB+= BSDUSER="" | ||
.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} && ${SETENVI} ${WRK_ENV} ${GMAKE} -j${MAKE_JOBS_NUMBER} | ||
|
||
do-install: | ||
cd ${WRKSRC} && ${SETENVI} ${WRK_ENV} 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 <bsd.port.mk> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
TIMESTAMP = 1709670183 | ||
SHA256 (qemu/8.2.2/qemu-8.2.2.tar.xz) = 847346c1b82c1a54b2c38f6edbd85549edeb17430b7d4d3da12620e2962bc4f3 | ||
SIZE (qemu/8.2.2/qemu-8.2.2.tar.xz) = 129398020 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
--- block/export/fuse.c.orig 2023-12-19 21:24:34 UTC | ||
+++ block/export/fuse.c | ||
@@ -690,12 +690,6 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t | ||
return; | ||
} | ||
|
||
-#ifdef CONFIG_FALLOCATE_PUNCH_HOLE | ||
- if (mode & FALLOC_FL_KEEP_SIZE) { | ||
- length = MIN(length, blk_len - offset); | ||
- } | ||
-#endif /* CONFIG_FALLOCATE_PUNCH_HOLE */ | ||
- | ||
if (!mode) { | ||
/* We can only fallocate at the EOF with a truncate */ | ||
if (offset < blk_len) { | ||
@@ -715,53 +709,6 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t | ||
ret = fuse_do_truncate(exp, offset + length, true, | ||
PREALLOC_MODE_FALLOC); | ||
} | ||
-#ifdef CONFIG_FALLOCATE_PUNCH_HOLE | ||
- else 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_pwrite_zeroes(exp->common.blk, offset, size, | ||
- BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK); | ||
- if (ret == -ENOTSUP) { | ||
- /* | ||
- * fallocate() specifies to return EOPNOTSUPP for unsupported | ||
- * operations | ||
- */ | ||
- ret = -EOPNOTSUPP; | ||
- } | ||
- | ||
- offset += size; | ||
- length -= size; | ||
- } while (ret == 0 && length > 0); | ||
- } | ||
-#endif /* CONFIG_FALLOCATE_PUNCH_HOLE */ | ||
-#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 { | ||
ret = -EOPNOTSUPP; | ||
} |
10 changes: 10 additions & 0 deletions
10
emulators/qemu8/files/patch-bsd-user_host_i386_host-signal.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- bsd-user/host/i386/host-signal.h.orig 2022-12-14 16:28:45 UTC | ||
+++ bsd-user/host/i386/host-signal.h | ||
@@ -12,6 +12,7 @@ | ||
#include <sys/param.h> | ||
#include <sys/ucontext.h> | ||
#include <machine/trap.h> | ||
+#include <vm/vm.h> | ||
#include <vm/pmap.h> | ||
#include <machine/pmap.h> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
--- util/cpuinfo-ppc.c.orig 2024-01-29 19:13:22 UTC | ||
+++ util/cpuinfo-ppc.c | ||
@@ -6,13 +6,21 @@ | ||
#include "qemu/osdep.h" | ||
#include "host/cpuinfo.h" | ||
|
||
-#include <asm/cputable.h> | ||
#ifdef CONFIG_GETAUXVAL | ||
# include <sys/auxv.h> | ||
#else | ||
+# ifdef __linux__ | ||
+# include <asm/cputable.h> | ||
+# elif defined(__FreeBSD__) | ||
+# include <machine/cpu.h> | ||
+# endif | ||
# include "elf.h" | ||
#endif | ||
|
||
+#ifndef PPC_FEATURE2_ARCH_3_1 | ||
+# define PPC_FEATURE2_ARCH_3_1 0x00040000 | ||
+#endif | ||
+ | ||
unsigned cpuinfo; | ||
|
||
/* Called both as constructor and (possibly) via other constructors. */ | ||
@@ -53,7 +61,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(voi | ||
* always have both anyway, since VSX came with Power7 | ||
* and crypto came with Power8. | ||
*/ | ||
- if (hwcap2 & PPC_FEATURE2_VEC_CRYPTO) { | ||
+ if (hwcap2 & PPC_FEATURE2_HAS_VEC_CRYPTO) { | ||
info |= CPUINFO_CRYPTO; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- util/meson.build.orig 2023-12-19 21:24:35 UTC | ||
+++ util/meson.build | ||
@@ -102,11 +102,7 @@ if have_block | ||
util_ss.add(files('readline.c')) | ||
util_ss.add(files('throttle.c')) | ||
util_ss.add(files('timed-average.c')) | ||
- if config_host_data.get('CONFIG_INOTIFY1') | ||
- util_ss.add(files('filemonitor-inotify.c')) | ||
- else | ||
- util_ss.add(files('filemonitor-stub.c')) | ||
- endif | ||
+ util_ss.add(files('filemonitor-stub.c')) | ||
util_ss.add(when: 'CONFIG_LINUX', if_true: files('vfio-helpers.c')) | ||
endif | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#!/bin/sh | ||
exec true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#!/bin/sh | ||
exec true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
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. |
Oops, something went wrong.