GNU bug report logs - #40283
[WIP PATCH] gnu: flint: Build with ntl.

Previous Next

Package: guix-patches;

Reported by: Jakub Kądziołka <kuba <at> kadziolka.net>

Date: Sun, 29 Mar 2020 20:33:02 UTC

Severity: normal

Tags: patch

Done: Jakub Kądziołka <kuba <at> kadziolka.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 40283 in the body.
You can then email your comments to 40283 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#40283; Package guix-patches. (Sun, 29 Mar 2020 20:33:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jakub Kądziołka <kuba <at> kadziolka.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 29 Mar 2020 20:33:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: guix-patches <at> gnu.org
Subject: [WIP PATCH] gnu: flint: Build with ntl.
Date: Sun, 29 Mar 2020 22:32:24 +0200
* gnu/packages/algebra.scm (flint)[inputs]: Add ntl.
  [arguments]: Pass --with-ntl to configure.
---
This is required by sagemath, but the patch as written makes the build
error:

/gnu/store/9yzqiiyfhxi4yhndp46nndi77ica9g4i-ntl-11.4.3/include/NTL/vector.h:201:31: error: invalid conversion from ‘const NTL::Vec<NTL::ZZ>*’ to ‘int’ [-fpermissive]
  201 | { VecStrategy<NTL_RELOC_TAG>::do_BlockConstructFromVec(p, n, q); }
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~
      |                               |
      |                               const NTL::Vec<NTL::ZZ>*

Arch Linux seems to be using the same version of ntl and flint, and I
don't see any special workarounds in their PKGBUILDs. I guessed that the
gcc version might be influencing things, but adding gcc-9 to
native-inputs didn't help. Does Guix set up GCC with some non-standard
default flags, maybe?

 gnu/packages/algebra.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index af50c2d775..99b69eba96 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -445,6 +445,8 @@ or text interfaces) or as a C++ library.")
                      "11syazv1a8rrnac3wj3hnyhhflpqcmq02q8pqk2m6g2k6h0gxwfb"))
             (patches (search-patches "flint-ldconfig.patch"))))
    (build-system gnu-build-system)
+   (inputs
+    `(("ntl" ,ntl)))
    (propagated-inputs
     `(("gmp" ,gmp)
       ("mpfr" ,mpfr))) ; header files from both are included by flint/arith.h
@@ -456,13 +458,15 @@ or text interfaces) or as a C++ library.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
                    (gmp (assoc-ref inputs "gmp"))
