diff options
author | Matthew Thode <prometheanfire@gentoo.org> | 2021-12-31 14:08:33 -0600 |
---|---|---|
committer | Matthew Thode <prometheanfire@gentoo.org> | 2021-12-31 14:08:47 -0600 |
commit | 3b8e554a80837cc26ddb9f6915d03664f569911f (patch) | |
tree | 4e6021fdc906a13bb4405325f6092fe844a77c68 /dev-libs/leatherman | |
parent | dev-ruby/nokogiri: Keyword 1.12.5 alpha, #815898 (diff) | |
download | gentoo-3b8e554a80837cc26ddb9f6915d03664f569911f.tar.gz gentoo-3b8e554a80837cc26ddb9f6915d03664f569911f.tar.bz2 gentoo-3b8e554a80837cc26ddb9f6915d03664f569911f.zip |
dev-libs/leatherman: fix builds with >=glibc-2.33
fixes upstream bug LTH-172
Closes: https://bugs.gentoo.org/830346
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Matthew Thode <prometheanfire@gentoo.org>
Diffstat (limited to 'dev-libs/leatherman')
-rw-r--r-- | dev-libs/leatherman/files/leatherman-1.12.6-SIGSTKSZ.patch | 45 | ||||
-rw-r--r-- | dev-libs/leatherman/leatherman-1.12.6-r2.ebuild | 62 |
2 files changed, 107 insertions, 0 deletions
diff --git a/dev-libs/leatherman/files/leatherman-1.12.6-SIGSTKSZ.patch b/dev-libs/leatherman/files/leatherman-1.12.6-SIGSTKSZ.patch new file mode 100644 index 000000000000..e6c7349e814b --- /dev/null +++ b/dev-libs/leatherman/files/leatherman-1.12.6-SIGSTKSZ.patch @@ -0,0 +1,45 @@ +diff -Naur a/src/Catch-1.10.0/single_include/catch.hpp b/src/Catch-1.10.0/single_include/catch.hpp +--- a/src/Catch-1.10.0/single_include/catch.hpp 2021-07-05 07:30:43.000000000 -0500 ++++ b/src/Catch-1.10.0/single_include/catch.hpp 2021-12-17 01:34:41.000000000 -0600 +@@ -6447,6 +6447,14 @@ + + # else // CATCH_CONFIG_POSIX_SIGNALS is defined + ++# if defined(_SC_SIGSTKSZ_SOURCE) || defined(_GNU_SOURCE) ++// on glibc > 2.33 this is no longer constant, see ++// https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=85e84fe53699fe9e392edffa993612ce08b2954a;hb=HEAD ++static constexpr std::size_t sigStackSize = 32768; ++# else ++static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ; ++# endif ++ + #include <signal.h> + + namespace Catch { +@@ -6470,7 +6478,7 @@ + static bool isSet; + static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)]; + static stack_t oldSigStack; +- static char altStackMem[SIGSTKSZ]; ++ static char altStackMem[sigStackSize]; + + static void handleSignal( int sig ) { + std::string name = "<unknown signal>"; +@@ -6490,7 +6498,7 @@ + isSet = true; + stack_t sigStack; + sigStack.ss_sp = altStackMem; +- sigStack.ss_size = SIGSTKSZ; ++ sigStack.ss_size = sigStackSize; + sigStack.ss_flags = 0; + sigaltstack(&sigStack, &oldSigStack); + struct sigaction sa = { 0 }; +@@ -6521,7 +6529,7 @@ + bool FatalConditionHandler::isSet = false; + struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {}; + stack_t FatalConditionHandler::oldSigStack = {}; +- char FatalConditionHandler::altStackMem[SIGSTKSZ] = {}; ++ char FatalConditionHandler::altStackMem[sigStackSize] = {}; + + } // namespace Catch + diff --git a/dev-libs/leatherman/leatherman-1.12.6-r2.ebuild b/dev-libs/leatherman/leatherman-1.12.6-r2.ebuild new file mode 100644 index 000000000000..3a12d519ae1c --- /dev/null +++ b/dev-libs/leatherman/leatherman-1.12.6-r2.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit cmake + +DESCRIPTION="A C++ toolkit" +HOMEPAGE="https://github.com/puppetlabs/leatherman" +SRC_URI="https://github.com/puppetlabs/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86" +IUSE="debug static-libs test" +#RESTRICT="!test? ( test )" +RESTRICT="test" # restricted til we don't need the shared_nowide patch + +RDEPEND=">=dev-libs/boost-1.73:=[nls] + net-misc/curl" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/portage-sandbox-test-fix.patch + "${FILESDIR}"/1.12.2-shared_nowide.patch +) + +src_prepare() { + sed -i 's/\-Werror\ //g' "cmake/cflags.cmake" || die + # vendored boost lib conflicts with boost 1.73 and above + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_VERBOSE_MAKEFILE=ON + -DCMAKE_BUILD_TYPE=None + -DLEATHERMAN_ENABLE_TESTING=$(usex test) + # We depend on Boost with nls, so this is always true + -DLEATHERMAN_USE_ICU=ON + + -DLEATHERMAN_SHARED=$(usex !static-libs) + ) + + if use debug; then + mycmakeargs+=( + -DCMAKE_BUILD_TYPE=Debug + ) + fi + + cmake_src_configure + cd "${BUILD_DIR}" + eapply "${FILESDIR}"/${P}-SIGSTKSZ.patch +} + +src_test() { + "${WORKDIR}/${P}"_build/bin/leatherman_test || die +} + +src_install() { + cmake_src_install +} |