I don't use Macaulay2 but I do make it available on Linux machines I manage for others to use. I am looking at getting version 1.7 on machines running SLED 11 SP3 and SLED 12 (both currently supported by SUSE).
For previous versions I used the Generic Linux build but there are no .tar.gz for 1.7 at
http://www.math.uiuc.edu/Macaulay2/Downloads/GNU-Linux/Generic/index.html and there is no .tar.gz of the Common files for 1.7 at
http://www.math.uiuc.edu/Macaulay2/Downloads/Common/Will such files for 1.7 be made available at some point?
FWIW, below is some notes and comments on building from source.
SLED 11 SP3
-----------
Building from source M2-release-1.7-stable-2014-12-15.tar.gz downloaded from
https://github.com/Macaulay2/M2/releases fails because a newer version of autoconf is required that is available in SLED 11 SP3. I've not got any further than that.
SLED 12
-------
Building from source M2-release-1.7-stable-2014-12-15.tar.gz downloaded from
https://github.com/Macaulay2/M2/releases didn't work.
The first problem was
configure: error: issue not found in /etc/issue
This is caused by an assumption that the information being sought exists on the first line of /etc/issue. On SLED 12 the first line of /etc/issue is blank. To fix:
change line 4382 to
then ISSUE_FLAVOR=`grep -v '^\W*$' /etc/issue | head -1 | sed 's/^\([A-Za-z ]*\).*/\1/' | sed 's/ //g' `
change line 4383 to
ISSUE_RELEASE=`grep -v '^\W*$' /etc/issue | head -1 | sed 's/[^0-9]*\([0-9.]*\).*/\1/'`
With those modifications the script produces the non-fatal error:
configure: unrecognized issue in /etc/issue: WelcometoSUSELinuxEnterpriseDesktop
Building with --width-issue=something is not sufficient. Without modification of the configure script the fatal error 'configure: error: issue not found in /etc/issue' will occur later in build. (I saw it when the build had been going for 144 minutes :/ )
The dependence on /etc/issue seems very fragile. In addition to the possibility of the first line being blank, /etc/issue is not guaranteed to contain any information on the Linux distro or version. (See
http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/etc.html ("The contents are up to the system administrator")
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/logon.html)
configure could test for the existence of /etc/os-release which is present on an increasing number of currently supported distro versions
$ grep ^NAME= /etc/os-release
NAME=openSUSE
$
$ grep ^NAME= /etc/os-release
NAME="SLED"
$
$ grep ^NAME= /etc/os-release
NAME="CentOS Linux"
$
$ grep ^NAME= /etc/os-release
NAME="Ubuntu"
$
Such info may also be found in /etc/SuSE-release which is depreciated but used on some currently supported SUSE variants (including SLED 11 SP3) and /etc/centos-release /etc/redhat-release.
Even after changing the configure script building fails with
make[1]: Leaving directory '/home/mike/M2-release-1.7-stable-2014-12-15/M2/libraries'
cd ./.. && git submodule update --init M2/submodules/memtailor
fatal: Not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
GNUmakefile:125: recipe for target 'submodules/memtailor/
configure.ac' failed
make: *** [submodules/memtailor/
configure.ac] Error 128
make: Leaving directory '/home/mike/M2-release-1.7-stable-2014-12-15/M2'
Based on the "fatal: Not a git repository" part I checked out the source from git, altered the configure script as described above and that built OK with
$ make && ./configure --prefix=/home/mike/apps/M2 --enable-download && make -j 2 && make check && make install
By 'built OK' I mean I run it and it doesn't segfault or spew errors. ;)
The build took 166 minutes on a virtual machine with 2GB RAM that is allocated two cores of an Intel(R) Xeon(R) CPU E5-4620 v2 @ 2.60GHz.
Should --disable-ntl-wizard be used in cases where the resulting binaries will be used on machines other than that on which they were compiled?
Packages I had to install on SLED 12:
automake make gcc-c++ gcc-fortran ncurses-devel libxml2-devel bison emacs flex gc-devel gcc gdbm-devel gmp-devel lapack-devel libgmp10 mpfr-devel patch subversion zlib-devel libtool git
It is necessary to add the SLE SDK which can be done in the SUSE Customer Centre module of YaST.
thanks,
mike