* [gentoo-commits] repo/gentoo:master commit in: games-strategy/freeciv/files/, games-strategy/freeciv/
@ 2020-06-14 17:00 Lars Wendler
0 siblings, 0 replies; 4+ messages in thread
From: Lars Wendler @ 2020-06-14 17:00 UTC (permalink / raw
To: gentoo-commits
commit: 16538e4c1056d7b60eeaa695a0c2139db8a65858
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 14 17:00:34 2020 +0000
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Sun Jun 14 17:00:42 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=16538e4c
games-strategy/freeciv: Fixed build against qt-5.15
Closes: https://bugs.gentoo.org/728254
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
.../freeciv/files/freeciv-2.6.2-qt515.patch | 39 ++++++++++++++++++++++
games-strategy/freeciv/freeciv-2.6.2.ebuild | 4 +++
2 files changed, 43 insertions(+)
diff --git a/games-strategy/freeciv/files/freeciv-2.6.2-qt515.patch b/games-strategy/freeciv/files/freeciv-2.6.2-qt515.patch
new file mode 100644
index 00000000000..db5e657a585
--- /dev/null
+++ b/games-strategy/freeciv/files/freeciv-2.6.2-qt515.patch
@@ -0,0 +1,39 @@
+From 87f4abf81d530b825d0af772d95fd1ea78503e64 Mon Sep 17 00:00:00 2001
+From: Marko Lindqvist <cazfi74@gmail.com>
+Date: Tue, 7 Apr 2020 13:22:14 +0300
+Subject: [PATCH] Include <QPainterPath> where needed
+
+This fixes Qt-client build on OpenEmbedded
+
+See hrm Bug #868060
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+---
+ client/gui-qt/canvas.cpp | 1 +
+ client/gui-qt/dialogs.cpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/client/gui-qt/canvas.cpp b/client/gui-qt/canvas.cpp
+index 24291bc183..00fa1b8f52 100644
+--- a/client/gui-qt/canvas.cpp
++++ b/client/gui-qt/canvas.cpp
+@@ -18,6 +18,7 @@
+ // Qt
+ #include <QFontMetrics>
+ #include <QPainter>
++#include <QPainterPath>
+
+ // qt-client
+ #include "canvas.h"
+diff --git a/client/gui-qt/dialogs.cpp b/client/gui-qt/dialogs.cpp
+index e0f9de31d4..4b3254c496 100644
+--- a/client/gui-qt/dialogs.cpp
++++ b/client/gui-qt/dialogs.cpp
+@@ -24,6 +24,7 @@
+ #include <QMessageBox>
+ #include <QMouseEvent>
+ #include <QPainter>
++#include <QPainterPath>
+ #include <QRadioButton>
+ #include <QRect>
+ #include <QSignalMapper>
diff --git a/games-strategy/freeciv/freeciv-2.6.2.ebuild b/games-strategy/freeciv/freeciv-2.6.2.ebuild
index e8166766834..2b5d791692c 100644
--- a/games-strategy/freeciv/freeciv-2.6.2.ebuild
+++ b/games-strategy/freeciv/freeciv-2.6.2.ebuild
@@ -70,6 +70,10 @@ RDEPEND="${DEPEND}"
S="${WORKDIR}/${MY_P}"
+PATCHES=(
+ "${FILESDIR}/${P}-qt515.patch" #728254
+)
+
pkg_setup() {
if use !dedicated && use !server ; then
ewarn "Disabling server USE flag will make it impossible"
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: games-strategy/freeciv/files/, games-strategy/freeciv/
@ 2023-06-30 7:18 Sam James
0 siblings, 0 replies; 4+ messages in thread
From: Sam James @ 2023-06-30 7:18 UTC (permalink / raw
To: gentoo-commits
commit: 08e5f37bdc8170cba7357f6c5d14ab7b300e572a
Author: Matt Jolly <Matt.Jolly <AT> footclan <DOT> ninja>
AuthorDate: Sun Jun 11 07:07:00 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jun 30 07:17:44 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08e5f37b
games-strategy/freeciv: add 3.1.0_beta2, 9999
Switch to meson build; it'll be the default next version anyway
and it's better than autotools (controversial opinion, I know).
Signed-off-by: Matt Jolly <Matt.Jolly <AT> footclan.ninja>
Closes: https://github.com/gentoo/gentoo/pull/31381
Signed-off-by: Sam James <sam <AT> gentoo.org>
games-strategy/freeciv/Manifest | 1 +
.../files/freeciv-3.1.0_beta2-lua-search.patch | 21 +++
games-strategy/freeciv/freeciv-3.1.0_beta2.ebuild | 198 +++++++++++++++++++++
games-strategy/freeciv/freeciv-9999.ebuild | 194 ++++++++++++++++++++
games-strategy/freeciv/metadata.xml | 11 +-
5 files changed, 423 insertions(+), 2 deletions(-)
diff --git a/games-strategy/freeciv/Manifest b/games-strategy/freeciv/Manifest
index 68270362a7df..07b520312249 100644
--- a/games-strategy/freeciv/Manifest
+++ b/games-strategy/freeciv/Manifest
@@ -1 +1,2 @@
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
diff --git a/games-strategy/freeciv/files/freeciv-3.1.0_beta2-lua-search.patch b/games-strategy/freeciv/files/freeciv-3.1.0_beta2-lua-search.patch
new file mode 100644
index 000000000000..e7c8123f9985
--- /dev/null
+++ b/games-strategy/freeciv/files/freeciv-3.1.0_beta2-lua-search.patch
@@ -0,0 +1,21 @@
+This patches meson.build to enable it to find lua in any of its
+many wonderous hiding places. It also bumps the meson version so that
+there's a ton less boilerplate to do so.
+--- a/meson.build
++++ b/meson.build
+@@ -1,5 +1,5 @@
+
+-project('freeciv', ['c', 'cpp'], meson_version: '>= 0.57.0')
++project('freeciv', ['c', 'cpp'], meson_version: '>= 0.60.0')
+
+ if not get_option('ack_experimental')
+ error('Autotools are still the only fully supported way to build freeciv.\nSet configure option "ack_experimental" to true if you really want to do experimental meson build.\n' +
+@@ -436,7 +436,7 @@ endif
+ icu_dep = dependency('icu-uc')
+
+ syslua = get_option('syslua')
+-lua_dep_tmp = dependency('lua-5.4', required:false)
++lua_dep_tmp = dependency('lua-5.4', 'lua-54', 'lua54', 'lua5.4', required:false)
+
+ if syslua != 'false' and lua_dep_tmp.found()
+ lua_inc_path = []
diff --git a/games-strategy/freeciv/freeciv-3.1.0_beta2.ebuild b/games-strategy/freeciv/freeciv-3.1.0_beta2.ebuild
new file mode 100644
index 000000000000..bf93bfe2a9ee
--- /dev/null
+++ b/games-strategy/freeciv/freeciv-3.1.0_beta2.ebuild
@@ -0,0 +1,198 @@
+# Copyright 1999-2023 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="http://www.freeciv.org/"
+
+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"
+ KEYWORDS="~amd64 ~ppc64 ~x86"
+ 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 "
+
+# 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 ) )
+ qt5? ( !qt6 )
+ qt6? ( !qt5 )
+"
+
+RDEPEND="
+ app-arch/bzip2
+ app-arch/xz-utils
+ app-arch/zstd:=
+ dev-db/sqlite:3
+ dev-libs/icu:=
+ net-misc/curl
+ sys-devel/libtool
+ sys-libs/zlib
+ !dedicated? (
+ media-libs/libpng
+ gtk3? ( x11-libs/gtk+:3 )
+ gtk4? ( gui-libs/gtk:4 )
+ mapimg? ( media-gfx/imagemagick:= )
+ nls? ( virtual/libintl )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ )
+ 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 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-lua-search.patch
+)
+
+pkg_setup() {
+ use system-lua && lua-single_pkg_setup
+}
+
+src_configure() {
+ 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)
+ )
+
+ # 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 qt5 qt
+ freeciv_enable_ui qt6 qt
+ use qt5 && emesonargs+=( -Dqtver=qt5 )
+ 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() {
+
+ 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
+ # 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.
+ 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
+ else
+ rm -f "${ED}"/usr/share/man/man6/freeciv-sdl* || die
+ 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() {
+ 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
+}
diff --git a/games-strategy/freeciv/freeciv-9999.ebuild b/games-strategy/freeciv/freeciv-9999.ebuild
new file mode 100644
index 000000000000..0b65cd815449
--- /dev/null
+++ b/games-strategy/freeciv/freeciv-9999.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2023 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="http://www.freeciv.org/"
+
+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"
+ KEYWORDS="~amd64 ~ppc64 ~x86"
+ 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 "
+
+# 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 ) )
+ qt5? ( !qt6 )
+ qt6? ( !qt5 )
+"
+
+RDEPEND="
+ app-arch/bzip2
+ app-arch/xz-utils
+ app-arch/zstd:=
+ dev-db/sqlite:3
+ dev-libs/icu:=
+ net-misc/curl
+ sys-devel/libtool
+ sys-libs/zlib
+ !dedicated? (
+ media-libs/libpng
+ gtk3? ( x11-libs/gtk+:3 )
+ gtk4? ( gui-libs/gtk:4 )
+ mapimg? ( media-gfx/imagemagick:= )
+ nls? ( virtual/libintl )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ )
+ 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_configure() {
+ 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)
+ )
+
+ # 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 qt5 qt
+ freeciv_enable_ui qt6 qt
+ use qt5 && emesonargs+=( -Dqtver=qt5 )
+ 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() {
+
+ 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
+ # 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.
+ 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
+ else
+ rm -f "${ED}"/usr/share/man/man6/freeciv-sdl* || die
+ 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() {
+ 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
+}
diff --git a/games-strategy/freeciv/metadata.xml b/games-strategy/freeciv/metadata.xml
index 35c7dccc5b31..1c8e7e53bd9e 100644
--- a/games-strategy/freeciv/metadata.xml
+++ b/games-strategy/freeciv/metadata.xml
@@ -9,19 +9,26 @@
<flag name="aimodules">Support for dynamically loadable AI
modules (server-side)</flag>
<flag name="auth">Add authentication capability via
- mysql, postgres or sqlite3</flag>
+ mysql, postgres, or sqlite3</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="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="rule-editor">Build ruleset editor</flag>
<flag name="server">Enable server support. Disabling this
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>
<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
+ of the freeciv server</flag>
</use>
<upstream>
- <remote-id type="sourceforge">freeciv</remote-id>
+ <remote-id type="github">freeciv/freeciv</remote-id>
</upstream>
</pkgmetadata>
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: games-strategy/freeciv/files/, games-strategy/freeciv/
@ 2024-02-10 21:15 Matt Jolly
0 siblings, 0 replies; 4+ messages in thread
From: Matt Jolly @ 2024-02-10 21:15 UTC (permalink / raw
To: gentoo-commits
commit: 1f5db9b248ebbb86b90e49a4bf6e15a5175d9fe3
Author: Matt Jolly <Matt.Jolly <AT> footclan <DOT> ninja>
AuthorDate: Sun Dec 17 19:21:12 2023 +0000
Commit: Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Sat Feb 10 21:15:00 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f5db9b2
games-strategy/freeciv: add 3.1.0_beta4
Closes: https://bugs.gentoo.org/913868
Closes: https://bugs.gentoo.org/909397
Signed-off-by: Matt Jolly <Matt.Jolly <AT> footclan.ninja>
Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>
games-strategy/freeciv/Manifest | 1 +
...-3.1.0_beta4-fix-manpage-install-location.patch | 34 ++++++++++++
...eciv-9999.ebuild => freeciv-3.1.0_beta4.ebuild} | 63 ++++++++++++++--------
games-strategy/freeciv/freeciv-9999.ebuild | 63 ++++++++++++++--------
games-strategy/freeciv/metadata.xml | 2 +
5 files changed, 121 insertions(+), 42 deletions(-)
diff --git a/games-strategy/freeciv/Manifest b/games-strategy/freeciv/Manifest
index 07b520312249..eb1adb9d824b 100644
--- a/games-strategy/freeciv/Manifest
+++ b/games-strategy/freeciv/Manifest
@@ -1,2 +1,3 @@
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
+DIST freeciv-3.1.0_beta4.tar.gz 127725084 BLAKE2B f92c0aa75a47c165f808c761dc8e0a7cc76cafa722ef8d968ad69f379f2945774c811407f234df7ef22327c93dc2ec7b7765d0666bda249c573f57be3d03891a SHA512 b6864730583fe6dc17818813080132d6fa44c2adf8033a827b9a209f309c69e58bda41b8263a86006042a2e5f8bf99037e9d1d813a15ff1b9d48ec69b395f139
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-9999.ebuild b/games-strategy/freeciv/freeciv-3.1.0_beta4.ebuild
similarity index 76%
copy from games-strategy/freeciv/freeciv-9999.ebuild
copy to games-strategy/freeciv/freeciv-3.1.0_beta4.ebuild
index fd6bf4d53f31..0b5e2c809016 100644
--- a/games-strategy/freeciv/freeciv-9999.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
@@ -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/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>
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: games-strategy/freeciv/files/, games-strategy/freeciv/
@ 2024-09-25 8:31 Ionen Wolkens
0 siblings, 0 replies; 4+ messages in thread
From: Ionen Wolkens @ 2024-09-25 8:31 UTC (permalink / raw
To: gentoo-commits
commit: d86d629461e6a7440aa942de7410ef1b30c07500
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 25 08:20:39 2024 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Sep 25 08:30:45 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d86d6294
games-strategy/freeciv: drop 3.1.0
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
games-strategy/freeciv/Manifest | 1 -
.../freeciv/files/freeciv-3.1.0-qt6.patch | 24 ---
...-3.1.0_beta4-fix-manpage-install-location.patch | 34 ----
games-strategy/freeciv/freeciv-3.1.0.ebuild | 216 ---------------------
4 files changed, 275 deletions(-)
diff --git a/games-strategy/freeciv/Manifest b/games-strategy/freeciv/Manifest
index f6921ed2dbf9..6ec01692617b 100644
--- a/games-strategy/freeciv/Manifest
+++ b/games-strategy/freeciv/Manifest
@@ -1,2 +1 @@
-DIST freeciv-3.1.0.tar.gz 127748997 BLAKE2B 75b3d1341d8ab09af244f07f3df5b1817571c4958a4296f37f35a105fe5a8e3d2e8d2e0dc7eb1d1aaf3d4a4c6574ba75355595134dc5a255535bc14c604bb99f SHA512 514d796a54466790a5ce0f2abb6fd8cb9c124a2f19ab33d48ce7a7f0d8d92096b54352a5d3655da852cdbd807baf4969467e04b82f687347bdff92e09f7aad86
DIST freeciv-3.1.2.tar.gz 127861796 BLAKE2B ab9c1b8ce2f54725505a21570bbadc906cde34db5e6796fd469556a6ee3bf9e0e05387a2da323f4fd18596e5c5fcb9c4448293f3fd989dfcc9251fe7626300a1 SHA512 6be7e3e3bf78d3606476a51a6c0115d3ef0fe0fa1f446496152873d624c9b7c074d7fb63fe23318a9b4ae2c2ce9acb52d19c0f08c060a64c65b1034df9521340
diff --git a/games-strategy/freeciv/files/freeciv-3.1.0-qt6.patch b/games-strategy/freeciv/files/freeciv-3.1.0-qt6.patch
deleted file mode 100644
index 9aa363a11e02..000000000000
--- a/games-strategy/freeciv/files/freeciv-3.1.0-qt6.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 8da1d4c91dff53db6d903730855ed6a02252e53d Mon Sep 17 00:00:00 2001
-From: Marko Lindqvist <cazfi74@gmail.com>
-Date: Wed, 17 Apr 2024 07:02:20 +0300
-Subject: [PATCH] Qt: Add Q_OBJECT for fc_shortcut_popup
-
-See RM #462
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
----
- client/gui-qt/shortcuts.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/client/gui-qt/shortcuts.h b/client/gui-qt/shortcuts.h
-index 7574ce4f8e..9d02d1c3f6 100644
---- a/client/gui-qt/shortcuts.h
-+++ b/client/gui-qt/shortcuts.h
-@@ -155,6 +155,7 @@ class line_edit : public QLineEdit
- **************************************************************************/
- class fc_shortcut_popup : public QDialog
- {
-+ Q_OBJECT
- public:
- fc_shortcut_popup(QWidget *parent);
- void run(fc_shortcut *s);
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
deleted file mode 100644
index 744d46749741..000000000000
--- a/games-strategy/freeciv/files/freeciv-3.1.0_beta4-fix-manpage-install-location.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-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.1.0.ebuild b/games-strategy/freeciv/freeciv-3.1.0.ebuild
deleted file mode 100644
index 17f914cff915..000000000000
--- a/games-strategy/freeciv/freeciv-3.1.0.ebuild
+++ /dev/null
@@ -1,216 +0,0 @@
-# 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 +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 )
-"
-
-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 )
- qt5? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtwidgets:5
- )
- 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
-}
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.1.0_beta4-fix-manpage-install-location.patch
- "${FILESDIR}"/${P}-qt6.patch # from git master
-)
-
-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 qt5 qt
- freeciv_enable_ui qt6 qt
- use qt5 && emesonargs+=( -Dqtver=qt5 )
- 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() {
- 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
-}
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-09-25 8:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-30 7:18 [gentoo-commits] repo/gentoo:master commit in: games-strategy/freeciv/files/, games-strategy/freeciv/ Sam James
-- strict thread matches above, loose matches on Subject: below --
2024-09-25 8:31 Ionen Wolkens
2024-02-10 21:15 Matt Jolly
2020-06-14 17:00 Lars Wendler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox