diff options
author | Matt Jolly <Matt.Jolly@footclan.ninja> | 2022-03-29 21:47:42 +1100 |
---|---|---|
committer | James Le Cuirot <chewi@gentoo.org> | 2022-04-14 22:34:17 +0100 |
commit | a7f9ae9ac54ecfedaec26c90e0360ed6b98e47cd (patch) | |
tree | 03e8733954cd229ca222effd7e153347ed9f910c /games-strategy/freeciv | |
parent | media-libs/libsdl2: Drop old and vulnerable 2.0.16-r1 (diff) | |
download | gentoo-a7f9ae9ac54ecfedaec26c90e0360ed6b98e47cd.tar.gz gentoo-a7f9ae9ac54ecfedaec26c90e0360ed6b98e47cd.tar.bz2 gentoo-a7f9ae9ac54ecfedaec26c90e0360ed6b98e47cd.zip |
games-strategy/freeciv: add 3.0.0
Signed-off-by: Matt Jolly <Matt.Jolly@footclan.ninja>
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'games-strategy/freeciv')
-rw-r--r-- | games-strategy/freeciv/Manifest | 1 | ||||
-rw-r--r-- | games-strategy/freeciv/freeciv-3.0.0.ebuild | 192 |
2 files changed, 193 insertions, 0 deletions
diff --git a/games-strategy/freeciv/Manifest b/games-strategy/freeciv/Manifest index 399242876ba6..5c49edfb6e62 100644 --- a/games-strategy/freeciv/Manifest +++ b/games-strategy/freeciv/Manifest @@ -1 +1,2 @@ DIST freeciv-2.6.6.tar.bz2 52244748 BLAKE2B 88f85b8345b0a2baaa6626a6ab0c8a68e1e7a9a189f661b4fb800572090bf999c62e64641eae36a48b5d90a988bf43b839a411a60af285fbc234e2ca20fadd0c SHA512 97723d260c4e40328aaf26606a4f37871958b58a475cd3fc635edf2e94d28d486c6e28a75b42126e9e69580a60d24fc490da086877d0c912a544d643ff69b103 +DIST freeciv-3.0.0.tar.xz 33421584 BLAKE2B aafd69767c947b26b410e520c674604aa06b51080de35b14bab584b2baf5259fe0b11efb97601341f594d054a664cf0cbf4bb29763919a482f097823d2f024ab SHA512 5c3774cc1510f1aedac0be043cb0684230e230674444031ad1b88c6320a1aab1308452719950d49e25b29f8c2ee9e4e96cc40cdf89ac23609c5422c8beeccd37 diff --git a/games-strategy/freeciv/freeciv-3.0.0.ebuild b/games-strategy/freeciv/freeciv-3.0.0.ebuild new file mode 100644 index 000000000000..7ff9b9132dcd --- /dev/null +++ b/games-strategy/freeciv/freeciv-3.0.0.ebuild @@ -0,0 +1,192 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-3 ) + +inherit desktop lua-single qmake-utils xdg + +MY_PV="${PV/_beta/-beta}" +MY_PV="${MY_PV/_rc/-RC}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Multiplayer strategy game (Civilization Clone)" +HOMEPAGE="http://www.freeciv.org/" + +if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then + SRC_URI="mirror://sourceforge/freeciv/${MY_P}.tar.xz" + KEYWORDS="~amd64 ~ppc64 ~x86" +fi + +LICENSE="GPL-2+" +SLOT="0" +IUSE="aimodules auth dedicated +gtk ipv6 mapimg modpack mysql nls qt5 readline sdl +server +sound sqlite system-lua" + +REQUIRED_USE="system-lua? ( ${LUA_REQUIRED_USE} )" + +RDEPEND=" + app-arch/bzip2 + app-arch/xz-utils + net-misc/curl + sys-libs/zlib + auth? ( + !mysql? ( ( !sqlite? ( dev-db/mysql-connector-c:0= ) ) ) + mysql? ( dev-db/mysql-connector-c:0= ) + sqlite? ( dev-db/sqlite:3 ) + ) + dedicated? ( aimodules? ( dev-libs/libltdl:0 ) ) + !dedicated? ( + media-libs/libpng:0 + gtk? ( x11-libs/gtk+:3 ) + mapimg? ( media-gfx/imagemagick:= ) + modpack? ( x11-libs/gtk+:3 ) + nls? ( virtual/libintl ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) + !sdl? ( !gtk? ( x11-libs/gtk+:3 ) ) + sdl? ( + media-libs/libsdl2[video] + media-libs/sdl2-gfx + media-libs/sdl2-image[png] + media-libs/sdl2-ttf + ) + server? ( aimodules? ( sys-devel/libtool:2 ) ) + sound? ( + media-libs/libsdl2[sound] + media-libs/sdl2-mixer[vorbis] + ) + ) + readline? ( sys-libs/readline:0= ) + system-lua? ( ${LUA_DEPS} ) +" +DEPEND="${RDEPEND} + !dedicated? ( x11-base/xorg-proto ) +" +# postgres isn't yet really supported by upstream +BDEPEND=" + virtual/pkgconfig + !dedicated? ( nls? ( sys-devel/gettext ) ) +" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + if ! use dedicated && ! use server ; then + ewarn "Disabling server USE flag will make it impossible to start local" + ewarn "games, but you will still be able to join multiplayer games." + fi + + use system-lua && lua-single_pkg_setup +} + +src_prepare() { + default + + # install the .desktop in /usr/share/applications + # install the icons in /usr/share/pixmaps + sed -i \ + -e 's:^.*\(desktopfiledir = \).*:\1/usr/share/applications:' \ + -e 's:^\(icon[0-9]*dir = \)$(prefix)\(.*\):\1/usr\2:' \ + -e 's:^\(icon[0-9]*dir = \)$(datadir)\(.*\):\1/usr/share\2:' \ + client/Makefile.in \ + server/Makefile.in \ + tools/Makefile.in \ + data/icons/Makefile.in || die +} + +src_configure() { + local myclient=() mydatabase=() myeconfargs=() + + if use auth ; then + if ! use mysql && ! use sqlite ; then + einfo "No database backend chosen, defaulting" + einfo "to mysql!" + mydatabase=( mysql ) + else + use mysql && mydatabase+=( mysql ) + use sqlite && mydatabase+=( sqlite3 ) + fi + else + mydatabase=( no ) + fi + + if use dedicated ; then + myclient=( no ) + myeconfargs+=( + --enable-server + --enable-freeciv-manual=html + ) + else + if use !sdl && use !gtk && ! use qt5 ; then + einfo "No client backend given, defaulting to gtk3 client!" + myclient=( gtk3 ) + else + use sdl && myclient+=( sdl2 ) + use gtk && myclient+=( gtk3 ) + if use qt5 ; then + local -x MOCCMD=$(qt5_get_bindir)/moc + myclient+=( qt ) + fi + fi + myeconfargs+=( + $(use_enable server) + $(use_enable server freeciv-manual html ) + ) + fi + + myeconfargs+=( + --enable-aimodules="$(usex aimodules "yes" "no")" + --enable-client="${myclient[*]}" + --enable-fcdb="${mydatabase[*]}" + --enable-fcmp="$(usex modpack "gtk3" "no")" + # disabling shared libs will break aimodules USE flag + --enable-shared + --localedir=/usr/share/locale + --with-appdatadir="${EPREFIX}"/usr/share/metainfo + $(use_enable ipv6) + $(use_enable mapimg) + $(use_enable nls) + $(use_enable sound sdl-mixer) + $(use_enable system-lua sys-lua) + $(use_with readline) + ) + econf "${myeconfargs[@]}" +} + +src_install() { + default + + if use dedicated ; then + rm -rf "${ED}"/usr/share/pixmaps || die + rm -f "${ED}"/usr/share/man/man6/freeciv-{client,gtk2,gtk3,modpack,qt,sdl,xaw}* || die + else + if use server ; then + # Create and install the html manual. It can't be done for dedicated + # servers, because the 'freeciv-manual' tool is then not built. Also + # delete freeciv-manual from the GAMES_BINDIR, because it's useless. + # Note: to have it localized, it should be ran from _postinst, or + # something like that, but then it's a PITA to avoid orphan files... + # freeciv-manual only supports one ruleset argument at a time. + for RULESET in alien civ1 civ2 civ2civ3 classic experimental multiplayer sandbox + do + ./tools/freeciv-manual -r ${RULESET} || die + docinto html/rulesets/${RULESET} + dodoc ${RULESET}*.html + done + fi + if use sdl ; then + make_desktop_entry freeciv-sdl "Freeciv (SDL)" freeciv-client + else + rm -f "${ED}"/usr/share/man/man6/freeciv-sdl* || die + fi + rm -f "${ED}"/usr/share/man/man6/freeciv-xaw* || die + fi + find "${ED}" -name "freeciv-manual*" -delete || die + + rm -f "${ED}/usr/$(get_libdir)"/*.a || die + find "${ED}" -type f -name "*.la" -delete || die +} |