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);