Skip to content

Commit

Permalink
games-strategy/triplea: Libs (#596468), drop games eclass, fix paths
Browse files Browse the repository at this point in the history
It's hard to see how this ever worked as it built against bundled
libraries but did not install them. It turns out many aren't
needed so we now unbundle them all except Apache Derby, which was
last-rited.

The server tried to write under /usr/share and ${PWD} by default,
which is bad and bad. I have made it write under ~/.triplea.

Package-Manager: portage-2.3.1
  • Loading branch information
chewi committed Oct 11, 2016
1 parent 92bb0b3 commit 0841257
Show file tree
Hide file tree
Showing 4 changed files with 159 additions and 0 deletions.
1 change: 1 addition & 0 deletions games-strategy/triplea/files/mkdir.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
mkdir -v "${HOME}/.triplea"
63 changes: 63 additions & 0 deletions games-strategy/triplea/files/paths.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
diff -Naur a/src/games/strategy/engine/framework/GameRunner2.java b/src/games/strategy/engine/framework/GameRunner2.java
--- a/src/games/strategy/engine/framework/GameRunner2.java 2015-09-02 20:30:04.000000000 +0100
+++ b/src/games/strategy/engine/framework/GameRunner2.java 2016-10-11 23:08:50.296813567 +0100
@@ -952,9 +952,9 @@
// the default
File rootDir;
if (GameRunner.isMac()) {
- rootDir = new File(new File(userHome, "Documents"), "triplea");
+ rootDir = new File(new File(userHome, "Documents"), ".triplea");
} else {
- rootDir = new File(userHome, "triplea");
+ rootDir = new File(userHome, ".triplea");
}
return rootDir;
}
diff -Naur a/src/games/strategy/engine/lobby/server/userDB/Database.java b/src/games/strategy/engine/lobby/server/userDB/Database.java
--- a/src/games/strategy/engine/lobby/server/userDB/Database.java 2015-08-19 16:35:06.000000000 +0100
+++ b/src/games/strategy/engine/lobby/server/userDB/Database.java 2016-10-11 23:08:50.296813567 +0100
@@ -54,7 +54,7 @@
if (System.getProperties().containsKey(ServerLauncher.SERVER_ROOT_DIR_PROPERTY)) {
root = new File(System.getProperties().getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY));
} else {
- root = GameRunner2.getRootFolder();
+ root = GameRunner2.getUserRootFolder();
}
if (!root.exists()) {
throw new IllegalStateException("Root dir does not exist");
diff -Naur a/src/games/strategy/util/AccessLogFileHandler.java b/src/games/strategy/util/AccessLogFileHandler.java
--- a/src/games/strategy/util/AccessLogFileHandler.java 2015-08-19 16:35:06.000000000 +0100
+++ b/src/games/strategy/util/AccessLogFileHandler.java 2016-10-11 23:10:31.219309604 +0100
@@ -12,7 +12,7 @@
private static final String logFile;

static {
- final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, "."));
+ final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, games.strategy.engine.framework.GameRunner2.getUserRootFolder().getAbsolutePath()));
if (!rootDir.exists()) {
throw new IllegalStateException("no dir called:" + rootDir.getAbsolutePath());
}
diff -Naur a/src/games/strategy/util/RotatingLogFileHandlerForHeadlessGameServer.java b/src/games/strategy/util/RotatingLogFileHandlerForHeadlessGameServer.java
--- a/src/games/strategy/util/RotatingLogFileHandlerForHeadlessGameServer.java 2015-08-19 16:35:06.000000000 +0100
+++ b/src/games/strategy/util/RotatingLogFileHandlerForHeadlessGameServer.java 2016-10-11 23:10:40.227175356 +0100
@@ -13,7 +13,7 @@
private static final String logFile;

static {
- final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, "."));
+ final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, games.strategy.engine.framework.GameRunner2.getUserRootFolder().getAbsolutePath()));
if (!rootDir.exists()) {
throw new IllegalStateException("no dir called:" + rootDir.getAbsolutePath());
}
diff -Naur a/src/games/strategy/util/RotatingLogFileHandler.java b/src/games/strategy/util/RotatingLogFileHandler.java
--- a/src/games/strategy/util/RotatingLogFileHandler.java 2015-08-19 16:35:06.000000000 +0100
+++ b/src/games/strategy/util/RotatingLogFileHandler.java 2016-10-11 23:10:46.851076636 +0100
@@ -12,7 +12,7 @@
private static final String logFile;

