commit:     d4b6f83e21e7151ac0471d8c7b62c973928e6d08
Author:     François Bissey <frp.bissey <AT> gmail <DOT> com>
AuthorDate: Sun Jan 15 01:21:24 2023 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Mon Jan 16 16:40:51 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d4b6f83e

sci-mathematics/pari: add 2.15.2

Closes: https://github.com/gentoo/gentoo/pull/29112
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>
Signed-off-by: François Bissey <frp.bissey <AT> gmail.com>

 sci-mathematics/pari/Manifest                      |   1 +
 .../pari/files/pari-2.15.2-ellsea.patch            |  22 ++++
 sci-mathematics/pari/pari-2.15.2.ebuild            | 127 +++++++++++++++++++++
 3 files changed, 150 insertions(+)

diff --git a/sci-mathematics/pari/Manifest b/sci-mathematics/pari/Manifest
index df9fca51a90a..d9cc0ed7c828 100644
--- a/sci-mathematics/pari/Manifest
+++ b/sci-mathematics/pari/Manifest
@@ -1,2 +1,3 @@
 DIST pari-2.13.4.tar.gz 4772735 BLAKE2B 
5a3eebd380f1e47f38746b03ddde9a715ed74e7e8e4ed30ef8f2d62cf7289694b800fc8396557150ce9d79245c244fb56cecddac867c6057b438da4df68505e6
 SHA512 
0eb8c0100d76fb8f29fd29e6a49e9534b9a4d90e1869820dbfddd57fe444f0e83909947331823157a67be31f71a5d26fa1224f72ce3f9e5197db0194c417b9b9
 DIST pari-2.15.1.tar.gz 5175706 BLAKE2B 
abc04a8bd75f756ad62937941c3b88f910bf57d58e7c4eda20649292ce5ba390688abe463d27cb22af0aee0249967e67a6f929beb9ef328d00d05648af5bf72e
 SHA512 
8f536c1cabff3a082f67febd00240506eef5288c7e85c97d23018e8cdd01109dfb8ebe2fa71dc0e929c55ca00f31349fd145030689c988289201de2ddbcf0a5c
+DIST pari-2.15.2.tar.gz 5176694 BLAKE2B 
b3aa021cb0b786dfde691b150d38c0ee9e9844ff5d2554d7a4f0cd85b27c8077696433b14c0b2128930b7db2191e7db99bdebc200e03607554cc4a9394ea42a4
 SHA512 
fa9e8713484ab5d659dcf7cf65de0fbaf28334969f443bfaffb8fc19c2305631435fc5635e090cbd8033758ea18200a62c47e8434067af9a86565832e96d489c

