public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "James Le Cuirot" <chewi@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: games-strategy/s25rttr/files/, games-strategy/s25rttr/
Date: Sat, 11 Sep 2021 08:38:24 +0000 (UTC)	[thread overview]
Message-ID: <1631349256.0b52435579ce5e9941a9f2a6102674bb7ce1b0ad.chewi@gentoo> (raw)

commit:     0b52435579ce5e9941a9f2a6102674bb7ce1b0ad
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 11 08:34:16 2021 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sat Sep 11 08:34:16 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b524355

games-strategy/s25rttr: Bump to 0.9.1, EAPI 8

Closes: https://bugs.gentoo.org/750512
Closes: https://bugs.gentoo.org/778587
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 games-strategy/s25rttr/Manifest                    |   1 +
 .../s25rttr/files/s25rttr-0.9.1-cxx-std.patch      |  30 ++++++
 .../files/s25rttr-0.9.1-libsamplerate.patch        |  37 +++++++
 games-strategy/s25rttr/s25rttr-0.9.1.ebuild        | 114 +++++++++++++++++++++
 4 files changed, 182 insertions(+)

diff --git a/games-strategy/s25rttr/Manifest b/games-strategy/s25rttr/Manifest
index 246f9787269..d80aad01563 100644
--- a/games-strategy/s25rttr/Manifest
+++ b/games-strategy/s25rttr/Manifest
@@ -1,4 +1,5 @@
 DIST s25client-f0b97b120140c96bbeacae9c22633f899931db69.tar.gz 20184306 BLAKE2B 4204a62e0a57a614c5ae1a947741f8f92fd7cd75b203467716483baa6f68a7c608033f403337e66b00bc8c2851b03f04c25bf84cda124548cfe09a110478fc54 SHA512 c4f0b59a68a0d5ece57f06f51e7a977be0b41ae85ff57821b317c2bb822a2533a192e1dfaa1a738c6738e65505a70ec34b3e7b22a8bd6effc95a4279d5eb19da
+DIST s25client_src_v0.9.1.tar.gz 31042856 BLAKE2B 296e61467f5ba64f2a833e3f6627844db3757604d9b239d18f3a2b42afc7f46df09ff3b9e8d8a26865e5220f8996b6e78fd4d5fe6252510bbdf8fc238de40bfc SHA512 b7478f76e0246c52a219d9ef5293d56fe682dc87bcd1269d1647417d86c5174632bf05f1fe09e91a9bf9d6738f58e1cac51abdc54df47c00d228687767e19510
 DIST s25rttr-kaguya-38ca7e1d894c138e454bbe5c89048bdd5091545a.tar.gz 156126 BLAKE2B 05eeccc890549b8dd3fa004c61b73be65f1fcf20867b7f4a46d0963f80b4a76fca611915ea72a401bdc49a81997d3d4500c5f5378a7cd55cbbfab6bcf647261a SHA512 470414d41cb6bad4e428858114f3c91139abfb1bf3ae02bb322d51bfabba8c0aad6796e183ccbb57624ed3484fea3f463636561ac8a359b6be7b90cfd5c0696a
 DIST s25rttr-languages-6906b7ce9cb64242ba406eda34a404fa8eb1e33d.tar.gz 698512 BLAKE2B 82bc98077ed18622083894a63044194f599375c93aa745e330ad8ba390e14d9829ebb7c8e62141758f41dff2b72d3afbe2a5b6ebb584c3293c244e6f0c88ff89 SHA512 47de2791a4d4707fa17344de8fff8a15dd4436dd6e8c75adbd95273739cf5022e39a1024edee228eb27294e4f1f0b2a91110a1249b3d4fe64641cace051e4544
 DIST s25rttr-libendian-dd2c11498f679247530b6b7cf7bd5964f539ddfd.tar.gz 17008 BLAKE2B 98486acff6e56581b5dd06bba9892da739bf1947151f036ade31354c340b6dd79e1b77cd42475bc38225515392062c4e5dbf9ab28349356368db0ca90a81ee65 SHA512 1827edf6470f20a4b6a1b991a31af411e2cc5ceae36a65d54dbd6927dcf46949c4ad729ac982242da9a8ec9d141531d6c99792af761370b2252872bdbb7da8f0

