commit:     e4cc6d2f30078a6316e79b0c786e8ffbe9e4ec66
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 28 11:15:55 2025 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sun Sep 28 11:18:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e4cc6d2f

games-emulation/advancemame: Bump to 5.0, EAPI 8, SDL now optional

Closes: https://bugs.gentoo.org/944042
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-emulation/advancemame/Manifest               |   1 +
 games-emulation/advancemame/advancemame-5.0.ebuild | 108 +++++++++++
 .../advancemame/files/advancemame-5.0-docdir.patch | 212 +++++++++++++++++++++
 games-emulation/advancemame/metadata.xml           |   1 +
 4 files changed, 322 insertions(+)

diff --git a/games-emulation/advancemame/Manifest 
b/games-emulation/advancemame/Manifest
index 828db8897595..fb94b560c822 100644
--- a/games-emulation/advancemame/Manifest
+++ b/games-emulation/advancemame/Manifest
@@ -1 +1,2 @@
 DIST advancemame-3.9.tar.gz 27287755 BLAKE2B 
020a10a9b9fa207a733747273e749b4d9adabbd50104ae10b1568144bcdcb3694fe19e4ca5fd31119a02c64bca9872b1b3d1eb3ce305a611f006a8168f5bcb89
 SHA512 
43f9ba746f222b17ade2d213d6af7cc8fe6b3ee6008633f02b8877f4c7f75628bdf1cc9718db09f5f9a482d194c8ba94f9047334e8012d23c598454e5dab2eb3
+DIST advancemame-5.0.tar.gz 27668230 BLAKE2B 
cd057514f2d85e30a9c911051201d55a31e600b89fba5a602f2cb0125ae3c23cf6c2dea00dc0b3b9a9fb9412d928452337a89c27f82e9b14f5e9e7cb2c4c9fb6
 SHA512 
5b10b4a0a0a66ad87c50ef0201d5d79dd36c65bf99be57986ac6049cfa0225a8c247b23a0f1eb49884871ce6c9ceb3bcf13af242bcf59c68371b84f365b4b83e

