diff options
author | Thomas Kahle <tomka@gentoo.org> | 2012-03-24 21:28:09 +0000 |
---|---|---|
committer | Thomas Kahle <tomka@gentoo.org> | 2012-03-24 21:28:09 +0000 |
commit | e9a8fc199af8a7261160b164cdc3810060900825 (patch) | |
tree | 9bef853e068a49290541156efd2053a432d0a0ea /sci-mathematics | |
parent | Make opengl dependency soft in kde-workspace (except kwin) (diff) | |
download | gentoo-2-e9a8fc199af8a7261160b164cdc3810060900825.tar.gz gentoo-2-e9a8fc199af8a7261160b164cdc3810060900825.tar.bz2 gentoo-2-e9a8fc199af8a7261160b164cdc3810060900825.zip |
add 3.1.4 with python support. Kudos to all contributors from lmona.de and sage-on-gentoo
(Portage version: 2.1.10.50/cvs/Linux x86_64)
Diffstat (limited to 'sci-mathematics')
-rw-r--r-- | sci-mathematics/singular/ChangeLog | 11 | ||||
-rw-r--r-- | sci-mathematics/singular/files/singular-3.1.3.2-python.patch | 45 | ||||
-rw-r--r-- | sci-mathematics/singular/singular-3.1.4.ebuild | 179 |
3 files changed, 233 insertions, 2 deletions
diff --git a/sci-mathematics/singular/ChangeLog b/sci-mathematics/singular/ChangeLog index 0b114dbd6142..e74868034785 100644 --- a/sci-mathematics/singular/ChangeLog +++ b/sci-mathematics/singular/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sci-mathematics/singular -# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/singular/ChangeLog,v 1.48 2011/12/23 12:49:25 tomka Exp $ +# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/singular/ChangeLog,v 1.49 2012/03/24 21:28:09 tomka Exp $ + +*singular-3.1.4 (24 Mar 2012) + + 24 Mar 2012; Thomas Kahle <tomka@gentoo.org> + +files/singular-3.1.3.2-python.patch, +singular-3.1.4.ebuild: + add 3.1.4 with python support. Kudos to all contributors from lmona.de and + sage-on-gentoo *singular-3.1.3.3 (23 Dec 2011) diff --git a/sci-mathematics/singular/files/singular-3.1.3.2-python.patch b/sci-mathematics/singular/files/singular-3.1.3.2-python.patch new file mode 100644 index 000000000000..2cc29c9a553b --- /dev/null +++ b/sci-mathematics/singular/files/singular-3.1.3.2-python.patch @@ -0,0 +1,45 @@ +--- Singular/pyobject.cc.orig 2011-01-31 15:03:16.000000000 +0100 ++++ Singular/pyobject.cc 2011-08-24 17:22:57.000000000 +0200 +@@ -14,7 +14,7 @@ + + + +- ++#include <Python.h> + + #include <Singular/mod2.h> + +@@ -27,7 +27,7 @@ + + #include <Singular/lists.h> + +-#include <Python.h> ++ + #include <iterator> // std::distance + #include <stdio.h> + +@@ -592,11 +592,12 @@ + long len = newElts.size(); + for (long idx = 0; idx < len; ++idx) + { +- char* name = newElts[idx][0].str(); ++ PythonObject current (newElts[idx]); ++ char* name = current.operator[](0).str(); + if (name && (*name != '\0') && (*name != '_')) + { + Py_XDECREF(get_current_definition(name)); +- newElts[idx][1].import_as(name); ++ newElts[idx].operator[](1).import_as(name); + } + + } +--- Singular/pyobject_setup.cc.orig 2011-02-10 19:15:30.000000000 +0100 ++++ Singular/pyobject_setup.cc 2011-08-24 17:23:55.000000000 +0200 +@@ -12,6 +12,7 @@ + **/ + //***************************************************************************** + ++#include <Python.h> + #include <Singular/mod2.h> + #include <kernel/febase.h> + #include "static.h" diff --git a/sci-mathematics/singular/singular-3.1.4.ebuild b/sci-mathematics/singular/singular-3.1.4.ebuild new file mode 100644 index 000000000000..8e873334db19 --- /dev/null +++ b/sci-mathematics/singular/singular-3.1.4.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/singular/singular-3.1.4.ebuild,v 1.1 2012/03/24 21:28:09 tomka Exp $ + +EAPI="3" +WANT_AUTOCONF="2.1" # Upstream ticket 240 -> wontfix + +PYTHON_DEPEND="python? 2" + +# Upstream does not care about tests. +RESTRICT="test" + +inherit autotools eutils elisp-common flag-o-matic multilib prefix python versionator + +MY_PN=Singular +MY_PV=$(replace_all_version_separators -) +MY_DIR=$(get_version_component_range 1-3 ${MY_PV}) +# There 'share' tarball does not get updated on every release +MY_SHARE_DIR="3-1-4" +MY_PV_SHARE="${MY_PV}" + +DESCRIPTION="Computer algebra system for polynomial computations" +HOMEPAGE="http://www.singular.uni-kl.de/" +SRC_COM="http://www.mathematik.uni-kl.de/ftp/pub/Math/${MY_PN}/SOURCES/" +# Share stuff did not see a new version: +SRC_URI="${SRC_COM}${MY_DIR}/${MY_PN}-${MY_PV}.tar.gz + ${SRC_COM}${MY_SHARE_DIR}/Singular-${MY_PV_SHARE}-share.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86 ~x86-linux ~x86-macos" +IUSE="boost doc emacs examples python +readline test" + +RDEPEND="dev-libs/gmp + >=dev-libs/ntl-5.5.1 + emacs? ( >=virtual/emacs-22 )" + +DEPEND="${RDEPEND} + dev-lang/perl + boost? ( dev-libs/boost ) + readline? ( sys-libs/readline )" + +S="${WORKDIR}"/${MY_PN}-${MY_DIR} +SITEFILE=60${PN}-gentoo.el + +pkg_setup() { + append-flags "-fPIC" + append-ldflags "-fPIC" + tc-export CC CPP CXX + + # Ensure that >=emacs-22 is selected + if use emacs; then + elisp-need-emacs 22 || die "Emacs version too low" + fi + + if use python; then + python_set_active_version 2 + python_pkg_setup + fi +} + +src_prepare () { + epatch "${FILESDIR}"/${PN}-3.1.0-gentoo.patch + epatch "${FILESDIR}"/${PN}-3.1.0-emacs-22.patch + epatch "${FILESDIR}"/${PN}-3.0.4.4-nostrip.patch + epatch "${FILESDIR}"/${PN}-3.1.3.3-Minor.h.patch + use python && epatch "${FILESDIR}"/${PN}-3.1.3.2-python.patch + + if [[ ${CHOST} == *-darwin* ]] ; then + epatch "${FILESDIR}"/${PN}-3.1.3.3-install_name.patch + eprefixify kernel/Makefile.in + eprefixify Singular/Makefile.in + fi + + eprefixify kernel/feResource.cc + + sed -i \ + -e "/CXXFLAGS/ s/--no-exceptions//g" \ + -e "s/SLDFLAGS=-shared/SLDFLAGS=\"$(raw-ldflags) -shared\"/" \ + "${S}"/Singular/configure.in || die + + cd "${S}"/Singular || die "failed to cd into Singular/" + eautoconf +} + +src_configure() { + + econf \ + --prefix="${S}"/build \ + --exec-prefix="${S}"/build \ + --bindir="${S}"/build/bin \ + --libdir="${S}"/build/lib \ + --libexecdir="${S}"/build/lib \ + --includedir="${S}"/build/include \ + --with-apint=gmp \ + --with-gmp="${EPREFIX}"/usr \ + --disable-NTL \ + --disable-debug \ + --disable-doc \ + --without-MP \ + --enable-factory \ + --enable-libfac \ + --enable-IntegerProgramming \ + --enable-Singular \ + --with-malloc=system \ + $(use_with python python embed) \ + $(use_with boost Boost) \ + $(use_enable emacs) \ + $(use_with readline) || die "configure failed" +} + +src_compile() { + emake || die "emake failed" + + if use emacs; then + cd "${WORKDIR}"/${MY_PN}/${MY_SHARE_DIR}/emacs/ + elisp-compile *.el || die "elisp-compile failed" + fi +} + +src_test() { + # Tests fail to link -lsingular, upstream ticket #243 + emake test || die "tests failed" +} + +src_install () { + dodoc README + # execs and libraries + cd "${S}"/build/bin + dobin ${MY_PN}* gen_test change_cost solve_IP toric_ideal LLL \ + || die "failed to install binaries" + insinto /usr/$(get_libdir)/${PN} + doins *.so || die "failed to install libraries" + + dosym ${MY_PN}-${MY_DIR} /usr/bin/${MY_PN} \ + || die "failed to create symbolic link" + + # stuff from the share tar ball + cd "${WORKDIR}"/${MY_PN}/${MY_SHARE_DIR} + insinto /usr/share/${PN} + doins -r LIB || die "failed to install lib files" + if use examples; then + insinto /usr/share/doc/${PF} + doins -r examples || die "failed to install examples" + fi + if use doc; then + dohtml -r html/* || die "failed to install html docs" + insinto /usr/share/${PN} + doins doc/singular.idx || die "failed to install idx file" + cp info/${PN}.hlp info/${PN}.info && + doinfo info/${PN}.info \ + || die "failed to install info files" + fi + if use emacs; then + elisp-install ${PN} emacs/*.el emacs/*.elc emacs/.emacs* \ + || die "elisp-install failed" + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi +} + +pkg_postinst() { + einfo "The authors ask you to register as a SINGULAR user." + einfo "Please check the license file for details." + + if use emacs; then + echo + ewarn "Please note that the ESingular emacs wrapper has been" + ewarn "removed in favor of full fledged singular support within" + ewarn "Gentoo's emacs infrastructure; i.e. just fire up emacs" + ewarn "and you should be good to go! See bug #193411 for more info." + echo + fi + + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} |