Skip to content

Commit

Permalink
games-simulation/openttd: Fixed init script (bug #625472).
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.6, Repoman-2.3.2
  • Loading branch information
Lars Wendler committed Jul 18, 2017
1 parent 956be97 commit d46cda6
Show file tree
Hide file tree
Showing 3 changed files with 188 additions and 11 deletions.
13 changes: 13 additions & 0 deletions games-simulation/openttd/files/openttd.initd-r1
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/sbin/openrc-run
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later

description="OpenTTD dedicated game server"
pidfile="/run/${SVCNAME}.pid"
command="/usr/bin/openttd"
command_args="-D"
command_background="true"

depend() {
need net
}
16 changes: 5 additions & 11 deletions games-simulation/openttd/openttd-1.6.1-r1.ebuild
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 1999-2016 Gentoo Foundation
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6
Expand All @@ -17,15 +17,9 @@ RESTRICT="test" # needs a graphics set in order to test
RDEPEND="!dedicated? (
media-libs/libsdl[sound,X,video]
icu? (
|| (
(
dev-libs/icu-layoutex
dev-libs/icu-le-hb
>=dev-libs/icu-58.1
)
<dev-libs/icu-58.1
)
dev-libs/icu:=
dev-libs/icu-layoutex
dev-libs/icu-le-hb
>=dev-libs/icu-58.1:=
)
truetype? (
media-libs/fontconfig
Expand Down Expand Up @@ -107,7 +101,7 @@ src_compile() {
src_install() {
default
if use dedicated ; then
newinitd "${FILESDIR}"/${PN}.initd ${PN}
newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
rm -rf "${ED}"/usr/share/{applications,icons,pixmaps}
fi
rm -f "${ED}"/usr/share/doc/${PF}/COPYING
Expand Down
170 changes: 170 additions & 0 deletions games-simulation/openttd/openttd-1.7.1-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6
inherit eutils gnome2-utils

DESCRIPTION="OpenTTD is a clone of Transport Tycoon Deluxe"
HOMEPAGE="http://www.openttd.org/"
SRC_URI="http://binaries.openttd.org/releases/${PV}/${P}-source.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc64 ~x86"
IUSE="aplaymidi debug dedicated iconv icu lzo +openmedia +png cpu_flags_x86_sse +timidity +truetype zlib"
RESTRICT="test" # needs a graphics set in order to test

RDEPEND="!dedicated? (
media-libs/libsdl[sound,X,video]
icu? (
dev-libs/icu-layoutex
dev-libs/icu-le-hb
>=dev-libs/icu-58.1:=
)
truetype? (
media-libs/fontconfig
media-libs/freetype:2
sys-libs/zlib
)
)
lzo? ( dev-libs/lzo:2 )
iconv? ( virtual/libiconv )
png? ( media-libs/libpng:0 )
zlib? ( sys-libs/zlib )"
DEPEND="${RDEPEND}
virtual/pkgconfig"
PDEPEND="
!dedicated? (
openmedia? (
games-misc/openmsx
games-misc/opensfx
)
aplaymidi? ( media-sound/alsa-utils )
!aplaymidi? ( timidity? ( media-sound/timidity++ ) )
)
openmedia? ( >=games-misc/opengfx-0.4.7 )"

PATCHES=(
"${FILESDIR}"/${PN}-1.6.0-cflags.patch
)

src_configure() {
local myopts=()
# there is an allegro interface available as well as sdl, but
# the configure for it looks broken so the sdl interface is
# always built instead.
local myopts+=( --without-allegro )

# libtimidity not needed except for some embedded platform
# nevertheless, it will be automagically linked if it is
# installed. Hence, we disable it.
myopts+=( --without-libtimidity )

use debug && myopts+=( --enable-debug=3 )

if use dedicated ; then
myopts+=( --enable-dedicated )
else
use aplaymidi && myopts+=( --with-midi='/usr/bin/aplaymidi' )
myopts+=(
$(use_with truetype freetype)
$(use_with icu)
--with-sdl
)
fi
if use png || { use !dedicated && use truetype; } || use zlib ; then
myopts+=( --with-zlib )
else
myopts+=( --without-zlib )
fi

# configure is a hand-written bash-script, so econf will not work.
# It's all built as C++, upstream uses CFLAGS internally.
CFLAGS="" ./configure \
--disable-strip \
--prefix-dir="${EPREFIX%/}/usr" \
--binary-dir="bin" \
--install-dir="${D}" \
--menu-group="Game;Simulation;" \
${myopts[@]} \
$(use_with iconv) \
$(use_with png) \
$(use_with cpu_flags_x86_sse sse) \
$(use_with lzo liblzo2) \
|| die
}

src_compile() {
emake VERBOSE=1
}

src_install() {
default
if use dedicated ; then
newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
rm -rf "${ED}"/usr/share/{applications,icons,pixmaps}
fi
rm -f "${ED}"/usr/share/doc/${PF}/COPYING
}

pkg_preinst() {
gnome2_icon_savelist
}

pkg_postinst() {
gnome2_icon_cache_update

if ! use lzo ; then
elog "OpenTTD was built without 'lzo' in USE. While 'lzo' is not"
elog "required, disabling it does mean that loading old savegames"
elog "or scenarios from ancient versions (~0.2) will fail."
elog
fi

if use dedicated ; then
ewarn "Warning: The init script will kill all running openttd"
ewarn "processes when triggered, including any running client sessions!"
else
if use aplaymidi ; then
elog "You have emerged with 'aplaymidi' for playing MIDI."
elog "This option is for those with a hardware midi device,"
elog "or who have set up ALSA to handle midi ports."
elog "You must set the environment variable ALSA_OUTPUT_PORTS."
elog "Available ports can be listed by using 'aplaymidi -l'."
else
if ! use timidity ; then
elog "OpenTTD was built with neither 'aplaymidi' nor 'timidity'"
elog "in USE. Music may or may not work in-game. If you happen"
elog "to have timidity++ installed, music will work so long"
elog "as it remains installed, but OpenTTD will not depend on it."
fi
fi
if ! use openmedia ; then
elog
elog "OpenTTD was compiled without the 'openmedia' USE flag."
elog
elog "In order to play, you must at least install:"
elog "games-misc/opengfx, and games-misc/opensfx, or copy the "
elog "following 6 files from a version of Transport Tycoon Deluxe"
elog "(windows or DOS) to ~/.openttd/data/ or"
elog "${GAMES_DATADIR}/${PN}/data/."
elog
elog "From the WINDOWS version you need: "
elog "sample.cat trg1r.grf trgcr.grf trghr.grf trgir.grf trgtr.grf"
elog "OR from the DOS version you need: "
elog "SAMPLE.CAT TRG1.GRF TRGC.GRF TRGH.GRF TRGI.GRF TRGT.GRF"
elog
elog "File names are case sensitive, but should work either with"
elog "all upper or all lower case names"
elog
elog "In addition, in-game music will be unavailable: for music,"
elog "install games-misc/openmsx, or use the in-game download"
elog "functionality to get a music set"
elog
fi
fi
}

pkg_postrm() {
gnome2_icon_cache_update
}

0 comments on commit d46cda6

Please sign in to comment.