commit:     85b101dd45fb4f8c3a898dbf7826e108c3fabcf6
Author:     Brahmajit Das <brahmajit.xyz <AT> gmail <DOT> com>
AuthorDate: Thu Oct  5 16:00:46 2023 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sat Jul  5 15:32:35 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=85b101dd

games-emulation/dosbox: Fix C++17 does not allow register storage class

And update EAPI 7 -> 8

Closes: https://bugs.gentoo.org/895898
Signed-off-by: Brahmajit Das <brahmajit.xyz <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/33205
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../dosbox/dosbox-0.75_pre4302-r1.ebuild           | 91 ++++++++++++++++++++++
 .../files/dosbox-0.75-drop-register-keyword.patch  | 30 +++++++
 2 files changed, 121 insertions(+)

diff --git a/games-emulation/dosbox/dosbox-0.75_pre4302-r1.ebuild 
b/games-emulation/dosbox/dosbox-0.75_pre4302-r1.ebuild
new file mode 100644
index 000000000000..1381209ae87e
--- /dev/null
+++ b/games-emulation/dosbox/dosbox-0.75_pre4302-r1.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools desktop flag-o-matic
+
+case ${PV} in
+       9999)
+               MY_P=${PN}
+               
ESVN_REPO_URI="https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk";
+               inherit subversion
+               ;;
+       *_pre*)
+               MY_PV=0-r${PV#*_pre}
+               MY_P=${PN}-code-${MY_PV}-${PN}-trunk
+               
SRC_URI="https://sourceforge.net/code-snapshots/svn/d/do/dosbox/code-0/${MY_P}.zip";
+               BDEPEND="app-arch/unzip"
+               ;;
+       *)
+               MY_PV=$(ver_rs 2 -)
+               MY_P=${PN}-${MY_PV}
+               SRC_URI="mirror://sourceforge/dosbox/${MY_P}.tar.gz"
+               ;;
+esac
+
+GLIDE_PATCH=841e1071597b64ead14dd08c25a03206b2d1d1b6
+SRC_URI+=" glide? ( 
https://raw.githubusercontent.com/voyageur/openglide/${GLIDE_PATCH}/platform/dosbox/dosbox_glide.diff
 -> dosbox_glide-${GLIDE_PATCH}.diff )"
+
+DESCRIPTION="DOS emulator"
+HOMEPAGE="https://www.dosbox.com/";
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="alsa +core-inline debug glide hardened opengl X"
+
+RDEPEND="alsa? ( media-libs/alsa-lib )
+       glide? ( media-libs/openglide )
+       opengl? ( virtual/glu virtual/opengl )
+       debug? ( sys-libs/ncurses:0= )
+       X? ( x11-libs/libX11 )
+       media-libs/libpng:0=
+       media-libs/libsdl[joystick,opengl?,video,X?]
+       media-libs/sdl-net
+       media-libs/sdl-sound
+       sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.74-ncurses.patch
+       "${FILESDIR}"/${PN}-0.75-detect-AR.patch
+       "${FILESDIR}"/${PN}-0.75-drop-register-keyword.patch
+)
+
+src_prepare() {
+       use glide && eapply "${DISTDIR}"/dosbox_glide-${GLIDE_PATCH}.diff 
"${FILESDIR}"/${PN}-0.75-glide-libdl.patch
+       default
+       eautoreconf
+}
+
+src_configure() {
+       use glide && append-cppflags -I"${EPREFIX}"/usr/include/openglide
+
+       ac_cv_lib_X11_main=$(usex X yes no) \
+       econf \
+               $(use_enable alsa alsa-midi) \
+               $(use_enable core-inline) \
+               $(use_enable !hardened dynamic-core) \
+               $(use_enable !hardened dynamic-x86) \
+               $(use_enable debug) \
+               $(use_enable opengl)
+}
+
+src_install() {
+       default
+       make_desktop_entry dosbox DOSBox /usr/share/pixmaps/dosbox.ico
+       doicon src/dosbox.ico
+}
+
+pkg_postinst() {
+       if use glide; then
+               elog "You have enabled unofficial Glide emulation. To use this, 
symlink"
+               elog "or copy ${EPREFIX}/usr/share/openglide/glide2x-dosbox.ovl 
to your game's"
+               elog "directory and add the following to your DOSBox 
configuration."
+               elog ""
+               elog "[glide]"
+               elog "glide=true"
+       fi
+}

diff --git 
a/games-emulation/dosbox/files/dosbox-0.75-drop-register-keyword.patch 
b/games-emulation/dosbox/files/dosbox-0.75-drop-register-keyword.patch
new file mode 100644
index 000000000000..b49bc0d11f96
--- /dev/null
+++ b/games-emulation/dosbox/files/dosbox-0.75-drop-register-keyword.patch
@@ -0,0 +1,30 @@
+Bug: https://bugs.gentoo.org/895898
+--- a/src/gui/render_templates_sai.h
++++ b/src/gui/render_templates_sai.h
+@@ -43,7 +43,7 @@ inline void conc2d(Super2xSaI,SBPP)(PTYPE * line0, PTYPE * 
line1, const PTYPE *
+       } else if (C4 == C8 && C7 != C5) {
+               line1[1] = line0[1] = C4;
+       } else if (C4 == C8 && C7 == C5) {
+-              register int r = 0;
++              int r = 0;
+               r += conc2d(GetResult,SBPP)(C5,C4,C6,D1);
+               r += conc2d(GetResult,SBPP)(C5,C4,C3,C1);
+               r += conc2d(GetResult,SBPP)(C5,C4,D2,D5);
+@@ -127,7 +127,7 @@ inline void conc2d(SuperEagle,SBPP)(PTYPE * line0, PTYPE * 
line1, const PTYPE *
+                               line1[0] = interp_w2(C7,C8,1U,1U);
+                       }
+               } else {
+-                      register int r = 0;
++                      int r = 0;
+                       r += conc2d(GetResult,SBPP)(C5,C4,C6,D1);
+                       r += conc2d(GetResult,SBPP)(C5,C4,C3,C1);
+                       r += conc2d(GetResult,SBPP)(C5,C4,D2,D5);
+@@ -185,7 +185,7 @@ inline void conc2d(_2xSaI,SBPP)(PTYPE * line0, PTYPE * 
line1, const PTYPE * fc)
+                       line1[0] = C4;
+                       line1[1] = C4;
+               } else {
+-                      register int r = 0;
++                      int r = 0;
+                       r += conc2d(GetResult,SBPP)(C4,C5,C3,C1);
+                       r -= conc2d(GetResult,SBPP)(C5,C4,D4,C2);
+                       r -= conc2d(GetResult,SBPP)(C5,C4,C6,D1);

Reply via email to