repo/proj/guru:dev commit in: games-emulation/dosbox-x/

"Yuan Liao" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1785957531.427408a8dce4ae219bcde075b05f67bd4ea55ee6.liaoyuan@gentoo>
commit:     427408a8dce4ae219bcde075b05f67bd4ea55ee6
Author:     Yuan Liao <liaoyuan <AT> gmail <DOT> com>
AuthorDate: Wed Aug  5 19:02:56 2026 +0000
Commit:     Yuan Liao <liaoyuan <AT> gmail <DOT> com>
CommitDate: Wed Aug  5 19:18:51 2026 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=427408a8

games-emulation/dosbox-x: Add 2026.08.02

Signed-off-by: Yuan Liao <liaoyuan <AT> gmail.com>

 games-emulation/dosbox-x/Manifest                  |   1 +
 .../dosbox-x/dosbox-x-2026.08.02.ebuild            | 218 +++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/games-emulation/dosbox-x/Manifest b/games-emulation/dosbox-x/Manifest
index c7073a43f8..7baa0e7f64 100644
--- a/games-emulation/dosbox-x/Manifest
+++ b/games-emulation/dosbox-x/Manifest
@@ -1 +1,2 @@
 DIST dosbox-x-v2026.07.02.tar.gz 133051734 BLAKE2B 29781da3a049a2a63d075f8a0234ab7b66c53ef440e9b0c4c17141ff522f6b5ba1456f092b53b0a7be5c8b2d1ed4e200b2e4317cdfe8de0cd3476f2dea5c5450 SHA512 d19e6ff309b418728c1e226a7984e09133055116115e76eb7054339229f1bb7ea715a2ed5e58311c256b798caf37347602ededba8cd47e5fd34fc163832c0189
+DIST dosbox-x-v2026.08.02.tar.gz 133086440 BLAKE2B 51649b1e084025da63e1358894905aa3c9d23c266199e11bd469ad18cf268610c0477c28f51d1bb215a32f9276ead6ec3903add912b1c95e6806ec640cad3bb4 SHA512 855c3e13a635713ef795b6bd2b6464937daed6ba45d320921293a00212680adde622a0b03d15ef58703f688bac1a35016748552b54809f642627109a0134a2bf

