summaryrefslogtreecommitdiff
path: root/games-strategy
diff options
context:
space:
mode:
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/Manifest.gzbin7596 -> 7597 bytes
-rw-r--r--games-strategy/freeciv/Manifest4
-rw-r--r--games-strategy/freeciv/freeciv-9999.ebuild107
-rw-r--r--games-strategy/freeciv/metadata.xml9
4 files changed, 89 insertions, 31 deletions
diff --git a/games-strategy/Manifest.gz b/games-strategy/Manifest.gz
index 1cac10ece75f..d3206a919953 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 9c8e548f3f3b..e5aa886dfa8b 100644
--- a/games-strategy/freeciv/Manifest
+++ b/games-strategy/freeciv/Manifest
@@ -2,5 +2,5 @@ DIST freeciv-3.1.3.tar.gz 127913563 BLAKE2B d6ab211ccda9f6795dbcf395f3a1b06372ce
DIST freeciv-3.1.4.tar.gz 128914453 BLAKE2B 60a371692e74434e8f8a0311b3c4732cb4a0199ea426f06eaac87d0f5982239f9bec069441f5897921907edafe6e5ab4492dd525b606eaeb3a4de1976d6c5766 SHA512 1a94861e4298e6fa81347a5625ae5d9fea1f2ee0195265a8b53a1c2255d1b02010140d3f48fc3474ae4aa188db16f12b84b7a112d37e2ed7bd474f250a50a97a
EBUILD freeciv-3.1.3.ebuild 5594 BLAKE2B cbead8cd0102dbe0a8b2c9b9420cc4522fb4be9a443e3be6a44f687736732a78cff819ce09f632dc9a8121acdf057e02a441d74dbcea95b53aa5023a5d5eb542 SHA512 92692ccf65060a35bd43c9c9dc75a898a6add6e1ec515031f15db434943590b38f295c8d7e37a5cf69a193c33322f7ab9a224ad08022ec9ff26f36b416f53e7f
EBUILD freeciv-3.1.4.ebuild 5595 BLAKE2B 531b36f83234685ee87b727263453a28430bc43a55051df80f3bf6430a7477df9c379ff3a2f8f508ede4e9ebf9623fdd8ca396cabc9ff7020d1ed02e94efd538 SHA512 982e58edace7e8a2d4c6e88f690fff9604c24dd8caa4ac706c82ae21f3bf60e719e69eeedb079618bb7ece5f4c393d525fea468ac4d098e54747d2420e4d4dab
-EBUILD freeciv-9999.ebuild 5595 BLAKE2B 389553406aee118dc4db3d67d0522bcbfb694c7d4f1e442c8b51177a259ca79318e3e548d804aa03788ddffe56a28a2d568e8ff627a45c6261671150d10d688b SHA512 4dc598da354ef4434509ac8bb07d7040badb5fd1b7e00b488cb542870165769e2acc209569b705d35aeca584a36c407ce2e5f5235acee3b5d5037db3b9d2be13
-MISC metadata.xml 1401 BLAKE2B 8a5cdd4a55f0d86680bacd30511fa7392e46d3c1c345b8e11803f1f3615ef37350e7ea032cf0afa8c2542658d886bbadee36c2df406818f6fbd0a5c89eafb001 SHA512 86cce7a0b52b5bb73873f664daa570c9209395ca6c5cf965d4d717e87ceca8e71a39296cf79284d5e55b919baf1d7a36d4e773cbac9b70dbe66a3e213033436e
+EBUILD freeciv-9999.ebuild 6906 BLAKE2B 0a2feca2d903f34887b52e9292243216171f185e62358619ce4f7fcd83d07e2da5cb58dcfd42a48d1b240fb87833ac124cfcc75aec8b7856ba0d53746e918613 SHA512 f923c9aefd3dca8fd474bccfc3e59830544d2e297a43da8b8c7d8dc5584662de1c1de7a35c09ccde591941b9fb632c5826a5ec169956a8a78abb23cc5bbd2793
+MISC metadata.xml 1842 BLAKE2B f5bed7aaa8c461a57b0d2b1bc9efdb652455b22107888f38cfe5971fd96ec1bd92204bb4c05025186293e3f77c268abff56c2278edddf8cd5a201864b74fddd4 SHA512 02f737e0963734cf8d64302796d76c7c79b1f65d71e3f2c7867f0a4dea2456db338cb65d5c1cb23cef67e97b2de96944cfb51ff35d9f22f27483d8b6b2aefe25
diff --git a/games-strategy/freeciv/freeciv-9999.ebuild b/games-strategy/freeciv/freeciv-9999.ebuild
index e61df8f6bac0..35366b1f4070 100644
--- a/games-strategy/freeciv/freeciv-9999.ebuild
+++ b/games-strategy/freeciv/freeciv-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -25,12 +25,16 @@ 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"
+IUSE="authentication dedicated gtk3 gtk4 json mapimg mariadb modpack nls odbc qt6"
+IUSE+=" readline rule-editor sdl +sdl3 +server +sound sqlite +system-lua web-server"
REQUIRED_USE="
+ authentication? ( || ( mariadb odbc sqlite ) )
+ !dedicated? ( || ( gtk3 gtk4 qt6 sdl sdl3 ) )
+ dedicated? ( !gtk3 !gtk4 !mapimg !nls !qt6 !sdl !sdl3 !sound )
+ modpack? ( sqlite )
+ sound? ( || ( sdl3 sdl ) )
system-lua? ( ${LUA_REQUIRED_USE} )
- !dedicated? ( || ( gtk3 gtk4 qt6 sdl ) )
- dedicated? ( !gtk3 !gtk4 !mapimg !nls !qt6 !sdl !sound )
"
RDEPEND="
@@ -38,7 +42,6 @@ RDEPEND="
app-arch/xz-utils
app-arch/zstd:=
dev-build/libtool
- dev-db/sqlite:3
dev-libs/icu:=
net-misc/curl
sys-libs/zlib
@@ -55,13 +58,31 @@ RDEPEND="
media-libs/sdl2-image[png]
media-libs/sdl2-ttf
)
+ sdl3? (
+ media-libs/libsdl3
+ media-libs/sdl3-ttf
+ media-libs/sdl3-image[png]
+ )
sound? (
- media-libs/libsdl2[sound]
- media-libs/sdl2-mixer[vorbis]
+ sdl? (
+ media-libs/libsdl2[sound]
+ media-libs/sdl2-mixer[vorbis]
+ )
+ sdl3? (
+ media-libs/libsdl3
+ media-libs/sdl3-mixer[vorbis]
+ )
)
)
json? ( dev-libs/jansson:= )
readline? ( sys-libs/readline:= )
+ mariadb? ( || (
+ dev-db/mariadb:*
+ dev-db/mariadb-connector-c
+ )
+ )
+ odbc? ( dev-db/unixODBC )
+ sqlite? ( dev-db/sqlite:3 )
system-lua? (
${LUA_DEPS}
)
@@ -91,9 +112,6 @@ 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
@@ -106,20 +124,21 @@ src_configure() {
# 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}}
+ 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 ${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 sdl3 sdl3 cli
freeciv_enable_ui gtk3 gtk3.22 gtk3
freeciv_enable_ui gtk4
freeciv_enable_ui qt6 qt
@@ -132,23 +151,54 @@ src_configure() {
# 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')
+ -Dclients=$(IFS=, ; echo "${myclient[*]}")
+ -Dfcmp=$(IFS=, ; echo "${myfcmp[*]}")
)
+ if use authentication; then
+ local myfcdb=()
+ use sqlite && myfcdb+=( sqlite3 )
+ use mariadb && myfcdb+=( mariadb )
+ use odbc && myfcdb+=( odbc )
+ emesonargs+=(
+ -Dfcdb=$(IFS=, ; echo "${myfcdb[*]}")
+ )
+ else
+ # If we don't want authentication
+ emesonargs+=( -Dfcdb="" )
+ fi
+
+ if use sound; then
+ # We can only select one, prefer the newer SDL3
+ if use sdl3 ; then
+ emesonargs+=( -Daudio=sdl3 )
+ elif use sdl ; then
+ emesonargs+=( -Daudio=sdl2 )
+ fi
+ else
+ # We don't want any audio support; probably a dedicated server
+ emesonargs+=( -Daudio=none )
+ fi
+
# 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
+ local tools=( manual ) # We always want this
+ # ruleup is the rule-updater; if you're building the editor you probably want this too
+ # default-enabled upstream
+ use rule-editor && tools+=( ruledit ruleup )
+ emesonargs+=(
+ -Dtools=$(IFS=, ; echo ${tools[*]})
+ )
+
# 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)
)
@@ -163,9 +213,10 @@ src_install() {
# 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
+ for RULESET in alien civ1 civ2 civ2civ3 classic goldkeep multiplayer sandbox
do
- $(find "${WORKDIR}" -type d -maxdepth 1 -mindepth 1 -iname '*-build')/freeciv-manual -r ${RULESET} || die
+ $(find "${WORKDIR}" -type d -maxdepth 1 -mindepth 1 -iname '*-build')/freeciv-manual -r ${RULESET} ||
+ die "Unable to generate HTML output for ${RULESET}"
docinto html/rulesets/${RULESET}
dodoc ${RULESET}*.html
done
@@ -191,11 +242,13 @@ src_install() {
pkg_postinst() {
xdg_pkg_postinst
- if [[ -z ${REPLACING_VERSIONS} ]]; then
+ if [[ -z ${REPLACING_VERSIONS} ]] && use authentication; 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 "use another supported backend. Additional configuration is required,"
+ einfo "to do so, even if the relevant USE was selected at build time."
+ einfo "please consult the documentation for instructions on configuring"
+ einfo "freeciv for a particular backend:"
einfo "https://github.com/freeciv/freeciv/blob/main/doc/README.fcdb"
fi
}
diff --git a/games-strategy/freeciv/metadata.xml b/games-strategy/freeciv/metadata.xml
index beb9240f3ebf..1118befabb95 100644
--- a/games-strategy/freeciv/metadata.xml
+++ b/games-strategy/freeciv/metadata.xml
@@ -10,19 +10,24 @@
<name>Matt Joly</name>
</maintainer>
<use>
+ <flag name="authentication">Enable authentication support, useful for dedicated servers</flag>
<flag name="gtk3">Build the gtk3 client</flag>
<flag name="gtk4">Build the gtk4 client</flag>
<flag name="json">Add support for JSON via
<pkg>dev-libs/jansson</pkg></flag>
+ <flag name="mariadb">Support <pkg>dev-db/mariadb</pkg> as an authentication backend</flag>
<flag name="mapimg">Additional mag image toolkit
via <pkg>media-gfx/imagemagick</pkg></flag>
<flag name="modpack">Build the freeciv-modpack-program
to download/install mods</flag>
+ <flag name="odbc">Support ODBC as an authentication backend</flag>
<flag name="rule-editor">Build ruleset editor</flag>
<flag name="server">Enable server support. Disabling this
- will also make it impossible to start local games.</flag>
+ will also make it impossible to start local games</flag>
<flag name="sound">Add support for sound provided by
- <pkg>media-libs/sdl-mixer</pkg></flag>
+ <pkg>media-libs/sdl2-mixer</pkg> or <pkg>media-libs/sdl3-mixer</pkg></flag>
+ <flag name="sdl3">Build the SDL3 client. This will also use <pkg>media-libs/sdl3-mixer</pkg>
+ for audio in the SDL2 client, if enabled</flag>
<flag name="system-lua">Use <pkg>dev-lang/lua</pkg> instead of
the bundled liblua</flag>
<flag name="web-server">Build the freeciv-web server in place