commit:     65a293f84cf3d40b801a404fcb1fbcd6b03d61c9
Author:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 22 20:13:39 2025 +0000
Commit:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Thu Dec 25 14:00:55 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65a293f8

app-emulation/86Box: add 5.3

Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>

 app-emulation/86Box/86Box-5.3.ebuild               | 101 +++++++++++++++++++++
 app-emulation/86Box/Manifest                       |   1 +
 ....3-fallthrough-define-available-in-C-code.patch |  45 +++++++++
 3 files changed, 147 insertions(+)

diff --git a/app-emulation/86Box/86Box-5.3.ebuild 
b/app-emulation/86Box/86Box-5.3.ebuild
new file mode 100644
index 000000000000..5c9495e0ba93
--- /dev/null
+++ b/app-emulation/86Box/86Box-5.3.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake desktop flag-o-matic xdg-utils
+
+DESCRIPTION="Emulator of x86-based machines based on PCem"
+HOMEPAGE="https://github.com/86Box/86Box";
+SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="discord experimental +fluidsynth +munt new-dynarec +openal +qt6 +threads 
vde vnc"
+
+DEPEND="
+       app-emulation/faudio
+       dev-libs/libevdev
+       dev-libs/libserialport
+       media-libs/freetype:2=
+       media-libs/libpng:=
+       media-libs/libsdl2
+       media-libs/libsndfile
+       media-libs/openal
+       media-libs/rtmidi
+       net-libs/libslirp
+       virtual/zlib:=
+       fluidsynth? ( media-sound/fluidsynth:= )
+       munt? ( media-libs/munt-mt32emu )
+       openal? ( media-libs/openal )
+       qt6? (
+               dev-libs/wayland
+               dev-qt/qtbase:6=[gui,network,opengl,widgets]
+               x11-libs/libX11
+               x11-libs/libXi
+               x11-libs/libxkbcommon
+       )
+       vnc? ( net-libs/libvncserver )
+"
+RDEPEND="${DEPEND}
+       qt6? ( dev-qt/qttranslations:6 )
+       vde? ( net-misc/vde )
+"
+BDEPEND="
+       virtual/pkgconfig
+       qt6? ( kde-frameworks/extra-cmake-modules )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-5.3-fallthrough-define-available-in-C-code.patch" 
)
+
+src_configure() {
+       # LTO needs to be filtered
+       # See https://bugs.gentoo.org/854507
+       filter-lto
+       append-flags -fno-strict-aliasing
+
+       local mycmakeargs=(
+               -DCPPTHREADS="$(usex threads)"
+               -DDEV_BRANCH="$(usex experimental)"
+               -DDISCORD="$(usex discord)"
+               -DDYNAREC="ON"
+               -DFLUIDSYNTH="$(usex fluidsynth)"
+               -DHAS_VDE="$(usex vde 
"${EPREFIX}/usr/$(get_libdir)/libvdeplug.so" "HAS_VDE-NOTFOUND")"
+               -DMINITRACE="OFF"
+               -DMUNT="$(usex munt)"
+               -DMUNT_EXTERNAL="$(usex munt)"
+               -DNEW_DYNAREC="$(usex new-dynarec)"
+               -DOPENAL="$(usex openal)"
+               -DPREFER_STATIC="OFF"
+               -DQT="$(usex qt6)"
+               -DRELEASE="ON"
+               -DRTMIDI="ON"
+               $(usex qt6 '-DUSE_QT6=ON' '')
+               -DVNC="$(usex vnc)"
+       )
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       domenu src/unix/assets/net.86box.86Box.desktop
+       for iconsize in 48 64 72 96 128 192 256 512; do
+               doicon -s $iconsize 
src/unix/assets/${iconsize}x${iconsize}/net.86box.86Box.png
+       done
+}
+
+pkg_postinst() {
+       xdg_desktop_database_update
+       xdg_icon_cache_update
+
+       elog "In order to use 86Box, you will need some roms for various 
emulated systems."
+       elog "See https://github.com/86Box/roms for more information."
+}
+
+pkg_postrm() {
+       xdg_desktop_database_update
+       xdg_icon_cache_update
+}

diff --git a/app-emulation/86Box/Manifest b/app-emulation/86Box/Manifest
index 04280da8b5df..022c9267b142 100644
--- a/app-emulation/86Box/Manifest
+++ b/app-emulation/86Box/Manifest
@@ -1 +1,2 @@
 DIST 86Box-5.2.tar.gz 13933308 BLAKE2B 
e397f15b8477dcbfad956761481455e7eb766c5edc206e453b00278dcd2caba02065faa3ff50858180905f30b741c67ece3a3b3b95ab41c7e72537d445875a6f
 SHA512 
0e8352645823ef156fe9458d2adff652aab2cdc0cae7a05102f93fb46d779b057f4aeddc0ae4e3eaf768d1c0f71435159dd1c4016308ad59f7e5f9801caac791
+DIST 86Box-5.3.tar.gz 14001417 BLAKE2B 
a70679787fc7a601afa7ac3b69f4bb58afa2939d7a876048c6b944bdcb3affbc58ac8bfbe1e95088eaa93bf872172068bc0421602465d2a352d9674fcc255c41
 SHA512 
120fbf7544cc91dd9f7b75027cd6219084aa71e97e8ef2ad105ac8ccc7bea2a9290c2d124461da0192c3000c0459fe65c1fd361342de33b06c80616592f52f84

diff --git 
a/app-emulation/86Box/files/86Box-5.3-fallthrough-define-available-in-C-code.patch
 
b/app-emulation/86Box/files/86Box-5.3-fallthrough-define-available-in-C-code.patch
new file mode 100644
index 000000000000..c08c02882418
--- /dev/null
+++ 
b/app-emulation/86Box/files/86Box-5.3-fallthrough-define-available-in-C-code.patch
@@ -0,0 +1,45 @@
+From 0092ce15de3efac108b961882f870a8c05e8c38f Mon Sep 17 00:00:00 2001
+From: OBattler <[email protected]>
+Date: Mon, 22 Dec 2025 22:56:10 +0100
+Subject: [PATCH] Only make the fallthrough define available in C code, fixes
+ #6607.
+
+---
+ src/include/86box/plat.h | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/src/include/86box/plat.h b/src/include/86box/plat.h
+index dcf7e4d5306..cbc348709ec 100644
+--- a/src/include/86box/plat.h
++++ b/src/include/86box/plat.h
+@@ -90,16 +90,12 @@ extern int strnicmp(const char *s1, const char *s2, size_t 
n);
+ #    include <atomic>
+ #    define atomic_flag_t std::atomic_flag
+ #    define atomic_bool_t std::atomic_bool
++
+ extern "C" {
+ #else
+ #    include <stdatomic.h>
+ #    define atomic_flag_t atomic_flag
+ #    define atomic_bool_t atomic_bool
+-#endif
+-
+-#if defined(_MSC_VER)
+-#    define ssize_t intptr_t
+-#endif
+ 
+ #ifdef _MSC_VER
+ # define fallthrough do {} while (0) /* fallthrough */
+@@ -114,6 +110,12 @@ extern "C" {
+ # endif
+ #endif
+ 
++#endif
++
++#if defined(_MSC_VER)
++#    define ssize_t intptr_t
++#endif
++
+ /* Global variables residing in the platform module. */
+ extern int          dopause;       /* system is paused */
+ extern int          mouse_capture; /* mouse is captured in app */

Reply via email to