diff --git a/games-emulation/dosbox-x/dosbox-x-2026.08.02.ebuild b/games-emulation/dosbox-x/dosbox-x-2026.08.02.ebuild
new file mode 100644
index 0000000000..da7cf8767b
--- /dev/null
+++ b/games-emulation/dosbox-x/dosbox-x-2026.08.02.ebuild
@@ -0,0 +1,218 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs xdg
+
+if [[ "${PV}" == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/joncampbell123/dosbox-x.git"
+else
+	SRC_URI="https://github.com/joncampbell123/dosbox-x/archive/dosbox-x-v${PV}.tar.gz"
+	S="${WORKDIR}/${PN}-${PN}-v${PV}"
+	KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="Complete, accurate DOS emulator forked from DOSBox"
+HOMEPAGE="https://dosbox-x.com/"
+
+# Stay consistent with games-emulation/dosbox::gentoo even though source file
+# headers specify the GPL version to be "either version 2 of the License, or
+# (at your option) any later version."  The same header is used in both the
+# DOSBox source tree and the DOSBox-X source tree.
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="X debug ffmpeg fluidsynth opengl png slirp truetype"
+# Unit tests are only available in debug builds
+RESTRICT="!debug? ( test )"
+
+BDEPEND="
+	dev-lang/nasm
+	sys-libs/libcap
+"
+
+# Unconditionally pulling in automagically-enabled optional dependencies:
+# - dev-lang/duktape
+# - media-libs/alsa-lib
+# - media-libs/sdl2-net
+# - net-libs/libpcap
+#
+# With media-libs/libsdl2[-X,wayland], this package does work on a Wayland
+# desktop, but (at least on GNOME) the program does not launch in a movable
+# and resizable window; whereas with media-libs/libsdl2[X], it does.  Thus,
+# unconditionally require media-libs/libsdl2[X] for better user experience.
+#
+# DOSBox-X works with multiple audio backends of SDL 2 but requires at least
+# one available backend (https://bugs.gentoo.org/901303).  Unconditionally
+# depending on media-libs/libsdl2[alsa] to satisfy this requirement since
+# this ebuild already unconditionally pulls in media-libs/alsa-lib.
+COMMON_DEPEND="
+	dev-lang/duktape:=
+	media-libs/alsa-lib
+	media-libs/libsdl2[X,alsa,opengl?,sound,threads(+),video]
+	media-libs/sdl2-net
+	net-libs/libpcap
+	virtual/zlib:=
+	X? (
+		x11-libs/libX11
+		x11-libs/libXrandr
+		x11-libs/libxkbfile
+	)
+	debug? ( sys-libs/ncurses:= )
+	ffmpeg? ( media-video/ffmpeg:= )
+	fluidsynth? ( media-sound/fluidsynth:= )
+	opengl? ( media-libs/libglvnd[X] )
+	png? ( media-libs/libpng:= )
+	slirp? ( net-libs/libslirp )
+	truetype? ( media-libs/freetype )
+"
+
+DEPEND="
+	${COMMON_DEPEND}
+"
+
+# DOSBox-X can still run normally without any of these dependencies --
+# it just cannot show a file dialog.  However, upon the initial launch,
+# DOSBox-X will try to show a file dialog to let the user choose the
+# working directory; without one of these dependencies, the user would
+# see nothing when they launch DOSBox-X for the first time.
+FILE_DIALOG_DEPEND="
+	|| (
+		gnome-extra/zenity
+		kde-apps/kdialog
+		x11-misc/xdialog
+	)
+"
+
+RDEPEND="
+	${COMMON_DEPEND}
+	${FILE_DIALOG_DEPEND}
+"
+
+pkg_pretend() {
+	if use ffmpeg && use !png; then
+		ewarn "Setting the 'ffmpeg' USE flag when the 'png' USE flag is"
+		ewarn "unset does not have any effect.  Unsetting the 'png' USE"
+		ewarn "flag disables the video capture feature, so additional"
+		ewarn "video capture formats enabled by the 'ffmpeg' USE flag"
+		ewarn "will end up being unused."
+	fi
+}
+
+src_prepare() {
+	default
+
+	# https://bugs.gentoo.org/887669
+	# Mask lines touching '-O*', and avoid creating an empty command
+	# list as a result to not break 'if', 'for', or functions
+	sed -i -E -e 's/((C|CXX)FLAGS=.*-O)/: \1/' configure.ac ||
+		die "Failed to stop configure.ac from touching '-O*' compiler flags"
+
+	eautoreconf
+}
+
+src_configure() {
+	local myconf=(
+		# Always use SDL 2, even though the package provides the option to
+		# build with SDL 1.x, because this package is expected to be built
+		# with the bundled, heavily-modified version of SDL 1.x if that
+		# branch is used.  Compiler errors are likely to occur if the
+		# bundled version of SDL 1.x is not used.  Bundled dependencies
+		# should be avoided on Gentoo, so SDL 2 is more preferable.
+		--enable-sdl2
+
+		# Explicitly enable ALSA MIDI support, same as default.  As of
+		# v2022.08.0, even when it is disabled, media-libs/alsa-lib will
+		# still be automagically linked if it is present in the build
+		# environment (presumably for other components of this package),
+		# so the dependency cannot be made optional by disabling this
+		# option.  Plus, disabling this option has no observable effect
+		# on build time, build size, or the program's functionality, as
+		# 'mididevice=alsa' still works with '--disable-alsa-midi'.
+		--enable-alsa-midi
+
+		$(use_enable debug '' heavy)
+
+		$(use_enable X x11)
+		$(use_enable ffmpeg avcodec)
+		$(use_enable fluidsynth libfluidsynth)
+		$(use_enable opengl)
+		$(use_enable png screenshots)
+		$(use_enable slirp libslirp)
+		$(use_enable truetype freetype)
+	)
+
+	econf "${myconf[@]}"
+}
+
+src_compile() {
+	# https://bugs.gentoo.org/856352
+	emake AR="$(tc-getAR)"
+}
+
+src_test() {
+	xdg_environment_reset # Tests may create config files in XDG_CONFIG_HOME
+	set -- src/dosbox-x -tests
+	echo "${@}" >&2
+	"${@}" || die "Unit tests failed"
+}
+
+pkg_preinst() {
+	xdg_pkg_preinst
+
+	# Returns whether or not the USE flag specified with the first positional
+	# argument is newly enabled for this installation of the package.
+	newuse() {
+		local flag="${1}"
+
+		# The 'has_version' call tests if any USE flags are newly enabled.
+		# It is to extract information about any existing copy of this
+		# package installed on the system, which is why it should be made
+		# before the new copy of this package just built is merged.
+		use "${flag}" && ! has_version "${CATEGORY}/${PN}[${flag}]"
+	}
+
+	newuse debug && PRINT_NOTES_FOR_DEBUGGER=1
+	newuse fluidsynth && PRINT_NOTES_FOR_FLUIDSYNTH=1
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if [[ "${PRINT_NOTES_FOR_DEBUGGER}" ]]; then
+		elog
+		elog "Note on the Debugger"
+		elog
+		elog "The debugger can only be started when DOSBox-X is launched"
+		elog "from a terminal.  Otherwise, the \"Start DOSBox-X Debugger\""
+		elog "option in the \"Debug\" drop-down menu would be unavailable."
+		elog
+		elog "For more information about the debugger, please consult:"
+		elog "  ${EPREFIX}/usr/share/doc/${PF}/README.debugger*"
+	fi
+
+	if [[ "${PRINT_NOTES_FOR_FLUIDSYNTH}" ]]; then
+		elog
+		elog "Note on FluidSynth"
+		elog
+		elog "To use FluidSynth as the MIDI device for DOSBox-X, a soundfont"
+		elog "is required.  If no existing soundfont is available, a new one"
+		elog "can be installed and configured for DOSBox-X very easily:"
+		elog
+		elog "1. Install the following package:"
+		elog "     media-sound/fluid-soundfont"
+		elog "2. Add the following lines to DOSBox-X's configuration file:"
+		elog "     [midi]"
+		elog "     mididevice=fluidsynth"
+		elog
+		elog "Usually, there is no need to explicitly specify the soundfont"
+		elog "file's path because the package mentioned in step 1 installs"
+		elog "soundfont files to a standard location, allowing them to be"
+		elog "detected and selected automatically."
+		elog
+		elog "For advanced FluidSynth configuration, please consult:"
+		elog "  https://dosbox-x.com/wiki/Guide%3ASetting-up-MIDI-in-DOSBox%E2%80%90X#_fluidsynth"
+	fi
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.