public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Yuan Liao" <liaoyuan@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:dev commit in: games-emulation/dosbox-x/
Date: Sat,  2 Mar 2024 03:13:01 +0000 (UTC)	[thread overview]
Message-ID: <1709348904.cee4e63668a82cc828fe09fe368e8c1cf4c89275.liaoyuan@gentoo> (raw)

commit:     cee4e63668a82cc828fe09fe368e8c1cf4c89275
Author:     Yuan Liao <liaoyuan <AT> gmail <DOT> com>
AuthorDate: Sat Mar  2 03:08:24 2024 +0000
Commit:     Yuan Liao <liaoyuan <AT> gmail <DOT> com>
CommitDate: Sat Mar  2 03:08:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=cee4e636

games-emulation/dosbox-x: Add 2024.03.01

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

 games-emulation/dosbox-x/Manifest                  |   1 +
 .../dosbox-x/dosbox-x-2024.03.01.ebuild            | 215 +++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/games-emulation/dosbox-x/Manifest b/games-emulation/dosbox-x/Manifest
index 2c97267c41..d222844723 100644
--- a/games-emulation/dosbox-x/Manifest
+++ b/games-emulation/dosbox-x/Manifest
@@ -1 +1,2 @@
 DIST dosbox-x-v2023.10.06.tar.gz 119420489 BLAKE2B dca4d6c6639e9121d8b88843a04ffabd552d10614d36508996eeb99323b32f912c8e9673baf4e2f29d7cb280aba745c330170e209a9ab0a7befa0be231ca1cc9 SHA512 906907d0eb1c8b0c0646c82aeefca6457ba6a6e72044c6343cd334ccef6e6c6298d63405f24281a56d9eaf4c1073c141311063ea9d5a420abad8302cbab7ec21
+DIST dosbox-x-v2024.03.01.tar.gz 119593920 BLAKE2B 42c994247e55c1b2d67ed9e1bf90e99ddf9a08476b18ab802757becc0ee6959231d3665e39cfaef02a6b1c234e3faff10597d396d8d30ce01d8123b5107327bc SHA512 0eb835da3fdfd7f1c6160aa1a32a7eff7c38f46184f7cee088e0fb8edf09327f058fd45e7995955a7f335c704ddd69c1627731899a01687563990bb06f4d9cd1

diff --git a/games-emulation/dosbox-x/dosbox-x-2024.03.01.ebuild b/games-emulation/dosbox-x/dosbox-x-2024.03.01.ebuild
new file mode 100644
index 0000000000..3a9d16acc2
--- /dev/null
+++ b/games-emulation/dosbox-x/dosbox-x-2024.03.01.ebuild
@@ -0,0 +1,215 @@
+# Copyright 2022-2024 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:
+# - 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="
+	media-libs/alsa-lib
+	media-libs/libsdl2[X,alsa,opengl?,sound,threads,video]
+	media-libs/sdl2-net
+	net-libs/libpcap
+	sys-libs/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() {
+	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
+}


             reply	other threads:[~2024-03-02  3:13 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-02  3:13 Yuan Liao [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-04 22:47 [gentoo-commits] repo/proj/guru:dev commit in: games-emulation/dosbox-x/ Yuan Liao
2024-10-04 22:47 Yuan Liao
2024-07-31 17:26 Yuan Liao
2024-07-02 12:52 Yuan Liao
2024-04-27 11:42 Yuan Liao
2024-02-07 23:49 Yuan Liao
2023-11-07 13:49 Yuan Liao
2023-10-07 14:26 Yuan Liao
2023-10-07 14:26 Yuan Liao
2023-09-02 14:18 Yuan Liao
2023-08-19 17:29 Yuan Liao
2023-06-02  1:26 Yuan Liao
2023-05-03  1:03 Yuan Liao
2023-05-03  1:03 Yuan Liao
2023-04-01 16:55 Yuan Liao
2023-04-01 16:55 Yuan Liao
2023-03-15 20:26 Yuan Liao
2022-12-27  6:24 Yuan Liao
2022-12-27  6:24 Yuan Liao
2022-12-26 17:19 Yuan Liao
2022-12-22  0:46 Yuan Liao
2022-12-14 17:23 Yuan Liao
2022-12-14 17:23 Yuan Liao
2022-12-05 18:29 Yuan Liao
2022-10-06 16:54 Yuan Liao
2022-09-07 14:55 Yuan Liao
2022-08-23 20:07 Yuan Liao
2022-08-02  0:27 Yuan Liao
2022-08-02  0:27 Yuan Liao
2022-07-04 16:10 Yuan Liao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1709348904.cee4e63668a82cc828fe09fe368e8c1cf4c89275.liaoyuan@gentoo \
    --to=liaoyuan@gmail.com \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox