commit:     a7f9ae9ac54ecfedaec26c90e0360ed6b98e47cd
Author:     Matt Jolly <Matt.Jolly <AT> footclan <DOT> ninja>
AuthorDate: Tue Mar 29 10:47:42 2022 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Thu Apr 14 21:34:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7f9ae9a

games-strategy/freeciv: add 3.0.0

Signed-off-by: Matt Jolly <Matt.Jolly <AT> footclan.ninja>
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-strategy/freeciv/Manifest             |   1 +
 games-strategy/freeciv/freeciv-3.0.0.ebuild | 192 ++++++++++++++++++++++++++++
 2 files changed, 193 insertions(+)

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
+}

Reply via email to