diff --git a/games-strategy/s25rttr/files/s25rttr-0.9.1-cxx-std.patch b/games-strategy/s25rttr/files/s25rttr-0.9.1-cxx-std.patch
new file mode 100644
index 00000000000..cb5ecdf2822
--- /dev/null
+++ b/games-strategy/s25rttr/files/s25rttr-0.9.1-cxx-std.patch
@@ -0,0 +1,30 @@
+From 5db419d044149ab3760c1588b44536febab5d657 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 11 Sep 2021 08:41:57 +0100
+Subject: [PATCH] Set C++ standard (to C++14) using CMake
+
+Not adding the -std flag broke builds with GCC 11 until the code was
+fixed up recently. This should prevent this sort of thing from
+happening in future. It also ensures that the compiler is actually new
+enough.
+---
+ CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8ab991c97..b55c545a2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,6 +22,9 @@ if(DEFINED CMAKE_TOOLCHAIN_FILE)
+     message(STATUS "Used Toolchain definition file '${CMAKE_TOOLCHAIN_FILE}'")
+ endif()
+ 
++set(CMAKE_CXX_STANDARD 14)
++set(CXX_STANDARD_REQUIRED ON)
++
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" "${CMAKE_SOURCE_DIR}/external/libutil/cmake")
+ if(CMAKE_VERSION VERSION_LESS 3.14)
+     list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/external/libutil/cmake/cmake_3.14")
+-- 
+2.32.0
+

