Gentoo Archives: gentoo-commits

From: Conrad Kostecki <conikost@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: games-simulation/openrct2/, games-simulation/openrct2/files/
Date: Mon, 02 Dec 2019 21:16:58
Message-Id: 1575321236.935d4aa7df70a085d1703c2265191c61251dff79.conikost@gentoo
1 commit: 935d4aa7df70a085d1703c2265191c61251dff79
2 Author: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
3 AuthorDate: Sun Dec 1 14:06:35 2019 +0000
4 Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
5 CommitDate: Mon Dec 2 21:13:56 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=935d4aa7
7
8 games-simulation/openrct2: bump to version 0.2.4
9
10 Changes:
11 - Bump to EAPI=7.
12 - Updated objects, replays and title-sequences versions.
13 - Switch entierly from gnome2-utils to xdg-utils.
14 - Added use flags for dedicated server and lightfx.
15 - Added missing curl and icu dependency to DEPEND/RDEPEND.
16 - Added missing pkgconfig depdendeny to BDEPEND.
17 - Added initd/confd scripts for dedicated server.
18 - Added GLEP 81 group/user for dedicated server.
19 - Added patches for better Gentoo integration,
20 so game files can be installed globally.
21 - Updated options for cmake configure,
22 which also fixes a QA warning.
23 - Updated description how to install data files.
24 - Fixed tests, so no tests needs to be disabled.
25 - Updated metadata.xml with a better description.
26 - Taking ownership by myself.
27
28 Closes: https://bugs.gentoo.org/660274
29 Closes: https://bugs.gentoo.org/687810
30 Closes: https://bugs.gentoo.org/696578
31 Closes: https://github.com/gentoo/gentoo/pull/13606
32 Package-Manager: Portage-2.3.80, Repoman-2.3.19
33 Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
34
35 games-simulation/openrct2/Manifest | 4 +
36 games-simulation/openrct2/files/README.gentoo | 15 ++
37 ...isable-desktop-and-icon-files-without-gui.patch | 52 +++++++
38 .../openrct2-0.2.4-disable-optional-features.patch | 87 +++++++++++
39 .../openrct2-0.2.4-include-additional-paths.patch | 33 +++++
40 games-simulation/openrct2/files/openrct2.confd | 11 ++
41 games-simulation/openrct2/files/openrct2.initd | 41 ++++++
42 games-simulation/openrct2/metadata.xml | 19 ++-
43 games-simulation/openrct2/openrct2-0.2.4.ebuild | 164 +++++++++++++++++++++
44 9 files changed, 422 insertions(+), 4 deletions(-)
45
46 diff --git a/games-simulation/openrct2/Manifest b/games-simulation/openrct2/Manifest
47 index 640461340ff..3aaf0c0b9cf 100644
48 --- a/games-simulation/openrct2/Manifest
49 +++ b/games-simulation/openrct2/Manifest
50 @@ -1,4 +1,8 @@
51 DIST openrct2-0.2.1.tar.gz 6571807 BLAKE2B f5a72072ce4cda9b68d1f82f56932f1a074c4ea4050d63e4bf39de1220544d543265c67f764f85d0cc85b6ff42f3fa67fc71e7dd9c5eacb1881be47e2d79a84f SHA512 04bf2cfbb2d3b9fb0a8423cfffc70b81a2a2518af73b9a2c2c65b2a4e5ef2380621d4d3aaefaea73d926a99259dfb047d6fcc330cd0d7227541cffead28ba540
52 +DIST openrct2-0.2.4.tar.gz 6805976 BLAKE2B 7860746d1705804682756097ff37d4584d0ebb20c450c08b88134795e9f3c375dfb888a67302f530cd55700eaa5cd13149c365c30a5d267d382b39225f06d210 SHA512 956044b5fa5e55256a33f352d2d1e8a4eb6738b98dc9894807b3628b5c5c08f3229c952fbf8b33ad867771f88c6d7e17ad1a8a4e050f8f269a6152d013afce03
53 +DIST openrct2-objects-1.0.12.zip 2173875 BLAKE2B d344dde3dc376004b9e303a489c058a574c2f8babcce8c9998ef12f2b91e3fe7d3e22e1afc81aadd39637f3f91a5d36c4267aed06980686fd909cc515f4c8fde SHA512 d17d2197b66d22e33a246651a0c544a49a6d6a809612d26a851dc4b40bb9e1bf5079bbe5b1a3b7d41f541fc41ce41717d772a5579aa2cdc9ec1dfea72b5a3144
54 DIST openrct2-objects-v1.0.7.zip 2164242 BLAKE2B 003baf3400c52e3b2efdc208f6c64a45f7c9274aca3b729856a60fc1e72c8b6440b663d3fd791ebde7412df9920095367763bcad58257534b32c222d97976dcb SHA512 8e77adae59062582a22be69e81d144477482148c839abbea76e6bbbc65ca6426a8354bd4726176702a41684f01a62c5bddc0f6c2c6e42fa91c88815879c91fe5
55 DIST openrct2-objects-v1.0.8.zip 2167920 BLAKE2B 551fd825a0bfb6bd2fce8a34aab393ea91f815508f51523a3839a3d2054afe96efac09976f1defd046be55fa14806b05c9cd5a9484d7e3ce1a86c54335a0741a SHA512 29e60a2d72e0c7774993e9d70aeb1c931b359e35776049a1baafd2d0bdfc56c1374e577e43f596c31ee146bd38b87eeeb8acc3ea03fdd9c9bc3be08436b7aa6a
56 +DIST openrct2-replays-0.0.4.zip 1098833 BLAKE2B efe4f72b16285d8e6508313f16b892b02f1b124cf9b4d146731280f5090d071d3351834e6d4ab51122804fbbcb49044be4e681182141aac93795c3b1953b6590 SHA512 5c2469bfdaa94a6007f6788878f4e80d87fbbfd48b522e1bd2a22c2aa0c98583159b9559fd45f7f9450d544a99a59b6c17399d9ac91a171a86135f0e1a5b3e71
57 DIST openrct2-title-sequence-v0.1.2.zip 4073116 BLAKE2B a36fb07e8da62afce129f2224f4cf5cc226922094132a3dc515fda1f02e0f8bbe07c973363f824ae58a54a26f252ad96f3f673bf5f142be5c964f45b6f712ed6 SHA512 7592c5397ceb27347c127ae5c4f8e11d7ef2ff23c97f627b354f941894420f546ffdcff88e2348e42c82d182ccf620e739c745d894a9b5650a0d7d028b68a106
58 +DIST openrct2-title-sequences-0.1.2c.zip 2980030 BLAKE2B f91168bea0a4f88a801c95ea45759e0d1c887a89c18dbbded5887d2914db7119dd65c231aa422e4f8a964a81d832eae05bffaa8b7908fac39a63792d082b53a0 SHA512 0e544d236d5f6ac7f68d75ba1f56f043c76c77676cbb92e6fdbf68a6ae2dc6c41dbdad6083ceec36b2f774bcdd99f64f28de73b208d6a39a8218a9e95502d46e
59
60 diff --git a/games-simulation/openrct2/files/README.gentoo b/games-simulation/openrct2/files/README.gentoo
61 new file mode 100644
62 index 00000000000..7e5fc8c6585
63 --- /dev/null
64 +++ b/games-simulation/openrct2/files/README.gentoo
65 @@ -0,0 +1,15 @@
66 +OpenRCT2 needs the original RollerCoaster Tycoon 2 data files."
67 +
68 +You need the folders 'Data', 'ObjData', 'Scenarios' and 'Tracks'"
69 +from the original release and copy them into '/usr/share/openrct2/rct2_data'."
70 +
71 +For additional content, you can install the RollerCoaster Tycoon 1 data files."
72 +
73 +You need the folders 'Data', 'Scenarios' and 'Tracks'"
74 +from the original release and copy them into '/usr/share/openrct2/rct1_data'."
75 +
76 +Optionally, the paths can be overwritten by the parameters"
77 +'game_path' and 'rct1_path' in your local ~/.config/OpenRCT2/config.ini file."
78 +
79 +See: https://github.com/OpenRCT2/OpenRCT2/wiki/Required-RCT2-files"
80 +See: https://github.com/OpenRCT2/OpenRCT2/wiki/Loading-RCT1-scenarios-and-data"
81
82 diff --git a/games-simulation/openrct2/files/openrct2-0.2.4-disable-desktop-and-icon-files-without-gui.patch b/games-simulation/openrct2/files/openrct2-0.2.4-disable-desktop-and-icon-files-without-gui.patch
83 new file mode 100644
84 index 00000000000..cddbe7a93a3
85 --- /dev/null
86 +++ b/games-simulation/openrct2/files/openrct2-0.2.4-disable-desktop-and-icon-files-without-gui.patch
87 @@ -0,0 +1,52 @@
88 +From 9df66b1f1f56427d896263728c84009c8c3b842b Mon Sep 17 00:00:00 2001
89 +From: Conrad Kostecki <conrad@××××××××.com>
90 +Date: Sun, 10 Nov 2019 20:05:51 +0100
91 +Subject: [PATCH] CMakeLists.txt: don't install desktop and icon files without
92 + GUI (#10206)
93 +
94 +If OpenRCT2 is compiled without GUI (for example as a dedicated server),
95 +it does not make sense to install the desktop and icon files.
96 +
97 +Signed-off-by: Conrad Kostecki <conrad@××××××××.com>
98 +---
99 + CMakeLists.txt | 28 +++++++++++++++-------------
100 + 1 file changed, 15 insertions(+), 13 deletions(-)
101 +
102 +diff --git a/CMakeLists.txt b/CMakeLists.txt
103 +index 7dda401bbdd..f6e4683c9b7 100644
104 +--- a/CMakeLists.txt
105 ++++ b/CMakeLists.txt
106 +@@ -319,18 +319,20 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/g2.dat" DESTINATION "${CMAKE_INSTALL_
107 + install(DIRECTORY "data/" DESTINATION "${CMAKE_INSTALL_DATADIR}/openrct2")
108 + install(FILES ${DOC_FILES} DESTINATION "${CMAKE_INSTALL_DOCDIR}")
109 + install(FILES "distribution/linux/openrct2.appdata.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo")
110 +-install(FILES "resources/logo/icon_x16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "openrct2.png")
111 +-install(FILES "resources/logo/icon_x24.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/24x24/apps" RENAME "openrct2.png")
112 +-install(FILES "resources/logo/icon_x32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "openrct2.png")
113 +-install(FILES "resources/logo/icon_x48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "openrct2.png")
114 +-install(FILES "resources/logo/icon_x64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "openrct2.png")
115 +-install(FILES "resources/logo/icon_x96.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/96x96/apps" RENAME "openrct2.png")
116 +-install(FILES "resources/logo/icon_x128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "openrct2.png")
117 +-install(FILES "resources/logo/icon_x256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "openrct2.png")
118 +-install(FILES "resources/logo/icon_flag.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps" RENAME "openrct2.svg")
119 +-install(FILES "distribution/linux/openrct2.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
120 +-install(FILES "distribution/linux/openrct2-savegame.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
121 +-install(FILES "distribution/linux/openrct2-scenario.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
122 +-install(FILES "distribution/linux/openrct2-uri.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
123 ++if (NOT DISABLE_GUI)
124 ++ install(FILES "resources/logo/icon_x16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "openrct2.png")
125 ++ install(FILES "resources/logo/icon_x24.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/24x24/apps" RENAME "openrct2.png")
126 ++ install(FILES "resources/logo/icon_x32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "openrct2.png")
127 ++ install(FILES "resources/logo/icon_x48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "openrct2.png")
128 ++ install(FILES "resources/logo/icon_x64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "openrct2.png")
129 ++ install(FILES "resources/logo/icon_x96.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/96x96/apps" RENAME "openrct2.png")
130 ++ install(FILES "resources/logo/icon_x128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "openrct2.png")
131 ++ install(FILES "resources/logo/icon_x256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "openrct2.png")
132 ++ install(FILES "resources/logo/icon_flag.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps" RENAME "openrct2.svg")
133 ++ install(FILES "distribution/linux/openrct2.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
134 ++ install(FILES "distribution/linux/openrct2-savegame.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
135 ++ install(FILES "distribution/linux/openrct2-scenario.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
136 ++ install(FILES "distribution/linux/openrct2-uri.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
137 ++endif()
138 + install(FILES "distribution/linux/openrct2-mimeinfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/mime/packages/" RENAME "openrct2.xml")
139 + install(DIRECTORY "distribution/man/" DESTINATION "${CMAKE_INSTALL_MANDIR}/man6" FILES_MATCHING PATTERN "*.6")
140
141 diff --git a/games-simulation/openrct2/files/openrct2-0.2.4-disable-optional-features.patch b/games-simulation/openrct2/files/openrct2-0.2.4-disable-optional-features.patch
142 new file mode 100644
143 index 00000000000..03d6496bf3e
144 --- /dev/null
145 +++ b/games-simulation/openrct2/files/openrct2-0.2.4-disable-optional-features.patch
146 @@ -0,0 +1,87 @@
147 +From fef1906d0d7050b1dfa3792f6e8d3a9b9632df68 Mon Sep 17 00:00:00 2001
148 +From: Conrad Kostecki <conrad+github@××××××××.com>
149 +Date: Sat, 9 Nov 2019 21:20:16 +0100
150 +Subject: [PATCH] CMakeLists.txt: make discord-rpc and google benchmark
151 + optional (#10208)
152 +
153 +For a package maintainer, it should be possible to disable the support
154 +for discord-rpc and google benchmark, as it currently always includes them,
155 +when the library if found.
156 +---
157 + CMakeLists.txt | 26 +++++++++++++++-----------
158 + src/openrct2/CMakeLists.txt | 18 ++++++++++--------
159 + 2 files changed, 25 insertions(+), 19 deletions(-)
160 +
161 +diff --git a/CMakeLists.txt b/CMakeLists.txt
162 +index ea4bdfd8221..7dda401bbdd 100644
163 +--- a/CMakeLists.txt
164 ++++ b/CMakeLists.txt
165 +@@ -42,6 +42,8 @@ CMAKE_DEPENDENT_OPTION(DOWNLOAD_REPLAYS "Download replays during installation."
166 + option(STATIC "Create a static build.")
167 + option(USE_MMAP "Use mmap to try loading rct2's data segment into memory.")
168 +
169 ++option(DISABLE_DISCORD_RPC "Disable Discord-RPC support." OFF)
170 ++option(DISABLE_GOOGLE_BENCHMARK "Disable Google Benchmarks support." OFF)
171 + option(DISABLE_HTTP_TWITCH "Disable HTTP and Twitch support.")
172 + option(DISABLE_NETWORK "Disable multiplayer functionality. Mainly for testing.")
173 + option(DISABLE_TTF "Disable support for TTF provided by freetype2.")
174 +@@ -125,17 +127,19 @@ if (CXX_WARN_SUGGEST_FINAL_METHODS)
175 + add_definitions(-D__WARN_SUGGEST_FINAL_METHODS__)
176 + endif ()
177 +
178 +-if(EXISTS "${ROOT_DIR}/discord-rpc")
179 +- # Don't build discord's examples, some of which are in C and do not honour
180 +- # the flags we set for C++. Also we don't use the provided examples.
181 +- set(BUILD_EXAMPLES OFF CACHE BOOL "Build example apps")
182 +- add_subdirectory("${ROOT_DIR}/discord-rpc")
183 +- add_definitions(-D__ENABLE_DISCORD__)
184 +- include_directories("${ROOT_DIR}/discord-rpc/include")
185 +- set(HAVE_DISCORD_RPC TRUE)
186 +- message("Building with discord-rpc support")
187 +-else()
188 +- message("No discord-rpc detected, to enable clone discord-rpc to root directory: ${ROOT_DIR}")
189 ++if (NOT DISABLE_DISCORD_RPC)
190 ++ if(EXISTS "${ROOT_DIR}/discord-rpc")
191 ++ # Don't build discord's examples, some of which are in C and do not honour
192 ++ # the flags we set for C++. Also we don't use the provided examples.
193 ++ set(BUILD_EXAMPLES OFF CACHE BOOL "Build example apps")
194 ++ add_subdirectory("${ROOT_DIR}/discord-rpc")
195 ++ add_definitions(-D__ENABLE_DISCORD__)
196 ++ include_directories("${ROOT_DIR}/discord-rpc/include")
197 ++ set(HAVE_DISCORD_RPC TRUE)
198 ++ message("Building with discord-rpc support")
199 ++ else()
200 ++ message("No discord-rpc detected, to enable clone discord-rpc to root directory: ${ROOT_DIR}")
201 ++ endif()
202 + endif()
203 +
204 + # Copied from https://github.com/opencv/opencv/blob/dcdd6af5a856826fe62c95322145731e702e54c5/cmake/OpenCVDetectCXXCompiler.cmake#L63-L70
205 +diff --git a/src/openrct2/CMakeLists.txt b/src/openrct2/CMakeLists.txt
206 +index 61be3d13c2a..97674911c0c 100644
207 +--- a/src/openrct2/CMakeLists.txt
208 ++++ b/src/openrct2/CMakeLists.txt
209 +@@ -73,14 +73,16 @@ if (NOT DISABLE_TTF)
210 + endif ()
211 + endif ()
212 +
213 +-find_package(benchmark 1.4 QUIET)
214 +-if (benchmark_FOUND)
215 +- message("Found Google benchmark, enabling support")
216 +- set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS USE_BENCHMARK)
217 +- target_link_libraries(${PROJECT_NAME} benchmark::benchmark)
218 +- target_include_directories(${PROJECT_NAME} PRIVATE ${benchmark_INCLUDE_DIRS})
219 +-else ()
220 +- message("Google benchmark not found, disabling support")
221 ++if (NOT DISABLE_GOOGLE_BENCHMARK)
222 ++ find_package(benchmark 1.4 QUIET)
223 ++ if (benchmark_FOUND)
224 ++ message("Found Google benchmark, enabling support")
225 ++ set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_DEFINITIONS USE_BENCHMARK)
226 ++ target_link_libraries(${PROJECT_NAME} benchmark::benchmark)
227 ++ target_include_directories(${PROJECT_NAME} PRIVATE ${benchmark_INCLUDE_DIRS})
228 ++ else ()
229 ++ message("Google benchmark not found, disabling support")
230 ++ endif ()
231 + endif ()
232 +
233 + # Third party libraries
234
235 diff --git a/games-simulation/openrct2/files/openrct2-0.2.4-include-additional-paths.patch b/games-simulation/openrct2/files/openrct2-0.2.4-include-additional-paths.patch
236 new file mode 100644
237 index 00000000000..d7c3bb7b444
238 --- /dev/null
239 +++ b/games-simulation/openrct2/files/openrct2-0.2.4-include-additional-paths.patch
240 @@ -0,0 +1,33 @@
241 +From 370b6c6ee48dd1ccc68e03f4bba3e9a2cb2067aa Mon Sep 17 00:00:00 2001
242 +From: Conrad Kostecki <conrad@××××××××.com>
243 +Date: Sat, 9 Nov 2019 22:32:03 +0100
244 +Subject: [PATCH] src/openrct2/config/Config.cpp: Search additional paths for
245 + rct data.
246 +
247 +With '/usr/share/openrct2/rct{1,2}_data' added into the search path list,
248 +it makes possible to install rct{1,2} game files globally,
249 +so every user on a linux system can run OpenRCT2 directly.
250 +---
251 + src/openrct2/config/Config.cpp | 2 ++
252 + 1 file changed, 2 insertions(+)
253 +
254 +diff --git a/src/openrct2/config/Config.cpp b/src/openrct2/config/Config.cpp
255 +index 08d59488eea..969533f8820 100644
256 +--- a/src/openrct2/config/Config.cpp
257 ++++ b/src/openrct2/config/Config.cpp
258 +@@ -615,6 +615,7 @@ namespace Config
259 + log_verbose("config_find_rct1_path(...)");
260 +
261 + static constexpr const utf8* searchLocations[] = {
262 ++ R"(/usr/share/openrct2/rct1_data)",
263 + R"(C:\Program Files\Steam\steamapps\common\Rollercoaster Tycoon Deluxe)",
264 + R"(C:\Program Files (x86)\Steam\steamapps\common\Rollercoaster Tycoon Deluxe)",
265 + R"(C:\GOG Games\RollerCoaster Tycoon Deluxe)",
266 +@@ -659,6 +660,7 @@ namespace Config
267 + log_verbose("config_find_rct2_path(...)");
268 +
269 + static constexpr const utf8* searchLocations[] = {
270 ++ R"(/usr/share/openrct2/rct2_data)",
271 + R"(C:\Program Files\Steam\steamapps\common\Rollercoaster Tycoon 2)",
272 + R"(C:\Program Files (x86)\Steam\steamapps\common\Rollercoaster Tycoon 2)",
273 + R"(C:\GOG Games\RollerCoaster Tycoon 2 Triple Thrill Pack)",
274
275 diff --git a/games-simulation/openrct2/files/openrct2.confd b/games-simulation/openrct2/files/openrct2.confd
276 new file mode 100644
277 index 00000000000..cdc414542d2
278 --- /dev/null
279 +++ b/games-simulation/openrct2/files/openrct2.confd
280 @@ -0,0 +1,11 @@
281 +# Copyright 1999-2019 Gentoo Authors
282 +# Distributed under the terms of the GNU General Public License v2
283 +
284 +# Name of the OpenRCT2 scenario file,
285 +# which will be used by the dedicated server.
286 +# It needs to be placed in '/var/lib/openrct2/<instance>/scenario'.
287 +# The default instance is 'main'.
288 +OPENRCT2_SCENARIO_FILE="scenario.sc6"
289 +
290 +# Options, which can be passed to the dedicated server.
291 +OPENRCT2_OPTS="--port 11753"
292
293 diff --git a/games-simulation/openrct2/files/openrct2.initd b/games-simulation/openrct2/files/openrct2.initd
294 new file mode 100644
295 index 00000000000..de95158a68e
296 --- /dev/null
297 +++ b/games-simulation/openrct2/files/openrct2.initd
298 @@ -0,0 +1,41 @@
299 +#!/sbin/openrc-run
300 +# Copyright 1999-2019 Gentoo Authors
301 +# Distributed under the terms of the GNU General Public License v2
302 +
303 +if [ "${SVCNAME}" = "openrct2" ]; then
304 + instance="main"
305 +else
306 + instance="${SVCNAME#*.}"
307 +fi
308 +
309 +openrct2_command="/usr/bin/openrct2-cli"
310 +openrct2_path="/var/lib/openrct2"
311 +openrct2_path_instance="${openrct2_path}/${instance}"
312 +openrct2_path_scenario="${openrct2_path_instance}/scenario"
313 +name="OpenRCT2 server (${instance})"
314 +pidfile="/run/openrct2-cli.${instance}.pid"
315 +start_stop_daemon_args="--chdir ${openrct2_path_instance}"
316 +
317 +command="/usr/bin/openrct2-cli"
318 +command_args="host \"${openrct2_path_scenario}/${OPENRCT2_SCENARIO_FILE}\" --headless --user-data-path ${openrct2_path_instance} ${OPENRCT2_OPTS}"
319 +command_background="true"
320 +command_group="openrct2"
321 +command_user="openrct2"
322 +
323 +depend() {
324 + use net
325 +}
326 +
327 +start_pre() {
328 + checkpath -d -o "${command_user}:${command_group}" -q "${openrct2_path}" "${openrct2_path_instance}" "${openrct2_path_scenario}"
329 +
330 + if [ ! -f "${openrct2_path_scenario}/${OPENRCT2_SCENARIO_FILE}" ]; then
331 + eerror "The scenario ${openrct2_path_scenario}/${OPENRCT2_SCENARIO_FILE} could not be found!"
332 + eerror "An OpenRCT2 scenario file is needed by the dedicated server."
333 + eerror "Please check, if OPENRCT2_SCENARIO is configured correctly."
334 + return 1
335 + else
336 + checkpath -f -o "${command_user}:${command_group}" -q "${openrct2_path_scenario}/${OPENRCT2_SCENARIO_FILE}"
337 + return 0
338 + fi
339 +}
340
341 diff --git a/games-simulation/openrct2/metadata.xml b/games-simulation/openrct2/metadata.xml
342 index e6ebc48e755..9fce1c161ff 100644
343 --- a/games-simulation/openrct2/metadata.xml
344 +++ b/games-simulation/openrct2/metadata.xml
345 @@ -1,6 +1,10 @@
346 <?xml version="1.0" encoding="UTF-8"?>
347 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
348 <pkgmetadata>
349 + <maintainer type="person">
350 + <email>ck+gentoo@××××××××.de</email>
351 + <name>Conrad Kostecki</name>
352 + </maintainer>
353 <maintainer type="person">
354 <email>jan@×××××.in</email>
355 <name>Jan Segre</name>
356 @@ -13,15 +17,22 @@
357 <email>proxy-maint@g.o</email>
358 <name>Proxy Maintainers</name>
359 </maintainer>
360 - <longdescription lang="en">
361 - An open-source re-implementation of RollerCoaster Tycoon 2. A construction and management simulation video game that simulates amusement park management.
362 + <longdescription>
363 + OpenRCT2 is an open-source re-implementation of RollerCoaster Tycoon 2 (RCT2),
364 + expanding the game with new features, fixing bugs and raising game limits.
365 + The gameplay revolves around building and maintaining an amusement park containing attractions,
366 + shops and facilities. The player must try to make a profit and maintain a good park reputation
367 + whilst keeping the guests happy. OpenRCT2 allows for both scenario and sandbox play.
368 + Scenarios require the player to complete a certain objective in a set time limit whilst
369 + sandbox allows the player to build a more flexible park with optionally no restrictions or finance.
370 </longdescription>
371 <use>
372 + <flag name="lightfx">Enables LightFX for better lightning effects.</flag>
373 <flag name="multiplayer">Enable multiplayer functionality</flag>
374 - <flag name="twitch">Enable Twitch support</flag>
375 + <flag name="twitch">Enables streaming of ingame content to Twitch.</flag>
376 </use>
377 <upstream>
378 - <remote-id type="github">OpenRCT2/OpenRCT2</remote-id>
379 <bugs-to>https://github.com/OpenRCT2/OpenRCT2/issues</bugs-to>
380 + <remote-id type="github">OpenRCT2/OpenRCT2</remote-id>
381 </upstream>
382 </pkgmetadata>
383
384 diff --git a/games-simulation/openrct2/openrct2-0.2.4.ebuild b/games-simulation/openrct2/openrct2-0.2.4.ebuild
385 new file mode 100644
386 index 00000000000..15630b9a2ce
387 --- /dev/null
388 +++ b/games-simulation/openrct2/openrct2-0.2.4.ebuild
389 @@ -0,0 +1,164 @@
390 +# Copyright 1999-2019 Gentoo Authors
391 +# Distributed under the terms of the GNU General Public License v2
392 +
393 +EAPI=7
394 +
395 +inherit cmake-utils readme.gentoo-r1 xdg-utils
396 +
397 +MY_PN="OpenRCT2"
398 +MY_PN_OBJ="objects"
399 +MY_PN_RPL="replays"
400 +MY_PN_TS="title-sequences"
401 +MY_PV_OBJ="1.0.12"
402 +MY_PV_RPL="0.0.4"
403 +MY_PV_TS="0.1.2c"
404 +
405 +DESCRIPTION="An open source re-implementation of Chris Sawyer's RollerCoaster Tycoon 2"
406 +HOMEPAGE="https://openrct2.org/"
407 +SRC_URI="
408 + https://github.com/${MY_PN}/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
409 + https://github.com/${MY_PN}/${MY_PN_OBJ}/releases/download/v${MY_PV_OBJ}/${MY_PN_OBJ}.zip -> ${PN}-${MY_PN_OBJ}-${MY_PV_OBJ}.zip
410 + https://github.com/${MY_PN}/${MY_PN_TS}/releases/download/v${MY_PV_TS}/${MY_PN_TS}.zip -> ${PN}-${MY_PN_TS}-${MY_PV_TS}.zip
411 + test? ( https://github.com/${MY_PN}/${MY_PN_RPL}/releases/download/v${MY_PV_RPL}/${MY_PN_RPL}.zip -> ${PN}-${MY_PN_RPL}-${MY_PV_RPL}.zip )
412 +"
413 +
414 +LICENSE="GPL-3"
415 +SLOT="0"
416 +KEYWORDS="~amd64 ~x86"
417 +IUSE="dedicated libressl +lightfx +opengl test +truetype twitch"
418 +
419 +COMMON_DEPEND="
420 + dev-libs/icu:=
421 + dev-libs/jansson
422 + dev-libs/libzip:=
423 + media-libs/libpng:0=
424 + sys-libs/zlib
425 + !dedicated? (
426 + media-libs/libsdl2
427 + media-libs/speexdsp
428 + opengl? ( virtual/opengl )
429 + twitch? (
430 + net-misc/curl[ssl]
431 + )
432 + )
433 + libressl? ( dev-libs/libressl:0= )
434 + !libressl? ( dev-libs/openssl:0= )
435 + truetype? (
436 + media-libs/fontconfig:1.0
437 + media-libs/freetype:2
438 + )
439 +"
440 +
441 +RDEPEND="
442 + ${COMMON_DEPEND}
443 + dedicated? (
444 + acct-group/openrct2
445 + acct-user/openrct2
446 + )
447 +"
448 +
449 +DEPEND="
450 + ${COMMON_DEPEND}
451 + test? ( dev-cpp/gtest )
452 +"
453 +
454 +BDEPEND="
455 + app-arch/unzip
456 + virtual/pkgconfig
457 +"
458 +
459 +RESTRICT="!test? ( test )"
460 +
461 +S="${WORKDIR}/${MY_PN}-${PV}"
462 +
463 +PATCHES=(
464 + "${FILESDIR}/${PN}-0.2.4-disable-desktop-and-icon-files-without-gui.patch"
465 + "${FILESDIR}/${PN}-0.2.4-disable-optional-features.patch"
466 + "${FILESDIR}/${PN}-0.2.4-include-additional-paths.patch"
467 +)
468 +
469 +src_unpack() {
470 + unpack "${P}".tar.gz
471 +
472 + mkdir -p "${S}"/data/title || die
473 + cd "${S}"/data/title || die
474 + unpack "${PN}-${MY_PN_TS}-${MY_PV_TS}".zip
475 +
476 + mkdir -p "${S}"/data/object || die
477 + cd "${S}"/data/object || die
478 + unpack "${PN}-${MY_PN_OBJ}-${MY_PV_OBJ}".zip
479 +
480 + if use test; then
481 + mkdir -p "${S}"/testdata/replays || die
482 + cd "${S}"/testdata/replays || die
483 + unpack "${PN}-${MY_PN_RPL}-${MY_PV_RPL}".zip
484 + fi
485 +}
486 +
487 +src_prepare() {
488 + cmake-utils_src_prepare
489 +
490 + # Don't treat warnings as errors.
491 + sed -e 's/-Werror//' -i CMakeLists.txt || die
492 +}
493 +
494 +src_configure() {
495 + # Note: There is currently no support for Disord-RPC and Google Benchmark,
496 + # as both packages do not exist in Gentoo, so support for them has been disabled.
497 + local mycmakeargs=(
498 + -DDISABLE_DISCORD_RPC=ON
499 + -DDISABLE_GOOGLE_BENCHMARK=ON
500 + -DDISABLE_GUI=$(usex dedicated)
501 + -DDISABLE_HTTP_TWITCH=$(usex !twitch)
502 + -DDISABLE_NETWORK=OFF
503 + $(usex !dedicated "-DDISABLE_OPENGL=$(usex !opengl)" "")
504 + -DDISABLE_TTF=$(usex !truetype)
505 + -DDOWNLOAD_OBJECTS=OFF
506 + -DDOWNLOAD_REPLAYS=OFF
507 + -DDOWNLOAD_TITLE_SEQUENCES=OFF
508 + -DENABLE_LIGHTFX=$(usex lightfx)
509 + -DPORTABLE=OFF
510 + -DSTATIC=OFF
511 + $(usex test "-DSYSTEM_GTEST=ON" "")
512 + -DWITH_TESTS=$(usex test)
513 + -DUSE_MMAP=ON
514 + )
515 +
516 + cmake-utils_src_configure
517 +}
518 +
519 +src_test() {
520 + # Since the tests need the OpenRCT2 data,
521 + # we need to symlink them into the build directory,
522 + # otherwise some tests will fail, as they don't find the OpenRCT2 data.
523 + # It is currently not possible to override that path.
524 + # See: https://github.com/OpenRCT2/OpenRCT2/issues/6473
525 + ln -s "${S}"/data "${BUILD_DIR}" || die
526 +
527 + cmake-utils_src_test
528 +}
529 +
530 +src_install() {
531 + cmake-utils_src_install
532 +
533 + if use dedicated; then
534 + newinitd "${FILESDIR}"/openrct2.initd openrct2
535 + newconfd "${FILESDIR}"/openrct2.confd openrct2
536 + fi
537 +
538 + readme.gentoo_create_doc
539 +}
540 +
541 +pkg_postinst() {
542 + readme.gentoo_print_elog
543 +
544 + xdg_desktop_database_update
545 + xdg_icon_cache_update
546 + xdg_mimeinfo_database_update
547 +}
548 +
549 +pkg_postrm() {
550 + xdg_desktop_database_update
551 + xdg_icon_cache_update
552 + xdg_mimeinfo_database_update
553 +}