summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sci-mathematics/maxima/ChangeLog8
-rw-r--r--sci-mathematics/maxima/files/maxima-5.19.1-no-init-files.patch28
-rw-r--r--sci-mathematics/maxima/maxima-5.19.1.ebuild180
-rw-r--r--sci-mathematics/maxima/metadata.xml4
4 files changed, 218 insertions, 2 deletions
diff --git a/sci-mathematics/maxima/ChangeLog b/sci-mathematics/maxima/ChangeLog
index 08b4359f6037..509f6b39ab78 100644
--- a/sci-mathematics/maxima/ChangeLog
+++ b/sci-mathematics/maxima/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sci-mathematics/maxima
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/maxima/ChangeLog,v 1.68 2009/08/03 21:38:07 maekke Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/maxima/ChangeLog,v 1.69 2009/08/22 07:45:28 grozin Exp $
+
+*maxima-5.19.1 (22 Aug 2009)
+
+ 22 Aug 2009; Andrey Grozin <grozin@gentoo.org> +maxima-5.19.1.ebuild,
+ +files/maxima-5.19.1-no-init-files.patch:
+ Version bump; added ecl as a supported lisp
03 Aug 2009; Markus Meier <maekke@gentoo.org> maxima-5.18.1.ebuild:
amd64 stable, bug #264649
diff --git a/sci-mathematics/maxima/files/maxima-5.19.1-no-init-files.patch b/sci-mathematics/maxima/files/maxima-5.19.1-no-init-files.patch
new file mode 100644
index 000000000000..7141d81e91c2
--- /dev/null
+++ b/sci-mathematics/maxima/files/maxima-5.19.1-no-init-files.patch
@@ -0,0 +1,28 @@
+diff -r -U2 maxima-5.19.1.orig/src/maxima.in maxima-5.19.1/src/maxima.in
+--- maxima-5.19.1.orig/src/maxima.in 2009-07-13 17:25:25.000000000 +0200
++++ maxima-5.19.1/src/maxima.in 2009-08-20 14:43:49.000000000 +0200
+@@ -130,13 +130,13 @@
+ if [ "$MAXIMA_LISP" = "clisp" ]; then
+ if [ "$layout_autotools" = "true" ]; then
+- exec "$MAXIMA_IMAGESDIR/binary-$MAXIMA_LISP/@CLISP_RUNTIME@" $MAXIMA_LISP_OPTIONS -q -M "$maxima_image_base.mem" "" -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
++ exec "$MAXIMA_IMAGESDIR/binary-$MAXIMA_LISP/@CLISP_RUNTIME@" $MAXIMA_LISP_OPTIONS -q -norc -M "$maxima_image_base.mem" "" -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
+ else
+- exec "@CLISP_NAME@" $MAXIMA_LISP_OPTIONS -q -M "$maxima_image_base.mem" "" -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
++ exec "@CLISP_NAME@" $MAXIMA_LISP_OPTIONS -q -norc -M "$maxima_image_base.mem" "" -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
+ fi
+ elif [ "$MAXIMA_LISP" = "cmucl" ]; then
+ if [ "$layout_autotools" = "true" ]; then
+- exec "$MAXIMA_IMAGESDIR/binary-$MAXIMA_LISP/@CMUCL_RUNTIME@" $MAXIMA_LISP_OPTIONS -quiet -core "$maxima_image_base.core" -eval '(cl-user::run)' -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
++ exec "$MAXIMA_IMAGESDIR/binary-$MAXIMA_LISP/@CMUCL_RUNTIME@" $MAXIMA_LISP_OPTIONS -quiet -nositeinit -noinit -core "$maxima_image_base.core" -eval '(cl-user::run)' -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
+ else
+- exec "@CMUCL_NAME@" $MAXIMA_LISP_OPTIONS -quiet -core "$maxima_image_base.core" -eval '(cl-user::run)' -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
++ exec "@CMUCL_NAME@" $MAXIMA_LISP_OPTIONS -quiet -nositeinit -noinit -core "$maxima_image_base.core" -eval '(cl-user::run)' -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
+ fi
+ elif [ "$MAXIMA_LISP" = "scl" ]; then
+@@ -159,5 +159,5 @@
+ exec "$maxima_image_base" $MAXIMA_LISP_OPTIONS -- "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
+ elif [ "$MAXIMA_LISP" = "sbcl" ]; then
+- exec "@SBCL_NAME@" --core "$maxima_image_base.core" --noinform $MAXIMA_LISP_OPTIONS --end-runtime-options --eval '(cl-user::run)' --end-toplevel-options "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
++ exec "@SBCL_NAME@" --core "$maxima_image_base.core" --noinform $MAXIMA_LISP_OPTIONS --end-runtime-options --no-sysinit --no-userinit --eval '(cl-user::run)' --end-toplevel-options "$arg1" "$arg2" "$arg3" "$arg4" "$arg5" "$arg6" "$arg7" "$arg8" "$arg9"
+ else
+ echo "$0: lisp=\"$MAXIMA_LISP\" not known. Use --list-avail to see possible options." >&2
diff --git a/sci-mathematics/maxima/maxima-5.19.1.ebuild b/sci-mathematics/maxima/maxima-5.19.1.ebuild
new file mode 100644
index 000000000000..62de0f0680f4
--- /dev/null
+++ b/sci-mathematics/maxima/maxima-5.19.1.ebuild
@@ -0,0 +1,180 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/maxima/maxima-5.19.1.ebuild,v 1.1 2009/08/22 07:45:28 grozin Exp $
+EAPI=2
+inherit eutils elisp-common
+
+DESCRIPTION="Free computer algebra environment based on Macsyma"
+HOMEPAGE="http://maxima.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2 AECA"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+# Supported lisps with readline
+SUPP_RL="gcl clisp"
+# Supported lisps without readline
+SUPP_NORL="cmucl sbcl ecl"
+SUPP_LISPS="${SUPP_RL} ${SUPP_NORL}"
+# Default lisp if none selected
+DEF_LISP="sbcl"
+
+IUSE="latex emacs tk nls unicode xemacs X ${SUPP_LISPS} ${IUSE}"
+
+# Languages
+LANGS="es pt pt_BR"
+for lang in ${LANGS}; do
+ IUSE="${IUSE} linguas_${lang}"
+done
+
+RDEPEND="X? ( x11-misc/xdg-utils
+ sci-visualization/gnuplot[gd]
+ tk? ( dev-lang/tk ) )
+ latex? ( virtual/latex-base )
+ emacs? ( virtual/emacs
+ latex? ( app-emacs/auctex ) )
+ xemacs? ( app-editors/xemacs
+ latex? ( app-emacs/auctex ) )"
+
+PDEPEND="emacs? ( app-emacs/imaxima )"
+
+# create lisp dependencies
+for LISP in ${SUPP_LISPS}; do
+ if [ "${LISP}" = "gcl" ]
+ then
+ RDEPEND="${RDEPEND} gcl? ( >=dev-lisp/gcl-2.6.8_pre[ansi] )"
+ else if [ "${LISP}" = "ecl" ]
+ then
+ RDEPEND="${RDEPEND} ecl? ( >=dev-lisp/ecls-9.8.3 )"
+ else
+ RDEPEND="${RDEPEND} ${LISP}? ( dev-lisp/${LISP} )"
+ fi
+ fi
+ DEF_DEP="${DEF_DEP} !${LISP}? ( "
+done
+DEF_DEP="${DEF_DEP} dev-lisp/${DEF_LISP}"
+for LISP in ${SUPP_NORL}; do
+ RDEPEND="${RDEPEND} ${LISP}? ( app-misc/rlwrap )"
+ [[ ${LISP} = ${DEF_LISP} ]] && \
+ DEF_DEP="${DEF_DEP} app-misc/rlwrap"
+done
+for LISP in ${SUPP_LISPS}; do
+ DEF_DEP="${DEF_DEP} )"
+done
+
+RDEPEND="${RDEPEND}
+ ${DEF_DEP}"
+
+DEPEND="${RDEPEND}
+ sys-apps/texinfo"
+
+TEXMF=/usr/share/texmf-site
+NO_INIT_PATCH_PV="5.19.1"
+
+pkg_setup() {
+ LISPS=""
+
+ for LISP in ${SUPP_LISPS}; do
+ use ${LISP} && LISPS="${LISPS} ${LISP}"
+ done
+
+ RL=""
+
+ for LISP in ${SUPP_NORL}; do
+ use ${LISP} && RL="yes"
+ done
+
+ if [ -z "${LISPS}" ]; then
+ ewarn "No lisp specified in USE flags, choosing ${DEF_LISP} as default"
+ LISPS="${DEF_LISP}"
+ RL="yes"
+ fi
+}
+
+src_prepare() {
+ # use xdg-open to view ps, pdf
+ epatch "${FILESDIR}"/${PN}-xdg-utils.patch
+ epatch "${FILESDIR}"/${PN}-${NO_INIT_PATCH_PV}-no-init-files.patch
+ # remove rmaxima if neither cmucl nor sbcl
+ if [ -z "${RL}" ]; then
+ sed -e '/^@WIN32_FALSE@bin_SCRIPTS/s/rmaxima//' \
+ -i "${S}"/src/Makefile.in \
+ || die "sed for rmaxima failed"
+ fi
+ # don't install imaxima, since we have a separate package for it
+ sed -i -e '/^SUBDIRS/s/imaxima//' interfaces/emacs/Makefile.in \
+ || die "sed for imaxima failed"
+}
+
+src_configure() {
+ local myconf=""
+ for LISP in ${LISPS}; do
+ myconf="${myconf} --enable-${LISP}"
+ done
+
+ # remove xmaxima if no tk
+ if use tk; then
+ myconf="${myconf} --with-wish=wish"
+ else
+ myconf="${myconf} --with-wish=none"
+ sed -i \
+ -e '/^SUBDIRS/s/xmaxima//' \
+ interfaces/Makefile.in || die "sed for tk failed"
+ fi
+
+ # enable existing translated doc
+ if use nls; then
+ for lang in ${LANGS}; do
+ if use "linguas_${lang}"; then
+ myconf="${myconf} --enable-lang-${lang}"
+ use unicode && myconf="${myconf} --enable-lang-${lang}-utf8"
+ fi
+ done
+ fi
+
+ econf ${myconf}
+}
+
+src_install() {
+ einstall emacsdir="${D}${SITELISP}/${PN}" || die "einstall failed"
+
+ use tk && make_desktop_entry xmaxima xmaxima \
+ /usr/share/${PN}/${PV}/xmaxima/maxima-new.png \
+ "Science;Math;Education"
+
+ if use latex; then
+ insinto ${TEXMF}/tex/latex/emaxima
+ doins interfaces/emacs/emaxima/emaxima.sty
+ fi
+
+ # do not use dodoc because interfaces can't read compressed files
+ # read COPYING before attempt to remove it from dodoc
+ insinto /usr/share/${PN}/${PV}/doc
+ doins AUTHORS COPYING README README.lisps || die
+ dodir /usr/share/doc
+ dosym ../${PN}/${PV}/doc /usr/share/doc/${PF} || die
+
+ if use emacs; then
+ elisp-site-file-install "${FILESDIR}"/50maxima-gentoo.el || die
+ fi
+}
+
+pkg_preinst() {
+ # some lisps do not read compress info files (bug #176411)
+ for infofile in "${D}"/usr/share/info/*.bz2 ; do
+ bunzip2 "${infofile}"
+ done
+ for infofile in "${D}"/usr/share/info/*.gz ; do
+ gunzip "${infofile}"
+ done
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ use latex && mktexlsr
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/sci-mathematics/maxima/metadata.xml b/sci-mathematics/maxima/metadata.xml
index a2363e0a621d..2cde5ed3993c 100644
--- a/sci-mathematics/maxima/metadata.xml
+++ b/sci-mathematics/maxima/metadata.xml
@@ -13,7 +13,7 @@
and can plot functions and data in two and three dimensions.
</longdescription>
<use>
- <flag name='clisp'>Add support for GNU ANSI Common Lisp
+ <flag name='clisp'>Add support for GNU CLISP
(<pkg>dev-lisp/clisp</pkg>)</flag>
<flag name='cmucl'>Add support for CMU Common Lisp
(<pkg>dev-lisp/cmucl</pkg>)</flag>
@@ -21,5 +21,7 @@
(<pkg>dev-lisp/gcl</pkg>)</flag>
<flag name='sbcl'>Add support for Steel Bank Common Lisp
(<pkg>dev-lisp/sbcl</pkg>)</flag>
+ <flag name='ecl'>Add support for Embeddable Common Lisp
+ (<pkg>dev-lisp/ecls</pkg>)</flag>
</use>
</pkgmetadata>