commit:     b341492e256badccb690eafe93d34df68c9049a5
Author:     Andrey Grozin <grozin <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 19 12:42:48 2023 +0000
Commit:     Andrey Grozin <grozin <AT> gentoo <DOT> org>
CommitDate: Thu Oct 19 12:42:48 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b341492e

sci-mathematics/fricas: fix building with clozurecl

Bug: https://bugs.gentoo.org/915647
Signed-off-by: Andrey Grozin <grozin <AT> gentoo.org>

 .../fricas/files/fricas-sbcl-2.3.9.patch           | 22 +++---
 sci-mathematics/fricas/fricas-1.3.9-r3.ebuild      | 85 ++++++++++++++++++++++
 2 files changed, 95 insertions(+), 12 deletions(-)

diff --git a/sci-mathematics/fricas/files/fricas-sbcl-2.3.9.patch 
b/sci-mathematics/fricas/files/fricas-sbcl-2.3.9.patch
index 6f7440afecf5..f3a28ed57457 100644
--- a/sci-mathematics/fricas/files/fricas-sbcl-2.3.9.patch
+++ b/sci-mathematics/fricas/files/fricas-sbcl-2.3.9.patch
@@ -1,12 +1,11 @@
 diff --git a/src/lisp/num_gmp.lisp b/src/lisp/num_gmp.lisp
-index b58001e..9538e3c 100644
+index b58001e0b..f4a022ad4 100644
 --- a/src/lisp/num_gmp.lisp
 +++ b/src/lisp/num_gmp.lisp
-@@ -549,6 +549,20 @@
- ;;; (gmp-bignum-isqrt (expt 10 50))
- ;;; (gmp-bignum-isqrt (expt 2 127))
- #+:sbcl
-+
+@@ -646,14 +646,27 @@
+     (setf (symbol-function 'orig-isqrt)
+           (symbol-function 'common-lisp:isqrt)))
+
 +(defmacro negate_bignum(x)
 +    (let ((sym2
 +          (find-symbol "NEGATE-BIGNUM-NOT-FULLY-NORMALIZED" "SB-BIGNUM")))
@@ -20,10 +19,9 @@ index b58001e..9538e3c 100644
 +    )
 +)
 +
- (defun gmp-bignum-isqrt (x)
-   (let* ((len-x (sb-bignum::%bignum-length x))
-          (len-res (ceiling (+ 1 len-x) 2))
-@@ -652,8 +666,8 @@
+ (defun gmp-multiply-bignums0 (a b)
+   ;;; (declare (type bignum-type a b))
+   (let* ((a-plusp (sb-bignum::%bignum-0-or-plusp a
                    (sb-bignum::%bignum-length a)))
           (b-plusp (sb-bignum::%bignum-0-or-plusp b
                    (sb-bignum::%bignum-length b)))
@@ -34,7 +32,7 @@ index b58001e..9538e3c 100644
           (len-a (sb-bignum::%bignum-length a))
           (len-b (sb-bignum::%bignum-length b))
           (len-res (+ len-a len-b))
-@@ -697,10 +711,10 @@
+@@ -697,10 +710,10 @@
    (let* (
      (nx (if (sb-bignum::%bignum-0-or-plusp x (sb-bignum::%bignum-length x))
              (sb-bignum::copy-bignum x)
@@ -47,7 +45,7 @@ index b58001e..9538e3c 100644
      (xl (sb-bignum::%bignum-length nx))
      (yl (sb-bignum::%bignum-length ny))
      (rl (if (< xl yl) xl yl))
-@@ -735,9 +749,9 @@
+@@ -735,9 +748,9 @@
      (x-plusp (sb-bignum::%bignum-0-or-plusp x (sb-bignum::%bignum-length x)))
      (y-plusp (sb-bignum::%bignum-0-or-plusp y (sb-bignum::%bignum-length y)))
      (nx (if x-plusp x

diff --git a/sci-mathematics/fricas/fricas-1.3.9-r3.ebuild 
b/sci-mathematics/fricas/fricas-1.3.9-r3.ebuild
new file mode 100644
index 000000000000..6515c133f0ca
--- /dev/null
+++ b/sci-mathematics/fricas/fricas-1.3.9-r3.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit elisp-common
+
+DESCRIPTION="FriCAS is a fork of Axiom computer algebra system"
+HOMEPAGE="https://fricas.sourceforge.net/
+       https://github.com/fricas/fricas
+       https://fricas.github.io/";
+SRC_URI="mirror://sourceforge/${PN}/${PV}/${P}-full.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="+sbcl cmucl gcl ecl clisp clozurecl X emacs gmp"
+REQUIRED_USE="^^ ( sbcl cmucl gcl ecl clisp clozurecl )
+       gmp? ( ^^ ( sbcl clozurecl ) )"
+RDEPEND="sbcl? ( dev-lisp/sbcl:= )
+       cmucl? ( dev-lisp/cmucl:= )
+       gcl? ( dev-lisp/gcl:= )
+       ecl? ( dev-lisp/ecl:= )
+       clisp? ( dev-lisp/clisp:= )
+       clozurecl? ( dev-lisp/clozurecl:= )
+       X? ( x11-libs/libXpm x11-libs/libICE )
+       emacs? ( >=app-editors/emacs-23.1:* )
+       gmp? ( dev-libs/gmp:= )"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}"/${PN}-sbcl-2.3.9.patch )
+
+# necessary for clisp and gcl
+RESTRICT="strip"
+
+src_configure() {
+       local LISP GMP
+       use sbcl && LISP=sbcl
+       use cmucl && LISP=lisp
+       use gcl && LISP=gcl
+       use ecl && LISP=ecl
+       use clisp && LISP=clisp
+       use clozurecl && LISP=ccl
+
+       if use sbcl || use clozurecl
+       then GMP=$(use_with gmp)
+       else GMP=''
+       fi
+
+       # aldor is not yet in portage
+       econf --disable-aldor --with-lisp=${LISP} $(use_with X x) ${GMP}
+}
+
+src_compile() {
+       # bug #300132
+       emake -j1
+}
+
+src_test() {
+       emake -j1 all-input
+}
+
+src_install() {
+       emake -j1 DESTDIR="${D}" install
+       dodoc README.rst FAQ
+
+       if use emacs; then
+               sed -e "s|(setq load-path (cons (quote 
\"/usr/$(get_libdir)/fricas/emacs\") load-path)) ||" \
+                       -i "${D}"/usr/bin/efricas \
+                       || die "sed efricas failed"
+               elisp-install ${PN} "${D}"/usr/$(get_libdir)/${PN}/emacs/*.el
+               elisp-make-site-file 64${PN}-gentoo.el
+       else
+               rm "${D}"/usr/bin/efricas || die "rm efricas failed"
+       fi
+       rm -r "${D}"/usr/$(get_libdir)/${PN}/emacs || die "rm -r emacs failed"
+}
+
+pkg_postinst() {
+       use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}

Reply via email to