diff options
Diffstat (limited to 'games-strategy')
-rw-r--r-- | games-strategy/Manifest.gz | bin | 7596 -> 7597 bytes | |||
-rw-r--r-- | games-strategy/freeciv/Manifest | 4 | ||||
-rw-r--r-- | games-strategy/freeciv/freeciv-9999.ebuild | 107 | ||||
-rw-r--r-- | games-strategy/freeciv/metadata.xml | 9 |
4 files changed, 89 insertions, 31 deletions
diff --git a/games-strategy/Manifest.gz b/games-strategy/Manifest.gz Binary files differindex 1cac10ece75f..d3206a919953 100644 --- a/games-strategy/Manifest.gz +++ b/games-strategy/Manifest.gz 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 |