diff options
author | 2023-03-27 17:13:14 +0700 | |
---|---|---|
committer | 2023-03-27 17:13:14 +0700 | |
commit | 0bf84e4b0b0d4690bbed0ef6bd6e0fbfe92730dc (patch) | |
tree | c9b509e24d1993dc2535455934d4c82ff4b71902 /sci-mathematics | |
parent | dev-java/javax-servlet-api: add 2.2 (diff) | |
download | gentoo-0bf84e4b0b0d4690bbed0ef6bd6e0fbfe92730dc.tar.gz gentoo-0bf84e4b0b0d4690bbed0ef6bd6e0fbfe92730dc.tar.bz2 gentoo-0bf84e4b0b0d4690bbed0ef6bd6e0fbfe92730dc.zip |
sci-mathematics/fricas: fix building with sbcl-2.3.2
Signed-off-by: Andrey Grozin <grozin@gentoo.org>
Diffstat (limited to 'sci-mathematics')
-rw-r--r-- | sci-mathematics/fricas/files/fricas-sbcl-2.3.2.patch | 18 | ||||
-rw-r--r-- | sci-mathematics/fricas/fricas-1.3.8-r1.ebuild | 112 |
2 files changed, 130 insertions, 0 deletions
diff --git a/sci-mathematics/fricas/files/fricas-sbcl-2.3.2.patch b/sci-mathematics/fricas/files/fricas-sbcl-2.3.2.patch new file mode 100644 index 000000000000..f5dd949abaa2 --- /dev/null +++ b/sci-mathematics/fricas/files/fricas-sbcl-2.3.2.patch @@ -0,0 +1,18 @@ +diff --git a/src/lisp/fricas-package.lisp b/src/lisp/fricas-package.lisp +index c0dfc4ef5..37e1afc1e 100644 +--- a/src/lisp/fricas-package.lisp ++++ b/src/lisp/fricas-package.lisp +@@ -34,7 +34,12 @@ + #+gcl + (shadow "QUIT") + +-(do-symbols (x "FRICAS-LISP") (export (list x))) ++;;; We use uninterned symbols because at this point we do not ++;;; want to add symbols to FRICAS-LISP ++(let ((#1=#:ls nil)) ++ (do-symbols (#2=#:el "FRICAS-LISP") (setf #1# (cons #2# #1#))) ++ (mapcar (lambda (#3=#:x) (export (list #3#))) #1#) ++) + + (export '(quit chdir |getEnv| |getCLArgs| |load_quietly| get-current-directory + trim-directory-name pad-directory-name diff --git a/sci-mathematics/fricas/fricas-1.3.8-r1.ebuild b/sci-mathematics/fricas/fricas-1.3.8-r1.ebuild new file mode 100644 index 000000000000..056e10ba687e --- /dev/null +++ b/sci-mathematics/fricas/fricas-1.3.8-r1.ebuild @@ -0,0 +1,112 @@ +# 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="http://fricas.sourceforge.net/ + https://github.com/fricas/fricas + https://fricas.github.io/" +SRC_URI="mirror://sourceforge/${PN}/${P}-full.tar.bz2" +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +# Supported lisps, number 0 is the default +LISPS=( sbcl cmucl gcl ecls clisp clozurecl ) +# Version restrictions, . means no restrictions +REST=( . . . . . . ) +# command name: . means just ${LISP} +COMS=( . lisp . ecl . ccl ) + +IUSE="${LISPS[*]} X emacs gmp" +RDEPEND="X? ( x11-libs/libXpm x11-libs/libICE ) + emacs? ( >=app-editors/emacs-23.1:* ) + gmp? ( dev-libs/gmp:= )" + +# Generating lisp deps +n=${#LISPS[*]} +for ((n--; n > 0; n--)); do + LISP=${LISPS[$n]} + if [ "${REST[$n]}" = "." ]; then + DEP="dev-lisp/${LISP}" + else + DEP="${REST[$n]}" + fi + RDEPEND="${RDEPEND} ${LISP}? ( ${DEP}:= ) !${LISP}? (" +done +if [ "${REST[0]}" = "." ]; then + DEP="dev-lisp/${LISPS[0]}" +else + DEP="${REST[0]}" +fi +RDEPEND="${RDEPEND} ${DEP}:=" +n=${#LISPS[*]} +for ((n--; n > 0; n--)); do + RDEPEND="${RDEPEND} )" +done + +DEPEND="${RDEPEND}" + +# necessary for clisp and gcl +RESTRICT="strip" + +PATCHES=( "${FILESDIR}"/${PN}-sbcl-2.3.2.patch ) + +src_configure() { + local LISP n GMP + LISP=sbcl + n=${#LISPS[*]} + for ((n--; n > 0; n--)); do + if use ${LISPS[$n]}; then + LISP=${COMS[$n]} + if [ "${LISP}" = "." ]; then + LISP=${LISPS[$n]} + fi + fi + done + einfo "Using lisp: ${LISP}" + + # bug #650788 + if [[ ${LISP} = sbcl || ${LISP} = ccl ]] + 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-site-file-install "${FILESDIR}"/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 +} |