1 |
commit: 084125792256c6117509431b3a2ab5ef6066d80a |
2 |
Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Oct 11 22:27:44 2016 +0000 |
4 |
Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Oct 11 22:29:37 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08412579 |
7 |
|
8 |
games-strategy/triplea: Libs (#596468), drop games eclass, fix paths |
9 |
|
10 |
It's hard to see how this ever worked as it built against bundled |
11 |
libraries but did not install them. It turns out many aren't |
12 |
needed so we now unbundle them all except Apache Derby, which was |
13 |
last-rited. |
14 |
|
15 |
The server tried to write under /usr/share and ${PWD} by default, |
16 |
which is bad and bad. I have made it write under ~/.triplea. |
17 |
|
18 |
Package-Manager: portage-2.3.1 |
19 |
|
20 |
games-strategy/triplea/files/mkdir.sh | 1 + |
21 |
games-strategy/triplea/files/paths.patch | 63 ++++++++++++++++++ |
22 |
games-strategy/triplea/files/upnplib.patch | 14 ++++ |
23 |
games-strategy/triplea/triplea-1.8.0.9-r1.ebuild | 81 ++++++++++++++++++++++++ |
24 |
4 files changed, 159 insertions(+) |
25 |
|
26 |
diff --git a/games-strategy/triplea/files/mkdir.sh b/games-strategy/triplea/files/mkdir.sh |
27 |
new file mode 100644 |
28 |
index 00000000..f1bd04d |
29 |
--- /dev/null |
30 |
+++ b/games-strategy/triplea/files/mkdir.sh |
31 |
@@ -0,0 +1 @@ |
32 |
+mkdir -v "${HOME}/.triplea" |
33 |
|
34 |
diff --git a/games-strategy/triplea/files/paths.patch b/games-strategy/triplea/files/paths.patch |
35 |
new file mode 100644 |
36 |
index 00000000..f0cd91e |
37 |
--- /dev/null |
38 |
+++ b/games-strategy/triplea/files/paths.patch |
39 |
@@ -0,0 +1,63 @@ |
40 |
+diff -Naur a/src/games/strategy/engine/framework/GameRunner2.java b/src/games/strategy/engine/framework/GameRunner2.java |
41 |
+--- a/src/games/strategy/engine/framework/GameRunner2.java 2015-09-02 20:30:04.000000000 +0100 |
42 |
++++ b/src/games/strategy/engine/framework/GameRunner2.java 2016-10-11 23:08:50.296813567 +0100 |
43 |
+@@ -952,9 +952,9 @@ |
44 |
+ // the default |
45 |
+ File rootDir; |
46 |
+ if (GameRunner.isMac()) { |
47 |
+- rootDir = new File(new File(userHome, "Documents"), "triplea"); |
48 |
++ rootDir = new File(new File(userHome, "Documents"), ".triplea"); |
49 |
+ } else { |
50 |
+- rootDir = new File(userHome, "triplea"); |
51 |
++ rootDir = new File(userHome, ".triplea"); |
52 |
+ } |
53 |
+ return rootDir; |
54 |
+ } |
55 |
+diff -Naur a/src/games/strategy/engine/lobby/server/userDB/Database.java b/src/games/strategy/engine/lobby/server/userDB/Database.java |
56 |
+--- a/src/games/strategy/engine/lobby/server/userDB/Database.java 2015-08-19 16:35:06.000000000 +0100 |
57 |
++++ b/src/games/strategy/engine/lobby/server/userDB/Database.java 2016-10-11 23:08:50.296813567 +0100 |
58 |
+@@ -54,7 +54,7 @@ |
59 |
+ if (System.getProperties().containsKey(ServerLauncher.SERVER_ROOT_DIR_PROPERTY)) { |
60 |
+ root = new File(System.getProperties().getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY)); |
61 |
+ } else { |
62 |
+- root = GameRunner2.getRootFolder(); |
63 |
++ root = GameRunner2.getUserRootFolder(); |
64 |
+ } |
65 |
+ if (!root.exists()) { |
66 |
+ throw new IllegalStateException("Root dir does not exist"); |
67 |
+diff -Naur a/src/games/strategy/util/AccessLogFileHandler.java b/src/games/strategy/util/AccessLogFileHandler.java |
68 |
+--- a/src/games/strategy/util/AccessLogFileHandler.java 2015-08-19 16:35:06.000000000 +0100 |
69 |
++++ b/src/games/strategy/util/AccessLogFileHandler.java 2016-10-11 23:10:31.219309604 +0100 |
70 |
+@@ -12,7 +12,7 @@ |
71 |
+ private static final String logFile; |
72 |
+ |
73 |
+ static { |
74 |
+- final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, ".")); |
75 |
++ final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, games.strategy.engine.framework.GameRunner2.getUserRootFolder().getAbsolutePath())); |
76 |
+ if (!rootDir.exists()) { |
77 |
+ throw new IllegalStateException("no dir called:" + rootDir.getAbsolutePath()); |
78 |
+ } |
79 |
+diff -Naur a/src/games/strategy/util/RotatingLogFileHandlerForHeadlessGameServer.java b/src/games/strategy/util/RotatingLogFileHandlerForHeadlessGameServer.java |
80 |
+--- a/src/games/strategy/util/RotatingLogFileHandlerForHeadlessGameServer.java 2015-08-19 16:35:06.000000000 +0100 |
81 |
++++ b/src/games/strategy/util/RotatingLogFileHandlerForHeadlessGameServer.java 2016-10-11 23:10:40.227175356 +0100 |
82 |
+@@ -13,7 +13,7 @@ |
83 |
+ private static final String logFile; |
84 |
+ |
85 |
+ static { |
86 |
+- final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, ".")); |
87 |
++ final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, games.strategy.engine.framework.GameRunner2.getUserRootFolder().getAbsolutePath())); |
88 |
+ if (!rootDir.exists()) { |
89 |
+ throw new IllegalStateException("no dir called:" + rootDir.getAbsolutePath()); |
90 |
+ } |
91 |
+diff -Naur a/src/games/strategy/util/RotatingLogFileHandler.java b/src/games/strategy/util/RotatingLogFileHandler.java |
92 |
+--- a/src/games/strategy/util/RotatingLogFileHandler.java 2015-08-19 16:35:06.000000000 +0100 |
93 |
++++ b/src/games/strategy/util/RotatingLogFileHandler.java 2016-10-11 23:10:46.851076636 +0100 |
94 |
+@@ -12,7 +12,7 @@ |
95 |
+ private static final String logFile; |
96 |
+ |
97 |
+ static { |
98 |
+- final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, ".")); |
99 |
++ final File rootDir = new File(System.getProperty(ServerLauncher.SERVER_ROOT_DIR_PROPERTY, games.strategy.engine.framework.GameRunner2.getUserRootFolder().getAbsolutePath())); |
100 |
+ if (!rootDir.exists()) { |
101 |
+ throw new IllegalStateException("no dir called:" + rootDir.getAbsolutePath()); |
102 |
+ } |
103 |
|
104 |
diff --git a/games-strategy/triplea/files/upnplib.patch b/games-strategy/triplea/files/upnplib.patch |
105 |
new file mode 100644 |
106 |
index 00000000..f17b789 |
107 |
--- /dev/null |
108 |
+++ b/games-strategy/triplea/files/upnplib.patch |
109 |
@@ -0,0 +1,14 @@ |
110 |
+diff -Naur a/src/games/strategy/net/UniversalPlugAndPlayHelper.java b/src/games/strategy/net/UniversalPlugAndPlayHelper.java |
111 |
+--- a/src/games/strategy/net/UniversalPlugAndPlayHelper.java 2015-08-19 16:35:06.000000000 +0100 |
112 |
++++ b/src/games/strategy/net/UniversalPlugAndPlayHelper.java 2016-10-11 22:10:37.287834187 +0100 |
113 |
+@@ -166,8 +166,8 @@ |
114 |
+ System.out.println("To " + m_local.getHostAddress() + ":" + internalPort); |
115 |
+ boolean mapped = false; |
116 |
+ try { |
117 |
+- mapped = m_device.addPortMapping("TripleA Game Hosting", "TCP", null, externalPort, m_local.getHostAddress(), |
118 |
+- internalPort, 0); |
119 |
++ mapped = m_device.addPortMapping("TripleA Game Hosting", null, internalPort, externalPort, |
120 |
++ m_local.getHostAddress(), 0, "TCP"); |
121 |
+ } catch (final IOException e) { |
122 |
+ System.out.println("Port Mapping Failed! Please try to Forward Ports manually! \r\n " + e.getMessage()); |
123 |
+ return "Port Mapping Failed! Please try to Forward Ports manually! \r\n " + e.getMessage(); |
124 |
|
125 |
diff --git a/games-strategy/triplea/triplea-1.8.0.9-r1.ebuild b/games-strategy/triplea/triplea-1.8.0.9-r1.ebuild |
126 |
new file mode 100644 |
127 |
index 00000000..0cf68a6 |
128 |
--- /dev/null |
129 |
+++ b/games-strategy/triplea/triplea-1.8.0.9-r1.ebuild |
130 |
@@ -0,0 +1,81 @@ |
131 |
+# Copyright 1999-2016 Gentoo Foundation |
132 |
+# Distributed under the terms of the GNU General Public License v2 |
133 |
+# $Id$ |
134 |
+ |
135 |
+EAPI=5 |
136 |
+inherit eutils java-pkg-2 java-ant-2 versionator |
137 |
+ |
138 |
+MY_PV=$(replace_all_version_separators _) |
139 |
+DESCRIPTION="An open source clone of the popular Axis and Allies boardgame" |
140 |
+HOMEPAGE="http://triplea.sourceforge.net/" |
141 |
+SRC_URI="mirror://sourceforge/triplea/${PN}_${MY_PV}_source_code_only.zip" |
142 |
+ |
143 |
+LICENSE="GPL-2" |
144 |
+SLOT="0" |
145 |
+KEYWORDS="~amd64 ~x86" |
146 |
+IUSE="test" |
147 |
+RESTRICT="test" # Needs X11 maybe use virtualx.eclass |
148 |
+ |
149 |
+RDEPEND="dev-java/apple-java-extensions-bin:0 |
150 |
+ dev-java/commons-httpclient:3 |
151 |
+ dev-java/oracle-javamail:0 |
152 |
+ dev-java/osgi-core-api:0 |
153 |
+ dev-java/upnplib:0" |
154 |
+DEPEND="${RDEPEND} |
155 |
+ >=virtual/jdk-1.7 |
156 |
+ app-arch/unzip |
157 |
+ test? ( dev-java/ant-junit:0 )" |
158 |
+RDEPEND="${RDEPEND} |
159 |
+ >=virtual/jre-1.7" |
160 |
+ |
161 |
+S=${WORKDIR}/${PN}_${MY_PV} |
162 |
+ |
163 |
+JAVA_ANT_REWRITE_CLASSPATH="true" |
164 |
+EANT_GENTOO_CLASSPATH="apple-java-extensions-bin,commons-httpclient-3,oracle-javamail,osgi-core-api,upnplib" |
165 |
+ |
166 |
+java_prepare() { |
167 |
+ # Use ~/.triplea, not ~/triplea. |
168 |
+ # Don't write server files under /usr/share or ${PWD}. |
169 |
+ # Fix to build against our packaged upnplib. |
170 |
+ epatch "${FILESDIR}"/{paths,upnplib}.patch |
171 |
+ |
172 |
+ # Remove packaged or unneeded libs. Unfortunately Apache Derby was |
173 |
+ # last-rited due to packaging issues. See bug #561410. |
174 |
+ find lib/* ! -name "derby-*.jar" -delete || die |
175 |
+ rm -r old/ || die |
176 |
+} |
177 |
+ |
178 |
+src_compile() { |
179 |
+ eant |
180 |
+ echo "triplea.saveGamesInHomeDir=true" > data/triplea.properties || die |
181 |
+ # The only target creating this is zip which does unjar etc |
182 |
+ jar cf ${PN}.jar -C classes . || die |
183 |
+} |
184 |
+ |
185 |
+src_test() { |
186 |
+ java-pkg-2_src_test |
187 |
+} |
188 |
+ |
189 |
+src_install() { |
190 |
+ insinto /usr/share/${PN} |
191 |
+ doins -r assets data dice_servers maps |
192 |
+ |
193 |
+ java-pkg_dojar ${PN}.jar |
194 |
+ java-pkg_newjar lib/derby-*.jar derby.jar |
195 |
+ |
196 |
+ java-pkg_dolauncher ${PN} \ |
197 |
+ --main games.strategy.engine.framework.GameRunner \ |
198 |
+ --java_args "-Xmx256m" |
199 |
+ java-pkg_dolauncher ${PN}-server -pre "${FILESDIR}"/mkdir.sh \ |
200 |
+ --main games.strategy.engine.lobby.server.LobbyServer \ |
201 |
+ --java_args "-server -Xmx64m -Dtriplea.lobby.port=3303 -Dtriplea.lobby.console=true" |
202 |
+ |
203 |
+ newicon icons/triplea_icon.png ${PN}.png |
204 |
+ newicon icons/triplea_icon.png ${PN}-server.png |
205 |
+ make_desktop_entry ${PN} TripleA |
206 |
+ make_desktop_entry ${PN}-server TripleA-server |
207 |
+ |
208 |
+ dodoc changelog.txt TripleA_RuleBook.pdf |
209 |
+ docinto html |
210 |
+ dodoc -r doc/* readme.html |
211 |
+} |