static {
- final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, "."));
+ final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, games.strategy.engine.framework.GameRunner2.getUserRootFolder().getAbsolutePath()));
if (!rootDir.exists()) {
throw new IllegalStateException("no dir called:" + rootDir.getAbsolutePath());
}
14 changes: 14 additions & 0 deletions games-strategy/triplea/files/upnplib.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff -Naur a/src/games/strategy/net/UniversalPlugAndPlayHelper.java b/src/games/strategy/net/UniversalPlugAndPlayHelper.java
--- a/src/games/strategy/net/UniversalPlugAndPlayHelper.java 2015-08-19 16:35:06.000000000 +0100
+++ b/src/games/strategy/net/UniversalPlugAndPlayHelper.java 2016-10-11 22:10:37.287834187 +0100
@@ -166,8 +166,8 @@
System.out.println("To " + m_local.getHostAddress() + ":" + internalPort);
boolean mapped = false;
try {
- mapped = m_device.addPortMapping("TripleA Game Hosting", "TCP", null, externalPort, m_local.getHostAddress(),
- internalPort, 0);
+ mapped = m_device.addPortMapping("TripleA Game Hosting", null, internalPort, externalPort,
+ m_local.getHostAddress(), 0, "TCP");
} catch (final IOException e) {
System.out.println("Port Mapping Failed! Please try to Forward Ports manually! \r\n " + e.getMessage());
return "Port Mapping Failed! Please try to Forward Ports manually! \r\n " + e.getMessage();
81 changes: 81 additions & 0 deletions games-strategy/triplea/triplea-1.8.0.9-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5
inherit eutils java-pkg-2 java-ant-2 versionator

MY_PV=$(replace_all_version_separators _)
DESCRIPTION="An open source clone of the popular Axis and Allies boardgame"
HOMEPAGE="http://triplea.sourceforge.net/"
SRC_URI="mirror://sourceforge/triplea/${PN}_${MY_PV}_source_code_only.zip"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
RESTRICT="test" # Needs X11 maybe use virtualx.eclass

RDEPEND="dev-java/apple-java-extensions-bin:0
dev-java/commons-httpclient:3
dev-java/oracle-javamail:0
dev-java/osgi-core-api:0
dev-java/upnplib:0"
DEPEND="${RDEPEND}
>=virtual/jdk-1.7
app-arch/unzip
test? ( dev-java/ant-junit:0 )"
RDEPEND="${RDEPEND}
>=virtual/jre-1.7"

S=${WORKDIR}/${PN}_${MY_PV}

JAVA_ANT_REWRITE_CLASSPATH="true"
EANT_GENTOO_CLASSPATH="apple-java-extensions-bin,commons-httpclient-3,oracle-javamail,osgi-core-api,upnplib"

java_prepare() {
# Use ~/.triplea, not ~/triplea.
# Don't write server files under /usr/share or ${PWD}.
# Fix to build against our packaged upnplib.
epatch "${FILESDIR}"/{paths,upnplib}.patch

# Remove packaged or unneeded libs. Unfortunately Apache Derby was
# last-rited due to packaging issues. See bug #561410.
find lib/* ! -name "derby-*.jar" -delete || die
rm -r old/ || die
}

src_compile() {
eant
echo "triplea.saveGamesInHomeDir=true" > data/triplea.properties || die
# The only target creating this is zip which does unjar etc
jar cf ${PN}.jar -C classes . || die
}

src_test() {
java-pkg-2_src_test
}

src_install() {
insinto /usr/share/${PN}
doins -r assets data dice_servers maps

java-pkg_dojar ${PN}.jar
java-pkg_newjar lib/derby-*.jar derby.jar

java-pkg_dolauncher ${PN} \
--main games.strategy.engine.framework.GameRunner \
--java_args "-Xmx256m"
java-pkg_dolauncher ${PN}-server -pre "${FILESDIR}"/mkdir.sh \
--main games.strategy.engine.lobby.server.LobbyServer \
--java_args "-server -Xmx64m -Dtriplea.lobby.port=3303 -Dtriplea.lobby.console=true"

newicon icons/triplea_icon.png ${PN}.png
newicon icons/triplea_icon.png ${PN}-server.png
make_desktop_entry ${PN} TripleA
make_desktop_entry ${PN}-server TripleA-server

dodoc changelog.txt TripleA_RuleBook.pdf
docinto html
dodoc -r doc/* readme.html
}

0 comments on commit 0841257

Please sign in to comment.