public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Conrad Kostecki" <conikost@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: games-strategy/freeciv/
Date: Sun, 25 Aug 2024 23:54:12 +0000 (UTC)	[thread overview]
Message-ID: <1724630024.6ef52d1d2ef87fe68c8cd83bcbacd3d67c845ff1.conikost@gentoo> (raw)

commit:     6ef52d1d2ef87fe68c8cd83bcbacd3d67c845ff1
Author:     Michael Mair-Keimberger <mmk <AT> levelnine <DOT> at>
AuthorDate: Sun Aug 11 08:12:15 2024 +0000
Commit:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Sun Aug 25 23:53:44 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6ef52d1d

games-strategy/freeciv: add 3.1.2

Signed-off-by: Michael Mair-Keimberger <mmk <AT> levelnine.at>
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>

 games-strategy/freeciv/Manifest             |   1 +
 games-strategy/freeciv/freeciv-3.1.2.ebuild | 211 ++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/games-strategy/freeciv/Manifest b/games-strategy/freeciv/Manifest
index 9a0035fd6a40..f6921ed2dbf9 100644
--- a/games-strategy/freeciv/Manifest
+++ b/games-strategy/freeciv/Manifest
@@ -1 +1,2 @@
 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/freeciv-3.1.2.ebuild b/games-strategy/freeciv/freeciv-3.1.2.ebuild
new file mode 100644
index 000000000000..eca61092a9e5
--- /dev/null
+++ b/games-strategy/freeciv/freeciv-3.1.2.ebuild
@@ -0,0 +1,211 @@
+# 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
+}
+
+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
+}


             reply	other threads:[~2024-08-25 23:54 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-25 23:54 Conrad Kostecki [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-04-16  6:46 [gentoo-commits] repo/gentoo:master commit in: games-strategy/freeciv/ Matt Jolly
2025-04-16  5:52 Matt Jolly
2025-04-16  5:52 Matt Jolly
2025-04-10  7:16 Matt Jolly
2025-04-03 15:33 Sam James
2025-04-03  5:58 Matt Jolly
2025-04-03  5:58 Matt Jolly
2025-04-03  5:58 Matt Jolly
2024-11-11  8:53 Matt Jolly
2024-09-25  8:31 Ionen Wolkens
2024-09-25  8:31 Ionen Wolkens
2024-08-25 23:54 Conrad Kostecki
2024-04-01  4:15 Matt Jolly
2024-04-01  3:59 Matt Jolly
2024-04-01  3:59 Matt Jolly
2024-04-01  3:59 Matt Jolly
2024-02-10 21:15 Matt Jolly
2024-02-10 21:15 Matt Jolly
2024-02-10 21:15 Matt Jolly
2023-07-05 20:41 Conrad Kostecki
2022-04-15  6:32 Sam James
2022-04-15  5:53 Sam James
2022-04-15  5:53 Sam James
2022-04-14 21:34 James Le Cuirot
2022-04-14 21:34 James Le Cuirot
2022-02-03  5:46 Stefan Strogin
2021-09-12 20:20 Ionen Wolkens
2021-08-01 18:27 Sam James
2021-06-05 17:48 Marek Szuba
2021-05-15 16:25 Andreas Sturmlechner
2021-04-19  7:58 Andreas Sturmlechner
2021-04-16 10:25 David Seifert
2020-11-24  0:59 Andreas Sturmlechner
2020-11-21 21:59 Sergei Trofimovich
2020-03-08 21:43 James Le Cuirot
2020-02-19 13:24 Lars Wendler
2020-02-19 12:49 Lars Wendler
2020-02-19 12:49 Lars Wendler
2019-12-28 11:53 Lars Wendler
2019-02-24 20:42 Brian Evans
2019-02-14 23:06 Andreas Sturmlechner
2018-09-15  8:45 Lars Wendler
2018-09-14  7:06 Lars Wendler
2018-07-21  4:43 Lars Wendler
2018-05-16 19:20 Lars Wendler
2018-05-16 19:12 Lars Wendler
2018-04-03 14:19 Lars Wendler
2018-04-03 14:19 Lars Wendler
2018-02-04  6:06 Lars Wendler
2017-12-03 13:32 Lars Wendler
2017-12-03 13:32 Lars Wendler
2017-08-22 13:18 Lars Wendler
2017-08-22 13:18 Lars Wendler
2017-08-15 10:03 Lars Wendler
2017-05-14 10:05 Lars Wendler
2017-05-14 10:05 Lars Wendler
2017-05-14 10:05 Lars Wendler
2016-11-27 14:29 Lars Wendler
2016-11-26 21:18 Lars Wendler
2016-09-19 13:17 Lars Wendler
2016-09-19 13:17 Lars Wendler
2016-05-24 20:44 Michael Sterrett
2016-03-16  3:58 Michael Sterrett
2016-03-14 22:12 Agostino Sarubbo
2016-02-16  1:38 Michael Sterrett
2016-02-10  3:24 Michael Sterrett
2016-01-28 15:21 Michael Sterrett
2015-10-08  6:19 Michael Sterrett
2015-09-25 14:13 Agostino Sarubbo
2015-09-25 10:42 Agostino Sarubbo
2015-08-22  8:56 Lars Wendler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1724630024.6ef52d1d2ef87fe68c8cd83bcbacd3d67c845ff1.conikost@gentoo \
    --to=conikost@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox