diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2019-05-18 00:10:51 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2019-05-18 00:10:51 +0100 |
commit | eccb70a7f91b2d22582587f26d1a28bb31408b45 (patch) | |
tree | 3223e1fd54201bcf4ebecac6fbe87361cbe643e2 /games-strategy/openra | |
parent | a2810985afabcc31d3eace5e61d8ea25b852ba17 (diff) |
gentoo resync : 18.05.2019
Diffstat (limited to 'games-strategy/openra')
-rw-r--r-- | games-strategy/openra/Manifest | 19 | ||||
-rw-r--r-- | games-strategy/openra/files/README.gentoo | 111 | ||||
-rw-r--r-- | games-strategy/openra/files/openra-system-geoip.patch | 38 | ||||
-rw-r--r-- | games-strategy/openra/metadata.xml | 2 | ||||
-rw-r--r-- | games-strategy/openra/openra-20141029-r2.ebuild | 95 | ||||
-rw-r--r-- | games-strategy/openra/openra-20190314.ebuild | 164 |
6 files changed, 218 insertions, 211 deletions
diff --git a/games-strategy/openra/Manifest b/games-strategy/openra/Manifest index 7634c50e0840..643f0bc4282e 100644 --- a/games-strategy/openra/Manifest +++ b/games-strategy/openra/Manifest @@ -1,4 +1,15 @@ -AUX README.gentoo 4754 BLAKE2B 08fc1df7aa3f14a44c2642b606a351be4b117d2a133f04c680159b17998ccb056fb285910804c321a212fcab162e739a0c914e41203dc37b1682386754ec016f SHA512 423c2682c3a9e69ccb078399ffec2ed2cb4bf1445c86db730756457e65f90d6f56c80e09b4f5e0b0eb0501a2a692d7d2add3847f77794aaf7555574a76c75392 -DIST openra-20141029.tar.gz 15340674 BLAKE2B bcb18118b1c04da6d2c7c9db2fc10e69a35623994c0c2915ce1c3b410889b72a8761ab6235a876c774470dc8ca03c823f09a6d195416dacd7f55ea6ea5353f06 SHA512 44594ec3c3a590ae29b0291fdf2292c72ba920dff7892cc269e729a161505c4bc0c5c682bf3c6d3cabb0cdebfa3cac5975eeeeec3f5a673e948ed28132c4a313 -EBUILD openra-20141029-r2.ebuild 2001 BLAKE2B dcf47ec78d0898fd0e7e69b63dcfa4aec12cc16b67e7c460c08e248726ba9c8013868d6a895b6c7bfc04650daa8016ebd71289cbe94bc496feb30f5d3c320874 SHA512 01a42450a6edb1b6a7b74264a0bbdf23d98af852697fb99a74af81e89598ed2705ceb1408108400a4a925b113f717a3d6eed781a8a680d6ecf1b084db27c7570 -MISC metadata.xml 508 BLAKE2B b34a0d75f760668ced55f5268e2f75e7980dcccac6bbe26a6822f4434327888c8e242a1ea2f5bd3c70493a9b1a4e5b5905a36ceb615bf99544ac9c27c12457a7 SHA512 a001c0493ffb22d88e5c6769afcbd6f21193ec3f200d92181baaa280ce56ce5e9062c1685497549a7682b5c423525a65117af298df3d2218c80fcc3d7c34bf4a +AUX openra-system-geoip.patch 1660 BLAKE2B bd81875d781157702f99794fe1e4e9cc904edec18566b2a2c8a90b81fe6d684768bf9ef76a7f7864474b6cbdcd10ec28fbbd053e007f71e6af53de7bc6cab6b9 SHA512 58acbba9996e1176fb21c2c9d3496f07e6cf920985cbfa83dc7bdab1b9698c678fe9ce78d16c1a0bf9982e21a03df48bccf5332ad2114b2c2181146b71c9de30 +DIST Eluant-20160124.dll 71168 BLAKE2B b5bf63e634979732a9c524fa61a2876b9257ad2ce54c64faeba991d82e0da63d66fa7532f6f4baf1c55a2f50e3c41d9eb46e085381889e9582a47365f095e320 SHA512 2d2df1c9033aa7ac4a9314663c75424d40f7914fb046d3122eef993d0bbe55386c65167952acf8df4fae224a721318a378e3e97fc5ea654fc8781e196814060f +DIST FuzzyLogicLibrary-1.2.0.zip 80141 BLAKE2B 568582c21b39462f4a3bf5610e2343d5f8ef7791dc66532109bc5c16f79494575790fb30b03fe014514b5681c78db3b441f65a199c4f6f4423e7b7a82a142d73 SHA512 9091649b362bc39d24ab7565f073d5658af58ba24639807b3f541f92296b8f858f4a7a22c88bd643304a0554dfbb095488c3948a6c63e0305b8798b8f1db6bdd +DIST MaxMind.Db-2.0.0.zip 28890 BLAKE2B bd5e2d5027d6ca32b0fe52c14e56674004e48687d0328fd0afc8005f4928187c77bc83461bfa22a888cd8d6348ae50e244a326aedf8b72a6c867f1d74d889ecc SHA512 3f238d7829351a24cde22f6632e562e5eaf997d26f12ff01df512c72bb9274f5bd260afce3979e264a1de9e2130550156e330c4ff316a00d8936a7a009ebeb8e +DIST Open.Nat-2.1.0.zip 347767 BLAKE2B 62940d0095aadd7696fe0df05944f0703cb3f5d563e0dd2f6de8afb0a1fe4c986c6c7dbc09a09d3ec9e7fbab064d703c1069ee49e7fc5cde16e1b3e862dc0756 SHA512 53e1e0d1fc8fd0ad22b064e89eac28140f7a718e4cff5b8524a58bd298da1a1d28100bf57b0b732c27d0c26417f39f024d516c3a90e009e79b9e14bbf118aaea +DIST OpenAL-CS-20151227.dll 18944 BLAKE2B 981996b82dcda9a510cc4044f967c0450c41cbe0cb7df24009e6e78208eed92fcd3a82d427b30b8359d165f6d3da220f0a19d2c0957a85357bf9a2749eea8050 SHA512 6e1548bafb833e3e1a2d1a5f48c19a30bc80297afce0b909316a8d328392f3be86034fd11f66e9ac1172f66c7e2ebd5566ccf7a27c64af109748eb8b4134b8e4 +DIST OpenAL-CS-20151227.dll.config 301 BLAKE2B 8a39f572b5704a0e16b6771395f74f3ec76b528a79a999f44197c318f42960b61a1ab56c1c3ef862a3bae8aa777b6de5a56d5e8b037de2d78cf5f6f4e3276449 SHA512 7db75200798b5080f7d0a495f20e44354af0057b9cfb210a03a3dfe8d63990eb05ed3d1591c9f819900523560e1c3b9c977952f1adbfabf9a7d0fb7aed14b606 +DIST SDL2-CS-20161223.dll 80896 BLAKE2B 774ca64f7847d3cc02773788a6d5074e7d29d8c27b96489ba608ac4ea2376cde88494487b4d488583a1be9059a8fbafade67c70a3214e7c81443506e1142f3fa SHA512 06c5be637897f3a45c861450c26f45cbf9010a89aa0aa485dfaad0b8eabd440069e1ba8ff73dbbc375dca196bda3fa9928612a5d6da807de375fdae0aabeff98 +DIST SDL2-CS-20161223.dll.config 194 BLAKE2B 0b3743e0b41303191fcc7b233777e733529ae2eea9188923f28d8549dcf6d1594a5189ccbfd7ab97253a18d2b0a84f1a810a1f9891c27f6b833e2134d262c41f SHA512 0cf2c44c208cc1db7c6a44dab1882195b69ad65bbe39669f165a1f5caf431aa445a383c12aac9911f3f9ac7480ac1fdb5aae237b03b68cb198a74b107bfb6069 +DIST SharpFont-4.0.1.zip 151532 BLAKE2B 3745959e449b0745b5cd1c20a9653595ce2166f441356127bdb5a5bb99b3442db541f0709c006f90e95050477c6d29a9a895c94951a7299304f8c3196301682d SHA512 3f756d5c882d15bd64408c205cf955eb01e1984c727ff820b9be5c9604832ed83ebd905abd467cca3a3e893bdb86df3e05503f8d05ddccd773a2023742a2160c +DIST SharpZipLib-0.86.0.zip 463599 BLAKE2B 5d6374c5daef33afc1faf814992df1ef7001b593594a022657406ac8ce67ac5e00f71cfe9365c4acab2925ef458f9add83ec62dd22e4db74e17efdd1e1091542 SHA512 70ac4a39b599a37ff45733477ba1afb4caee177262b72037998b7eb08a737177f8689bb690759b8090d25b9d408ba8c84e56bec3509997adde62724fcfcdc2b5 +DIST openra-20190314.tar.gz 24551126 BLAKE2B ed6289bbfab9f55aa88ac834dab3a2bab4cea3cb5a3b6934e24feb78bea1df71d839d4434242df666cda6180027a8e6d5b7766b6155ab2e85a4ee639a7950e12 SHA512 a16884cf626a31b3cf21662c307aef505bfcf6d34330f09b10510aa6c88d9d1026f17f2037565827fc95148776b0651fe0559c65db493295957df428793b2d71 +DIST rix0rrr.BeaconLib-1.0.1.zip 17989 BLAKE2B 2a65c9276b725ac6c433eb2cf6e4a13d6e5c07446dbff1e096b100a20eebb2a432c81cfbc13c11fdf672fbd37eb5985497b3fa425a317afe39049a6a967e3a7e SHA512 4fe4c6dfd7ad0f7eb5549c66fe53cd38f74026a8202d3553481bdfdab8ce0788f8b31f05092d93f9751a687badf75a1ec22da201235f2e505893192bb371367f +EBUILD openra-20190314.ebuild 4887 BLAKE2B a8550963a01d7d4b3855137a59d68488bb05cbc9236f9e8a9b0a80d6bb5fe7dbdadecc1d89049c653f1002b3f15446135ab89300181d45fae8580accfc64ab63 SHA512 c01a9fc83fe1b343ce440bfacfbb822ef7db297706e39c65e04b75422238a7b1cc58dfeac621e0fadc62d89fbcc01db2031d9d0c9e18f6fa14475ed7de237ae9 +MISC metadata.xml 507 BLAKE2B 41509ed4d51adffd4aaf548f986ff19ccdf2b382e6265eeca268ccf693fcbf47468fad4ba1fcafb73f2a7fd5893942944f4118ca3b388a2b9299fd9130621d5e SHA512 ffeb53c6a7368c79336656bee82ea41fcdec13ef68f22e70a2ef70b5ba644ae1ad3832406cf54c7afd888ebe3357d2530528f39b07d515b813cf090248fa5186 diff --git a/games-strategy/openra/files/README.gentoo b/games-strategy/openra/files/README.gentoo deleted file mode 100644 index 33502af0f9d2..000000000000 --- a/games-strategy/openra/files/README.gentoo +++ /dev/null @@ -1,111 +0,0 @@ -OpenRA is a Libre/Free Real Time Strategy game engine supporting early -Westwood games like Command & Conquer and Command & Conquer: Red Alert. - -Distributed mods include a reimagining and updating of both the Red -Alert and Command & Conquer multiplayer games. - -You may run the game from desktop games menu or just manually -run the game with `mono OpenRA.Game.exe Game.Mods=ra` for Red Alert -or `mono OpenRA.Game.exe Game.Mods=cnc` for Command & Conquer. - -If you have problems starting the game consider switching to -alternative Cg Renderer. You may run the game with alternative -Cg Graphics Renderer from desktop games menu or by adding -`Graphics.Renderer=Cg` parameter explicitly to above console commands - (convenient for some integrated graphics cards). -To run explicitly with a default one use `Graphics.Renderer=Gl` -parameter. The default Graphics Renderer is a better one, so -don't forget to upgrade your graphics hardware drivers to the -latest version. For Cg renderer also try to upgrade nvidia-cg-toolkit -too. - -The RA packages will need to be extracted to ~/.openra/Content/ra/ -before the RA mod will actually work. The C&C packages will need -to be extracted to ~/.openra/Contet/cnc/ for C&C mod. You may -execute OpenRA and it will suggest to download content from original -CD or a minimal one from OpenRA site automatically. You may also try -to download minimal content pack from OpenRA site manually by using -OpenRA Utility: - -cd /usr/share/games/openra -mono OpenRA.Utility.exe --download-url=http://open-ra.org/get-dependency.php?file=ra-packages,/tmp/ra-packages.zip -mono OpenRA.Utility.exe --extract-zip=/tmp/ra-packages.zip,~/.openra/Content/ra/ - -The same commands for C&C mod: -mono OpenRA.Utility.exe --download-url=http://open-ra.org/get-dependency.php?file=cnc-packages,/tmp/cnc-packages.zip -mono OpenRA.Utility.exe --extract-zip=/tmp/cnc-packages.zip,~/.openra/Content/cnc/ - -But the better choice is to download a full pack from original game CD -(or iso). However, full CD pack usage result in slower game start from -OpenRA Lobby. It happens due to a lot of unnecessary things like video -clips were pre-packaged in it. If you want optimal game start and all -music themes (made by Frank Klepacki) from classic CD you should -download them from OpenRA Forum: -http://www.sleipnirstuff.com/forum/viewtopic.php?f=83&t=15063 - -The minimal required files for the Red Alert mod are: -EITHER: - * conquer.mix - * temperat.mix - * interior.mix - * snow.mix - * sounds.mix - * allies.mix - * russian.mix -OR: (Usually pretty long game start) - * main.mix -AND: - * redalert.mix - -The minimal required files for the Command and Conquer mod are: - * cclocal.mix - * speech.mix - * conquer.mix - * sounds.mix - * tempicnh.mix - * temperat.mix - * winter.mix - * desert.mix - -If you have a case-sensitive filesystem you must change the filenames to -lower case. - -Red Alert and C&C have been released by EA Games as freeware. They could be -downloaded from http://www.commandandconquer.com/classic -Unfortunately the installer is 16-bit and so won’t run on 64-bit operating -systems. This can be worked around by using the Red Alert Setup Manager - (http://ra.afraid.org/html/downloads/utilities-3.html). -Make sure you apply the no-CD protection fix so all the files needed -are installed to the hard drive. - -If your notebook doesn't show long battery life under OpenRA load you can -do several things: -1. Turn off "Show Shellmap" item under General tab of Settings menu. -2. Edit ~/.openra/settings.yaml in the "Graphics:" section to add -framelimiter. Add "CapFramerate: True" string there to enable framelimiter. -The default setting is 60 frames per second. You can change it's value by -adding "MaxFramerate: 70", for example, string in that section. Be careful -with special tab symbols at the beginning of the strings. Don't forget to -backup your settings file. - -Please note: OpenRA has 2 types of released versions: -1. Release Versions or just Versions. -2. Unstable Playtests Versions or just Playtests. -Release Versions are considered as more stable ones. Playtests are also -pretty stable in most cases but they have usually more features wich are -needed to be tested before inclusion into release. So, if you have any -problems, please report them to the IRC channel #openra on irc.freenode.net -(Use http://webchat.freenode.net/ if you don't have IRC client) -or to the bug-tracker (http://bugs.open-ra.org). - -You may also see servers list with -http://master.open-ra.org/list.php -or by using orabot on IRC channel: -]games (or !games) -to see the games wich are waiting to start or -]games --all -to see all games. - -Please read HACKING for an overview of the engine and read OpenRA Wiki -page for more info about the game and it's development: -https://github.com/OpenRA/OpenRA/wiki diff --git a/games-strategy/openra/files/openra-system-geoip.patch b/games-strategy/openra/files/openra-system-geoip.patch new file mode 100644 index 000000000000..7a32ed47df3a --- /dev/null +++ b/games-strategy/openra/files/openra-system-geoip.patch @@ -0,0 +1,38 @@ +Use a system-wide (uncompressed) GeoIP database instead of trying to +download one at build time. + +diff -Naur a/Makefile b/Makefile +--- a/Makefile 2019-03-14 19:32:26.000000000 +0000 ++++ b/Makefile 2019-05-11 23:41:19.520479107 +0100 +@@ -300,7 +300,7 @@ + @ $(CP_R) thirdparty/download/*.dll . + @ $(CP_R) thirdparty/download/*.dll.config . + +-linux-dependencies: cli-dependencies geoip-dependencies linux-native-dependencies ++linux-dependencies: cli-dependencies linux-native-dependencies + + linux-native-dependencies: + @./thirdparty/configure-native-deps.sh +@@ -341,7 +341,6 @@ + @$(INSTALL_DIR) "$(DATA_INSTALL_DIR)" + @$(INSTALL_PROGRAM) $(foreach prog,$(CORE),$($(prog)_TARGET)) "$(DATA_INSTALL_DIR)" + +- @$(INSTALL_DATA) "GeoLite2-Country.mmdb.gz" "$(DATA_INSTALL_DIR)/GeoLite2-Country.mmdb.gz" + @$(INSTALL_DATA) VERSION "$(DATA_INSTALL_DIR)/VERSION" + @$(INSTALL_DATA) AUTHORS "$(DATA_INSTALL_DIR)/AUTHORS" + @$(INSTALL_DATA) COPYING "$(DATA_INSTALL_DIR)/COPYING" +diff -Naur a/OpenRA.Game/Network/GeoIP.cs b/OpenRA.Game/Network/GeoIP.cs +--- a/OpenRA.Game/Network/GeoIP.cs 2019-03-14 19:32:26.000000000 +0000 ++++ b/OpenRA.Game/Network/GeoIP.cs 2019-05-11 23:40:33.919599297 +0100 +@@ -55,9 +55,8 @@ + { + try + { +- using (var fileStream = new FileStream("GeoLite2-Country.mmdb.gz", FileMode.Open, FileAccess.Read)) +- using (var gzipStream = new GZipInputStream(fileStream)) +- database = new Reader(gzipStream); ++ using (var fileStream = new FileStream(Path.Combine(Platform.GameDir, "..", "GeoIP", "GeoLite2-Country.mmdb"), FileMode.Open, FileAccess.Read)) ++ database = new Reader(fileStream); + } + catch (Exception e) + { diff --git a/games-strategy/openra/metadata.xml b/games-strategy/openra/metadata.xml index a4988625f33d..b6617220811c 100644 --- a/games-strategy/openra/metadata.xml +++ b/games-strategy/openra/metadata.xml @@ -6,7 +6,7 @@ <name>Gentoo Games Project</name> </maintainer> <upstream> - <changelog>http://openra.res0l.net/news/</changelog> + <changelog>https://www.openra.net/news/</changelog> <doc lang="en">https://github.com/OpenRA/OpenRA/wiki</doc> <bugs-to>https://github.com/OpenRA/OpenRA/issues</bugs-to> <remote-id type="github">OpenRA/OpenRA</remote-id> diff --git a/games-strategy/openra/openra-20141029-r2.ebuild b/games-strategy/openra/openra-20141029-r2.ebuild deleted file mode 100644 index 9c2afbc5770c..000000000000 --- a/games-strategy/openra/openra-20141029-r2.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit eutils mono-env gnome2-utils vcs-snapshot games - -DESCRIPTION="A free RTS engine supporting games like Command & Conquer and Red Alert" -HOMEPAGE="http://open-ra.org/" -SRC_URI="https://github.com/OpenRA/OpenRA/tarball/release-${PV} -> ${P}.tar.gz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -QA_PREBUILT="$(games_get_libdir)/openra/liblua*" - -DEPEND="dev-dotnet/libgdiplus - dev-lang/mono - media-libs/freetype:2[X] - media-libs/libsdl2[X,opengl,video] - media-libs/openal - virtual/jpeg:0 - virtual/opengl" -RDEPEND="${DEPEND}" - -pkg_setup() { - mono-env_pkg_setup - games_pkg_setup -} - -src_unpack() { - vcs-snapshot_src_unpack -} - -src_configure() { :; } - -src_prepare() { - # register game-version - sed \ - -e "/Version/s/{DEV_VERSION}/release-${PV}/" \ - -i mods/{ra,cnc,d2k}/mod.yaml || die -} - -src_compile() { - emake all - emake native-dependencies - emake docs -} - -src_install() { - emake \ - datadir="/usr/share" \ - bindir="${GAMES_BINDIR}" \ - libdir="$(games_get_libdir)" \ - DESTDIR="${D}" \ - install-all install-linux-scripts - - exeinto "$(games_get_libdir)/openra" - doexe Eluant.dll.config liblua$(usex amd64 "64" "32")* - - # icons - insinto /usr/share/icons/ - doins -r packaging/linux/hicolor - - # desktop entries - make_desktop_entry "${PN} Game.Mods=cnc" "OpenRA CNC" ${PN} - make_desktop_entry "${PN} Game.Mods=ra" "OpenRA RA" ${PN} - make_desktop_entry "${PN} Game.Mods=d2k" "OpenRA Dune2k" ${PN} - make_desktop_entry "${PN}-editor" "OpenRA Map Editor" ${PN} - - dodoc "${FILESDIR}"/README.gentoo README.md CONTRIBUTING.md AUTHORS \ - DOCUMENTATION.md Lua-API.md - - # file permissions - prepgamesdirs -} - -pkg_preinst() { - games_pkg_preinst - gnome2_icon_savelist -} - -pkg_postinst() { - games_pkg_postinst - gnome2_icon_cache_update - - elog "optional dependencies:" - elog " media-gfx/nvidia-cg-toolkit (fallback renderer if OpenGL fails)" -} - -pkg_postrm() { - gnome2_icon_cache_update -} diff --git a/games-strategy/openra/openra-20190314.ebuild b/games-strategy/openra/openra-20190314.ebuild new file mode 100644 index 000000000000..4926ae8f13bd --- /dev/null +++ b/games-strategy/openra/openra-20190314.ebuild @@ -0,0 +1,164 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit mono-env xdg-utils + +MY_PV=release-${PV} +#MY_PV=playtest-${PV} + +DESCRIPTION="A free RTS engine supporting games like Command & Conquer, Red Alert and Dune2k" +HOMEPAGE="https://www.openra.net/" + +# This sed one-liner was used to generate the SRC_URI list +# below. Ideally we would package these DLLs separately instead but +# Gentoo Dotnet doesn't seem to be in great shape right now. +# +# sed -n -r -e 's@.*curl.*(https:[^ ]+/([^/]+)/([^.]+)([^ ]+)).*@\1 -> \3-\2\4@p' \ +# -e 's@.*noget\.sh ([^ ]+) ([^ ]+).*@https://www.nuget.org/api/v2/package/\1/\2 -> \1-\2.zip@p' \ +# "${S}"/thirdparty/fetch-thirdparty-deps.sh | grep -v 'NUnit\|StyleCop' | sort + +SRC_URI="https://github.com/OpenRA/OpenRA/archive/${MY_PV}.tar.gz -> ${P}.tar.gz + https://github.com/OpenRA/Eluant/releases/download/20160124/Eluant.dll -> Eluant-20160124.dll + https://github.com/OpenRA/OpenAL-CS/releases/download/20151227/OpenAL-CS.dll.config -> OpenAL-CS-20151227.dll.config + https://github.com/OpenRA/OpenAL-CS/releases/download/20151227/OpenAL-CS.dll -> OpenAL-CS-20151227.dll + https://github.com/OpenRA/SDL2-CS/releases/download/20161223/SDL2-CS.dll.config -> SDL2-CS-20161223.dll.config + https://github.com/OpenRA/SDL2-CS/releases/download/20161223/SDL2-CS.dll -> SDL2-CS-20161223.dll + https://www.nuget.org/api/v2/package/FuzzyLogicLibrary/1.2.0 -> FuzzyLogicLibrary-1.2.0.zip + https://www.nuget.org/api/v2/package/MaxMind.Db/2.0.0 -> MaxMind.Db-2.0.0.zip + https://www.nuget.org/api/v2/package/Open.Nat/2.1.0 -> Open.Nat-2.1.0.zip + https://www.nuget.org/api/v2/package/rix0rrr.BeaconLib/1.0.1 -> rix0rrr.BeaconLib-1.0.1.zip + https://www.nuget.org/api/v2/package/SharpFont/4.0.1 -> SharpFont-4.0.1.zip + https://www.nuget.org/api/v2/package/SharpZipLib/0.86.0 -> SharpZipLib-0.86.0.zip" + +# Engine is GPL-3, dependent DLLs are mixed. +LICENSE="GPL-3 Apache-2.0 BSD GPL-2 MIT" + +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+debug geoip" +RESTRICT="mirror" + +BDEPEND=">=dev-lang/mono-4.2" + +DEPEND="${BDEPEND} + dev-dotnet/libgdiplus" + +RDEPEND="${DEPEND} + app-misc/ca-certificates + =dev-lang/lua-5.1*:0 + media-libs/freetype:2 + media-libs/libsdl2[opengl,video] + media-libs/openal + geoip? ( net-misc/geoipupdate )" + +S="${WORKDIR}/OpenRA-${MY_PV}" + +PATCHES=( + "${FILESDIR}"/${PN}-system-geoip.patch +) + +DOCS=( + AUTHORS + CODE_OF_CONDUCT.md + CONTRIBUTING.md + README.md +) + +src_unpack() { + local DOWNLOADS="${S}"/thirdparty/download + mkdir -p "${DOWNLOADS}" || die + + # Stub out unnecessary development dependencies. + touch "${DOWNLOADS}"/{{nunit.framework,StyleCop{,Plus}}.dll,nunit3-console.exe} || die + + for a in ${A}; do + case ${a} in + # Unpack engine sources. + ${P}.tar.gz) unpack ${a} ;; + + # Symlink other downloads, Makefile will extract and copy. + *) ln -snf "${DISTDIR}/${a}" "${DOWNLOADS}/${a%-[0-9]*}${a##*[0-9]}" || die ;; + esac + done +} + +src_prepare() { + # Stub out attempts to download anything. + sed -i -r 's/^\s*(curl|wget)\b/: #\1/' thirdparty/{fetch-thirdparty-deps,noget}.sh || die + + # Extract what is needed from the downloads. + emake cli-dependencies + + default +} + +src_compile() { + emake $(usex debug "" DEBUG=false) + emake VERSION=${MY_PV} version man-page +} + +src_install() { + emake $(usex debug "" DEBUG=false) \ + prefix="${EPREFIX}"/usr \ + gameinstalldir='$(prefix)'/share/${PN} \ + DESTDIR="${D}" \ + VERSION=${MY_PV} \ + install \ + install-linux-mime \ + install-linux-shortcuts \ + install-man-page + + einstalldocs +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update + xdg_mimeinfo_database_update + + if [[ ! -s ${EROOT}/usr/share/GeoIP/GeoLite2-Country.mmdb ]]; then + echo + ewarn "Multiplayer server locations will show as unknown until you install" + + if use geoip; then + ewarn "a GeoIP database. Run emerge --config ${CATEGORY}/${PN}" + ewarn "occasionally to fetch one and keep it current." + else + ewarn "a GeoIP database. Start by enabling the geoip USE flag." + fi + fi + + if [[ ! -d ${EROOT}/usr/share/.mono/certs ]]; then + echo + ewarn "The multiplayer server listing will not work at all until you install" + ewarn "CA certificates using Mono's cert-sync. Run emerge --config" + ewarn "${CATEGORY}/${PN} occasionally to set them up and keep them" + ewarn "current." + fi +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update + xdg_mimeinfo_database_update +} + +pkg_config() { + if use geoip; then + ebegin "Updating GeoIP database" + geoipupdate -d "${EROOT}"/usr/share/GeoIP + eend $? + fi + + ebegin "Updating Mono CA certificates" + cert-sync --quiet "${EROOT}"/etc/ssl/certs/ca-certificates.crt + eend $? + + if [[ -n ${ROOT%/} ]]; then + echo + ewarn "Mono's cert-sync cannot write to your ROOT system so you must manually" + ewarn "copy the certificates from ${BROOT}/usr/share/.mono to ${EROOT}/usr/share/.mono." + fi +} |