-                   (mpfr (assoc-ref inputs "mpfr")))
+                   (mpfr (assoc-ref inputs "mpfr"))
+                   (ntl (assoc-ref inputs "ntl")))
                ;; do not pass "--enable-fast-install", which makes the
                ;; homebrew configure process fail
                (invoke "./configure"
                        (string-append "--prefix=" out)
                        (string-append "--with-gmp=" gmp)
-                       (string-append "--with-mpfr=" mpfr))
+                       (string-append "--with-mpfr=" mpfr)
+                       (string-append "--with-ntl=" ntl))
                #t))))))
    (synopsis "Fast library for number theory")
    (description
-- 
2.26.0





Information forwarded to guix-patches <at> gnu.org:
bug#40283; Package guix-patches. (Tue, 31 Mar 2020 15:13:02 GMT) Full text and rfc822 format available.

Message #8 received at 40283 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Jakub Kądziołka <kuba <at> kadziolka.net>,
 40283 <at> debbugs.gnu.org
Subject: Re: [bug#40283] [WIP PATCH] gnu: flint: Build with ntl.
Date: Tue, 31 Mar 2020 17:12:24 +0200
[Message part 1 (text/plain, inline)]
Jakub Kądziołka <kuba <at> kadziolka.net> writes:

> * gnu/packages/algebra.scm (flint)[inputs]: Add ntl.
>   [arguments]: Pass --with-ntl to configure.
> ---
> This is required by sagemath, but the patch as written makes the build
> error:
>
> /gnu/store/9yzqiiyfhxi4yhndp46nndi77ica9g4i-ntl-11.4.3/include/NTL/vector.h:201:31: error: invalid conversion from ‘const NTL::Vec<NTL::ZZ>*’ to ‘int’ [-fpermissive]
>   201 | { VecStrategy<NTL_RELOC_TAG>::do_BlockConstructFromVec(p, n, q); }
>       |                               ^~~~~~~~~~~~~~~~~~~~~~~~
>       |                               |
>       |                               const NTL::Vec<NTL::ZZ>*
>
> Arch Linux seems to be using the same version of ntl and flint, and I
> don't see any special workarounds in their PKGBUILDs. I guessed that the
> gcc version might be influencing things, but adding gcc-9 to
> native-inputs didn't help. Does Guix set up GCC with some non-standard
> default flags, maybe?

This is because of -Werror, which is not supposed to trigger on external
dependencies.  The issue has been fixed on 'core-updates' where
dependencies are added on C_INCLUDE_PATH (which behave like -isystem)
instead of CPATH (which behave like -I).
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#40283; Package guix-patches. (Wed, 01 Apr 2020 13:16:02 GMT) Full text and rfc822 format available.

Message #11 received at 40283 <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 40283 <at> debbugs.gnu.org
Subject: Re: [bug#40283] [WIP PATCH] gnu: flint: Build with ntl.
Date: Wed, 1 Apr 2020 15:15:52 +0200
[Message part 1 (text/plain, inline)]
On Tue, Mar 31, 2020 at 05:12:24PM +0200, Marius Bakke wrote:
> Jakub Kądziołka <kuba <at> kadziolka.net> writes:
> 
> > * gnu/packages/algebra.scm (flint)[inputs]: Add ntl.
> >   [arguments]: Pass --with-ntl to configure.
> > ---
> > This is required by sagemath, but the patch as written makes the build
> > error:
> >
> > /gnu/store/9yzqiiyfhxi4yhndp46nndi77ica9g4i-ntl-11.4.3/include/NTL/vector.h:201:31: error: invalid conversion from ‘const NTL::Vec<NTL::ZZ>*’ to ‘int’ [-fpermissive]
> >   201 | { VecStrategy<NTL_RELOC_TAG>::do_BlockConstructFromVec(p, n, q); }
> >       |                               ^~~~~~~~~~~~~~~~~~~~~~~~
> >       |                               |
> >       |                               const NTL::Vec<NTL::ZZ>*
> >
> > Arch Linux seems to be using the same version of ntl and flint, and I
> > don't see any special workarounds in their PKGBUILDs. I guessed that the
> > gcc version might be influencing things, but adding gcc-9 to
> > native-inputs didn't help. Does Guix set up GCC with some non-standard
> > default flags, maybe?
> 
> This is because of -Werror, which is not supposed to trigger on external
> dependencies.  The issue has been fixed on 'core-updates' where
> dependencies are added on C_INCLUDE_PATH (which behave like -isystem)
> instead of CPATH (which behave like -I).

Thanks! I had a guess it was about -Werror, but I don't think I would've
figured out the CPATH vs C_INCLUDE_PATH bit. As far as I understand,
we're relatively close to merging c-u into master, and the patch is far
from urgent, so I won't bother with trying to come up with a workaround.

Cheers,
Jakub Kądziołka
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#40283; Package guix-patches. (Mon, 08 Jun 2020 11:06:01 GMT) Full text and rfc822 format available.

Message #14 received at 40283 <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: 40283 <at> debbugs.gnu.org
Cc: mbakke <at> fastmail.com
Subject: [PATCH v2 2/3] gnu: flint: Build with ntl.
Date: Mon,  8 Jun 2020 13:05:49 +0200
* gnu/packages/algebra.scm (flint)[inputs]: Add ntl.
  [arguments]: Pass --with-ntl to configure.
---
 gnu/packages/algebra.scm | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 4559293a03..6b632d3e95 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -447,6 +447,8 @@ or text interfaces) or as a C++ library.")
             (sha256 (base32
                      "0h08a71kn8347zsqjamqnmrxjpsnnzpmhvxb6d2xmfrcs6nyv2ch"))))
    (build-system gnu-build-system)