diff --git a/games-emulation/advancemame/advancemame-5.0.ebuild 
b/games-emulation/advancemame/advancemame-5.0.ebuild
new file mode 100644
index 000000000000..95033e4b6204
--- /dev/null
+++ b/games-emulation/advancemame/advancemame-5.0.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs
+
+DESCRIPTION="GNU/Linux port of the MAME emulator with GUI menu"
+HOMEPAGE="https://www.advancemame.it/";
+SRC_URI="https://github.com/amadvance/advancemame/releases/download/v${PV}/${P}.tar.gz";
+
+LICENSE="GPL-2 XMAME"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+IUSE="alsa fbcon ncurses openmp oss +sdl slang truetype"
+
+REQUIRED_USE="
+       || ( fbcon sdl )
+       || ( alsa oss sdl )
+"
+
+DEPEND="
+       dev-libs/expat
+       sys-libs/zlib
+       alsa? ( media-libs/alsa-lib )
+       ncurses? ( sys-libs/ncurses:= )
+       sdl? ( media-libs/libsdl2[video] )
+       slang? ( sys-libs/slang )
+       truetype? ( media-libs/freetype:2 )
+"
+RDEPEND="
+       ${DEPEND}
+"
+BDEPEND="
+       dev-build/autoconf-archive
+       virtual/pkgconfig
+       x86? ( >=dev-lang/nasm-0.98 )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-pic.patch
+       "${FILESDIR}"/${PN}-verboselog.patch
+       "${FILESDIR}"/${P}-docdir.patch
+)
+
+check_openmp() {
+       [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_pretend() {
+       check_openmp
+}
+
+pkg_setup() {
+       check_openmp
+}
+
+src_prepare() {
+       default
+
+       # AC_CHECK_CC_OPT is obsolete, superseded by AX_CHECK_COMPILE_FLAG
+       sed -i -e 's/AC_CHECK_CC_OPT/AX_CHECK_COMPILE_FLAG/' configure.ac || die
+
+       eautoreconf
+}
+
+src_configure() {
+       # https://bugs.gentoo.org/858626
+       #
+       # From upstream configure.ac, only enabled if CFLAGS is not set:
+       # - Code was written when compilers were not aggressively optimizing 
undefined behaviour about aliasing
+       # - Code was written when compilers were not aggressively optimizing 
undefined behaviour about overflow in signed integers
+       # - Code was written on Intel where char is signed
+       #
+       # Do not trust with LTO either, BTW
+       append-flags -fno-strict-aliasing -fno-strict-overflow -fsigned-char
+       filter-lto
+
+       # Fix for bug #78030
+       use ppc && append-ldflags "-Wl,--relax"
+
+       ac_cv_prog_ASM=nasm \
+       econf \
+               --enable-expat \
+               --disable-sdl \
+               --enable-zlib \
+               --disable-svgalib \
+               $(use_enable alsa) \
+               $(use_enable fbcon fb) \
+               $(use_enable ncurses) \
+               $(use_enable openmp) \
+               $(use_enable oss) \
+               $(use_enable sdl sdl2) \
+               $(use_enable slang) \
+               $(use_enable truetype freetype) \
+               $(use_enable x86 asm)
+}
+
+src_compile() {
+       emake \
+               VERSION="${PV}"
+}
+
+src_install() {
+       emake -j1 install \
+               VERSION="${PV}" \
+               DESTDIR="${D}"
+}

diff --git a/games-emulation/advancemame/files/advancemame-5.0-docdir.patch 
b/games-emulation/advancemame/files/advancemame-5.0-docdir.patch
new file mode 100644
index 000000000000..8d0c7b3d580c
--- /dev/null
+++ b/games-emulation/advancemame/files/advancemame-5.0-docdir.patch
@@ -0,0 +1,212 @@
+From 0bed080cd873dc42100bcfcb4ea2764445c0485d Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <[email protected]>
+Date: Sat, 25 Apr 2020 11:16:01 +0100
+Subject: [PATCH 1/2] Use docdir the standard way so that it can be overridden
+ with --docdir
+
+The default is determined by the 4th argument (PACKAGE_TARBALL) to
+AC_INIT, which itself defaults to the 1st argument (PACKAGE_NAME). That
+would currently name the docdir `advancemame` rather than the desired
+`advance`. Rather than change the 1st argument, set the 4th argument so
+that only the docdir is affected. These variables/macros are not really
+used elsewhere anyway.
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -5,6 +5,7 @@
+ # configuration edit the Makefile.usr file and NOT this file.
+ #
+ 
++PACKAGE_TARNAME=@PACKAGE_TARNAME@
+ VERSION=@PACKAGE_VERSION@
+ prefix=@prefix@
+ datadir=@datadir@
+--- a/Makefile.usr
++++ b/Makefile.usr
+@@ -238,8 +238,8 @@ srcdir=.
+ datadir=${prefix}/share
+ sysconfdir=${prefix}/etc
+ bindir=${prefix}/bin
+-mandir=${prefix}/man
+-docdir=${prefix}/share/doc
++mandir=${datadir}/man
++docdir=${datadir}/doc/advance
+ 
+ #############################################################################
+ # Extra configuration common for ./configure and manual
+--- a/advance/advance.mak
++++ b/advance/advance.mak
+@@ -374,12 +374,11 @@ CONF_SRC = \
+ # Install
+ 
+ pkgdir = $(datadir)/advance
+-pkgdocdir = $(docdir)/advance
+ 
+ install-dirs:
+       -$(INSTALL_PROGRAM_DIR) $(DESTDIR)$(bindir)
+       -$(INSTALL_DATA_DIR) $(DESTDIR)$(pkgdir)
+-      -$(INSTALL_DATA_DIR) $(DESTDIR)$(pkgdocdir)
++      -$(INSTALL_DATA_DIR) $(DESTDIR)$(docdir)
+       -$(INSTALL_MAN_DIR) $(DESTDIR)$(mandir)/man1
+       -$(INSTALL_DATA_DIR) $(DESTDIR)$(pkgdir)/rom
+       -$(INSTALL_DATA_DIR) $(DESTDIR)$(pkgdir)/sample
+@@ -464,15 +463,15 @@ uninstall-bin:
+ install-doc: $(INSTALL_DOCFILES)
+ ifdef INSTALL_DOCFILES
+       @for i in $(INSTALL_DOCFILES); do \
+-              echo "$(INSTALL_DATA) $$i $(DESTDIR)$(pkgdocdir)"; \
+-              $(INSTALL_DATA) $$i $(DESTDIR)$(pkgdocdir); \
++              echo "$(INSTALL_DATA) $$i $(DESTDIR)$(docdir)"; \
++              $(INSTALL_DATA) $$i $(DESTDIR)$(docdir); \
+       done
+ endif
+ 
+ uninstall-doc:
+ ifdef INSTALL_DOCFILES
+       @for i in $(notdir $(INSTALL_DOCFILES)); do \
+-              rm -f $(DESTDIR)$(pkgdocdir)/$$i; \
++              rm -f $(DESTDIR)$(docdir)/$$i; \
+       done
+ endif
+ 
+@@ -501,7 +500,7 @@ uninstall-dirs:
+       -rmdir $(DESTDIR)$(pkgdir)/snap/ti99_4a
+       -rmdir $(DESTDIR)$(pkgdir)/snap
+       -rmdir $(DESTDIR)$(pkgdir)
+-      -rmdir $(DESTDIR)$(pkgdocdir)
++      -rmdir $(DESTDIR)$(docdir)
+ 
+ install: install-dirs install-bin install-data install-doc install-man
+ 
+--- a/configure.ac
++++ b/configure.ac
+@@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure 
script.
+ AC_PREREQ([2.69])
+ dnl Get version number from git
+ m4_define([git_revision], m4_esyscmd_s([./autover.sh]))
+-AC_INIT([advancemame],[git_revision],[],[],[http://www.advancemame.it])
++AC_INIT([advancemame],[git_revision],[],[advance],[http://www.advancemame.it])
+ AC_CONFIG_SRCDIR([advance/advance.mak])
+ AC_CONFIG_HEADERS([advance/lib/config.h:advance/lib/config.hin])
+ AC_CANONICAL_HOST
+@@ -1233,8 +1233,6 @@ AC_SUBST([CONF_LIB_JEVENT],[$ac_lib_jevent])
+ 
+ dnl Final
+ AC_SUBST([CONF_LIB_DIRECT],[$ac_lib_direct_flag])
+-AC_SUBST([mandir],['${prefix}/man'])
+-AC_SUBST([docdir],['${prefix}/doc'])
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
+ 
+-- 
+2.51.0
+
+
+From 0baa0af9e3daf8aed0accd8b5311255249c55dba Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <[email protected]>
+Date: Sat, 25 Apr 2020 11:52:13 +0100
+Subject: [PATCH 2/2] Install *.html files to a separate htmldir rather than
+ docdir
+
+Autoconf already sets up htmldir for you. It defaults to the same as
+docdir but some distributions set it differently.
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -15,6 +15,7 @@ exec_prefix=@exec_prefix@
+ bindir=@bindir@
+ mandir=@mandir@
+ docdir=@docdir@
++htmldir=@htmldir@
+ CONF_SYSTEM=@CONF_SYSTEM@
+ CONF_HOST=@CONF_HOST@
+ CONF_BUILD=@CONF_BUILD@
+--- a/Makefile.usr
++++ b/Makefile.usr
+@@ -240,6 +240,7 @@ sysconfdir=${prefix}/etc
+ bindir=${prefix}/bin
+ mandir=${datadir}/man
+ docdir=${datadir}/doc/advance
++htmldir=${docdir}
+ 
+ #############################################################################
+ # Extra configuration common for ./configure and manual
+--- a/advance/advance.mak
++++ b/advance/advance.mak
+@@ -153,7 +153,7 @@ endif
+ endif
+ 
+ INSTALL_DOCFILES += $(subst $(srcdir)/doc/,$(DOCOBJ)/,$(subst 
.d,.txt,$(wildcard $(srcdir)/doc/*.d)))
+-INSTALL_DOCFILES += $(subst $(srcdir)/doc/,$(DOCOBJ)/,$(subst 
.d,.html,$(wildcard $(srcdir)/doc/*.d)))
++INSTALL_HTMLFILES += $(subst $(srcdir)/doc/,$(DOCOBJ)/,$(subst 
.d,.html,$(wildcard $(srcdir)/doc/*.d)))
+ WEB_DOCFILES += $(subst $(srcdir)/doc/,$(DOCOBJ)/,$(subst .d,.hh,$(wildcard 
$(srcdir)/doc/*.d)))
+ 
+ ############################################################################
+@@ -163,7 +163,7 @@ ifdef ADV_ALL
+ all_override: $(ADV_ALL)
+ endif
+ 
+-all: $(OBJ_DIRS) $(INSTALL_BINFILES) $(INSTALL_DOCFILES) $(INSTALL_MANFILES)
++all: $(OBJ_DIRS) $(INSTALL_BINFILES) $(INSTALL_DOCFILES) $(INSTALL_HTMLFILES) 
$(INSTALL_MANFILES)
+ mame: $(OBJ) $(OBJ)/advmame$(EXE)
+ mess: $(MESSOBJ) $(MESSOBJ)/advmess$(EXE)
+ emu: mame mess
+@@ -183,7 +183,7 @@ web: $(WEB_DOCFILES)
+ # Ensure that the doc target is always created also if a doc directory exists
+ .PHONY: doc
+ 
+-doc: $(INSTALL_DOCFILES)
++doc: $(INSTALL_DOCFILES) $(INSTALL_HTMLFILES)
+ 
+ ############################################################################
+ # Source
+@@ -379,6 +379,7 @@ install-dirs:
+       -$(INSTALL_PROGRAM_DIR) $(DESTDIR)$(bindir)
+       -$(INSTALL_DATA_DIR) $(DESTDIR)$(pkgdir)
+       -$(INSTALL_DATA_DIR) $(DESTDIR)$(docdir)
++      -$(INSTALL_DATA_DIR) $(DESTDIR)$(htmldir)
+       -$(INSTALL_MAN_DIR) $(DESTDIR)$(mandir)/man1
+       -$(INSTALL_DATA_DIR) $(DESTDIR)$(pkgdir)/rom
+       -$(INSTALL_DATA_DIR) $(DESTDIR)$(pkgdir)/sample
+@@ -460,13 +461,19 @@ uninstall-bin:
+               rm -f $(DESTDIR)$(bindir)/$$i; \
+       done
+ 
+-install-doc: $(INSTALL_DOCFILES)
++install-doc: $(INSTALL_DOCFILES) $(INSTALL_HTMLFILES)
+ ifdef INSTALL_DOCFILES
+       @for i in $(INSTALL_DOCFILES); do \
+               echo "$(INSTALL_DATA) $$i $(DESTDIR)$(docdir)"; \
+               $(INSTALL_DATA) $$i $(DESTDIR)$(docdir); \
+       done
+ endif
++ifdef INSTALL_HTMLFILES
++      @for i in $(INSTALL_HTMLFILES); do \
++              echo "$(INSTALL_DATA) $$i $(DESTDIR)$(htmldir)"; \
++              $(INSTALL_DATA) $$i $(DESTDIR)$(htmldir); \
++      done
++endif
+ 
+ uninstall-doc:
+ ifdef INSTALL_DOCFILES
+@@ -474,6 +481,11 @@ ifdef INSTALL_DOCFILES
+               rm -f $(DESTDIR)$(docdir)/$$i; \
+       done
+ endif
++ifdef INSTALL_HTMLFILES
++      @for i in $(notdir $(INSTALL_HTMLFILES)); do \
++              rm -f $(DESTDIR)$(htmldir)/$$i; \
++      done
++endif
+ 
+ install-man: $(INSTALL_MANFILES)
+ ifdef INSTALL_MANFILES
+@@ -500,6 +512,7 @@ uninstall-dirs:
+       -rmdir $(DESTDIR)$(pkgdir)/snap/ti99_4a
+       -rmdir $(DESTDIR)$(pkgdir)/snap
+       -rmdir $(DESTDIR)$(pkgdir)
++      -rmdir $(DESTDIR)$(htmldir)
+       -rmdir $(DESTDIR)$(docdir)
+ 
+ install: install-dirs install-bin install-data install-doc install-man
+-- 
+2.51.0
+

diff --git a/games-emulation/advancemame/metadata.xml 
b/games-emulation/advancemame/metadata.xml
index dd03ff09530b..013ccd1d23d1 100644
--- a/games-emulation/advancemame/metadata.xml
+++ b/games-emulation/advancemame/metadata.xml
@@ -19,6 +19,7 @@
        limitations you can anyway choice from different types of stretch.
        </longdescription>
        <upstream>
+               <remote-id type="github">amadvance/advancemame</remote-id>
                <remote-id type="sourceforge">advancemame</remote-id>
        </upstream>
 </pkgmetadata>

Reply via email to