summaryrefslogtreecommitdiff
path: root/games-strategy
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-11-12 03:02:41 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-11-12 03:02:41 +0000
commit51be8f45b17e3da3ac48eca6b16b703bb58fda76 (patch)
treebc6f18bc4913276cff3f8c2f2ec357f9026c602c /games-strategy
parent0ab98a20dbfb8c64ab93e02280abb4ff18652ae0 (diff)
gentoo auto-resync : 12:11:2024 - 03:02:41
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/Manifest.gzbin7580 -> 7585 bytes
-rw-r--r--games-strategy/freeciv/Manifest2
-rw-r--r--games-strategy/freeciv/freeciv-3.1.3.ebuild201
3 files changed, 203 insertions, 0 deletions
diff --git a/games-strategy/Manifest.gz b/games-strategy/Manifest.gz
index 9b0b2cfede7d..316a7a83df67 100644
--- a/games-strategy/Manifest.gz
+++ b/games-strategy/Manifest.gz
Binary files differ
diff --git a/games-strategy/freeciv/Manifest b/games-strategy/freeciv/Manifest
index eaa559162814..d43be2b97658 100644
--- a/games-strategy/freeciv/Manifest
+++ b/games-strategy/freeciv/Manifest
@@ -1,4 +1,6 @@
DIST freeciv-3.1.2.tar.gz 127861796 BLAKE2B ab9c1b8ce2f54725505a21570bbadc906cde34db5e6796fd469556a6ee3bf9e0e05387a2da323f4fd18596e5c5fcb9c4448293f3fd989dfcc9251fe7626300a1 SHA512 6be7e3e3bf78d3606476a51a6c0115d3ef0fe0fa1f446496152873d624c9b7c074d7fb63fe23318a9b4ae2c2ce9acb52d19c0f08c060a64c65b1034df9521340
+DIST freeciv-3.1.3.tar.gz 127913563 BLAKE2B d6ab211ccda9f6795dbcf395f3a1b06372ce2c5147e92398c4d1eceddd3346ef9debddded79ce3b85209cf25323f262a99f56204ca58b660dccd7333d7611214 SHA512 c8528d1576d810820de3934ced2b6d34eefa9a848117916f7234ba5447aad52df71aba6bedfdd1f42e62e8fe7477a0a04a799f93c54343a3ba886747face4eeb
EBUILD freeciv-3.1.2.ebuild 5595 BLAKE2B 389553406aee118dc4db3d67d0522bcbfb694c7d4f1e442c8b51177a259ca79318e3e548d804aa03788ddffe56a28a2d568e8ff627a45c6261671150d10d688b SHA512 4dc598da354ef4434509ac8bb07d7040badb5fd1b7e00b488cb542870165769e2acc209569b705d35aeca584a36c407ce2e5f5235acee3b5d5037db3b9d2be13
+EBUILD freeciv-3.1.3.ebuild 5595 BLAKE2B 389553406aee118dc4db3d67d0522bcbfb694c7d4f1e442c8b51177a259ca79318e3e548d804aa03788ddffe56a28a2d568e8ff627a45c6261671150d10d688b SHA512 4dc598da354ef4434509ac8bb07d7040badb5fd1b7e00b488cb542870165769e2acc209569b705d35aeca584a36c407ce2e5f5235acee3b5d5037db3b9d2be13
EBUILD freeciv-9999.ebuild 5595 BLAKE2B 389553406aee118dc4db3d67d0522bcbfb694c7d4f1e442c8b51177a259ca79318e3e548d804aa03788ddffe56a28a2d568e8ff627a45c6261671150d10d688b SHA512 4dc598da354ef4434509ac8bb07d7040badb5fd1b7e00b488cb542870165769e2acc209569b705d35aeca584a36c407ce2e5f5235acee3b5d5037db3b9d2be13
MISC metadata.xml 1298 BLAKE2B c744a6fa5ab5345aeafa4bea7edc493beee1ded63cc2d9d26fe7e883dd81d4de6cec288a8ceb49567f2bdfe2fcd647ab9231055429244c14d8b05978dc13ad7a SHA512 767b482284030363aeaf521b13511fe10f69db940b411fe637a4f9d00324172b3b3e1426e74fa575cb414eb1a038fca87ab473237804699879975448f9ca0f1f
diff --git a/games-strategy/freeciv/freeciv-3.1.3.ebuild b/games-strategy/freeciv/freeciv-3.1.3.ebuild
new file mode 100644
index 000000000000..e61df8f6bac0
--- /dev/null
+++ b/games-strategy/freeciv/freeciv-3.1.3.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-4 )
+
+inherit desktop lua-single meson xdg
+
+DESCRIPTION="Multiplayer strategy game (Civilization Clone)"
+HOMEPAGE="https://www.freeciv.org/ https://github.com/freeciv/freeciv/"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/freeciv/freeciv/"
+else
+ MY_PV="R${PV//./_}"
+ SRC_URI="https://github.com/freeciv/freeciv/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
+ if [[ ${PV} != *_beta* ]]; then
+ KEYWORDS="~amd64 ~ppc64 ~x86"
+ fi
+ MY_P="${PN}-${MY_PV}"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="dedicated gtk3 gtk4 json mapimg modpack mysql nls +qt6 readline rule-editor sdl +server +sound +system-lua web-server"
+
+REQUIRED_USE="
+ system-lua? ( ${LUA_REQUIRED_USE} )
+ !dedicated? ( || ( gtk3 gtk4 qt6 sdl ) )
+ dedicated? ( !gtk3 !gtk4 !mapimg !nls !qt6 !sdl !sound )
+"
+
+RDEPEND="
+ app-arch/bzip2
+ app-arch/xz-utils
+ app-arch/zstd:=
+ dev-build/libtool
+ dev-db/sqlite:3
+ dev-libs/icu:=
+ net-misc/curl
+ sys-libs/zlib
+ !dedicated? (
+ media-libs/libpng
+ gtk3? ( x11-libs/gtk+:3 )
+ gtk4? ( gui-libs/gtk:4 )
+ mapimg? ( media-gfx/imagemagick:= )
+ nls? ( virtual/libintl )
+ qt6? ( dev-qt/qtbase:6[gui,widgets] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/sdl2-gfx
+ media-libs/sdl2-image[png]
+ media-libs/sdl2-ttf
+ )
+ sound? (
+ media-libs/libsdl2[sound]
+ media-libs/sdl2-mixer[vorbis]
+ )
+ )
+ json? ( dev-libs/jansson:= )
+ readline? ( sys-libs/readline:= )
+ system-lua? (
+ ${LUA_DEPS}
+ )
+"
+DEPEND="${RDEPEND}
+ !dedicated? ( x11-base/xorg-proto )
+"
+# Calls gzip during build
+BDEPEND="
+ app-arch/gzip
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+"
+
+pkg_setup() {
+ use system-lua && lua-single_pkg_setup
+}
+
+src_prepare() {
+ # Upstream's meson.build is not very friendly to our needs
+ sed -i -e "s:doc/freeciv:doc/${PF}:" meson.build || die
+ sed -i -e "/custom_target('gzip_ChangeLog/,+6d" meson.build || die
+ default
+}
+
+src_configure() {
+ # Docs here: https://github.com/freeciv/freeciv/blob/main/doc/INSTALL.meson
+ local myclient=() emesonargs=() myfcmp=()
+
+ # Upstream considers meson "experimental" until 3.2.0 according to their roadmap
+ emesonargs+=( -Dack_experimental=true )
+
+ if use dedicated || use server ; then
+ emesonargs+=( -Dserver=enabled )
+ elif use web-server; then
+ emesonargs+=( -Dserver=freeciv-web )
+ else
+ emesonargs+=( -Dserver=disabled )
+ fi
+
+ # Select any client backends that we want enabled; dedicated server shouldn't build a UI
+ # for sanity we'll build the modpack bin with the same UIs as the client.
+ # 'fcmp' = freeciv modpack (client) - gtk3, qt, cli, gtk4
+ freeciv_enable_ui() {
+ local flag=$1
+ local client_name=${2:-${flag}}
+ local fcmp_name=${3:-${client_name}}
+
+ if use ${flag} ; then
+ myclient+=( ${client_name} )
+ use modpack && myfcmp+=( ${fcmp_name} )
+ fi
+ }
+
+ if ! use dedicated ; then
+ # there's no SDL modpack backend; rather than incidentally pull in GTK3 (as is default)
+ # let's explicitly set the backend to CLI
+ freeciv_enable_ui sdl sdl2 cli
+ freeciv_enable_ui gtk3 gtk3.22 gtk3
+ freeciv_enable_ui gtk4
+ freeciv_enable_ui qt6 qt
+ use qt6 && emesonargs+=( -Dqtver=qt6 )
+ else
+ if use modpack ; then
+ myfcmp+=( cli )
+ fi
+ fi
+
+ # the client and fpmc arrays are now populated (or not for dedicated); let's add them to emesonargs
+ emesonargs+=(
+ -Dclients=$(echo ${myclient[*]} | sed 's/ /,/g')
+ -Dfcmp=$(echo ${myfcmp[*]} | sed 's/ /,/g')
+ )
+
+ # If we're building a live ebuild, we want to include the git revision in the version string
+ if [[ ${PV} == 9999 ]] ; then
+ emesonargs+=( -Dgitrev=true )
+ fi
+
+ # Anything that can be trivially set by meson_use goes here
+ emesonargs+=(
+ $(meson_use json json-protocol)
+ $(meson_use mapimg mwand)
+ $(meson_use nls)
+ $(meson_use readline)
+ $(meson_use rule-editor ruledit)
+ $(meson_use sound audio)
+ $(meson_use system-lua syslua)
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+
+ meson_src_install
+ # Create and install the html manual and then cleanup the tool because it's useless.
+ # TODO: for proper localisation this should be run during postinst but
+ # that would require a lot of work to avoid orphan files.
+ # freeciv-manual only supports one ruleset argument at a time.
+ elog "Generating html manual..."
+ for RULESET in alien civ1 civ2 civ2civ3 classic experimental multiplayer sandbox
+ do
+ $(find "${WORKDIR}" -type d -maxdepth 1 -mindepth 1 -iname '*-build')/freeciv-manual -r ${RULESET} || die
+ docinto html/rulesets/${RULESET}
+ dodoc ${RULESET}*.html
+ done
+
+ find "${ED}" -name "freeciv-manual*" -delete || die "Failed to remove freeciv-manual"
+
+ if use dedicated ; then
+ elog "Tidying up dedicated server installation..."
+ find "${ED}"/usr/share/man/man6/ \
+ -not \( -name 'freeciv.6' -o -name 'freeciv-ruledit.6' \
+ -o -name 'freeciv-ruleup.6' -o -name 'freeciv-server.6' \) -mindepth 1 -delete || die
+ else
+ # sdl client needs some special handling
+ if use sdl ; then
+ make_desktop_entry freeciv-sdl "Freeciv (SDL)" freeciv-client
+ else
+ rm "${ED}"/usr/share/man/man6/freeciv-sdl2.6 || die
+ fi
+ fi
+
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ einfo "There are a number of supported authentication backends."
+ einfo "sqlite3 is the default, however dedicated servers may wish to"
+ einfo "use another supported backend; please consult the documentation"
+ einfo "to configure freeciv for a particular backend:"
+ einfo "https://github.com/freeciv/freeciv/blob/main/doc/README.fcdb"
+ fi
+}