git: eefcfdabff91 - main - emulators/dosbox-x: New port

From: Neel Chauhan <nc_at_FreeBSD.org>
Date: Thu, 21 Apr 2022 18:52:34 UTC
The branch main has been updated by nc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=eefcfdabff91435353e0fb63cc554405b4ca9c4f

commit eefcfdabff91435353e0fb63cc554405b4ca9c4f
Author:     Neel Chauhan <nc@FreeBSD.org>
AuthorDate: 2022-04-21 18:52:30 +0000
Commit:     Neel Chauhan <nc@FreeBSD.org>
CommitDate: 2022-04-21 18:52:30 +0000

    emulators/dosbox-x: New port
---
 emulators/Makefile                                 |  1 +
 emulators/dosbox-x/Makefile                        | 30 ++++++++++++
 emulators/dosbox-x/distinfo                        |  3 ++
 emulators/dosbox-x/files/patch-include_setup.h     | 11 +++++
 .../files/patch-src_cpu_core_dyn_x86_risc_x86.h    | 11 +++++
 .../dosbox-x/files/patch-src_gui_sdl__gui.cpp      | 27 ++++++++++
 emulators/dosbox-x/pkg-descr                       |  3 ++
 emulators/dosbox-x/pkg-plist                       | 57 ++++++++++++++++++++++
 8 files changed, 143 insertions(+)

diff --git a/emulators/Makefile b/emulators/Makefile
index a23b925c5ad7..afe53c0fa4fa 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -23,6 +23,7 @@
     SUBDIR += dolphin-emu
     SUBDIR += dosbox
     SUBDIR += dosbox-staging
+    SUBDIR += dosbox-x
     SUBDIR += dps8m
     SUBDIR += dynamips-community
     SUBDIR += edumips64
