summaryrefslogtreecommitdiff
path: root/sci-mathematics/Macaulay2
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sci-mathematics/Macaulay2
reinit the tree, so we can have metadata
Diffstat (limited to 'sci-mathematics/Macaulay2')
-rw-r--r--sci-mathematics/Macaulay2/Macaulay2-1.7_pre.ebuild153
-rw-r--r--sci-mathematics/Macaulay2/Macaulay2-1.8.2.1-r1.ebuild136
-rw-r--r--sci-mathematics/Macaulay2/Manifest14
-rw-r--r--sci-mathematics/Macaulay2/files/1.6-lapack.patch50
-rw-r--r--sci-mathematics/Macaulay2/files/1.6-paths-of-external-programs.patch73
-rw-r--r--sci-mathematics/Macaulay2/files/70Macaulay2-gentoo.el11
-rw-r--r--sci-mathematics/Macaulay2/files/Macaulay2-1.8.2.1-lapack.patch50
-rw-r--r--sci-mathematics/Macaulay2/metadata.xml15
8 files changed, 502 insertions, 0 deletions
diff --git a/sci-mathematics/Macaulay2/Macaulay2-1.7_pre.ebuild b/sci-mathematics/Macaulay2/Macaulay2-1.7_pre.ebuild
new file mode 100644
index 000000000000..4b4e620d27db
--- /dev/null
+++ b/sci-mathematics/Macaulay2/Macaulay2-1.7_pre.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools elisp-common eutils flag-o-matic python-single-r1 toolchain-funcs
+
+FACTORY="factory-4.0.0+m4"
+FACTORY_GFTABLES="factory.4.0.1-gftables"
+
+DESCRIPTION="Research tool for commutative algebra and algebraic geometry"
+HOMEPAGE="http://www.math.uiuc.edu/Macaulay2/"
+BASE_URI="http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode/trunk"
+SRC_URI="
+ https://dev.gentoo.org/~tomka/files/${P}.tar.bz2
+ ${BASE_URI}/${FACTORY}.tar.gz
+ ${BASE_URI}/${FACTORY_GFTABLES}.tar.gz
+ ${BASE_URI}/gtest-1.7.0.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 x86"
+IUSE="debug emacs +optimization"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}
+ sys-process/time
+ virtual/pkgconfig"
+
+RDEPEND="${PYTHON_DEPS}
+ sys-libs/gdbm
+ <dev-libs/ntl-7
+ sci-mathematics/pari[gmp]
+ >=sys-libs/readline-6.1
+ dev-libs/libxml2:2
+ sci-mathematics/flint[gc]
+ sci-mathematics/frobby
+ sci-mathematics/4ti2
+ sci-mathematics/nauty
+ >=sci-mathematics/normaliz-2.8
+ sci-mathematics/gfan
+ sci-libs/mpir[cxx]
+ dev-libs/mpfr
+ sci-libs/cdd+
+ sci-libs/cddlib
+ sci-libs/lrslib[gmp]
+ virtual/blas
+ virtual/lapack
+ dev-util/ctags
+ sys-libs/ncurses
+ >=dev-libs/boehm-gc-7.4[threads]
+ dev-libs/libatomic_ops
+ emacs? ( virtual/emacs )"
+
+SITEFILE=70Macaulay2-gentoo.el
+
+S="${WORKDIR}/M2/"
+
+pkg_setup () {
+ tc-export CC CPP CXX PKG_CONFIG
+ append-cppflags "-I/usr/include/frobby"
+ # gtest needs python:2
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # Patching .m2 files to look for external programs in
+ # /usr/bin
+ epatch "${FILESDIR}"/1.6-paths-of-external-programs.patch
+
+ # Shortcircuit lapack tests
+ epatch "${FILESDIR}"/1.6-lapack.patch
+
+ # Factory is a statically linked library which (in this flavor) are not used by any
+ # other program. We build it internally and don't install it.
+ cp "${DISTDIR}/${FACTORY}.tar.gz" "${S}/BUILD/tarfiles/" \
+ || die "copy failed"
+ cp "${DISTDIR}/${FACTORY_GFTABLES}.tar.gz" "${S}/BUILD/tarfiles/" \
+ || die "copy failed"
+ # Macaulay2 developers want that gtest is built internally because
+ # the documentation says it may fail if build with options not the
+ # same as the tested program.
+ cp "${DISTDIR}/gtest-1.7.0.tar.gz" "${S}/BUILD/tarfiles/" \
+ || die "copy failed"
+
+ eautoreconf
+}
+
+src_configure (){
+ # Recommended in bug #268064 Possibly unecessary
+ # but should not hurt anybody.
+ if ! use emacs; then
+ tags="ctags"
+ fi
+
+ # configure instead of econf to enable install with --prefix
+ ./configure LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" \
+ --prefix="${D}/usr" \
+ --disable-encap \
+ --disable-strip \
+ --with-issue=Gentoo \
+ $(use_enable optimization optimize) \
+ $(use_enable debug) \
+ --enable-build-libraries="factory" \
+ --with-unbuilt-programs="4ti2 gfan normaliz nauty cddplus lrslib" \
+ || die "failed to configure Macaulay"
+}
+
+src_compile() {
+ # Parallel build not supported yet
+ emake IgnoreExampleErrors=true -j1
+
+ if use emacs; then
+ cd "${S}/Macaulay2/emacs" || die
+ elisp-compile *.el
+ fi
+}
+
+src_test() {
+ # No parallel tests yet & Need to increase the time
+ # limit for long running tests in Schubert2 to pass
+ emake TLIMIT=550 -j1 check
+}
+
+src_install () {
+ # Parallel install not supported yet
+ emake IgnoreExampleErrors=true -j1 install
+
+ # Remove emacs files and install them in the
+ # correct place if use emacs
+ rm -rf "${ED}"/usr/share/emacs/site-lisp || die
+ if use emacs; then
+ cd "${S}/Macaulay2/emacs" || die
+ elisp-install ${PN} *.elc *.el
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ if use emacs; then
+ elisp-site-regen
+ elog "If you want to set a hot key for Macaulay2 in Emacs add a line similar to"
+ elog "(global-set-key [ f12 ] 'M2)"
+ elog "in order to set it to F12 (or choose a different one)."
+ fi
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/sci-mathematics/Macaulay2/Macaulay2-1.8.2.1-r1.ebuild b/sci-mathematics/Macaulay2/Macaulay2-1.8.2.1-r1.ebuild
new file mode 100644
index 000000000000..0836337b8d5d
--- /dev/null
+++ b/sci-mathematics/Macaulay2/Macaulay2-1.8.2.1-r1.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools elisp-common eutils flag-o-matic multilib python-single-r1 toolchain-funcs
+
+# To stop the download madness we now roll our own tarball (Feb 2016)
+DESCRIPTION="Research tool for commutative algebra and algebraic geometry"
+HOMEPAGE="http://www.math.uiuc.edu/Macaulay2/"
+BASE_URI="http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode/"
+BASE_URI2="https://dev.gentoo.org/~tomka/files/"
+SRC_URI="
+ ${BASE_URI2}/${P}-fat.tar.bz2
+"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 ~arm ~x86"
+IUSE="debug emacs +optimization"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}
+ sys-process/time
+ virtual/pkgconfig"
+
+RDEPEND="${PYTHON_DEPS}
+ sys-libs/gdbm
+ sci-mathematics/pari[gmp]
+ >=sys-libs/readline-6.1
+ dev-libs/libxml2:2
+ sci-mathematics/flint[gc]
+ sci-mathematics/frobby
+ sci-mathematics/4ti2
+ sci-mathematics/nauty
+ >=sci-mathematics/normaliz-2.8
+ sci-mathematics/gfan
+ sci-libs/cdd+
+ sci-libs/cddlib
+ sci-libs/lrslib[gmp]
+ virtual/blas
+ virtual/lapack
+ dev-util/ctags
+ sys-libs/ncurses
+ >=dev-libs/boehm-gc-7.4[threads]
+ dev-libs/libatomic_ops
+ emacs? ( virtual/emacs )"
+
+SITEFILE=70Macaulay2-gentoo.el
+
+S="${WORKDIR}/M2/M2"
+
+pkg_setup () {
+ tc-export CC CPP CXX PKG_CONFIG
+ append-cppflags "-I/usr/include/frobby"
+ # gtest needs python:2
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ # Patching .m2 files to look for external programs in
+ # /usr/bin
+ epatch "${FILESDIR}"/1.6-paths-of-external-programs.patch
+
+ # Shortcircuit lapack tests
+ epatch "${FILESDIR}/${P}"-lapack.patch
+
+ eautoreconf
+}
+
+src_configure (){
+ # Recommended in bug #268064 Possibly unecessary
+ # but should not hurt anybody.
+ if ! use emacs; then
+ tags="ctags"
+ fi
+
+ # configure instead of econf to enable install with --prefix
+ ./configure LIBS="$($(tc-getPKG_CONFIG) --libs lapack)" \
+ --prefix="${D}usr/" \
+ --libdir='${exec_prefix}'/$(get_libdir)/ \
+ --disable-encap \
+ --disable-strip \
+ --with-issue=Gentoo \
+ $(use_enable optimization optimize) \
+ $(use_enable debug) \
+ --enable-build-libraries="factory" \
+ --with-unbuilt-programs="4ti2 gfan normaliz nauty cddplus lrslib" \
+ || die "failed to configure Macaulay"
+}
+
+src_compile() {
+ # Parallel build not supported yet
+ emake IgnoreExampleErrors=true -j1
+
+ if use emacs; then
+ cd "${S}/Macaulay2/emacs" || die
+ elisp-compile *.el
+ fi
+}
+
+src_test() {
+ # No parallel tests yet & Need to increase the time
+ # limit for long running tests in Schubert2 to pass
+ emake TLIMIT=750 -j1 check
+}
+
+src_install () {
+ # Parallel install not supported yet
+ emake IgnoreExampleErrors=true -j1 install
+
+ # Remove emacs files and install them in the
+ # correct place if use emacs
+ rm -rf "${ED}"/usr/share/emacs/site-lisp || die
+ if use emacs; then
+ cd "${S}/Macaulay2/emacs" || die
+ elisp-install ${PN} *.elc *.el
+ elisp-site-file-install "${FILESDIR}/${SITEFILE}"
+ fi
+}
+
+pkg_postinst() {
+ if use emacs; then
+ elisp-site-regen
+ elog "If you want to set a hot key for Macaulay2 in Emacs add a line similar to"
+ elog "(global-set-key [ f12 ] 'M2)"
+ elog "in order to set it to F12 (or choose a different one)."
+ fi
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/sci-mathematics/Macaulay2/Manifest b/sci-mathematics/Macaulay2/Manifest
new file mode 100644
index 000000000000..22c1b87d01ae
--- /dev/null
+++ b/sci-mathematics/Macaulay2/Manifest
@@ -0,0 +1,14 @@
+AUX 1.6-lapack.patch 1849 SHA256 d9f49f6b97d12fe09aa7655c24682e16c0da27f3376f82bd62dbac1d907988ae SHA512 89221bf3495f84b0f8f12046dcc3f85f3062c8637d2b42a37817ccef84762ffe31457d2b607457a6a3c23a50f196789d7ca6421e1078191f72bd7e08f46bd36d WHIRLPOOL 0df82df521ea3088a8ea6ec29cb5429ce771d2c40c5662dc0c8a61525893d75809b534c85cc026e2b01cc5d7869afc86ff1101439144c5507e97f3e672c29ba8
+AUX 1.6-paths-of-external-programs.patch 3767 SHA256 af95d1332b04c6746af8c14477830cadb8807da097b14b07d30559df79f9a0bd SHA512 556944da47742a3c4539e084bb6dab7c2375733eb4cbe4d14e1dea852bba3ac61e5f6ad5f805958a52d371a918c8672f7f0308c7c0454a502ca61bb59fea6bf5 WHIRLPOOL c0b0a5638d9a59ea5d5e5c7fe625fb811ece69a3619959aae7d1de1bd525862359163547096c7c5312a66b71e638942c854f96afa9f79b51e0f3395c47d2e240
+AUX 70Macaulay2-gentoo.el 597 SHA256 e5583d11e6ab662261abb32e90fcf31ccf6bd56f2b23b691b9255d1b8d8acb2f SHA512 2d6b6d3c85ca93bf4d4100f2172013074dec83f8ce067af219b026ca2b495ff1aa7fb3da027b64ef8e55ad431ce5d42bffdad1ab474bb3e95240ac4235f2f986 WHIRLPOOL fda758e3dc0972a846c452fc61187577902262e5861401ace4cd1d594fd15b513e08083c0c932cc383e05b6cc4e40b5adb417a1e79567f72e172d5fab43e360d
+AUX Macaulay2-1.8.2.1-lapack.patch 1836 SHA256 f6d600eb2d1abe9a504ed755cc863e3a3fef8378525859497e979cd6c8456441 SHA512 d3d13a67daeda87753c7c4daf888d2982109cb13bc0b88be46c2dd4993715077cf0ce5e155876bf5aaf51c886ce348df550184ade4af71e7143c2c2eb16c3b7f WHIRLPOOL c4cb5daf51c8e98c36a96581e514ad1bb0097995be5c8bdb1c2fc51c4fc8f6ef634edc7a4644e3902562bee57d8866b873c4ffaac3c5bde2f6481e3d362b53f1
+DIST Macaulay2-1.7_pre.tar.bz2 4639477 SHA256 b14918187724f8911bc50edf87c9692209ff0c2191feb257084adc87609eb1cd SHA512 e70376d1e54b6e239ebb3bf676507a2115fdf5c4fbe05f320553029a84114b74d78f54e4d1bdc7643131f3c45c301e83c21ff99e4d4b675372e971368398d6f5 WHIRLPOOL 396311aadb8a7845deaee5aeca49c431430abc46201e935ef72c4579c9cbe6cd4da85f3e09ff0fe647031f8050fb7c62f63ecce251bf34648c1848cd00eef68e
+DIST Macaulay2-1.8.2.1-fat.tar.bz2 26102483 SHA256 11e13fbb4aeeddae1547ed01e499e3f8961446cb9bec8b3162b29cadd2f280c1 SHA512 64f7ea9b01cdb308023a55d8ab8bd6733540f25161dacf27052c071e143418c68c639d5115cf32540c11594b70eae14473f4ef6ce5bd12b6df0722da7c13dd2c WHIRLPOOL 3f9c838d6624f95076957743bf402236708cb2af15b84d24c4446fb193f7608698cc63e43eb8eff8bf878963ce2a9fd85f37128f73d1dbd43d4c0bcda980753d
+DIST factory-4.0.0+m4.tar.gz 4711126 SHA256 9b2498cc7fc6765f1c586e8061ebe236cdce4b32a44721a235ad2644ec3124fb SHA512 1dacb9aae52e655bccbbc960397b02351050791594dd9c39771f0da7f8c6e8130a8827c2a675c3fbaaa214606e123ac9776e1c73d143649353cefc50cadeea3e WHIRLPOOL 47c4d6261fc6cc9c172035d8774f0cde9fa669fa164fc4a0f47e84ba789d69d14f5a16d042451564412fdedddec71335714ad751508495c22cea25b69f10b925
+DIST factory.4.0.1-gftables.tar.gz 2974152 SHA256 9cd158ceb1c2b1c47bdca2c0b004bba92cb0e0aaa0ea6a43ca784ebdce10eebd SHA512 060c58fe6e4565dd5e7649bfa070f14dec3c383a55ebab52a9f02b58a6405e2183e0c7e08964cddb87b81e872c0d8a52d7bd4575d07269547be544cf6a725a76 WHIRLPOOL a721a6824681118578c7289cea77a3f47e5c7654f30dc454eaac76b19cc89e416ae54b8d21a69f897d7087d4b67990634fc960f81df2ea53f428868d608dc9c2
+DIST gtest-1.7.0.tar.gz 1001582 SHA256 c0f860eee47c86e0aeb462fd0bdfd70e3975297e0b8b178e0e03a95e1f6c9bc4 SHA512 a9f5c047b39efb2d11b55ee9913662ca402ac6837b3ad2d278ecfbd1caf32ed4546f169e3e92503d57bf3b62ccf89cd062da1c7ea3638aae98e868d2766363c3 WHIRLPOOL 36edbdf8be7c3793a89918a3c43d74e75a6281a37c394f7d2f20506130a76aab04a3beddba01bf7f0e9b6901c7e834ca014c31c913c0ea846d3f6be9c93599d2
+EBUILD Macaulay2-1.7_pre.ebuild 3919 SHA256 0fad15c873f0fccfd72902fe78e3a7ffa139475e6d8c8ddce84ea43e11fef435 SHA512 14c8b36de0533f5779441adbe7ea993fd0fb1451f8482acb8f411fe0ba60f094d7cd5a5fabbacd570715bf6333baa1a8076d4f279d22983ccf182049d732176b WHIRLPOOL e329100c0ed1353cd4e5ef14d5315ac6fa96415e26b251a27dac5b4607f5b4886c1eb80a3ef004f0f391db95a01c321c98217f3c0e39f10c47e582ec3a9fa9aa
+EBUILD Macaulay2-1.8.2.1-r1.ebuild 3278 SHA256 7b4b7c00fe02dc72948e8c2907df0c7c521a157be85a16ab991204a22eae0648 SHA512 92d1d78fe0f63c11da1d6f3eab8307fb299b094bd54ff9afb12a8059e899a378dbbca6a911be224bb7de1bad9d2c5a29962398b79484c6b653df2467aaaefff2 WHIRLPOOL 726a7838b423600d720b157c00de8cacdb979009cf377212cd612dbd76888f934ffe40cef3fc7472d7d9fef1b9880bd5c62aa71e0552c77ebb7b0fdacb3d9e82
+MISC ChangeLog 3523 SHA256 08fcf9f065526780a43683f0cd4bfca555b4577eca88fbc32c82bbd7c6a0f032 SHA512 aa49ebe203869fdb9afe725a473dcbc61d92701365b8af6eb214e6d43274f64c05a403925dab5c5ab63601fe40f30b35441d937716587dd346230cee8fca01b4 WHIRLPOOL f90ab74803c4ce0c5fb95849ffd78d0604d6c5aa8e3566a32736b9bb02ce1e484162747c9f6e0a5dd9ad7cb513aa608b8d95394d0d96113d4e3f7c8d925baf0e
+MISC ChangeLog-2015 3125 SHA256 6c09e6c967f44675d6596baf5fc9bda14cd880c434ff3bfa697c136d5a8d55ee SHA512 af194798a10316494c0274acaff98b1c59e3f66e494b88e1f06ec6b255984da543a4112cadd74379357088ac9ef3d4ba19599d8015f1a42a683f6fbe3a13aff5 WHIRLPOOL fe9810cbbf5f3e0b1d3d0cbcb4ad197a5da30c9d83760bf6939294e4f4f75b70a273fbdbd576d692eb2285a77d1c725c44aa35288c401c956d66dd2e6f1e28df
+MISC metadata.xml 527 SHA256 2e223e8122ed746f08249e1507afa8cdb1bf1e107fbe4a04dd6068ac1ac8ecfc SHA512 7ca19042c8405096453426ec3582c3d342ff9a37ec520372f11ffd4e00a78ef018cc49d3f851e6dff2a000314f0eb6de0a4640d37edcb19ff2ad65196aaa03a1 WHIRLPOOL badd6d07f141d42b74d1fc2bbe56335bcbc192775da24b5472f30c0a8cf03e8daefa2eafaa8f38fb961d799b639647a7cd964db4b6667845c2c7b1510285953f
diff --git a/sci-mathematics/Macaulay2/files/1.6-lapack.patch b/sci-mathematics/Macaulay2/files/1.6-lapack.patch
new file mode 100644
index 000000000000..e9a434eeb28e
--- /dev/null
+++ b/sci-mathematics/Macaulay2/files/1.6-lapack.patch
@@ -0,0 +1,50 @@
+--- configure.ac 2012-10-24 09:29:55.240498786 -0700
++++ configure.ac.2 2012-10-30 15:07:27.172846300 -0700
+@@ -1285,46 +1285,7 @@
+ done
+ test $BUILD_factory = yes && BUILTLIBS="$SINGULARLIBS $BUILTLIBS"
+
+-# we need to do the fortran library testing last, in case AC_SEARCH_LIBS adds
+-# one of them to $LIBS, making it impossible to check for the presence of C or
+-# C++ libraries. (I'm not sure why putting -llapack on the gcc command line
+-# needlessly causes the library to be linked against.)
+-FORTRANUSED=no
+-if test "$LAPACK" = yes
+-then AC_MSG_CHECKING([whether the vecLib framework is available])
+- SAVELIBS=$LIBS LIBS="-framework vecLib $LIBS"
+- AC_LANG(C)
+- AC_LINK_IFELSE(
+- [AC_LANG_PROGRAM(,[sgemv_();dgetrf_();])],
+- [
+- AC_MSG_RESULT(yes)
+- ],
+- [
+- AC_MSG_RESULT(no)
+- LIBS=$SAVELIBS
+- FORTRANUSED=yes
+- if test $BUILD_lapack = no
+- then AC_LANG(Fortran)
+- if test "$FC" = ""
+- then AC_MSG_ERROR(no fortran compiler found)
+- else AC_MSG_NOTICE(using fortran compiler $FC)
+- fi
+- AC_SEARCH_LIBS(sgemv,blas f77blas,,BUILD_lapack=yes)
+- AC_SEARCH_LIBS(dgetrf,lapack,,BUILD_lapack=yes)
+- fi
+- ])
+-fi
+-test $BUILD_lapack = yes && BUILTLIBS="-llapack -lblas $BUILTLIBS"
+-
+-if test $BUILD_lapack = yes
+-then # test whether the fortran compiler can handle lapack, which, starting with
+- # version 3.2, requires fortran 90, not fortran 77
+- AC_LANG(Fortran)
+- AC_MSG_CHECKING([whether the fortran compiler is modern enough for lapack])
+- AC_COMPILE_IFELSE([instrinsic maxloc],
+- AC_MSG_ERROR(the fortran compiler ($FC) does not support the Fortran 90 language required for compiling lapack),
+- AC_MSG_RESULT(yes))
+-fi
++BUILTLIBS="$(${PKG_CONFIG} --libs lapack) $BUILTLIBS"
+
+ if test $BUILD_memtailor = yes
+ then BUILTLIBS="-lmemtailor $BUILTLIBS"
diff --git a/sci-mathematics/Macaulay2/files/1.6-paths-of-external-programs.patch b/sci-mathematics/Macaulay2/files/1.6-paths-of-external-programs.patch
new file mode 100644
index 000000000000..4c090deec9d8
--- /dev/null
+++ b/sci-mathematics/Macaulay2/files/1.6-paths-of-external-programs.patch
@@ -0,0 +1,73 @@
+diff -U 3 -dHrN M2source/Macaulay2/packages/FourTiTwo.m2 M2source.patch/Macaulay2/packages/FourTiTwo.m2
+--- M2source/Macaulay2/packages/FourTiTwo.m2 2011-09-22 14:36:51.000000000 +0100
++++ M2source.patch/Macaulay2/packages/FourTiTwo.m2 2011-09-24 21:24:12.000000000 +0100
+@@ -47,7 +47,7 @@
+
+ path'4ti2 = (options FourTiTwo).Configuration#"path"
+ -- NOTE: the absolute path should be put into the .init file for 4ti2 inside the .Macaulay2 directory.
+-if path'4ti2 == "" then path'4ti2 = prefixDirectory | currentLayout#"programs"
++if path'4ti2 == "" then path'4ti2 = "/usr/bin/"
+
+ getFilename = () -> (
+ filename := temporaryFileName();
+diff -U 3 -dHrN M2source/Macaulay2/packages/gfanInterface.m2 M2source.patch/Macaulay2/packages/gfanInterface.m2
+--- M2source/Macaulay2/packages/gfanInterface.m2 2011-05-14 12:00:59.000000000 +0100
++++ M2source.patch/Macaulay2/packages/gfanInterface.m2 2011-09-24 21:24:12.000000000 +0100
+@@ -25,7 +25,7 @@
+ }
+
+ gfan'path = gfanInterface#Options#Configuration#"path"
+-if gfan'path == "" then gfan'path = prefixDirectory | currentLayout#"programs"
++if gfan'path == "" then gfan'path = "/usr/bin/"
+ if instance(gfan'path, String) then gfan'path = {gfan'path}
+ if not instance(gfan'path,List) then error "expected configuration option gfan'path to be a list of strings or a string"
+ gfan'path = join(
+diff -U 3 -dHrN M2source/Macaulay2/packages/NautyGraphs.m2 M2source.patch/Macaulay2/packages/NautyGraphs.m2
+--- M2source/Macaulay2/packages/NautyGraphs.m2 2011-08-26 11:05:30.000000000 +0100
++++ M2source.patch/Macaulay2/packages/NautyGraphs.m2 2011-09-24 21:25:53.000000000 +0100
+@@ -32,7 +32,7 @@
+ -- Check the ~/.Macaulay2/init-NautyGraphs.m2 file for the absolute path.
+ -- If it's not there, then use the M2-Programs directory.
+ nauty'path = (options NautyGraphs).Configuration#"path";
+-if nauty'path == "" then nauty'path = prefixDirectory | currentLayout#"programs";
++if nauty'path == "" then nauty'path = "/usr/bin/";
+
+ -------------------
+ -- Exports
+diff -U 3 -dHrN M2source/Macaulay2/packages/Nauty.m2 M2source.patch/Macaulay2/packages/Nauty.m2
+--- M2source/Macaulay2/packages/Nauty.m2 2011-08-26 11:05:30.000000000 +0100
++++ M2source.patch/Macaulay2/packages/Nauty.m2 2011-09-24 21:24:12.000000000 +0100
+@@ -48,7 +48,8 @@
+ -- Check the ~/.Macaulay2/init-Nauty.m2 file for the absolute path.
+ -- If it's not there, then use the M2-Programs directory.
+ nauty'path = (options Nauty).Configuration#"path";
+-if nauty'path == "" then nauty'path = prefixDirectory | currentLayout#"programs";
++if nauty'path == "" then nauty'path = "/usr/bin/";
++
+
+ -------------------
+ -- Exports
+diff -U 3 -dHrN M2source/Macaulay2/packages/Normaliz.m2 M2source.patch/Macaulay2/packages/Normaliz.m2
+--- M2source/Macaulay2/packages/Normaliz.m2 2011-05-25 16:47:50.000000000 +0100
++++ M2source.patch/Macaulay2/packages/Normaliz.m2 2011-09-24 21:24:12.000000000 +0100
+@@ -166,7 +166,7 @@
+ nmzExec="normaliz";
+ );
+ -- return nmzExec;
+- return prefixDirectory | currentLayout#"programs" | nmzExec;
++ return "/usr/bin/" | nmzExec;
+ );
+
+
+diff -U 3 -dHrN M2source/Macaulay2/packages/StatePolytope.m2 M2source.patch/Macaulay2/packages/StatePolytope.m2
+--- M2source/Macaulay2/packages/StatePolytope.m2 2010-09-10 16:47:20.000000000 +0100
++++ M2source.patch/Macaulay2/packages/StatePolytope.m2 2011-09-24 21:24:12.000000000 +0100
+@@ -31,7 +31,7 @@
+
+
+ gfanCommand = (options StatePolytope)#Configuration#"gfan command"
+-if gfanCommand === "gfan" then gfanCommand = prefixDirectory | currentLayout#"programs" | gfanCommand
++if gfanCommand === "gfan" then gfanCommand = "/usr/bin/" | gfanCommand
+ gfanCommand = "!" | gfanCommand
+
+ --The next two functions print out the ring and the ideal in the format required by gfan
diff --git a/sci-mathematics/Macaulay2/files/70Macaulay2-gentoo.el b/sci-mathematics/Macaulay2/files/70Macaulay2-gentoo.el
new file mode 100644
index 000000000000..ac86e2132ed5
--- /dev/null
+++ b/sci-mathematics/Macaulay2/files/70Macaulay2-gentoo.el
@@ -0,0 +1,11 @@
+;; sci-mathematics/Macaulay2 init file
+
+(add-to-list 'load-path "/usr/share/emacs/site-lisp/Macaulay2")
+
+(defvar M2-exe "/usr/bin/M2" "*The default Macaulay2 executable name.")
+(autoload 'M2 "M2.el" "Run Macaulay 2 in a buffer." t)
+(autoload 'Macaulay2 "M2" "Run Macaulay 2 in a buffer, non-interactive." t)
+(autoload 'M2-mode "M2" "Macaulay 2 editing mode" t)
+(autoload 'm2-mode "M2" "Macaulay 2 editing mode, name in lower case" t)
+(autoload 'm2-comint-mode "M2" "Macaulay 2 command interpreter mode, name in lower case" t)
+(setq auto-mode-alist (append auto-mode-alist '(("\\.m2$" . M2-mode)))) \ No newline at end of file
diff --git a/sci-mathematics/Macaulay2/files/Macaulay2-1.8.2.1-lapack.patch b/sci-mathematics/Macaulay2/files/Macaulay2-1.8.2.1-lapack.patch
new file mode 100644
index 000000000000..25185e7c560e
--- /dev/null
+++ b/sci-mathematics/Macaulay2/files/Macaulay2-1.8.2.1-lapack.patch
@@ -0,0 +1,50 @@
+--- configure.ac 2015-09-03 14:49:42.000000000 +0200
++++ configure.ac.new 2016-01-27 12:50:07.812215547 +0100
+@@ -1301,46 +1301,7 @@
+ BUILTLIBS="$SINGULARLIBS $BUILTLIBS"
+ fi
+
+-# we need to do the fortran library testing last, in case AC_SEARCH_LIBS adds
+-# one of them to $LIBS, making it impossible to check for the presence of C or
+-# C++ libraries. (I'm not sure why putting -llapack on the gcc command line
+-# needlessly causes the library to be linked against.)
+-FORTRANUSED=no
+-if test "$LAPACK" = yes
+-then AC_MSG_CHECKING([whether the Accelerate framework is available])
+- SAVELIBS=$LIBS LIBS="-framework Accelerate $LIBS"
+- AC_LANG(C)
+- AC_LINK_IFELSE(
+- [AC_LANG_PROGRAM(,[sgemv_();dgetrf_();])],
+- [
+- AC_MSG_RESULT(yes)
+- ],
+- [
+- AC_MSG_RESULT(no)
+- LIBS=$SAVELIBS
+- FORTRANUSED=yes
+- if test $BUILD_lapack = no
+- then AC_LANG(Fortran)
+- if test "$FC" = ""
+- then AC_MSG_ERROR(no fortran compiler found)
+- else AC_MSG_NOTICE(using fortran compiler $FC)
+- fi
+- AC_SEARCH_LIBS(sgemv,blas f77blas,,BUILD_lapack=yes)
+- AC_SEARCH_LIBS(dgetrf,lapack,,BUILD_lapack=yes)
+- fi
+- ])
+-fi
+-test $BUILD_lapack = yes && BUILTLIBS="-llapack -lrefblas $BUILTLIBS"
+-
+-if test $BUILD_lapack = yes
+-then # test whether the fortran compiler can handle lapack, which, starting with
+- # version 3.2, requires fortran 90, not fortran 77
+- AC_LANG(Fortran)
+- AC_MSG_CHECKING([whether the fortran compiler is modern enough for lapack])
+- AC_COMPILE_IFELSE([instrinsic maxloc],
+- AC_MSG_ERROR(the fortran compiler ($FC) does not support the Fortran 90 language required for compiling lapack),
+- AC_MSG_RESULT(yes))
+-fi
++BUILTLIBS="$(${PKG_CONFIG} --libs lapack) $BUILTLIBS"
+
+ test "$USE_FCLIBS" = no && FCLIBS=
+ test "$FORTRANUSED" = no && FCLIBS=
diff --git a/sci-mathematics/Macaulay2/metadata.xml b/sci-mathematics/Macaulay2/metadata.xml
new file mode 100644
index 000000000000..76821a208f0c
--- /dev/null
+++ b/sci-mathematics/Macaulay2/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci-mathematics@gentoo.org</email>
+ <name>Gentoo Mathematics Project</name>
+ </maintainer>
+ <use>
+ <flag name="optimization">Accept upstream's choices for -O option, i.e. -O3 almost everywhere.</flag>
+ </use>
+ <longdescription lang="en">
+ Macaulay2 is a research tool for algraic geometry and commutative
+ algebra.
+</longdescription>
+</pkgmetadata>