diff --git a/sci-mathematics/pari/files/pari-2.15.2-ellsea.patch 
b/sci-mathematics/pari/files/pari-2.15.2-ellsea.patch
new file mode 100644
index 000000000000..a5c19504ea87
--- /dev/null
+++ b/sci-mathematics/pari/files/pari-2.15.2-ellsea.patch
@@ -0,0 +1,22 @@
+# upstream bug https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2441
+# will be fixed in 2.15.3
+diff --git a/src/basemath/ellsea.c b/src/basemath/ellsea.c
+index a6871fa6a7..f1e725ea55 100644
+--- a/src/basemath/ellsea.c
++++ b/src/basemath/ellsea.c
+@@ -1303,6 +1303,7 @@ find_trace_Elkies_power(GEN a4, GEN a6, ulong ell, long 
*pt_k, struct meqn *MEQN
+   lambda = tr ? find_eigen_value_oneroot(a4, a6, ell, tr, kpoly, T, p):
+                 find_eigen_value_power(a4, a6, ell, 1, 1, kpoly, T, p);
+   if (DEBUGLEVEL>1) err_printf(" [%ld ms]", timer_delay(ti));
++  if (lambda==ell) return NULL;
+   if (smallfact && smallfact%(long)ell!=0)
+   {
+     ulong pell = pellk%ell;
+@@ -1317,6 +1318,7 @@ find_trace_Elkies_power(GEN a4, GEN a6, ulong ell, long 
*pt_k, struct meqn *MEQN
+     if (!tmp) { k = cnt-1; break; }
+     if (DEBUGLEVEL) err_printf(", %Ps", powuu(ell, cnt));
+     lambda = find_eigen_value_power(a4, a6, ell, cnt, lambda, gel(tmp,3), T, 
p);
++    if (lambda == upowuu(ell, cnt)) { k = cnt-1; break; }
+     Eba4 = Eca4;
+     Eba6 = Eca6;
+     Eca4 = gel(tmp,1);

diff --git a/sci-mathematics/pari/pari-2.15.2.ebuild 
b/sci-mathematics/pari/pari-2.15.2.ebuild
new file mode 100644
index 000000000000..e677ee6a41a1
--- /dev/null
+++ b/sci-mathematics/pari/pari-2.15.2.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Computer-aided number theory C library and tools"
+HOMEPAGE="https://pari.math.u-bordeaux.fr/";
+SRC_URI="https://pari.math.u-bordeaux.fr/pub/${PN}/unix/${P}.tar.gz";
+
+LICENSE="GPL-2"
+
+# The subslot is the value of $soname_num obtained from
+# upstream's config/version script.
+SLOT="0/8"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux 
~x86-linux"
+IUSE="data doc fltk gmp test threads X"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+       virtual/pkgconfig
+       doc? ( virtual/latex-base )
+"
+DEPEND="
+       sys-libs/readline:0=
+       data? ( sci-mathematics/pari-data )
+       doc? ( X? ( x11-misc/xdg-utils ) )
+       fltk? ( x11-libs/fltk:1= )
+       gmp? ( dev-libs/gmp:0= )
+       X? ( x11-libs/libX11:0= )"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+       "${FILESDIR}/${PN}"-2.9.4-strip.patch
+       "${FILESDIR}/${PN}"-2.9.4-ppc.patch
+       "${FILESDIR}/${PN}"-2.11.2-no-automagic.patch
+       "${FILESDIR}/${PN}"-2.9.4-fltk-detection.patch
+       "${FILESDIR}/${PN}"-2.11.2-Makefile-LDFLAGS.patch
+       "${FILESDIR}/${PN}"-2.11.2-Makefile-docinstall.patch
+       "${FILESDIR}/${PN}"-2.15.2-ellsea.patch
+)
+
+src_prepare() {
+       default
+
+       # move doc dir to a gentoo doc dir and replace acroread by xdg-open
+       sed -i \
+               -e "s:\$d = \$0:\$d = '${EPREFIX}/usr/share/doc/${PF}':" \
+               -e 's:"acroread":"xdg-open":' \
+               doc/gphelp.in || die "Failed to fix doc dir"
+
+       # These tests fail when LaTeX is not installed (which we don't
+       # require without USE=doc), most likely due to output formatting
+       # issues but I haven't deleted my LaTeX installation to check.
+       # There's no real upstream support for enabling/disabling the LaTeX
+       # docs, so this is probably the correctest way to skip these tests.
+       if ! use doc; then
+               rm src/test/{in,32}/help || die
+       fi
+}
+
+src_configure() {
+       tc-export CC CXX PKG_CONFIG
+
+       # Workaraound to "asm operand has impossible constraints" as
+       # suggested in bug #499996.
+       use x86 && append-cflags $(test-flags-CC -fno-stack-check)
+
+       # need to force optimization here, as it breaks without
+       if is-flag -O0; then
+               replace-flags -O0 -O2
+       elif ! is-flag -O?; then
+               append-flags -O2
+       fi
+
+       # sysdatadir installs a pari.cfg stuff which is informative only.
+       # It is supposed to be for "architecture-dependent" data.  It needs
+       # to be easily discoverable for downstream packages such as gp2c.
+       # We set LD="" and DLLD="$CC" so that the "shared library linker"
+       # always gets set to the value of the compiler used. Pari's build
+       # system does not cope very well with a naked linker, it is
+       # expecting a compiler driver. See bugs 722090 and 871117.
+       LD="" DLLD="$(tc-getCC)" ./Configure \
+               --prefix="${EPREFIX}"/usr \
+               --datadir="${EPREFIX}/usr/share/${PN}" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)" \
+               --sysdatadir="${EPREFIX}"/usr/share/pari \
+               --mandir="${EPREFIX}"/usr/share/man/man1 \
+               --with-readline="${EPREFIX}"/usr \
+               --with-readline-lib="${EPREFIX}/usr/$(get_libdir)" \
+               --with-ncurses-lib="${EPREFIX}/usr/$(get_libdir)" \
+               $(use_with fltk) \
+               $(use_with gmp) \
+               --without-qt \
+               $(usex threads "--mt=pthread" "" "" "") \
+               || die "./Configure failed"
+}
+
+src_compile() {
+       emake gp
+
+       if use doc; then
+               # To prevent sandbox violations by metafont
+               VARTEXFONTS="${T}/fonts" emake docpdf
+       fi
+}
+
+src_test() {
+       # Welcome to the jungle, where the tests fail if you make your
+       # terminal bigger.
+       emake COLUMNS=80 test-all
+}
+
+src_install() {
+       DOCS=( AUTHORS CHANGES* COMPAT NEW README* )
+       default
+
+       if use doc; then
+               docompress -x "/usr/share/doc/${PF}"
+               emake \
+                       DESTDIR="${D}" \
+                       EXDIR="${ED}/usr/share/doc/${PF}/examples" \
+                       DOCDIR="${ED}/usr/share/doc/${PF}" \
+                       install-doc
+       fi
+}

Reply via email to