diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-08-26 12:00:09 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-08-26 12:00:09 +0100 |
commit | f300354de9fe5d997850456a9e1f400193e6544f (patch) | |
tree | 402fd6a7727db790bf57f683894052e8791d389e /games-strategy/freeciv | |
parent | 5c42677148c717eb9f4673237db807f74740b4e9 (diff) |
gentoo auto-resync : 26:08:2024 - 12:00:09
Diffstat (limited to 'games-strategy/freeciv')
-rw-r--r-- | games-strategy/freeciv/Manifest | 4 | ||||
-rw-r--r-- | games-strategy/freeciv/freeciv-3.1.2.ebuild | 211 | ||||
-rw-r--r-- | games-strategy/freeciv/freeciv-9999.ebuild | 4 |
3 files changed, 214 insertions, 5 deletions
diff --git a/games-strategy/freeciv/Manifest b/games-strategy/freeciv/Manifest index eac69ff21435..5b1dcaf446a0 100644 --- a/games-strategy/freeciv/Manifest +++ b/games-strategy/freeciv/Manifest @@ -1,6 +1,8 @@ AUX freeciv-3.1.0-qt6.patch 775 BLAKE2B 225fb73659a5a11e1b77c04157856b52a996f1694948152650c879cf1f16d053c30c4ddb28a50125e3e875352840e27407bf1e3f257c33371c19ad408d7efb8c SHA512 e53a347ab9aad973d6283c4057783ae431b0fadc9eb618c7160b2d5457c17fbea9bc25cb286258be1c6aba34ea4848726025c6812b4570e67f7fa1b19ff2a3f8 AUX freeciv-3.1.0_beta4-fix-manpage-install-location.patch 882 BLAKE2B 7cbe60cf4753af0331541786679b80d8d14a95a8fb99d57b1c17c0e9690001aac2b8bc205a9225c755ca5c3ffc577af992a7bd6aaf2f37d6aa37be6d5b8460ed SHA512 e2f652a05368a885531e47421dfde993fac54850092db07834399d91c393c51e35f6662c9cd79d55bd470dbc81f211a2b393cd96768a6874c3b7b680de2ac366 DIST freeciv-3.1.0.tar.gz 127748997 BLAKE2B 75b3d1341d8ab09af244f07f3df5b1817571c4958a4296f37f35a105fe5a8e3d2e8d2e0dc7eb1d1aaf3d4a4c6574ba75355595134dc5a255535bc14c604bb99f SHA512 514d796a54466790a5ce0f2abb6fd8cb9c124a2f19ab33d48ce7a7f0d8d92096b54352a5d3655da852cdbd807baf4969467e04b82f687347bdff92e09f7aad86 +DIST freeciv-3.1.2.tar.gz 127861796 BLAKE2B ab9c1b8ce2f54725505a21570bbadc906cde34db5e6796fd469556a6ee3bf9e0e05387a2da323f4fd18596e5c5fcb9c4448293f3fd989dfcc9251fe7626300a1 SHA512 6be7e3e3bf78d3606476a51a6c0115d3ef0fe0fa1f446496152873d624c9b7c074d7fb63fe23318a9b4ae2c2ce9acb52d19c0f08c060a64c65b1034df9521340 EBUILD freeciv-3.1.0.ebuild 5968 BLAKE2B f66374068aaf4b25559814d228febd6a0df42312aa663f87e0c9f82528e110c25d4cbfac3c5489f224efb4e4fcf3aa912523c75ceca1103d2612982e78f2cf09 SHA512 59be1c2a75afa5ff50ec6d870dc59b2768a9df29547b938647cf301f0696692f1468bac2464a06bc5c39c1ef0cf87f6b4829744b5477ffd2205876fb3cdaf032 -EBUILD freeciv-9999.ebuild 5920 BLAKE2B a097b6afc92267c174981f2efca3c2525700f17d8267b412d66ec7c0ebd4b0a1888ba2f9d3d0ae38badde732ae884d4927c3e1a188d0ede052a02b85aa501199 SHA512 842200f491bbba8a9721e2eba8192f45d8d6a559000782c98a8bb16d5b0fd16ba5ee9a465be6974835c7ed153f3768a3bb681a502ee7bed8c0659daa49d5ae68 +EBUILD freeciv-3.1.2.ebuild 5839 BLAKE2B 7d617f5e18d2b07038aa63b4a016d5079f85ef849a25c589b775f279f9237d2ebb4f192fa368006e8c696474c359eb49059f7a971a4428a32dd552984be633cd SHA512 9f63045103c5041f7aea462ba8e79b37810a68b897c79a39f2079374c40012def29c75a579b1460e3b5bf65fc8e0049db19fb0491bf0b1e5426c417ac3a67acd +EBUILD freeciv-9999.ebuild 5839 BLAKE2B 7d617f5e18d2b07038aa63b4a016d5079f85ef849a25c589b775f279f9237d2ebb4f192fa368006e8c696474c359eb49059f7a971a4428a32dd552984be633cd SHA512 9f63045103c5041f7aea462ba8e79b37810a68b897c79a39f2079374c40012def29c75a579b1460e3b5bf65fc8e0049db19fb0491bf0b1e5426c417ac3a67acd MISC metadata.xml 1298 BLAKE2B c744a6fa5ab5345aeafa4bea7edc493beee1ded63cc2d9d26fe7e883dd81d4de6cec288a8ceb49567f2bdfe2fcd647ab9231055429244c14d8b05978dc13ad7a SHA512 767b482284030363aeaf521b13511fe10f69db940b411fe637a4f9d00324172b3b3e1426e74fa575cb414eb1a038fca87ab473237804699879975448f9ca0f1f 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 +} diff --git a/games-strategy/freeciv/freeciv-9999.ebuild b/games-strategy/freeciv/freeciv-9999.ebuild index 0b5e2c809016..eca61092a9e5 100644 --- a/games-strategy/freeciv/freeciv-9999.ebuild +++ b/games-strategy/freeciv/freeciv-9999.ebuild @@ -90,10 +90,6 @@ 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 |