summaryrefslogtreecommitdiff
path: root/games-strategy
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-02-10 23:34:33 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-02-10 23:34:33 +0000
commit0771aa27d30f102abe2c5733a138ffe570da4d15 (patch)
tree1ce3f24ab882caa90bf65381e4f0794872fc7d93 /games-strategy
parent0bb42730e8fc9c8e571f12e3189c6c6f8d532c24 (diff)
gentoo auto-resync : 10:02:2024 - 23:34:33
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/Manifest.gzbin8090 -> 8090 bytes
-rw-r--r--games-strategy/freeciv/Manifest13
-rw-r--r--games-strategy/freeciv/files/freeciv-3.1.0_beta4-fix-manpage-install-location.patch34
-rw-r--r--games-strategy/freeciv/freeciv-3.0.10.ebuild (renamed from games-strategy/freeciv/freeciv-3.0.1-r1.ebuild)82
-rw-r--r--games-strategy/freeciv/freeciv-3.1.0_beta4.ebuild (renamed from games-strategy/freeciv/freeciv-3.1.0_beta2.ebuild)65
-rw-r--r--games-strategy/freeciv/freeciv-9999.ebuild63
-rw-r--r--games-strategy/freeciv/metadata.xml2
7 files changed, 166 insertions, 93 deletions
diff --git a/games-strategy/Manifest.gz b/games-strategy/Manifest.gz
index a49d527f0ece..1e6e15af8b80 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 21e3c3d670a2..edac82e2522f 100644
--- a/games-strategy/freeciv/Manifest
+++ b/games-strategy/freeciv/Manifest
@@ -1,7 +1,8 @@
AUX freeciv-3.1.0_beta2-lua-search.patch 871 BLAKE2B a3ac0311ccce20edee9ab7882a1e16a1fbd03ffe2e41c9df26c21c17e4a64eb5b1222107e5c4868cc83e8590772d8aed67ba4ba6ad94b8178d8de06925c4b782 SHA512 f69823866dac9b4ec3301a2457c88d0b4f2fc56002a11997ba36bcf72ee05059522fe0c36186371c18f5488f5ef1ba15666f064f98fa6eeb8a4fccc63254085c
-DIST freeciv-3.0.1.tar.xz 33528292 BLAKE2B e19cae8a02aa4b9afc2895560aa7a8d6135a63a0e757c348a75e72522448a026874f8f0120448b38ca2fee0ecc42dd04d80345d9877554168ad07ca2a20e5dcc SHA512 0f28aa7eb6adc2c4fe2af31265965ec30b4ea4f12121c4240ca896070f4ea574db58f02240e74822b9d498e112bcdb7036bb69f3d0b33cea5fec724e9e47da34
-DIST freeciv-3.1.0_beta2.tar.gz 127527752 BLAKE2B 457e01787e2dccb4862de5519a4ea51bcfe240c0948e2cd97b09ae6d4e2c27d4196329326cd7c0489ce1e37dbc548f4f31fcd7c5f57b15b53b49dd6e54fef032 SHA512 2b15134454bf7ca885287985bb6d17a31f6cbfdec87fa8e6fd7fce000a2bfc1fa888dd7a2e244df4460d08011e87876800190a9fa8ea825789eec0e434348920
-EBUILD freeciv-3.0.1-r1.ebuild 5073 BLAKE2B c70c781608ae688d3e04709b2a782444539e04facbe3ea4b90221db9c978522888c059aeaa965d6aecd8d82be45d980a06afc6b047a6e64eb426c08de9db2c0c SHA512 1e43bcd26a5fb0f221f6baa945419360e591f38a593cb75a25a225237da0454ea9c191a136f75086d336aff0a5aa066f10285dd6abde87c7dac9e4040257bdde
-EBUILD freeciv-3.1.0_beta2.ebuild 5377 BLAKE2B d043ce6a77d50e5007be756f9f2a484da0047ac91cc0ff22079df47276be8c1dadeaa8051be78d7542e72392e17d998b275b7f0df42699ac5185a6c8d89cd3ef SHA512 59fb420cf9f9c6e1c0da6b11c5ae4756bd9f706535c888d1155ad64aa028088a73ad2a8d38328069b4181c8e7701f93027a8e29f301e11c2bbad5a9910200e43
-EBUILD freeciv-9999.ebuild 5327 BLAKE2B ff160d656bc8852e68174273b7f7d41bef34531ae83f07866e4c9893be9b01636c417acf68abd20456b251a1eccae3f288962178cc7a6c74a626019e393801c6 SHA512 0c1d7a287e3ee8c69d0d2d8b52093f0368e80c6056484565678c41348912fee702a7ada48127732c1afb8b0701230e4ebb9cfc18f51309504b5443e59345267c
-MISC metadata.xml 1368 BLAKE2B 06553a96669f8660232e00168f4fe6b5254281fbcb6b69ae7eca4f7f6837580a7814790ce93c2ffacda2d5b2c9c21b5681badcdd25a12828bb21879225983382 SHA512 75abd1ffcffabadc3a989d7cf0b0c9e968e291495fa0108041921ab4ce7a421e7718e0edfb5276f271529155cf6a389becc4119e41f4f8002fb05af315487fb7
+AUX freeciv-3.1.0_beta4-fix-manpage-install-location.patch 882 BLAKE2B 7cbe60cf4753af0331541786679b80d8d14a95a8fb99d57b1c17c0e9690001aac2b8bc205a9225c755ca5c3ffc577af992a7bd6aaf2f37d6aa37be6d5b8460ed SHA512 e2f652a05368a885531e47421dfde993fac54850092db07834399d91c393c51e35f6662c9cd79d55bd470dbc81f211a2b393cd96768a6874c3b7b680de2ac366
+DIST freeciv-3.0.10.tar.xz 43433812 BLAKE2B c529b2039e38070fef4758f4d316cfe952dcce4d4a773e70da22f2a3948f0506be493b4af20529d80749b47954bdd87a7aca8efb72c5502fefb2c103977f4e12 SHA512 4082e94deeda8d9b90f04137d6e7dfd39ff7232225a910f47519a464db553891e42289c1d7738f9ee0d9a16db143669bf8c4c5ce9492a4455ccd99906c956192
+DIST freeciv-3.1.0_beta4.tar.gz 127725084 BLAKE2B f92c0aa75a47c165f808c761dc8e0a7cc76cafa722ef8d968ad69f379f2945774c811407f234df7ef22327c93dc2ec7b7765d0666bda249c573f57be3d03891a SHA512 b6864730583fe6dc17818813080132d6fa44c2adf8033a827b9a209f309c69e58bda41b8263a86006042a2e5f8bf99037e9d1d813a15ff1b9d48ec69b395f139
+EBUILD freeciv-3.0.10.ebuild 4969 BLAKE2B 4dd1aea15cbb2c636cc9d231e4ef50005a289f9f204aeff6fb3ac892f5f132e03ad72de00040285cb98f0cc65c85b515183f4de54ac1ae36a3737dc19f2372f3 SHA512 0d02f019e777bc8d1838e2bb0ae638e9e7d9ff6e34c0b332ea4b4156fe65bd9e71b518c3a210259e94e07a6a3c6c6a66c7a4ebbac0faebe55ad8483919af22db
+EBUILD freeciv-3.1.0_beta4.ebuild 5920 BLAKE2B a097b6afc92267c174981f2efca3c2525700f17d8267b412d66ec7c0ebd4b0a1888ba2f9d3d0ae38badde732ae884d4927c3e1a188d0ede052a02b85aa501199 SHA512 842200f491bbba8a9721e2eba8192f45d8d6a559000782c98a8bb16d5b0fd16ba5ee9a465be6974835c7ed153f3768a3bb681a502ee7bed8c0659daa49d5ae68
+EBUILD freeciv-9999.ebuild 5920 BLAKE2B a097b6afc92267c174981f2efca3c2525700f17d8267b412d66ec7c0ebd4b0a1888ba2f9d3d0ae38badde732ae884d4927c3e1a188d0ede052a02b85aa501199 SHA512 842200f491bbba8a9721e2eba8192f45d8d6a559000782c98a8bb16d5b0fd16ba5ee9a465be6974835c7ed153f3768a3bb681a502ee7bed8c0659daa49d5ae68
+MISC metadata.xml 1483 BLAKE2B 461882e444ee7c79299eb07a6d3ae55e48c2fa6589cc63fe9b6b0695a9c636c29a59f9da0e4bb904327b8ab31e12d67fcbd154a87d7b48c5aacf0ce89974e37d SHA512 24ea301ae8a7bc4aa54bb2d453406a76c220b5de51d6921e1fa71aa47e95a2194c1081c78c5daa5430e8ac2e18da2c21511c64a438c929c996cf12f17c705dae
diff --git a/games-strategy/freeciv/files/freeciv-3.1.0_beta4-fix-manpage-install-location.patch b/games-strategy/freeciv/files/freeciv-3.1.0_beta4-fix-manpage-install-location.patch
new file mode 100644
index 000000000000..744d46749741
--- /dev/null
+++ b/games-strategy/freeciv/files/freeciv-3.1.0_beta4-fix-manpage-install-location.patch
@@ -0,0 +1,34 @@
+From 4518545bd37c6665db51ccd2da7c15bcceb1c0f8 Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Sat, 10 Feb 2024 17:57:38 +1000
+Subject: [PATCH] When using meson we should still install 'man 6' pages to
+ ${mandir}/man6
+
+---
+ meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 099e526..5ec0e79 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2892,14 +2892,14 @@ endforeach
+ foreach manp : man_pages
+ install_data(
+ join_paths(b_root, manp + '.6'),
+- install_dir : get_option('mandir')
++ install_dir : join_paths(get_option('mandir'), 'man6')
+ )
+ endforeach
+
+ foreach manp : man_links
+ install_data(
+ join_paths('doc/man/', manp + '.6'),
+- install_dir : get_option('mandir')
++ install_dir : join_paths(get_option('mandir'), 'man6')
+ )
+ endforeach
+
+--
+2.43.0
+
diff --git a/games-strategy/freeciv/freeciv-3.0.1-r1.ebuild b/games-strategy/freeciv/freeciv-3.0.10.ebuild
index cd0640190fc3..624a5bb44ac6 100644
--- a/games-strategy/freeciv/freeciv-3.0.1-r1.ebuild
+++ b/games-strategy/freeciv/freeciv-3.0.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -21,23 +21,29 @@ fi
LICENSE="GPL-2+"
SLOT="0"
-IUSE="aimodules auth dedicated +gtk ipv6 mapimg modpack mysql nls qt5 readline sdl +server +sound sqlite +system-lua"
+IUSE="aimodules auth dedicated +gtk mapimg modpack mysql nls qt5 readline sdl +server +sound sqlite +system-lua"
-REQUIRED_USE="system-lua? ( ${LUA_REQUIRED_USE} )"
+REQUIRED_USE="
+ system-lua? ( ${LUA_REQUIRED_USE} )
+ dedicated? ( !gtk !mapimg !modpack !nls !qt5 !sdl !sound )
+ !dedicated? ( || ( gtk qt5 sdl ) )
+"
# postgres isn't yet really supported by upstream
RDEPEND="
app-arch/bzip2
app-arch/xz-utils
- net-misc/curl
dev-libs/icu:=
+ net-misc/curl
sys-libs/zlib
auth? (
+ app-arch/zstd:=
+ dev-libs/openssl:=
!mysql? ( ( !sqlite? ( dev-db/mysql-connector-c:= ) ) )
mysql? ( dev-db/mysql-connector-c:= )
sqlite? ( dev-db/sqlite:3 )
)
- dedicated? ( aimodules? ( dev-libs/libltdl ) )
+ aimodules? ( dev-libs/libltdl )
!dedicated? (
media-libs/libpng
gtk? ( x11-libs/gtk+:3 )
@@ -86,21 +92,6 @@ pkg_setup() {
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=()
@@ -129,7 +120,8 @@ src_configure() {
myclient=( gtk3 )
else
use sdl && myclient+=( sdl2 )
- use gtk && myclient+=( gtk3 )
+ # Since all gtk3 in gentoo is >= 3.22 we can use the better client
+ use gtk && myclient+=( gtk3.22 )
if use qt5 ; then
local -x MOCCMD=$(qt5_get_bindir)/moc
myclient+=( qt )
@@ -146,11 +138,11 @@ src_configure() {
--enable-client="${myclient[*]}"
--enable-fcdb="${mydatabase[*]}"
--enable-fcmp="$(usex modpack "gtk3" "no")"
+ --enable-ipv6
# 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)
@@ -163,33 +155,39 @@ src_configure() {
src_install() {
default
+ 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.
+ elog "Generating html manual..."
+ 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
+
+ find "${ED}" -name "freeciv-manual*" -delete || die
+
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
+ 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
- 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
+ # sdl client needs some special handling
if use sdl ; then
make_desktop_entry freeciv-sdl "Freeciv (SDL)" freeciv-client
else
- rm -f "${ED}"/usr/share/man/man6/freeciv-sdl* || die
+ rm "${ED}"/usr/share/man/man6/freeciv-sdl2.6 || die
fi
- rm -f "${ED}"/usr/share/man/man6/freeciv-xaw* || die
+
+ rm -f "${ED}"/usr/share/man/man6/freeciv-xaw.6 || 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
}
diff --git a/games-strategy/freeciv/freeciv-3.1.0_beta2.ebuild b/games-strategy/freeciv/freeciv-3.1.0_beta4.ebuild
index b2c29565edf8..0b5e2c809016 100644
--- a/games-strategy/freeciv/freeciv-3.1.0_beta2.ebuild
+++ b/games-strategy/freeciv/freeciv-3.1.0_beta4.ebuild
@@ -8,7 +8,7 @@ LUA_COMPAT=( lua5-4 )
inherit desktop lua-single meson xdg
DESCRIPTION="Multiplayer strategy game (Civilization Clone)"
-HOMEPAGE="https://www.freeciv.org/"
+HOMEPAGE="https://www.freeciv.org/ https://github.com/freeciv/freeciv/"
if [[ ${PV} == 9999 ]] ; then
inherit git-r3
@@ -16,19 +16,22 @@ if [[ ${PV} == 9999 ]] ; then
else
MY_PV="R${PV//./_}"
SRC_URI="https://github.com/freeciv/freeciv/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~ppc64 ~x86"
+ 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 +qt5 qt6 readline rule-editor sdl +sound +system-lua web-server"
+IUSE="dedicated gtk3 gtk4 json mapimg modpack mysql nls +qt5 qt6 readline rule-editor sdl +server +sound +system-lua web-server"
# I'm pretty sure that you can't build both qt flavours at the same time
REQUIRED_USE="
system-lua? ( ${LUA_REQUIRED_USE} )
!dedicated? ( || ( gtk3 gtk4 qt5 qt6 sdl ) )
+ dedicated? ( !gtk3 !gtk4 !mapimg !nls !qt5 !qt6 !sdl !sound )
qt5? ( !qt6 )
qt6? ( !qt5 )
"
@@ -37,10 +40,10 @@ RDEPEND="
app-arch/bzip2
app-arch/xz-utils
app-arch/zstd:=
+ dev-build/libtool
dev-db/sqlite:3
dev-libs/icu:=
net-misc/curl
- dev-build/libtool
sys-libs/zlib
!dedicated? (
media-libs/libpng
@@ -83,25 +86,35 @@ BDEPEND="
nls? ( sys-devel/gettext )
"
+pkg_setup() {
+ use system-lua && lua-single_pkg_setup
+}
+
PATCHES=(
- "${FILESDIR}"/${P}-lua-search.patch
+ "${FILESDIR}"/${PN}-3.1.0_beta4-fix-manpage-install-location.patch
)
-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 )
- # meson build drops the ability to _not_ build a server in favour
- # of optionally replacing the server binary the freeciv-web backend
- emesonargs+=(
- $(meson_use web-server freeciv-web)
- )
+ 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.
@@ -160,31 +173,35 @@ src_configure() {
src_install() {
- 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
- fi
+ 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
- if use sdl ; then
- make_desktop_entry freeciv-sdl "Freeciv (SDL)" freeciv-client
+
+ 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
- rm -f "${ED}"/usr/share/man/man6/freeciv-sdl* || die
+ # 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
- rm -f "${ED}"/usr/share/man/man6/freeciv-xaw* || die
- find "${ED}" -name "freeciv-manual*" -delete || die
- rm -f "${ED}/usr/$(get_libdir)"/*.a || die
- find "${ED}" -type f -name "*.la" -delete || die
- meson_src_install
}
pkg_postinst() {
diff --git a/games-strategy/freeciv/freeciv-9999.ebuild b/games-strategy/freeciv/freeciv-9999.ebuild
index fd6bf4d53f31..0b5e2c809016 100644
--- a/games-strategy/freeciv/freeciv-9999.ebuild
+++ b/games-strategy/freeciv/freeciv-9999.ebuild
@@ -8,7 +8,7 @@ LUA_COMPAT=( lua5-4 )
inherit desktop lua-single meson xdg
DESCRIPTION="Multiplayer strategy game (Civilization Clone)"
-HOMEPAGE="https://www.freeciv.org/"
+HOMEPAGE="https://www.freeciv.org/ https://github.com/freeciv/freeciv/"
if [[ ${PV} == 9999 ]] ; then
inherit git-r3
@@ -16,19 +16,22 @@ if [[ ${PV} == 9999 ]] ; then
else
MY_PV="R${PV//./_}"
SRC_URI="https://github.com/freeciv/freeciv/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~ppc64 ~x86"
+ 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 +qt5 qt6 readline rule-editor sdl +sound +system-lua web-server"
+IUSE="dedicated gtk3 gtk4 json mapimg modpack mysql nls +qt5 qt6 readline rule-editor sdl +server +sound +system-lua web-server"
# I'm pretty sure that you can't build both qt flavours at the same time
REQUIRED_USE="
system-lua? ( ${LUA_REQUIRED_USE} )
!dedicated? ( || ( gtk3 gtk4 qt5 qt6 sdl ) )
+ dedicated? ( !gtk3 !gtk4 !mapimg !nls !qt5 !qt6 !sdl !sound )
qt5? ( !qt6 )
qt6? ( !qt5 )
"
@@ -37,10 +40,10 @@ RDEPEND="
app-arch/bzip2
app-arch/xz-utils
app-arch/zstd:=
+ dev-build/libtool
dev-db/sqlite:3
dev-libs/icu:=
net-misc/curl
- dev-build/libtool
sys-libs/zlib
!dedicated? (
media-libs/libpng
@@ -87,17 +90,31 @@ pkg_setup() {
use system-lua && lua-single_pkg_setup
}
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.1.0_beta4-fix-manpage-install-location.patch
+)
+
+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 )
- # meson build drops the ability to _not_ build a server in favour
- # of optionally replacing the server binary the freeciv-web backend
- emesonargs+=(
- $(meson_use web-server freeciv-web)
- )
+ 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.
@@ -156,31 +173,35 @@ src_configure() {
src_install() {
- 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
- fi
+ 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
- if use sdl ; then
- make_desktop_entry freeciv-sdl "Freeciv (SDL)" freeciv-client
+
+ 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
- rm -f "${ED}"/usr/share/man/man6/freeciv-sdl* || die
+ # 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
- rm -f "${ED}"/usr/share/man/man6/freeciv-xaw* || die
- find "${ED}" -name "freeciv-manual*" -delete || die
- rm -f "${ED}/usr/$(get_libdir)"/*.a || die
- find "${ED}" -type f -name "*.la" -delete || die
- meson_src_install
}
pkg_postinst() {
diff --git a/games-strategy/freeciv/metadata.xml b/games-strategy/freeciv/metadata.xml
index 1c8e7e53bd9e..2131b4947957 100644
--- a/games-strategy/freeciv/metadata.xml
+++ b/games-strategy/freeciv/metadata.xml
@@ -29,6 +29,8 @@
of the freeciv server</flag>
</use>
<upstream>
+ <bugs-to>https://osdn.net/projects/freeciv/ticket/</bugs-to>
<remote-id type="github">freeciv/freeciv</remote-id>
+ <remote-id type="sourceforge">freeciv</remote-id>
</upstream>
</pkgmetadata>