commit:     39b65a3d5ad4c68459f3d7ce63556937099ac93a
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 28 16:31:58 2020 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Fri Feb 28 17:20:43 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39b65a3d

sci-mathematics/flint: new EAPI=7 revision.

This new revision is based off François Bissey's ebuild in the
sage-on-gentoo overlay, which has accrued some fixes not present in
the ::gentoo version. Of note, it fixes an open build bug, and an
unreported issue where 32-bit libraries are detected on a 64-bit
system.

The update to EAPI=7 required only moving the LaTeX dependencies to
BDEPEND. In the process, I updated the LICENSE to LGPL-2.1+ because
upstream has done the same. I also looked long and hard for a reason
why we have RESTRICT=mirror in the ebuild. Finding none, I have
removed the restriction.

Closes: https://bugs.gentoo.org/470732
Closes: https://bugs.gentoo.org/688674
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 .../flint/files/flint-2.5.2-memory_message.patch   | 16 +++++
 sci-mathematics/flint/files/flint-2.5.2-pie.patch  | 78 ++++++++++++++++++++++
 sci-mathematics/flint/files/flint-2.5.2-utf8.patch | 13 ++++
 sci-mathematics/flint/files/flintxx-include.patch  | 19 ++++++
 sci-mathematics/flint/flint-2.5.2-r1.ebuild        | 74 ++++++++++++++++++++
 5 files changed, 200 insertions(+)

