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 <[email protected]>
+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>

Reply via email to