diff --git a/emulators/dosbox-x/Makefile b/emulators/dosbox-x/Makefile
new file mode 100644
index 000000000000..194082c2def2
--- /dev/null
+++ b/emulators/dosbox-x/Makefile
@@ -0,0 +1,30 @@
+PORTNAME=	dosbox-x
+DISTVERSIONPREFIX=	${PORTNAME}-v
+DISTVERSION=	0.83.24
+CATEGORIES=	emulators
+
+MAINTAINER=	nc@FreeBSD.org
+COMMENT=	DOSBox fork
+
+LICENSE=	GPLv2
+
+LIB_DEPENDS=	libpng.so:graphics/png
+
+USES=		autoreconf cpe iconv sdl
+GNU_CONFIGURE=	yes
+CONFIGURE_ARGS=	--enable-core-inline
+USE_SDL=	net sdl sound
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	joncampbell123
+
+OPTIONS_DEFINE=		DOCS
+OPTIONS_RADIO=		DEBUGGER
+OPTIONS_RADIO_DEBUGGER=	DEBUGGER_ENABLE DEBUGGER_HEAVY
+DEBUGGER_ENABLE_DESC=	Enable internal debugger
+DEBUGGER_HEAVY_DESC=	Enable internal debugger with extra features
+
+DEBUGGER_ENABLE_CONFIGURE_ON=	--enable-debug=yes
+DEBUGGER_HEAVY_CONFIGURE_ON=	--enable-debug=heavy
+
+.include <bsd.port.mk>
diff --git a/emulators/dosbox-x/distinfo b/emulators/dosbox-x/distinfo
new file mode 100644
index 000000000000..ecbf74730c2a
--- /dev/null
+++ b/emulators/dosbox-x/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1650563722
+SHA256 (joncampbell123-dosbox-x-dosbox-x-v0.83.24_GH0.tar.gz) = f4746f1524cac58756123c7acbbc565e215d7f298a19667fd845dbba040c6021
+SIZE (joncampbell123-dosbox-x-dosbox-x-v0.83.24_GH0.tar.gz) = 64650623
diff --git a/emulators/dosbox-x/files/patch-include_setup.h b/emulators/dosbox-x/files/patch-include_setup.h
new file mode 100644
index 000000000000..ca81c0e0316a
--- /dev/null
+++ b/emulators/dosbox-x/files/patch-include_setup.h
@@ -0,0 +1,11 @@
+--- include/setup.h.orig	2022-04-01 04:26:03 UTC
++++ include/setup.h
+@@ -20,6 +20,8 @@
+ #ifndef DOSBOX_SETUP_H
+ #define DOSBOX_SETUP_H
+ 
++#include <stdio.h>
++
+ #ifdef _MSC_VER
+ //#pragma warning ( disable : 4786 )
+ //#pragma warning ( disable : 4290 )
diff --git a/emulators/dosbox-x/files/patch-src_cpu_core_dyn_x86_risc_x86.h b/emulators/dosbox-x/files/patch-src_cpu_core_dyn_x86_risc_x86.h
new file mode 100644
index 000000000000..2d0948efeb73
--- /dev/null
+++ b/emulators/dosbox-x/files/patch-src_cpu_core_dyn_x86_risc_x86.h
@@ -0,0 +1,11 @@
+--- src/cpu/core_dyn_x86/risc_x86.h.orig	2014-12-31 12:59:53.015190887 +0000
++++ src/cpu/core_dyn_x86/risc_x86.h	2014-12-31 13:00:30.953180886 +0000
+@@ -138,7 +138,7 @@
+ 		"run_return_adress:					\n"
+ 		"popl %%ebp							\n"
+ 		:"=a" (retval), "=c" (tempflags)
+-		:"r" (tempflags),"r" (code)
++		:"a" (tempflags),"r" (code)
+ 		:"%edx","%ebx","%edi","%esi","cc","memory"
+ 	);
+ 	reg_flags=(reg_flags & ~FMASK_TEST) | (tempflags & FMASK_TEST);
diff --git a/emulators/dosbox-x/files/patch-src_gui_sdl__gui.cpp b/emulators/dosbox-x/files/patch-src_gui_sdl__gui.cpp
new file mode 100644
index 000000000000..e677a977b1a3
--- /dev/null
+++ b/emulators/dosbox-x/files/patch-src_gui_sdl__gui.cpp
@@ -0,0 +1,27 @@
+--- src/gui/sdl_gui.cpp.orig	2022-04-21 18:01:44 UTC
++++ src/gui/sdl_gui.cpp
+@@ -3022,7 +3022,7 @@ class ConfigurationWindow : public GUI::ToplevelWindow
+             std::string url = "https://dosbox-x.com/";
+ #if defined(WIN32)
+             ShellExecute(NULL, "open", url.c_str(), NULL, NULL, SW_SHOWNORMAL);
+-#elif defined(LINUX)
++#elif defined(LINUX) || defined(__FreeBSD__)
+             system(("xdg-open "+url).c_str());
+ #elif defined(MACOSX)
+             system(("open "+url).c_str());
+@@ -3436,7 +3436,7 @@ void GUI_Shortcut(int select) {
+         PIC_AddEvent(RunCfgTool, 100);
+     } else
+ #endif
+-    RunCfgTool(NULL);
++    RunCfgTool(0);
+ }
+ 
+ void GUI_Run(bool pressed) {
+@@ -3458,5 +3458,5 @@ void GUI_Run(bool pressed) {
+         PIC_AddEvent(RunCfgTool, 100);
+     } else
+ #endif
+-    RunCfgTool(NULL);
++    RunCfgTool(0);
+ }
diff --git a/emulators/dosbox-x/pkg-descr b/emulators/dosbox-x/pkg-descr
new file mode 100644
index 000000000000..0e6aeae8eaea
--- /dev/null
+++ b/emulators/dosbox-x/pkg-descr
@@ -0,0 +1,3 @@
+DOSBox-X is a cross-platform DOS emulator based on the DOSBox project.
+
+WWW: https://dosbox-x.com/
diff --git a/emulators/dosbox-x/pkg-plist b/emulators/dosbox-x/pkg-plist
new file mode 100644
index 000000000000..0f5fe5d22ffb
--- /dev/null
+++ b/emulators/dosbox-x/pkg-plist
@@ -0,0 +1,57 @@
+bin/dosbox-x
+man/man1/dosbox-x.1.gz
+share/applications/com.dosbox_x.DOSBox-X.desktop
+share/bash-completion/completions/dosbox-x
+%%DATADIR%%/CHANGELOG
+%%DATADIR%%/FREECG98.BMP
+%%DATADIR%%/dosbox-x.reference.conf
+%%DATADIR%%/dosbox-x.reference.full.conf
+%%DATADIR%%/glshaders/ScanLine.glsl
+%%DATADIR%%/glshaders/advinterp2x.glsl
+%%DATADIR%%/glshaders/advinterp3x.glsl
+%%DATADIR%%/glshaders/advmame2x.glsl
+%%DATADIR%%/glshaders/advmame3x.glsl
+%%DATADIR%%/glshaders/crt-aperture.glsl
+%%DATADIR%%/glshaders/crt-caligari.glsl
+%%DATADIR%%/glshaders/crt-easymode.glsl
+%%DATADIR%%/glshaders/crt-easymode.tweaked.glsl
+%%DATADIR%%/glshaders/crt-geom.glsl
+%%DATADIR%%/glshaders/crt-geom.tweaked.glsl
+%%DATADIR%%/glshaders/crt-hyllian.glsl
+%%DATADIR%%/glshaders/crt-lottes-fast.glsl
+%%DATADIR%%/glshaders/crt-lottes-fast.subtle+gain.glsl
+%%DATADIR%%/glshaders/crt-lottes.glsl
+%%DATADIR%%/glshaders/crt-lottes.tweaked.glsl
+%%DATADIR%%/glshaders/crt-nes-mini.glsl
+%%DATADIR%%/glshaders/crt-pi.glsl
+%%DATADIR%%/glshaders/default.glsl
+%%DATADIR%%/glshaders/fakelottes.glsl
+%%DATADIR%%/glshaders/fakelottes.tweaked.glsl
+%%DATADIR%%/glshaders/none.glsl
+%%DATADIR%%/glshaders/pixel_perfect-scanlines.glsl
+%%DATADIR%%/glshaders/pixel_perfect.glsl
+%%DATADIR%%/glshaders/pixellate.glsl
+%%DATADIR%%/glshaders/rgb2x.glsl
+%%DATADIR%%/glshaders/rgb3x.glsl
+%%DATADIR%%/glshaders/scan2x.glsl
+%%DATADIR%%/glshaders/scan3x.glsl
+%%DATADIR%%/glshaders/sharp.glsl
+%%DATADIR%%/glshaders/tv2x.glsl
+%%DATADIR%%/glshaders/tv3x.glsl
+%%DATADIR%%/glshaders/xbr-lv2-3d.glsl
+%%DATADIR%%/glshaders/xbr-lv2-noblend.glsl
+%%DATADIR%%/glshaders/xbr-lv2.glsl
+%%DATADIR%%/glshaders/xbr-lv3.glsl
+%%DATADIR%%/glshaders/yee64.glsl
+%%DATADIR%%/glshaders/yeetron.glsl
+%%DATADIR%%/glshaders/zfast_crt.glsl
+%%DATADIR%%/translations/en_US.lng
+%%DATADIR%%/translations/es_ES.lng
+%%DATADIR%%/translations/fr_FR.lng
+%%DATADIR%%/translations/ja_JP.lng
+%%DATADIR%%/translations/pt_BR.lng
+%%DATADIR%%/translations/tr_TR.lng
+%%DATADIR%%/translations/zh_CN.lng
+%%DATADIR%%/translations/zh_TW.lng
+share/icons/hicolor/scalable/apps/dosbox-x.svg
+share/metainfo/com.dosbox_x.DOSBox-X.metainfo.xml