commit: fa98b7704d8e61e42128737272a6020aa491bc9e
Author: Christopher Fore <csfore <AT> posteo <DOT> net>
AuthorDate: Tue Oct 15 06:06:53 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Oct 15 06:19:05 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fa98b770
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 <csfore <AT> posteo.net>
Closes: https://github.com/gentoo/gentoo/pull/38996
Signed-off-by: Sam James <sam <AT> gentoo.org>
sci-libs/libqalculate/libqalculate-5.3.0-r1.ebuild | 87 ++++++++++++++++++++++
1 file changed, 87 insertions(+)
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
+}