diff --git a/sci-mathematics/flint/files/flint-2.5.2-memory_message.patch 
b/sci-mathematics/flint/files/flint-2.5.2-memory_message.patch
new file mode 100644
index 00000000000..65638aa7790
--- /dev/null
+++ b/sci-mathematics/flint/files/flint-2.5.2-memory_message.patch
@@ -0,0 +1,16 @@
+This fixes a Python 3 doctest failure in
+rings/polynomial/polynomial_integer_dense_flint.pyx: see #28334.
+See https://github.com/wbhart/flint2/pull/585 for upstream PR
+
+diff --git a/memory_manager.c b/memory_manager.c
+index 04abf8a..bece9f5 100644
+--- a/memory_manager.c
++++ b/memory_manager.c
+@@ -41,6 +41,7 @@ pthread_mutex_t register_lock;
+ static void flint_memory_error()
+ {
+     flint_printf("Exception (FLINT memory_manager). Unable to allocate 
memory.\n");
++    fflush(stdout);
+     abort();
+ }
+

diff --git a/sci-mathematics/flint/files/flint-2.5.2-pie.patch 
b/sci-mathematics/flint/files/flint-2.5.2-pie.patch
new file mode 100644
index 00000000000..442d0254e82
--- /dev/null
+++ b/sci-mathematics/flint/files/flint-2.5.2-pie.patch
@@ -0,0 +1,78 @@
+In newer binutils, ld options -r and -pie conflict.
+Patch due to Jörg-Volker Peetz
+(source : https://groups.google.com/d/msg/sage-devel/TduebNoZuBE/sEULolL0BQAJ),
+packaged by Emmanuel Charpentier
+
+diff -ru flint-2.5.2-orig/fq/Makefile flint-2.5.2-new/fq/Makefile
+--- flint-2.5.2-orig/fq/Makefile       2015-08-13 18:16:22.000000000 +0200
++++ flint-2.5.2-new/fq/Makefile        2016-11-07 18:41:09.148996528 +0100
+@@ -35,7 +35,7 @@
+       $(CC) $(CFLAGS) -c $(INCS) $< -o $@
+ 
+ $(MOD_LOBJ): $(LOBJS)
+-      $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib
++      $(CC) $(ABI_FLAG) -r $^ -o $@ -nostdlib
+ 
+ $(BUILD_DIR)/%.lo: %.c
+       $(CC) $(PICFLAG) $(CFLAGS) $(INCS) -c $< -o $@
+diff -ru flint-2.5.2-orig/fq_poly/Makefile flint-2.5.2-new/fq_poly/Makefile
+--- flint-2.5.2-orig/fq_poly/Makefile  2015-08-13 18:16:22.000000000 +0200
++++ flint-2.5.2-new/fq_poly/Makefile   2016-11-07 18:41:09.148996528 +0100
+@@ -35,7 +35,7 @@
+       $(CC) $(CFLAGS) -c $(INCS) $< -o $@
+ 
+ $(MOD_LOBJ): $(LOBJS)
+-      $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib
++      $(CC) $(ABI_FLAG) -r $^ -o $@ -nostdlib
+ 
+ $(BUILD_DIR)/%.lo: %.c
+       $(CC) $(PICFLAG) $(CFLAGS) $(INCS) -c $< -o $@
+diff -ru flint-2.5.2-orig/Makefile.subdirs flint-2.5.2-new/Makefile.subdirs
+--- flint-2.5.2-orig/Makefile.subdirs  2015-08-13 18:16:22.000000000 +0200
++++ flint-2.5.2-new/Makefile.subdirs   2016-11-07 18:41:09.144996522 +0100
+@@ -59,7 +59,7 @@
+       $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) -c $< -o $@ -MMD -MP -MF 
"$(BUILD_DIR)/$(MOD_DIR)_$*.d" -MT "$(BUILD_DIR)/$(MOD_DIR)_$*.d" -MT "$@"
+ 
+ $(MOD_LOBJ): $(LOBJS)
+-      $(QUIET_CC) $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib
++      $(QUIET_CC) $(CC) $(ABI_FLAG) -r $^ -o $@ -nostdlib
+ 
+ -include $(LOBJS:.lo=.d)
+ 
+Seulement dans flint-2.5.2-new/: Makefile.subdirs.orig
+diff -ru flint-2.5.2-orig/padic_mat/Makefile flint-2.5.2-new/padic_mat/Makefile
+--- flint-2.5.2-orig/padic_mat/Makefile        2015-08-13 18:16:22.000000000 
+0200
++++ flint-2.5.2-new/padic_mat/Makefile 2016-11-07 18:41:09.148996528 +0100
+@@ -35,7 +35,7 @@
+       $(CC) $(CFLAGS) -c $(INCS) $< -o $@
+ 
+ $(MOD_LOBJ): $(LOBJS)
+-      $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib
++      $(CC) $(ABI_FLAG) -r $^ -o $@ -nostdlib
+ 
+ $(BUILD_DIR)/%.lo: %.c
+       $(CC) $(PICFLAG) $(CFLAGS) $(INCS) -c $< -o $@
+diff -ru flint-2.5.2-orig/padic_poly/Makefile 
flint-2.5.2-new/padic_poly/Makefile
+--- flint-2.5.2-orig/padic_poly/Makefile       2015-08-13 18:16:22.000000000 
+0200
++++ flint-2.5.2-new/padic_poly/Makefile        2016-11-07 18:41:09.148996528 
+0100
+@@ -35,7 +35,7 @@
+       $(CC) $(CFLAGS) -c $(INCS) $< -o $@
+ 
+ $(MOD_LOBJ): $(LOBJS)
+-      $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib
++      $(CC) $(ABI_FLAG) -r $^ -o $@ -nostdlib
+ 
+ $(BUILD_DIR)/%.lo: %.c
+       $(CC) $(PICFLAG) $(CFLAGS) $(INCS) -c $< -o $@
+diff -ru flint-2.5.2-orig/qadic/Makefile flint-2.5.2-new/qadic/Makefile
+--- flint-2.5.2-orig/qadic/Makefile    2015-08-13 18:16:22.000000000 +0200
++++ flint-2.5.2-new/qadic/Makefile     2016-11-07 18:41:09.148996528 +0100
+@@ -35,7 +35,7 @@
+       $(CC) $(CFLAGS) -c $(INCS) $< -o $@
+ 
+ $(MOD_LOBJ): $(LOBJS)
+-      $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib
++      $(CC) $(ABI_FLAG) -r $^ -o $@ -nostdlib
+ 
+ $(BUILD_DIR)/%.lo: %.c
+       $(CC) $(PICFLAG) $(CFLAGS) $(INCS) -c $< -o $@

diff --git a/sci-mathematics/flint/files/flint-2.5.2-utf8.patch 
b/sci-mathematics/flint/files/flint-2.5.2-utf8.patch
new file mode 100644
index 00000000000..de82fc49dd3
--- /dev/null
+++ b/sci-mathematics/flint/files/flint-2.5.2-utf8.patch
@@ -0,0 +1,13 @@
+diff --git a/fmpz_mat/doc/fmpz_mat.txt b/fmpz_mat/doc/fmpz_mat.txt
+index 2f07624..d741899 100644
+--- a/fmpz_mat/doc/fmpz_mat.txt
++++ b/fmpz_mat/doc/fmpz_mat.txt
+@@ -1114,7 +1114,7 @@ void fmpz_mat_gram(fmpz_mat_t B, const fmpz_mat_t A)
+ 
+     Sets \code{B} to the Gram matrix of the $m$-dimensional lattice \code{L} 
in 
+     $n$-dimensional Euclidean space $R^n$ spanned by the rows of
+-    the $m$ × $n$ matrix \code{A}. Dimensions must be compatible.
++    the $m \times n$ matrix \code{A}. Dimensions must be compatible.
+     \code{A} and \code{B} are allowed to be the same object if \code{A} is a 
+     square matrix.
+ 

diff --git a/sci-mathematics/flint/files/flintxx-include.patch 
b/sci-mathematics/flint/files/flintxx-include.patch
new file mode 100644
index 00000000000..cb6744e2364
--- /dev/null
+++ b/sci-mathematics/flint/files/flintxx-include.patch
@@ -0,0 +1,19 @@
+Fix include errors with flintxx
+
+https://github.com/wbhart/flint2/commit/c0768dc54b5ece38252857f8e7423d5ce81a43f7
+
+
+
+diff --git a/flintxx/flint_classes.h b/flintxx/flint_classes.h
+index eac2d1a..6baa392 100644
+--- a/flintxx/flint_classes.h
++++ b/flintxx/flint_classes.h
+@@ -27,7 +27,7 @@
+ // Contrary to other parts of this library, they are tailored very
+ // specifically towards FLINT.
+ 
+-#include "flint.h"
++#include "../flint.h"
+ #include "mp.h"
+ #include "expression.h"
+ #include "expression_traits.h"

diff --git a/sci-mathematics/flint/flint-2.5.2-r1.ebuild 
b/sci-mathematics/flint/flint-2.5.2-r1.ebuild
new file mode 100644
index 00000000000..795bf6e90c6
--- /dev/null
+++ b/sci-mathematics/flint/flint-2.5.2-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Fast Library for Number Theory"
+HOMEPAGE="http://www.flintlib.org/";
+SRC_URI="http://www.flintlib.org/${P}.tar.gz";
+
+LICENSE="LGPL-2.1+"
+SLOT="0/13"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="doc gc ntl static-libs"
+
+BDEPEND="doc? (
+       app-text/texlive-core
+       dev-texlive/texlive-latex
+       dev-texlive/texlive-latexextra
+)"
+DEPEND="dev-libs/gmp:=
+       dev-libs/mpfr:=
+       gc? ( dev-libs/boehm-gc )
+       ntl? ( dev-libs/ntl:= )"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+       "${FILESDIR}/flintxx-include.patch"
+       "${FILESDIR}/${PN}-2.5.2-pie.patch"
+       "${FILESDIR}/${PN}-2.5.2-utf8.patch"
+       "${FILESDIR}/${PN}-2.5.2-memory_message.patch"
+)
+
+src_prepare(){
+       default
+
+       # The autodetection finds "lib" first, which may e.g. contain 32-bit
+       # libs during a 64-bit build.
+       sed -e "s:{GMP_DIR}/lib\":{GMP_DIR}/$(get_libdir)\":g" \
+               -e "s:{MPFR_DIR}/lib\":{MPFR_DIR}/$(get_libdir)\":g" \
+               -e "s:{NTL_DIR}/lib\":{NTL_DIR}/$(get_libdir)\":g" \
+               -e "s:{GC_DIR}/lib\":{GC_DIR}/$(get_libdir)\":g" \
+               -i configure || die
+}
+
+src_configure() {
+       ./configure \
+               --prefix="${EPREFIX}/usr" \
+               --with-gmp="${EPREFIX}/usr" \
+               --with-mpfr="${EPREFIX}/usr" \
+               $(usex ntl "--with-ntl=${EPREFIX}/usr" "") \
+               $(use_enable static-libs static) \
+               $(usex gc "--with-gc=${EPREFIX}/usr" "") \
+               CC="$(tc-getCC)" \
+               CXX="$(tc-getCXX)" \
+               AR="$(tc-getAR)" \
+               || die
+}
+
+src_compile() {
+       emake verbose
+       use doc && emake -C doc/latex
+}
+
+src_test() {
+       emake AT= QUIET_CC= QUIET_CXX= QUIET_AR= check
+}
+
+src_install() {
+       emake DESTDIR="${D}" LIBDIR="$(get_libdir)" install
+       einstalldocs
+       use doc && dodoc doc/latex/flint-manual.pdf
+}

Reply via email to