diff --git a/games-strategy/s25rttr/files/s25rttr-0.9.1-libsamplerate.patch b/games-strategy/s25rttr/files/s25rttr-0.9.1-libsamplerate.patch
new file mode 100644
index 00000000000..41d6d90e5fd
--- /dev/null
+++ b/games-strategy/s25rttr/files/s25rttr-0.9.1-libsamplerate.patch
@@ -0,0 +1,37 @@
+From 16cb06c99f78a21b1be2bc681c1f1d85a6caddca Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Fri, 10 Sep 2021 22:59:51 +0100
+Subject: [PATCH] Fix bad channel count handling with libsamplerate 0.2.0
+
+Since libsndfile/libsamplerate@26d92c369394bcd0b0cea488890edce1a0d757d5,
+initialising libsamplerate with 0 channels or less causes a SIGABRT. We
+therefore need to handle this in the C++ wrapper classes.
+---
+ libs/libsamplerate/include/samplerate.hpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/libs/libsamplerate/include/samplerate.hpp b/libs/libsamplerate/include/samplerate.hpp
+index d0af34317..23e243d91 100644
+--- a/libs/libsamplerate/include/samplerate.hpp
++++ b/libs/libsamplerate/include/samplerate.hpp
+@@ -152,6 +152,8 @@ class State : public detail::StateBase
+ {
+     static SRC_STATE* createOrThrow(Converter converter, int channels)
+     {
++        if (channels <= 0)
++            throw std::runtime_error("Channel count must be >= 1.");
+         int error;
+         auto* state = src_new(static_cast<int>(converter), channels, &error);
+         if(!state)
+@@ -174,6 +176,8 @@ class StateCallback : public detail::StateBase
+ {
+     static SRC_STATE* createOrThrow(Converter converter, int channels, src_callback_t func, void* data)
+     {
++        if (channels <= 0)
++            throw std::runtime_error("Channel count must be >= 1.");
+         int error;
+         auto* state = src_callback_new(func, static_cast<int>(converter), channels, &error, data);
+         if(!state)
+-- 
+2.32.0
+

diff --git a/games-strategy/s25rttr/s25rttr-0.9.1.ebuild b/games-strategy/s25rttr/s25rttr-0.9.1.ebuild
new file mode 100644
index 00000000000..4aa4156d566
--- /dev/null
+++ b/games-strategy/s25rttr/s25rttr-0.9.1.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-3 )
+
+inherit desktop flag-o-matic lua-single toolchain-funcs xdg cmake
+
+MY_PN="s25client"
+DESCRIPTION="Open source remake of The Settlers II: Gold Edition (needs original data files)"
+HOMEPAGE="https://www.siedler25.org/"
+SRC_URI="https://github.com/Return-To-The-Roots/${MY_PN}/releases/download/v${PV}/${MY_PN}_src_v${PV}.tar.gz"
+LICENSE="GPL-2+ GPL-3 Boost-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="${LUA_DEPS}
+	app-arch/bzip2
+	>=dev-libs/boost-1.73:0=[nls]
+	>=media-libs/libsamplerate-0.1.9
+	>=media-libs/libsdl2-2.0.10-r2[opengl,sound,video]
+	media-libs/libsndfile
+	media-libs/sdl2-mixer[vorbis,wav]
+	net-libs/miniupnpc
+	virtual/opengl
+"
+
+DEPEND="
+	${RDEPEND}
+	test? ( >=sys-devel/clang-5 )
+"
+
+BDEPEND="
+	sys-devel/gettext
+	virtual/pkgconfig
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-0.9.0_pre20200723-cmake_lua_version.patch
+	"${FILESDIR}"/${PN}-0.9.1-libsamplerate.patch
+	"${FILESDIR}"/${PN}-0.9.1-cxx-std.patch
+)
+
+S="${WORKDIR}/${MY_PN}_v${PV}"
+
+# Build type is checked but blank is valid.
+CMAKE_BUILD_TYPE=
+
+src_prepare() {
+	cmake_src_prepare
+	rm -v external/{kaguya,libutil}/cmake/FindLua.cmake || die
+}
+
+src_configure() {
+	if [[ -f revision.txt ]]; then
+		local RTTR_REVISION="$(< revision.txt)"
+	elif [[ -n ${COMMIT} ]]; then
+		local RTTR_REVISION="${COMMIT}"
+	else
+		die "Could not determine RTTR_REVISION."
+	fi
+
+	local mycmakeargs=(
+		-DBUILD_TESTING=$(usex test)
+		-DCCACHE_PROGRAM=OFF
+		-DCMAKE_DISABLE_FIND_PACKAGE_ClangFormat=ON
+		-DCMAKE_SKIP_RPATH=ON
+		-DLUA_VERSION=$(lua_get_version)
+		-DRTTR_BUILD_UPDATER=OFF
+		-DRTTR_ENABLE_OPTIMIZATIONS=OFF
+		-DRTTR_ENABLE_SANITIZERS=$(usex test)
+		-DRTTR_ENABLE_WERROR=OFF
+		-DRTTR_INCLUDE_DEVTOOLS=OFF
+		-DRTTR_LIBDIR="$(get_libdir)"
+		-DRTTR_REVISION="${RTTR_REVISION}"
+		-DRTTR_USE_SYSTEM_LIBS=ON
+		-DRTTR_VERSION="${PV##*_pre}" # Tests expect a date for snapshots.
+	)
+
+	if use test && tc-is-gcc; then
+		# Work around libasan and libsandbox both wanting to be first.
+		append-ldflags -static-libasan
+	fi
+
+	cmake_src_configure
+}
+
+src_test() {
+	SDL_AUDIODRIVER=dummy \
+	SDL_VIDEODRIVER=dummy \
+	USER=$(whoami) \
+	cmake_src_test
+}
+
+src_install() {
+	cmake_src_install
+
+	doicon -s 64 tools/release/debian/s25rttr.png
+	make_desktop_entry "${MY_PN}" "Return to the Roots"
+}
+
+pkg_postinst() {
+	xdg_pkg_postinst
+
+	if ! has_version -r games-strategy/settlers-2-gold-data; then
+		elog "Install games-strategy/settlers-2-gold-data or manually copy the DATA"
+		elog "and GFX directories from original data files into"
+		elog "${EPREFIX}/usr/share/${PN}/S2."
+	fi
+}


             reply	other threads:[~2021-09-11  8:38 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-11  8:38 James Le Cuirot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-01-23  2:40 [gentoo-commits] repo/gentoo:master commit in: games-strategy/s25rttr/files/, games-strategy/s25rttr/ Sam James
2022-08-11  7:37 Ionen Wolkens
2021-09-11 17:44 James Le Cuirot
2021-08-19  2:00 Sam James
2020-07-26 21:19 James Le Cuirot
2020-04-18 20:47 James Le Cuirot
2018-07-01  0:03 Andreas Sturmlechner
2016-02-16  6:47 Alfredo Tupone
2016-01-10 20:37 David Seifert
2015-10-06 22:53 Michael Sterrett

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=1631349256.0b52435579ce5e9941a9f2a6102674bb7ce1b0ad.chewi@gentoo \
    --to=chewi@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