commit: 0486a5d1980fa37afb68c6b9a5a6590ff15db6c7 Author: Michael Orlitzky <mjo <AT> gentoo <DOT> org> AuthorDate: Mon Mar 2 11:34:21 2026 +0000 Commit: Michael Orlitzky <mjo <AT> gentoo <DOT> org> CommitDate: Mon Mar 2 11:34:21 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0486a5d1
sci-libs/linbox: drop 1.7.0-r1, 1.7.1_pre20250703 Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org> sci-libs/linbox/Manifest | 2 - sci-libs/linbox/files/linbox-1.7.0-gcc14.patch | 433 --------------------- .../files/linbox-1.7.0-hardened-testfails.patch | 22 -- sci-libs/linbox/linbox-1.7.0-r1.ebuild | 114 ------ sci-libs/linbox/linbox-1.7.1_pre20250703.ebuild | 111 ------ 5 files changed, 682 deletions(-) diff --git a/sci-libs/linbox/Manifest b/sci-libs/linbox/Manifest index 7aa7941d2fad..3a19ae41b97c 100644 --- a/sci-libs/linbox/Manifest +++ b/sci-libs/linbox/Manifest @@ -1,3 +1 @@ -DIST linbox-1.7.0.tar.gz 2258420 BLAKE2B a416e7ab138c6f3f4778a00c0c1eb46aa0a5b26d84f19a2df93e9f8959d3237e5f298f8013f9414f66605c08eebd7d632f71dcdef7080c8df814afcd2de34456 SHA512 cb4e848186d1f6357f498d1e3bda6484b4c789c02440f9614a227a2ae206a31fb20b32be40bda74da3f2f8f981bbd58d80fc97c95499b5151bb06eafb867ef9e DIST linbox-1.7.1.tar.gz 2305073 BLAKE2B 056453681e5f9102ed2974fa36df7ce97a86aef1d961da3fb50829fc212caf0ecb927e3f069f8c01c6e94682a237743a984f1a39ee83019f1b158071d0617396 SHA512 f13f607c4e7c4b6eb569d03007b96bc6ab4d57f520cfa557fda71c62eec43e23c24260c7495dbed9c39ddff18674c22eb72e43cff43fe7d0396f848f19df7595 -DIST linbox-1.7.1_pre20250703.tar.gz 2305976 BLAKE2B fdbe24ce257b69dbcc3f0698eb180f21779d41b3d3ba8efcaacc0358d11082b1d64d34fb78ebaf55122788c0a47cf1b94e505c1197191584280f03bd2bf5ec1c SHA512 a01d680d319c93f8bb63dccd9f2113ec9ad4b7d1e3e5081b3e1f794d64f2f926872e2f1bc842c3d6ba8019efbb63df4d107d56f55b26502d16b05d0c1a55a88d diff --git a/sci-libs/linbox/files/linbox-1.7.0-gcc14.patch b/sci-libs/linbox/files/linbox-1.7.0-gcc14.patch deleted file mode 100644 index f35f1072955d..000000000000 --- a/sci-libs/linbox/files/linbox-1.7.0-gcc14.patch +++ /dev/null @@ -1,433 +0,0 @@ -https://bugs.gentoo.org/930923 -https://github.com/linbox-team/linbox/commit/b8f2d4ccdc0af4418d14f72caf6c4d01969092a3 -https://src.fedoraproject.org/rpms/linbox/c/7389d46e81dc00dcb952b2ccbbbec3fb4fcc6c8b - -From c614c401386ee8db014a9be56244888f7b282a18 Mon Sep 17 00:00:00 2001 -From: Jean-Guillaume Dumas <[email protected]> -Date: Fri, 26 Jan 2024 16:31:56 +0100 -Subject: [PATCH] const_cast missing faster empty init - ---- - linbox/algorithms/gauss/gauss-nullspace.inl | 10 +- - .../matrix/sparsematrix/sparse-ell-matrix.h | 8 +- - .../matrix/sparsematrix/sparse-ellr-matrix.h | 18 +-- - linbox/ring/ntl/ntl-lzz_p.h | 11 +- - linbox/ring/ntl/ntl-lzz_pe.h | 143 +++++++++--------- - linbox/ring/ntl/ntl-zz_px.h | 6 + - 6 files changed, 104 insertions(+), 92 deletions(-) - -diff --git a/linbox/algorithms/gauss/gauss-nullspace.inl b/linbox/algorithms/gauss/gauss-nullspace.inl -index 0b70e1d7c..2d6032563 100644 ---- a/linbox/algorithms/gauss/gauss-nullspace.inl -+++ b/linbox/algorithms/gauss/gauss-nullspace.inl -@@ -2,7 +2,7 @@ - * Copyright (C) LinBox 2008 - * - * Written by Jean-Guillaume Dumas <[email protected]> -- * Time-stamp: <27 Aug 20 15:17:09 [email protected]> -+ * Time-stamp: <26 Jan 24 16:05:55 [email protected]> - * - * - * ========LICENCE======== -@@ -104,11 +104,11 @@ namespace LinBox - - Permutation<Field> P(field(),(int)Nj); - -- // A.write( std::cerr << "A:=", Tag::FileFormat::Maple ) << ';' << std::endl; -+// A.write( std::cerr << "A:=", Tag::FileFormat::Maple ) << ';' << std::endl; - this->InPlaceLinearPivoting(Rank, Det, A, P, Ni, Nj ); - -- // P.write( std::cerr << "P:=", Tag::FileFormat::Maple ) << ';' << std::endl; -- // A.write( std::cerr << "Ua:=", Tag::FileFormat::Maple ) << ';' << std::endl; -+// P.write( std::cerr << "P:=", Tag::FileFormat::Maple ) << ';' << std::endl; -+// A.write( std::cerr << "Ua:=", Tag::FileFormat::Maple ) << ';' << std::endl; - - for(size_t i=0; i< Ni; ++i) { - if (A[i].size() == 0) { -@@ -123,7 +123,7 @@ namespace LinBox - } - } - -- // A.write( std::cerr << "Ub:=", Tag::FileFormat::Maple ) << ';' << std::endl; -+// A.write( std::cerr << "Ub:=", Tag::FileFormat::Maple ) << ';' << std::endl; - - return this->nullspacebasis(x, Rank, A, P); - } -diff --git a/linbox/matrix/sparsematrix/sparse-ell-matrix.h b/linbox/matrix/sparsematrix/sparse-ell-matrix.h -index 59006d6c5..2604f47b8 100644 ---- a/linbox/matrix/sparsematrix/sparse-ell-matrix.h -+++ b/linbox/matrix/sparsematrix/sparse-ell-matrix.h -@@ -1210,10 +1210,10 @@ namespace LinBox - _colid_beg = iter._colid_beg ; - _colid_it = iter._colid_it ; - _data_it = iter._data_it ; -- _data_beg = iter._data_beg ; -- _data_end = iter._data_end ; -- _field = iter._field ; -- _ld = iter._ld ; -+ const_cast<data_it>(_data_beg) = iter._data_beg ; -+ const_cast<data_it>(_data_end) = iter._data_end ; -+ const_cast<Field &>(_field) = iter._field ; -+ const_cast<size_t&>(ld) = iter._ld ; - _row = iter._row ; - - return *this; -diff --git a/linbox/matrix/sparsematrix/sparse-ellr-matrix.h b/linbox/matrix/sparsematrix/sparse-ellr-matrix.h -index 498a5525d..a60943868 100644 ---- a/linbox/matrix/sparsematrix/sparse-ellr-matrix.h -+++ b/linbox/matrix/sparsematrix/sparse-ellr-matrix.h -@@ -1102,11 +1102,11 @@ namespace LinBox - _Iterator &operator = (const _Iterator &iter) - { - _data_it = iter._data_it ; -- _data_beg = iter._data_beg ; -- _data_end = iter._data_end ; -- _field = iter._field ; -- _rowid = iter._rowid; -- _ld = iter._ld ; -+ const_cast<element_iterator>(_data_beg) = iter._data_beg ; -+ const_cast<element_iterator>(_data_end)= iter._data_end ; -+ const_cast<Field &>(_field) = iter._field ; -+ const_cast<std::vector<size_t>&>(_rowid) = iter._rowid; -+ const_cast<size_t&>(ld) = iter._ld ; - _row = iter._row ; - - return *this; -@@ -1252,10 +1252,10 @@ namespace LinBox - _colid_beg = iter._colid_beg ; - _colid_it = iter._colid_it ; - _data_it = iter._data_it ; -- _data_beg = iter._data_beg ; -- _data_end = iter._data_end ; -- _field = iter._field ; -- _ld = iter._ld ; -+ const_cast<data_it>(_data_beg) = iter._data_beg ; -+ const_cast<data_it>(_data_end) = iter._data_end ; -+ const_cast<Field &>(_field) = iter._field ; -+ const_cast<size_t&>(ld)= iter._ld ; - _row = iter._row ; - - return *this; -diff --git a/linbox/ring/ntl/ntl-lzz_p.h b/linbox/ring/ntl/ntl-lzz_p.h -index 201baaa35..def3a23f7 100644 ---- a/linbox/ring/ntl/ntl-lzz_p.h -+++ b/linbox/ring/ntl/ntl-lzz_p.h -@@ -85,7 +85,7 @@ namespace Givaro - * @param x reference to Integer to contain output (reference returned). - * @param y constant reference to field element. - */ -- template <> -+ template <> - Integer& Caster(Integer& x, const NTL::zz_p& y) - { - return x = int64_t(rep(y)); -@@ -130,7 +130,7 @@ namespace LinBox - typedef NTL::zz_p Element ; - typedef Givaro::UnparametricOperations<Element> Father_t ; - typedef UnparametricRandIter<NTL::zz_p> RandIter; -- -+ - const Element zero,one,mOne ; - - -@@ -145,6 +145,11 @@ namespace LinBox - ,zero( NTL::to_zz_p(0)),one( NTL::to_zz_p(1)),mOne(-one) - {} - -+ Element &init (Element &x) const -+ { -+ return x = NTL::to_zz_p(0); -+ } -+ - Element& init(Element& x, const double& y) const - { - double z = fmod(y,(double)Element::modulus()); -@@ -153,7 +158,7 @@ namespace LinBox - return x = NTL::to_zz_p(static_cast<long>(z)); //rounds towards 0 - } - -- Element &init (Element &x, const integer &y=0) const -+ Element &init (Element &x, const integer &y) const - { - NTL::ZZ tmp= NTL::to_ZZ(std::string(y).data()); - return x = NTL::to_zz_p(tmp); -diff --git a/linbox/ring/ntl/ntl-lzz_pe.h b/linbox/ring/ntl/ntl-lzz_pe.h -index 60b132a06..d53444b69 100644 ---- a/linbox/ring/ntl/ntl-lzz_pe.h -+++ b/linbox/ring/ntl/ntl-lzz_pe.h -@@ -96,18 +96,18 @@ namespace LinBox - NTL::zz_pE::init(irredPoly); - _f = irredPoly; - } -- -+ - NTL_zz_pE_Initialiser( const Integer & p, const NTL::zz_pX & f) { - NTL::zz_p::init((int64_t) p); - NTL::zz_pE::init(f); - _f = f; - } -- -+ - NTL_zz_pE_Initialiser(const NTL::zz_pX &f) { - NTL::zz_pE::init(f); - _f = f; - } -- -+ - const NTL::zz_pX& modulus() const { - return _f; - } -@@ -143,22 +143,22 @@ namespace LinBox - NTL_zz_pE (const integer &p, const integer &k) : - NTL_zz_pE_Initialiser(p,k),Father_t () - { -- init(const_cast<Element &>(zero), 0); -- init(const_cast<Element &>(one), 1); -- init(const_cast<Element &>(mOne), p-1); -+ init(const_cast<Element &>(zero), 0); -+ init(const_cast<Element &>(one), 1); -+ init(const_cast<Element &>(mOne), p-1); - } -- -+ - NTL_zz_pE (const integer &p, const NTL::zz_pX &f) : - NTL_zz_pE_Initialiser(p,f), Father_t() - { - init(const_cast<Element &>(zero), 0); -- init(const_cast<Element &>(one), 1); -- init(const_cast<Element &>(mOne), p-1); -+ init(const_cast<Element &>(one), 1); -+ init(const_cast<Element &>(mOne), p-1); - } -- -+ - NTL_zz_pE(const NTL_zz_pE &F) : -- NTL_zz_pE_Initialiser(F.modulus()), Father_t(), -- zero(NTL::to_zz_pE(0)), one(NTL::to_zz_pE(1)), mOne(-one) -+ NTL_zz_pE_Initialiser(F.modulus()), Father_t(), -+ zero(NTL::to_zz_pE(0)), one(NTL::to_zz_pE(1)), mOne(-one) - { - } - -@@ -182,15 +182,15 @@ namespace LinBox - - bool isUnit (const Element& x) const - { -- if (isZero(x)) { -- return false; -- } -- -- NTL::zz_pX g, tmp; -- tmp = NTL::conv<NTL::zz_pX>(x); -- NTL::GCD(g, tmp, modulus()); -- -- return g == 1; -+ if (isZero(x)) { -+ return false; -+ } -+ -+ NTL::zz_pX g, tmp; -+ tmp = NTL::conv<NTL::zz_pX>(x); -+ NTL::GCD(g, tmp, modulus()); -+ -+ return g == 1; - } - - bool isMOne (const Element& x) const -@@ -207,7 +207,9 @@ namespace LinBox - return f; - } - -- Element & init(Element & x, integer n = 0) const -+ Element & init(Element & x) const { return x; } -+ -+ Element & init(Element & x, integer n) const - { // assumes n >= 0. - int e = exponent(); - n %= cardinality(); -@@ -215,14 +217,14 @@ namespace LinBox - //write(std::cout << "init-ed ", x) << std::endl; - return x; - } -- -+ - // documentation of NTL::conv: - // http://www.shoup.net/ntl/doc/conversions.txt - // XXX = long, ZZ, ZZ_p, ZZ_pE, ZZ_pX - template<class XXX> - Element &init(Element &x, const XXX &y) const { -- x = NTL::conv<NTL::zz_pE>(y); -- return x; -+ x = NTL::conv<NTL::zz_pE>(y); -+ return x; - } - - integer & convert(integer & x, const Element & y) const -@@ -279,81 +281,80 @@ namespace LinBox - x=one/x; - return x; - } -- -+ - Element& div(Element &x, const Element &y, const Element &z) const { -- NTL::zz_pX g, zx; -- conv(zx, z); -- NTL::GCD(g, zx, modulus()); -- -- NTL::zz_pE zg; -- conv(zg, zx / g); -- x = NTL::conv<NTL::zz_pE>(NTL::conv<NTL::zz_pX>(y) / g); -- x /= zg; -- -- return x; -+ NTL::zz_pX g, zx; -+ conv(zx, z); -+ NTL::GCD(g, zx, modulus()); -+ -+ NTL::zz_pE zg; -+ conv(zg, zx / g); -+ x = NTL::conv<NTL::zz_pE>(NTL::conv<NTL::zz_pX>(y) / g); -+ x /= zg; -+ -+ return x; - } -- -+ - Element& divin(Element &x, const Element &y) const { -- Element r; -- div(r, x, y); -- return x = r; -+ Element r; -+ div(r, x, y); -+ return x = r; - } - - bool isDivisor(const Element &x, const Element &y) const { -- if (isZero(y)) { -- return false; -- } -- -- if (isUnit(y)) { -- return true; -- } -- -- NTL::zz_pX a, b; -- conv(a, x); -- conv(b, y); -- -- NTL::zz_pX ga, gb; -- NTL::GCD(ga, a, modulus()); -- NTL::GCD(gb, b, modulus()); -- -- NTL::zz_pX r; -- r = ga % gb; -- return isZero(NTL::conv<Element>(r)); -+ if (isZero(y)) { -+ return false; -+ } -+ -+ if (isUnit(y)) { -+ return true; -+ } -+ -+ NTL::zz_pX a, b; -+ conv(a, x); -+ conv(b, y); -+ -+ NTL::zz_pX ga, gb; -+ NTL::GCD(ga, a, modulus()); -+ NTL::GCD(gb, b, modulus()); -+ NTL::zz_pX r; -+ r = ga % gb; -+ return isZero(NTL::conv<Element>(r)); - } -- -+ - Element& gcd(Element &g, const Element &a, const Element &b) const { - NTL::zz_pX r1, r2, x, y; - conv(x, a); - conv(y, b); -- -+ - NTL::GCD(r1, x, modulus()); - NTL::GCD(r2, y, r1); -- -+ - return g = NTL::conv<Element>(r2); - } -- -+ - Element& gcdin(Element &a, const Element &b) const { - NTL::zz_pE g; - gcd(g, a, b); - return a = g; - } -- -+ - Element& dxgcd(Element &g, Element &s, Element &t, Element &u, Element &v, const Element &a, const Element &b) const { - NTL::zz_pX gx, sx, tx, ux, vx, ax, bx; - conv(ax, a); - conv(bx, b); -- -+ - NTL::XGCD(gx, sx, tx, ax, bx); -- -+ - ux = ax / gx; - vx = bx / gx; -- -+ - conv(g, gx); - conv(s, sx); - conv(t, tx); - conv(u, ux); - conv(v, vx); -- -+ - return g; - } - -@@ -364,12 +365,12 @@ namespace LinBox - x=NTL::to_zz_pE(tmp); - return is; - } -- -+ - std::ostream& write( std::ostream& os ) const - { - return os << "Polynomial quotient ring using NTL::zz_pE"; - } -- -+ - std::ostream& write( std::ostream& os, const Element& x) const { - os << x; - return os; -@@ -429,7 +430,7 @@ namespace LinBox - uint64_t _seed; - const NTL_zz_pE& _ring; - }; // class UnparametricRandIters -- -+ - } // LinBox - - #endif //__LINBOX_ntl_lzz_pe_H -diff --git a/linbox/ring/ntl/ntl-zz_px.h b/linbox/ring/ntl/ntl-zz_px.h -index 6e7d5b2fd..340df9f95 100644 ---- a/linbox/ring/ntl/ntl-zz_px.h -+++ b/linbox/ring/ntl/ntl-zz_px.h -@@ -104,6 +104,12 @@ namespace LinBox - ,_CField(cf) - {} - -+ /** Initialize p to 0 */ -+ Element& init( Element& p ) const -+ { -+ return p = 0; -+ } -+ - /** Initialize p to the constant y (p = y*x^0) */ - template <class ANY> - Element& init( Element& p, const ANY& y ) const --- -2.43.0 - diff --git a/sci-libs/linbox/files/linbox-1.7.0-hardened-testfails.patch b/sci-libs/linbox/files/linbox-1.7.0-hardened-testfails.patch deleted file mode 100644 index 9e46faa69dc4..000000000000 --- a/sci-libs/linbox/files/linbox-1.7.0-hardened-testfails.patch +++ /dev/null @@ -1,22 +0,0 @@ -https://github.com/linbox-team/linbox/issues/304 - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index d870aa9..f7234ea 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -57,7 +57,6 @@ EXTRA_DIST = \ - BASIC_TESTS = \ - test-solve \ - test-solve-full \ -- test-smith-form-valence \ - test-local-smith-form-sparseelim\ - test-smith-form \ - test-smith-form-adaptive \ -@@ -66,7 +65,6 @@ BASIC_TESTS = \ - test-last-invariant-factor \ - test-qlup \ - test-det \ -- test-regression \ - test-regression2 \ - test-rank-ex \ - test-rank-u32 \ diff --git a/sci-libs/linbox/linbox-1.7.0-r1.ebuild b/sci-libs/linbox/linbox-1.7.0-r1.ebuild deleted file mode 100644 index a2399155e6b8..000000000000 --- a/sci-libs/linbox/linbox-1.7.0-r1.ebuild +++ /dev/null @@ -1,114 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools toolchain-funcs - -DESCRIPTION="C++ template library for integer and finite-field linear algebra" -HOMEPAGE="https://linalg.org/" -SRC_URI="https://github.com/linbox-team/${PN}/releases/download/v${PV}/${P}.tar.gz" - -# I think only macros/libtool.m4 (and COPYING) is GPL-2+; the source -# headers all say LGPL-2.1 -LICENSE="GPL-2+ LGPL-2.1" -SLOT="0" -KEYWORDS="amd64 ~riscv ~x86 ~x64-macos" -IUSE="doc opencl openmp" - -BDEPEND="doc? ( app-text/doxygen )" - -# The project README says that gmp, givaro, and blas/lapack are required -# transitively via fflas-ffpack, but that's not true. The build system -# checks for them, and `git grep` shows that they're used directly. -DEPEND="dev-libs/gmp[cxx(+)] - =sci-libs/givaro-4.2* - =sci-libs/fflas-ffpack-2.5* - virtual/cblas - virtual/lapack - opencl? ( virtual/opencl ) - dev-libs/ntl:= - sci-libs/iml - dev-libs/mpfr:= - sci-mathematics/flint" - -# Use mathjax to render inline latex rather than requiring a working latex -# installation to generate bitmaps. -RDEPEND="${DEPEND} - doc? ( >=dev-libs/mathjax-3 ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.7.0-hardened-testfails.patch - "${FILESDIR}"/${PN}-1.7.0-gcc14.patch -) - -# The --enable-openmp flag has been removed upstream, but we don't want -# openmp support to disappear after the package has been compiled with -# it, so we retain the USE flag and the toolchain check. -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -pkg_setup() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -src_prepare() { - default - - if use doc; then - # Avoid the need for a working LaTeX installation. MathJax does - # slow down the browser a bit but it also renders much more - # nicely than the latex-generated bitmaps would. - echo " - USE_MATHJAX = YES - MATHJAX_VERSION = MathJax_3 - MATHJAX_RELPATH = \"${EPREFIX}/usr/share/mathjax\" - MATHJAX_EXTENSIONS = ams - " >> doc/Doxyfile.mod || die - fi - - eautoreconf -} - -src_configure() { - # - # The --with-all flag includes, - # - # --with-givaro: used for finite fields, integer, etc. (required) - # --with-fflas-ffpack: small field dense linear algebra (required) - # --with-ntl: used for finite field, polynomial arithmetic (optional) - # --with-iml: used for fast integer/rational linear algebra (optional) - # --with-mpfr: not sure, doesn't seem to be used? (optional) - # --with-flint: used in algorithms/matrix-blas3 once (optional) - # --with-fplll: an fplll interface not directly used (optional) - # --with-doxygen: needed with --enable-doc to build them (optional) - # - # Some of these could be behind USE flags, but the ./configure output - # says that they're "not yet mandatory," which makes me think we might - # be overcomplicating things to make them optional right now. - # - econf \ - --with-docdir="${EPREFIX}/usr/share/doc/${PF}" \ - --with-all="${EPREFIX}"/usr \ - --without-fplll \ - --without-archnative \ - $(use_enable doc) \ - $(use_with opencl ocl) -} - -src_install() { - default - find "${ED}" -name '*.la' -delete || die - if use doc; then - # These files are used for incremental doxygen builds but aren't - # part of the final output. Check on - # - # https://github.com/linbox-team/linbox/issues/252 - # - # periodically to see if this is pointless. - find "${ED}/usr/share/doc/${PF}" -type f -name '*.md5' -delete || die - find "${ED}/usr/share/doc/${PF}" -type f -name '*.map' -delete || die - fi -} diff --git a/sci-libs/linbox/linbox-1.7.1_pre20250703.ebuild b/sci-libs/linbox/linbox-1.7.1_pre20250703.ebuild deleted file mode 100644 index 00c419791780..000000000000 --- a/sci-libs/linbox/linbox-1.7.1_pre20250703.ebuild +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools toolchain-funcs - -DESCRIPTION="C++ template library for integer and finite-field linear algebra" -HOMEPAGE="https://linalg.org/" -GH_COMMIT=9c79417278c51509871dfd8f4f9fd56b5495db65 -SRC_URI="https://github.com/linbox-team/linbox/archive/9c79417278c51509871dfd8f4f9fd56b5495db65.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${PN}-${GH_COMMIT}" - -# I think only macros/libtool.m4 (and COPYING) is GPL-2+; the source -# headers all say LGPL-2.1 -LICENSE="GPL-2+ LGPL-2.1" -SLOT="0" -KEYWORDS="~amd64 ~riscv ~x86 ~x64-macos" -IUSE="doc opencl openmp" - -BDEPEND="doc? ( app-text/doxygen )" - -# The project README says that gmp, givaro, and blas/lapack are required -# transitively via fflas-ffpack, but that's not true. The build system -# checks for them, and `git grep` shows that they're used directly. -DEPEND="dev-libs/gmp[cxx(+)] - =sci-libs/givaro-4.2* - =sci-libs/fflas-ffpack-2.5* - virtual/cblas - virtual/lapack - opencl? ( virtual/opencl ) - dev-libs/ntl:= - sci-libs/iml - dev-libs/mpfr:= - sci-mathematics/flint" - -# Use mathjax to render inline latex rather than requiring a working latex -# installation to generate bitmaps. -RDEPEND="${DEPEND} - doc? ( >=dev-libs/mathjax-3 ) -" - -# The --enable-openmp flag has been removed upstream, but we don't want -# openmp support to disappear after the package has been compiled with -# it, so we retain the USE flag and the toolchain check. -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -pkg_setup() { - [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp -} - -src_prepare() { - default - - if use doc; then - # Avoid the need for a working LaTeX installation. MathJax does - # slow down the browser a bit but it also renders much more - # nicely than the latex-generated bitmaps would. - echo " - USE_MATHJAX = YES - MATHJAX_VERSION = MathJax_3 - MATHJAX_RELPATH = \"${EPREFIX}/usr/share/mathjax\" - MATHJAX_EXTENSIONS = ams - " >> doc/Doxyfile.mod || die - fi - - eautoreconf -} - -src_configure() { - # - # The --with-all flag includes, - # - # --with-givaro: used for finite fields, integer, etc. (required) - # --with-fflas-ffpack: small field dense linear algebra (required) - # --with-ntl: used for finite field, polynomial arithmetic (optional) - # --with-iml: used for fast integer/rational linear algebra (optional) - # --with-mpfr: not sure, doesn't seem to be used? (optional) - # --with-flint: used in algorithms/matrix-blas3 once (optional) - # --with-fplll: an fplll interface not directly used (optional) - # --with-doxygen: needed with --enable-doc to build them (optional) - # - # Some of these could be behind USE flags, but the ./configure output - # says that they're "not yet mandatory," which makes me think we might - # be overcomplicating things to make them optional right now. - # - econf \ - --with-docdir="${EPREFIX}/usr/share/doc/${PF}" \ - --with-all="${EPREFIX}"/usr \ - --without-fplll \ - --without-archnative \ - $(use_enable doc) \ - $(use_with opencl ocl) -} - -src_install() { - default - find "${ED}" -name '*.la' -delete || die - if use doc; then - # These files are used for incremental doxygen builds but aren't - # part of the final output. Check on - # - # https://github.com/linbox-team/linbox/issues/252 - # - # periodically to see if this is pointless. - find "${ED}/usr/share/doc/${PF}" -type f -name '*.md5' -delete || die - find "${ED}/usr/share/doc/${PF}" -type f -name '*.map' -delete || die - fi -}