+   (inputs
+    `(("ntl" ,ntl)))
    (propagated-inputs
     `(("gmp" ,gmp)
       ("mpfr" ,mpfr))) ; header files from both are included by flint/arith.h
@@ -454,17 +456,24 @@ or text interfaces) or as a C++ library.")
     `(#:parallel-tests? #f ; seems to be necessary on arm
       #:phases
        (modify-phases %standard-phases
+         (add-before 'configure 'newer-c++
+           (lambda _
+             (substitute* "configure"
+               (("-ansi") ""))
+             #t))
          (replace 'configure
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
                    (gmp (assoc-ref inputs "gmp"))
-                   (mpfr (assoc-ref inputs "mpfr")))
+                   (mpfr (assoc-ref inputs "mpfr"))
+                   (ntl (assoc-ref inputs "ntl")))
                ;; do not pass "--enable-fast-install", which makes the
                ;; homebrew configure process fail
                (invoke "./configure"
                        (string-append "--prefix=" out)
                        (string-append "--with-gmp=" gmp)
-                       (string-append "--with-mpfr=" mpfr))
+                       (string-append "--with-mpfr=" mpfr)
+                       (string-append "--with-ntl=" ntl))
                #t))))))
    (synopsis "Fast library for number theory")
    (description
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#40283; Package guix-patches. (Mon, 08 Jun 2020 11:07:02 GMT) Full text and rfc822 format available.

Message #17 received at 40283 <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: 40283 <at> debbugs.gnu.org
Cc: mbakke <at> fastmail.com
Subject: [PATCH v2 1/3] gnu: flint: Update to 2.6.0.
Date: Mon,  8 Jun 2020 13:05:48 +0200
* gnu/packages/algebra.scm (flint): Update to 2.6.0.
* gnu/packages/patches/flint-ldconfig.patch: Remove the patch as it got
  applied upstream.
* gnu/local.mk (dist_patch_DATA): Deregister the removed file.
---
 gnu/local.mk                              |  1 -
 gnu/packages/algebra.scm                  |  5 ++---
 gnu/packages/patches/flint-ldconfig.patch | 26 -----------------------
 3 files changed, 2 insertions(+), 30 deletions(-)
 delete mode 100644 gnu/packages/patches/flint-ldconfig.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ae8a2275f7..27e96ea77b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -921,7 +921,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/findutils-localstatedir.patch		\
   %D%/packages/patches/findutils-test-rwlock-threads.patch	\
   %D%/packages/patches/flann-cmake-3.11.patch			\
-  %D%/packages/patches/flint-ldconfig.patch			\
   %D%/packages/patches/foobillard++-pkg-config.patch		\
   %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch	\
   %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch	\
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 1008d24cd3..4559293a03 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -438,15 +438,14 @@ or text interfaces) or as a C++ library.")
 (define-public flint
   (package
    (name "flint")
-   (version "2.5.2")
+   (version "2.6.0")
    (source (origin
             (method url-fetch)
             (uri (string-append
                   "http://flintlib.org/flint-"
                   version ".tar.gz"))
             (sha256 (base32
-                     "11syazv1a8rrnac3wj3hnyhhflpqcmq02q8pqk2m6g2k6h0gxwfb"))
-            (patches (search-patches "flint-ldconfig.patch"))))
+                     "0h08a71kn8347zsqjamqnmrxjpsnnzpmhvxb6d2xmfrcs6nyv2ch"))))
    (build-system gnu-build-system)
    (propagated-inputs
     `(("gmp" ,gmp)
diff --git a/gnu/packages/patches/flint-ldconfig.patch b/gnu/packages/patches/flint-ldconfig.patch
deleted file mode 100644
index d7c66e17ab..0000000000
--- a/gnu/packages/patches/flint-ldconfig.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Patch by Andreas Enge <andreas <at> enge.fr>.
-Remedy the absence of ldconfig and explicitly create an additional symbolic
-link to the flint library, as discussed privately with upstream.
-
-diff -r -u flint-2.5.2.orig/configure flint-2.5.2/configure
---- flint-2.5.2.orig/configure	2015-08-13 18:16:22.000000000 +0200
-+++ flint-2.5.2/configure	2015-08-14 17:38:14.316284437 +0200
-@@ -714,6 +714,7 @@
- echo "FLINT_SHARED=$SHARED" >> Makefile
- echo "FLINT_LIB=$FLINT_LIB" >> Makefile
- echo "FLINT_LIBNAME=$FLINT_LIBNAME" >> Makefile
-+echo "FLINT_MAJOR=$FLINT_MAJOR" >> Makefile
- echo "FLINT_SOLIB=$FLINT_SOLIB" >> Makefile
- echo "EXEEXT=$EXEEXT" >> Makefile
- echo "PREFIX=$PREFIX" >> Makefile
-diff -r -u flint-2.5.2.orig/Makefile.in flint-2.5.2/Makefile.in
---- flint-2.5.2.orig/Makefile.in	2015-08-13 18:16:22.000000000 +0200
-+++ flint-2.5.2/Makefile.in	2015-08-14 17:38:50.584774817 +0200
-@@ -118,6 +118,7 @@
- 		$(LDCONFIG) -n "$(CURDIR)"; \
- 	fi
- 	ln -sf "$(FLINT_LIB)" "$(FLINT_LIBNAME)"; \
-+	ln -sf "$(FLINT_LIB)" "$(FLINT_LIBNAME).$(FLINT_MAJOR)"; \
- 
- libflint.a: $(OBJS) $(LIB_SOURCES) $(EXT_SOURCES) $(HEADERS) $(EXT_HEADERS) | build build/interfaces
- 	$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(filter-out %templates, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h))), mkdir -p build/$(dir); BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) static || exit $$?;))
-- 
2.26.2





