Version 1.7 on SUSE Linux Enterprise Desktop

55 views
Skip to first unread message

arizonag...@gmail.com

unread,
Feb 16, 2015, 9:08:16 AM2/16/15
to maca...@googlegroups.com


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

Reply all
Reply to author
Forward
0 new messages