summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Väth <martin@mvath.de>2016-03-06 15:16:57 +0100
committerMartin Väth <martin@mvath.de>2016-03-06 15:16:57 +0100
commit76905f392035be4d7cbf306a334d7bb5f4ba7b58 (patch)
treedbcf6258e42a7b1bf8acdf4e6fc517ab64b99519
parentgames-emulation/xmame: Add old gentoo ebuild, bumped to EAPI=6 (diff)
downloadmv-76905f392035be4d7cbf306a334d7bb5f4ba7b58.tar.gz
mv-76905f392035be4d7cbf306a334d7bb5f4ba7b58.tar.bz2
mv-76905f392035be4d7cbf306a334d7bb5f4ba7b58.zip
games-emulation/xmess: Add old gentoo ebuild, bumped to EAPI=6
-rw-r--r--games-emulation/xmess/Manifest1
-rw-r--r--games-emulation/xmess/files/xmess-0.106-overflow.patch11
-rw-r--r--games-emulation/xmess/metadata.xml37
-rw-r--r--games-emulation/xmess/xmess-0.106-r1.ebuild234
-rw-r--r--profiles/use.local.desc1
5 files changed, 284 insertions, 0 deletions
diff --git a/games-emulation/xmess/Manifest b/games-emulation/xmess/Manifest
new file mode 100644
index 00000000..591f4bc7
--- /dev/null
+++ b/games-emulation/xmess/Manifest
@@ -0,0 +1 @@
+DIST xmame-0.106.tar.bz2 17117298 SHA256 a385d86adebc2eb53b560bb522cf569569a74c4104605a8e7d61f1caa0f5e4df
diff --git a/games-emulation/xmess/files/xmess-0.106-overflow.patch b/games-emulation/xmess/files/xmess-0.106-overflow.patch
new file mode 100644
index 00000000..0c4c2ac1
--- /dev/null
+++ b/games-emulation/xmess/files/xmess-0.106-overflow.patch
@@ -0,0 +1,11 @@
+--- mess/machine/corvushd.c.old 2011-06-30 11:41:55.987772189 +0200
++++ mess/machine/corvushd.c 2011-06-30 11:42:15.215986836 +0200
+@@ -243,7 +243,7 @@
+ /* */
+ struct {
+ UINT8 status; /* Status code returned by command executed */
+- UINT8 firmware[32]; /* Firmware message */
++ UINT8 firmware[33]; /* Firmware message */
+ UINT8 rom_version; /* ROM Version */
+ struct {
+ UINT8 sectors_per_track; /* Sectors/Track */
diff --git a/games-emulation/xmess/metadata.xml b/games-emulation/xmess/metadata.xml
new file mode 100644
index 00000000..3abb4dcc
--- /dev/null
+++ b/games-emulation/xmess/metadata.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>martin@mvath.de</email>
+ <name>Martin Väth</name>
+ </maintainer>
+ <longdescription>
+Mame is an arcade machine emulator. Started in 1997 by Nicola Salmoria, mame started out as a
+series of emulators for individual games. This series of emulators was combined into a simgle
+multi-game emulator. This is the current form of mame; no longer a one-man show, there are over 100
+contributors to the project.
+
+Mame was created by Nicola Salmoria.
+
+Mess is just like mame---a virtual machine emulator, only it doesn't emulate arcade machines but
+rather computers and consoles.
+
+Xmame/xmess are the Unix/X11 ports of the mame and mess projects. It makes mame/mess available on
+*ix machines using the X11R6 X-Window System (and SVGAlib/ggi/XF86-DGA/OpenGL/SDL too).
+
+Mame was orginally ported by Allard Van Der Bas, Dick the Ridder, Juan Antonio Martinez, and Hans
+de Goede.
+
+Xmame/xmess is currently maintained by Lawrence Gold.
+
+Xmame/xmess is based on the mame/mess source code. Due to technical reasons beyond the scope of
+this document, the mame/mess source may not compile under Unix. That's why the xmame/xmess project
+exists. Each time mame/mess is updated, the code is tested (and patched if needed) under Unix. This
+way xmame/xmess releases are always the same as their mame counterparts.
+
+There are no plans for the independent development of xmame/xmess.
+</longdescription>
+ <use>
+ <flag name="net">Add network support</flag>
+ </use>
+</pkgmetadata>
diff --git a/games-emulation/xmess/xmess-0.106-r1.ebuild b/games-emulation/xmess/xmess-0.106-r1.ebuild
new file mode 100644
index 00000000..dc6ecffc
--- /dev/null
+++ b/games-emulation/xmess/xmess-0.106-r1.ebuild
@@ -0,0 +1,234 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit flag-o-matic toolchain-funcs
+RESTRICT="mirror"
+
+TARGET="${PN}"
+
+DESCRIPTION="Multiple Arcade Machine Emulator for X11"
+HOMEPAGE="http://x.mame.net/"
+SRC_URI="http://x.mame.net/download/xmame-${PV}.tar.bz2"
+
+LICENSE="XMAME"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 ppc sparc x86"
+IUSE="alsa bundled-libs cpu_flags_x86_mmx dga ggi joystick lirc net opengl sdl svga X xinerama xv"
+
+RDEPEND="sys-libs/zlib
+ alsa? ( media-libs/alsa-lib )
+ dga? (
+ x11-libs/libXxf86dga
+ x11-libs/libXxf86vm )
+ !bundled-libs? ( dev-libs/expat )
+ ggi? ( media-libs/libggi )
+ lirc? ( app-misc/lirc )
+ opengl? (
+ virtual/opengl
+ virtual/glu )
+ sdl? ( >=media-libs/libsdl-1.2.0 )
+ svga? ( media-libs/svgalib )
+ xinerama? ( x11-libs/libXinerama )
+ xv? ( x11-libs/libXv )
+ X? ( x11-libs/libXext )"
+DEPEND="${RDEPEND}
+ dga? (
+ x11-proto/xf86dgaproto
+ x11-proto/xf86vidmodeproto )
+ xinerama? ( x11-proto/xineramaproto )
+ xv? ( x11-proto/videoproto )
+ x86? ( dev-lang/nasm )"
+# Icc sucks. bug #41342
+# icc? ( dev-lang/icc )
+
+S=${WORKDIR}/xmame-${PV}
+
+toggle_feature() {
+ if use $1 ; then
+ sed -i \
+ -e "/$2.*=/s:#::" Makefile \
+ || die "sed Makefile ($1 / $2) failed"
+ fi
+}
+
+toggle_feature2() {
+ use $1 && toggle_feature $2 $3
+}
+
+src_prepare() {
+ local mycpu
+
+ case ${ARCH} in
+ x86) mycpu="i386";;
+ ia64) mycpu="ia64";;
+ amd64) mycpu="amd64";;
+ ppc) mycpu="risc";;
+ sparc) mycpu="risc";;
+ hppa) mycpu="risc";;
+ alpha) mycpu="alpha";;
+ mips) mycpu="mips";;
+ esac
+
+ sed -i \
+ -e "/^PREFIX/s:=.*:=/usr:" \
+ -e "/^MY_CPU/s:i386:${mycpu}:" \
+ -e "/^MANDIR/s:man/man:share/man/man:" \
+ -e "/^XMAMEROOT/s:share:share/games:" \
+ -e "/^TARGET/s:mame:${TARGET:1}:" \
+ -e "/^INSTALL_GROUP/s:bin:root:" \
+ -e "/^CFLAGS =/d" \
+ -e 's/-s,//' \
+ -e 's/-Wl,-s//' \
+ -e "/\bCFLAGS +=/d" \
+ Makefile \
+ || die "sed Makefile failed"
+
+ if use ppc ; then
+ sed -i \
+ -e '/LD.*--relax/s:^# ::' Makefile \
+ || die "sed Makefile (ppc/LD) failed"
+ fi
+
+ if use cpu_flags_x86_mmx ; then
+ cat >> src/unix/effect_asm.asm <<EOF
+ %ifidn __OUTPUT_FORMAT__,elf
+ section .note.GNU-stack noalloc noexec nowrite progbits
+ %endif
+EOF
+ fi
+
+ toggle_feature x86 X86_MIPS3_DRC
+ toggle_feature2 x86 cpu_flags_x86_mmx EFFECT_MMX_ASM
+ toggle_feature joystick JOY_STANDARD
+ toggle_feature2 joystick X XINPUT_DEVICES
+ use net && ewarn "Network support is currently (${PV}) broken :("
+ #toggle_feature net XMAME_NET # Broken
+ #toggle_feature esd SOUND_ESOUND # No esound in portage anymore
+ toggle_feature alsa SOUND_ALSA
+ #toggle_feature arts SOUND_ARTS # Deprecated
+ toggle_feature dga X11_DGA
+ toggle_feature xv X11_XV
+ # if we don't have expat on the system, use the internal one
+ toggle_feature bundled-libs BUILD_EXPAT
+ toggle_feature opengl X11_OPENGL
+ toggle_feature lirc LIRC
+ toggle_feature xinerama X11_XINERAMA
+
+ case ${ARCH} in
+ x86|ia64|amd64)
+ append-flags -Wno-unused -fomit-frame-pointer -fstrict-aliasing -fstrength-reduce
+ use amd64 || append-flags -ffast-math #54270
+ [[ $(gcc-major-version) -ge 3 ]] \
+ && append-flags -falign-functions=2 -falign-jumps=2 -falign-loops=2 \
+ || append-flags -malign-functions=2 -malign-jumps=2 -malign-loops=2
+ ;;
+ ppc)
+ append-flags -Wno-unused -funroll-loops -fstrength-reduce -fomit-frame-pointer -ffast-math -fsigned-char
+ ;;
+ hppa)
+ append-flags -ffunction-sections
+ ;;
+ esac
+
+ sed -i \
+ -e "s:[Xx]mame:${TARGET}:g" \
+ doc/*.6 \
+ || die "sed man pages failed"
+ # no, we don't want to install setuid (bug #81693)
+ sed -i \
+ -e 's/^doinstallsuid/notforus/' \
+ -e 's/doinstallsuid/doinstall/' \
+ -e '/^QUIET/s:^:#:' src/unix/unix.mak \
+ || die "sed src/unix/unix.mak failed"
+ eapply -p0 "${FILESDIR}"/${P}-overflow.patch
+ eapply_user
+}
+
+src_compile() {
+ local disp=0
+ if use sdl ; then
+ emake -j1 DISPLAY_METHOD=SDL \
+ CC=$(tc-getCC) \
+ LD=$(tc-getCC)
+ disp=1
+ fi
+ if use svga ; then
+ emake -j1 DISPLAY_METHOD=svgalib \
+ CC=$(tc-getCC) \
+ LD=$(tc-getCC)
+ disp=1
+ fi
+ if use ggi ; then
+ #emake -j1 DISPLAY_METHOD=ggi
+ #disp=1
+ ewarn "GGI support is currently (${PV}) broken :("
+ fi
+ if [[ ${disp} -eq 0 ]] || use opengl || use X || use dga || use xv ; then
+ emake -j1 DISPLAY_METHOD=x11 \
+ CC=$(tc-getCC) \
+ LD=$(tc-getCC)
+ fi
+}
+
+src_install() {
+ local disp=0 f utils="chdman imgtool dat2html romcmp xml2info"
+
+ if use sdl ; then
+ make DISPLAY_METHOD=SDL PREFIX="${ED}/usr" install \
+ || die "install failed (sdl)"
+ disp=1
+ fi
+ if use svga ; then
+ make DISPLAY_METHOD=svgalib PREFIX="${ED}/usr" install \
+ || die "install failed (svga)"
+ disp=1
+ fi
+ if use ggi ; then
+ #make DISPLAY_METHOD=ggi install || die "install failed (ggi)"
+ #disp=1
+ ewarn "GGI support is currently (${PV}) broken :("
+ fi
+ if [[ ${disp} -eq 0 ]] || use opengl || use X || use dga || use xv ; then
+ make DISPLAY_METHOD=x11 PREFIX="${ED}/usr" install \
+ || die "install failed (x11)"
+ fi
+ exeinto "/usr/$(get_libdir)/${PN}"
+ for f in $utils
+ do
+ if [[ -f "${ED}"/usr/bin/$f ]] ; then
+ doexe $f
+ rm -f "${ED}"/usr/bin/$f 2>/dev/null
+ fi
+ done
+
+ insinto "/usr/share/games/${PN}"
+ doins -r ctrlr
+ dodoc doc/{changes.*,*.txt,mame/*,${TARGET}rc.dist} README todo
+ docinto html
+ dodoc -r doc/img doc/mess doc/*.html doc/*.css
+
+ # default to sdl since the client is a bit more featureful
+ if use sdl ; then
+ dosym "${TARGET}.SDL" "/usr/bin/${TARGET}"
+ elif [[ ${disp} -eq 0 ]] || use opengl || use X || use dga || use xv ; then
+ dosym "${TARGET}.x11" "/usr/bin/${TARGET}"
+ elif use svga ; then
+ dosym ${TARGET}.svgalib "/usr/bin/${TARGET}"
+ #elif use ggi ; then
+ #dosym ${TARGET}.ggi "/usr/bin/${TARGET}"
+ fi
+}
+
+pkg_postinst() {
+ elog "Your available MAME binaries are: ${TARGET}"
+ if use opengl || use X || use dga || use xv ; then
+ elog " ${TARGET}.x11"
+ fi
+ use sdl && elog " ${TARGET}.SDL"
+ #use ggi && elog " ${TARGET}.ggi"
+ use svga && elog " ${TARGET}.svgalib"
+
+ elog "Helper utilities are located in /usr/$(get_libdir)/${PN}."
+}
diff --git a/profiles/use.local.desc b/profiles/use.local.desc
index f16d043e..70ded4e7 100644
--- a/profiles/use.local.desc
+++ b/profiles/use.local.desc
@@ -60,6 +60,7 @@ app-text/stardict:pronounce - Install WyabdcRealPeopleTTS package (it is just ma
app-text/stardict:qqwry - Enable QQWry plugin, which provides information (in Chinese language) about geographical positions, owner, etc. for IP addresses
app-text/stardict:tools - Build and install the extra stardict tools
games-emulation/xmame:net - Add network support
+games-emulation/xmess:net - Add network support
games-rpg/m5figur-mv:examples - Compile example character sheet as PDF
games-rpg/magus:acroread - Depend on acroread (otherwise you are responsible to install/configure a pdf viewer)
games-rpg/magus:imagemagick - Use convert from graphicsmagick/imagemagick to scale pictures before installation