From fa98b7704d8e61e42128737272a6020aa491bc9e Mon Sep 17 00:00:00 2001 From: Christopher Fore Date: Tue, 15 Oct 2024 02:06:53 -0400 Subject: sci-libs/libqalculate: Increase stack size on musl Originally discovered through unittests, certain equations given to libqalculate will result in a stack overflow, as witnessed using ASAN. ASAN output example: ==8920==ERROR: AddressSanitizer: stack-overflow on address 0x7f6a6a4f4e38 (pc 0x7f6a6ab4b695 bp 0x7f6a6a4f6180 sp 0x7f6a6a4f4e00 T1) #0 0x7f6a6ab4b695 in MathStructure::merge_multiplication( MathStructure&, EvaluationOptions const&, MathStructure*, unsigned long, unsigned long, bool, bool) (/lib/libqalculate.so.23+0x54b695) Closes: https://bugs.gentoo.org/924939 Signed-off-by: Christopher Fore Closes: https://github.com/gentoo/gentoo/pull/38996 Signed-off-by: Sam James --- sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild (limited to 'sci-libs') diff --git a/sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild b/sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild new file mode 100644 index 000000000000..341483a69648 --- /dev/null +++ b/sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild @@ -0,0 +1,87 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bump with sci-calculators/qalculate-gtk and sci-calculators/qalculate-qt + +inherit flag-o-matic toolchain-funcs + +MY_PV="${PV//b/}" + +DESCRIPTION="A modern multi-purpose calculator library" +HOMEPAGE="https://qalculate.github.io/" +SRC_URI="https://github.com/Qalculate/${PN}/releases/download/v${MY_PV}/${P}.tar.gz" +S="${WORKDIR}"/"${PN}-${MY_PV}" + +LICENSE="GPL-2+" +# SONAME changes pretty often on bumps. Check! +SLOT="0/23.3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="curl icu gnuplot +hardened readline test" +RESTRICT="!test? ( test )" + +DEPEND="dev-libs/gmp:= + dev-libs/libxml2:2 + dev-libs/mpfr:= + virtual/libiconv + curl? ( net-misc/curl ) + icu? ( dev-libs/icu:= ) + readline? ( sys-libs/readline:= )" +RDEPEND="${DEPEND} + gnuplot? ( >=sci-visualization/gnuplot-3.7 )" +BDEPEND="dev-util/intltool + sys-devel/gettext + virtual/pkgconfig" + +src_prepare() { + default + cat >po/POTFILES.skip <<-EOF || die + # Required by make check + data/currencies.xml.in + data/datasets.xml.in + data/elements.xml.in + data/functions.xml.in + data/planets.xml.in + data/prefixes.xml.in + data/units.xml.in + data/variables.xml.in + src/defs2doc.cc + EOF +} + +src_configure() { + # Needed for po-defs/Makefile + export CXX_FOR_BUILD="$(tc-getBUILD_CXX)" + export CXXCPP_FOR_BUILD="$(tc-getBUILD_CXX) -E" + + # bug #792027 + tc-export CC + + # bug #924939 + use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152 + + local myeconfargs=( + $(use_enable test tests) + $(use_enable test unittests) + $(use_with curl libcurl) + $(use_with gnuplot gnuplot-call) + $(use_enable !hardened insecure) + $(use_with icu) + $(use_with readline) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + # docs/reference/Makefile.am -> referencedir= + emake \ + DESTDIR="${D}" \ + referencedir="${EPREFIX}/usr/share/doc/${PF}/html" \ + install + + einstalldocs + + find "${ED}" -name '*.la' -delete || die +} -- cgit v1.2.3-65-gdbad