Information forwarded to guix-patches <at> gnu.org:
bug#40283; Package guix-patches. (Mon, 08 Jun 2020 11:07:02 GMT) Full text and rfc822 format available.

Message #20 received at 40283 <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: 40283 <at> debbugs.gnu.org
Cc: mbakke <at> fastmail.com
Subject: [PATCH v2 3/3] gnu: arb: Build with flint 2.6.
Date: Mon,  8 Jun 2020 13:05:50 +0200
Backport an upstream patch to fix a compatibility issue with flint 2.6.

* gnu/packages/algebra.scm (arb): Add patch.
* gnu/packages/patches/arb-flint-2.6.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register new file.
---
 gnu/local.mk                             |  1 +
 gnu/packages/algebra.scm                 |  3 +-
 gnu/packages/patches/arb-flint-2.6.patch | 48 ++++++++++++++++++++++++
 3 files changed, 51 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/arb-flint-2.6.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 27e96ea77b..3ed0a98687 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -754,6 +754,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch	\
   %D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch	\
   %D%/packages/patches/apr-skip-getservbyname-test.patch	\
+  %D%/packages/patches/arb-flint-2.6.patch			\
   %D%/packages/patches/aspell-default-dict-dir.patch		\
   %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
   %D%/packages/patches/ath9k-htc-firmware-gcc.patch		\
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 6b632d3e95..aceaee52f9 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -502,7 +502,8 @@ fast arithmetic.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05lpy3hkl5f8ik19aw40cqydrb932xaf2n8hbq9ib5dnk7f010p1"))))
+                "05lpy3hkl5f8ik19aw40cqydrb932xaf2n8hbq9ib5dnk7f010p1"))
+              (patches (search-patches "arb-flint-2.6.patch"))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("flint" ,flint)))               ; flint.h is included by arf.h
diff --git a/gnu/packages/patches/arb-flint-2.6.patch b/gnu/packages/patches/arb-flint-2.6.patch
new file mode 100644
index 0000000000..98ff5e95b4
--- /dev/null
+++ b/gnu/packages/patches/arb-flint-2.6.patch
@@ -0,0 +1,48 @@
+From d3d9983231e0f034e86a1e75761627eb8213b704 Mon Sep 17 00:00:00 2001
+From: fredrik <fredrik.johansson <at> gmail.com>
+Date: Wed, 29 Apr 2020 13:41:36 +0200
+Subject: [PATCH] handle flint incompatibilities
+
+---
+ fmpr.h        | 4 ++++
+ fmpz_extras.h | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/fmpr.h b/fmpr.h
+index 2204d72e..c6a8c342 100644
+--- a/fmpr.h
++++ b/fmpr.h
+@@ -22,7 +22,11 @@
+ #include "flint/flint.h"
+ #include "flint/fmpz.h"
+ #include "flint/fmpq.h"
++#if __FLINT_RELEASE < 20600
+ #include "flint/config.h"
++#else
++#include "flint/flint-config.h"
++#endif
+ #include "fmpz_extras.h"
+ 
+ #ifndef flint_abort
+diff --git a/fmpz_extras.h b/fmpz_extras.h
+index 4fd0538f..486e28c8 100644
+--- a/fmpz_extras.h
++++ b/fmpz_extras.h
+@@ -43,6 +43,8 @@ fmpz_add_inline(fmpz_t z, const fmpz_t x, const fmpz_t y)
+         fmpz_add(z, x, y);
+ }
+ 
++#if __FLINT_RELEASE < 20600
++
+ static __inline__ void
+ fmpz_add_si(fmpz_t z, const fmpz_t x, slong y)
+ {
+@@ -61,6 +63,8 @@ fmpz_sub_si(fmpz_t z, const fmpz_t x, slong y)
+         fmpz_add_ui(z, x, -y);
+ }
+ 
++#endif
++
+ static __inline__ void
+ fmpz_add_si_inline(fmpz_t z, const fmpz_t x, slong y)
+ {
-- 
2.26.2





Reply sent to Jakub Kądziołka <kuba <at> kadziolka.net>:
You have taken responsibility. (Fri, 10 Jul 2020 21:07:02 GMT) Full text and rfc822 format available.

Notification sent to Jakub Kądziołka <kuba <at> kadziolka.net>:
bug acknowledged by developer. (Fri, 10 Jul 2020 21:07:02 GMT) Full text and rfc822 format available.

Message #25 received at 40283-done <at> debbugs.gnu.org (full text, mbox):

From: Jakub Kądziołka <kuba <at> kadziolka.net>
To: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Cc: 41971 <at> debbugs.gnu.org, andreas <at> enge.fr, 40283-done <at> debbugs.gnu.org
Subject: Re: [bug#41971] [WIP PATCH 0/5] Add SageMath
Date: Fri, 10 Jul 2020 23:06:40 +0200
[Message part 1 (text/plain, inline)]
On Tue, Jul 07, 2020 at 02:47:28PM +0200, Nicolas Goaziou wrote:
> Hello,
> 
> Jakub Kądziołka <kuba <at> kadziolka.net> writes:
> 
> > This patchstack builds upon #40283 and packages (some of) SageMath.
> > Currently, sagelib is built successfully, but the `sage' binary is not
> > being installed. I'm submitting this here as I'm no longer actively
> > working on this for now. Some things remain to be done:
> 
> Thanks!
> 
> Would it make sense to add the uncontroversial fourth first patches,
> along with #40283, so it is easier to hack on the sagemath package
> itself?

Sure it would! I just did.

> I'm also Cc'ing Andreas Enge, who showed interest in packaging Sagemath
> a few months ago, and, AFAIK, was close to succeeding.

Thanks!

Regards,
Jakub Kądziołka
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 08 Aug 2020 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 251 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.