Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{math} [intel/2018b] gap/4.9.3 #7040

Merged
merged 13 commits into from Nov 1, 2018
29 changes: 29 additions & 0 deletions easybuild/easyconfigs/0/4ti2/4ti2-1.6.9-intel-2018b.eb
@@ -0,0 +1,29 @@
easyblock = 'ConfigureMake'

name = '4ti2'
version = '1.6.9'

homepage = 'https://4ti2.github.io/'
description = """A software package for algebraic, geometric and combinatorial problems on linear spaces"""

toolchain = {'name': 'intel', 'version': '2018b'}

source_urls = ['https://github.com/4ti2/4ti2/archive/']
sources = ['Release_%s.tar.gz' % '_'.join(version.split('.'))]
checksums = ['7b1015718102d8cd4dc2de64f69094fdba0bc69a1878ada5960979b171ff89e4']

dependencies = [
('GMP', '6.1.2'),
('GLPK', '4.65'),
]

builddependencies = [('Autotools', '20180311')]

preconfigopts = './autogen.sh && '

sanity_check_paths = {
'files': ['bin/%s' % x for x in ['4ti2gmp', '4ti2int32', '4ti2int64']],
'dirs': ['include/4ti2', 'lib', 'share/4ti2']
}

moduleclass = 'math'
24 changes: 24 additions & 0 deletions easybuild/easyconfigs/b/Boost/Boost-1.67.0-intel-2018b.eb
@@ -0,0 +1,24 @@
name = 'Boost'
version = '1.67.0'

homepage = 'http://www.boost.org/'
description = """Boost provides free peer-reviewed portable C++ source libraries."""

toolchain = {'name': 'intel', 'version': '2018b'}
toolchainopts = {'pic': True, 'usempi': True}

source_urls = [SOURCEFORGE_SOURCE]
sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
checksums = ['8aa4e330c870ef50a896634c931adf468b21f8a69b77007e45c444151229f665']

dependencies = [
('bzip2', '1.0.6'),
('zlib', '1.2.11'),
]

configopts = '--without-libraries=python'

# also build boost_mpi
boost_mpi = True

moduleclass = 'devel'
45 changes: 45 additions & 0 deletions easybuild/easyconfigs/g/gap/gap-4.9.3-intel-2018b.eb
@@ -0,0 +1,45 @@
easyblock = 'ConfigureMake'

name = 'gap'
version = '4.9.3'

homepage = 'https://www.gap-system.org'
description = """GAP is a system for computational discrete algebra,
with particular emphasis on Computational Group Theory."""

toolchain = {'name': 'intel', 'version': '2018b'}

source_urls = ['https://www.gap-system.org/pub/gap/gap-%(version_major_minor)s/tar.gz/']
sources = [SOURCE_TAR_GZ]
patches = ['%(name)s-%(version)s-use-EB-deps.patch']
checksums = [
'e502941e52352285e87faaf11e7f0e810eab8e38849d869fc6b9714d6cf7fe7c', # gap-4.9.3.tar.gz
'997e49f35e5c6df43fdc52ac5d856e906790289108de7fbc22413eb8544aa30c', # gap-4.9.3-use-EB-deps.patch
]

unpack_options = '--strip-components=1'

dependencies = [
('GMP', '6.1.2'),
('libreadline', '7.0'),
('4ti2', '1.6.9'),
('Normaliz', '3.6.3'),
('lrslib', '6.2'),
]

# It doesn't have a working make install and hardcodes
# the build path
buildininstalldir = True

# This tries to install all of the GAP packages. If one fails because
# of missing dependencies, it's skipped automatically
preinstallopts = 'cd pkg && ../bin/BuildPackages.sh && cd .. #'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wpoely86 Please use skipsteps = ['install'] to skip the installation steps, and do the above via buildopts?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be run after the build_step is done

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, yes, you can do that via

buildopts = " && cd pkg && ../bin/BuildPackages.sh"

(the cd .. at the end is pointless)

It's the trailing # that I don't like here, this falls in the "hacking" category for me. ;-)


postinstallcmds = ["cd bin && ln -s gap.sh gap && cd -"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can drop the cd -, since this command is run in a subshell


sanity_check_paths = {
'files': ['bin/gap.sh', 'gap', 'gac'],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be bin/gap?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, the real file is gap.sh. With the postinstallcmds I add a symlink gap -> gap.sh

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you check for bin/gap, you make sure the symlink is effectively there, and that it points to an existing file. So why not check both?

'dirs': ['pkg']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No more specific checks for particular packages?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's a very long list and I don't know if any are more important then others.

And this comes directly from the tarball. It's not because it's there that it will work

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, fine then :)

}

moduleclass = 'math'
14 changes: 14 additions & 0 deletions easybuild/easyconfigs/g/gap/gap-4.9.3-use-EB-deps.patch
@@ -0,0 +1,14 @@
# Don't let gap build it's own Normaliz, use the EB version instead
# wpoely86@gmail.com
diff -ur 4.9.3-intel-2018b.orig/pkg/NormalizInterface-1.0.2/build-normaliz.sh 4.9.3-intel-2018b/pkg/NormalizInterface-1.0.2/build-normaliz.sh
--- 4.9.3-intel-2018b.orig/pkg/NormalizInterface-1.0.2/build-normaliz.sh 2018-10-16 15:26:01.350316915 +0200
+++ 4.9.3-intel-2018b/pkg/NormalizInterface-1.0.2/build-normaliz.sh 2018-10-16 15:24:30.353651528 +0200
@@ -12,6 +12,8 @@
# make
#

+exit 0
+
if [ "$#" -ge 1 ]; then
GAPDIR=$1
shift
135 changes: 135 additions & 0 deletions easybuild/easyconfigs/l/lrslib/lrslib-6.2-fix-plrs.patch
@@ -0,0 +1,135 @@
# Fix incorrect compare to NULL pointer. It will automically cast to bool
# wpoely86@gmail.com
diff -ur lrslib-062.orig/plrs.cpp lrslib-062/plrs.cpp
--- lrslib-062.orig/plrs.cpp 2016-05-27 11:04:14.000000000 +0200
+++ lrslib-062/plrs.cpp 2018-10-17 11:56:44.344749250 +0200
@@ -189,12 +189,12 @@
while(consume_list){

if(consume_list->type == "vertex"){
- if (OUTSTREAM == NULL)
+ if (!OUTSTREAM)
printf("%s\n",consume_list->data.c_str());
else OUTSTREAM <<consume_list->data<<endl;

}else if(consume_list->type == "ray"){
- if (OUTSTREAM == NULL)
+ if (!OUTSTREAM)
printf("%s\n",consume_list->data.c_str());
else OUTSTREAM <<consume_list->data<<endl;

@@ -204,13 +204,13 @@
//Note that we will not be piping initial cobasis to output
processCobasis(consume_list->data);
}else{
- if (OUTSTREAM == NULL)
+ if (!OUTSTREAM)
printf("%s\n",consume_list->data.c_str());
else OUTSTREAM <<consume_list->data<<endl;
}
}else if(consume_list->type =="V cobasis"){
if(!initializing){
- if (OUTSTREAM == NULL)
+ if (!OUTSTREAM)
printf("%s\n",consume_list->data.c_str());
else OUTSTREAM <<consume_list->data<<endl;
}
@@ -243,20 +243,20 @@
}else if(consume_list->type == "options warning"){
//Only pipe warnings if initializing otherwise they are displayed multiple times
if(initializing){
- if (OUTSTREAM == NULL)
+ if (!OUTSTREAM)
printf("%s\n", consume_list->data.c_str());
else OUTSTREAM <<consume_list->data<<endl;
}
}else if(consume_list->type == "header"){
//Only pipe headers if initializing otherwise they are displayed multiple times
if(initializing){
- if (OUTSTREAM == NULL)
+ if (!OUTSTREAM)
printf("%s\n", consume_list->data.c_str());
else OUTSTREAM <<consume_list->data<<endl;
}
}else if(consume_list->type == "debug"){
//Print debug output if it's produced
- if (OUTSTREAM == NULL)
+ if (!OUTSTREAM)
printf("%s\n", consume_list->data.c_str());
else OUTSTREAM << consume_list->data<<endl;
}
@@ -292,7 +292,7 @@

printf("*Max depth of %d to initialize starting cobasis list\n",
INITDEPTH);
- if(OUTSTREAM != NULL)
+ if(OUTSTREAM)
OUTSTREAM <<"*Max depth of "<<INITDEPTH<<" to initialize starting cobasis list"<<endl;

//Copy contents of ine file to temporary file
@@ -303,13 +303,13 @@
{
init_temp_file<<"estimates "<<ESTIMATES<<endl;
printf("*Estimates %d\n",ESTIMATES);
- if(OUTSTREAM != NULL)
+ if(OUTSTREAM)
OUTSTREAM <<"*Estimates "<<ESTIMATES<<endl;
if (SUBTREESIZE<1)
SUBTREESIZE=1000;
printf("*Subtreesize %d\n",SUBTREESIZE);
init_temp_file<<"subtreesize "<<SUBTREESIZE<<endl;
- if(OUTSTREAM != NULL)
+ if(OUTSTREAM)
OUTSTREAM <<"*Subtreesize "<<SUBTREESIZE<<endl;
}
if (!ESTIMATES || PLRS_DEBUG)
@@ -416,7 +416,7 @@
printf("*Output written to: %s\n",outputfile.c_str());
}

- if(OUTSTREAM != NULL)
+ if(OUTSTREAM)
{
OUTSTREAM <<"*plrs:"<<TITLE<<VERSION<<"("<<ARITH<<")"<<MAXTHREADS<<" processes"<<endl<<AUTHOR<<endl;
OUTSTREAM <<"*Input taken from "<<INPUTFILE<<endl;
@@ -472,11 +472,11 @@
consumer_thread.join();
}

- if (OUTSTREAM == NULL)
+ if (!OUTSTREAM)
printf("end\n");
else
OUTSTREAM <<"end"<<endl;;
- if(OUTSTREAM != NULL)
+ if(OUTSTREAM)
{
OUTSTREAM<<"*Finished initializing cobasis list with "<<cobasislistsize<<" starting cobases"<<endl;
OUTSTREAM <<"*Starting "<<MAXTHREADS<<" producer thread(s) and 1 consumer thread"<<endl;
@@ -484,22 +484,22 @@
if(FACETS > 0){
printf("%s\n", prat("*Volume=",Vnum,Vden).c_str());
printf("*Totals: facets=%ld bases=%ld\n",FACETS,BASIS);
- if (OUTSTREAM != NULL) {
+ if (OUTSTREAM) {
OUTSTREAM <<prat("*Volume=",Vnum,Vden) << endl ;
OUTSTREAM <<"*Totals: facets="<<FACETS<<" bases="<<BASIS<<endl;
}
}else{
printf("*Totals: vertices=%ld rays=%ld bases=%ld integer-vertices=%ld\n",VERTICES,RAYS,BASIS,INTVERTICES);
- if (OUTSTREAM != NULL)
+ if (OUTSTREAM)
OUTSTREAM<<"*Totals: vertices="<<VERTICES<<" rays="<<RAYS<<" bases="<<BASIS<< " integer-vertices="<<INTVERTICES<<endl;
}

- if(OUTSTREAM != NULL)
+ if(OUTSTREAM)
OUTSTREAM<< "*Phase 1 time: "<< phase1time <<
" seconds"<<endl;
gettimeofday(&end, NULL);
printf("*Elapsed time: %ld seconds\n", end.tv_sec - start.tv_sec);
- if (OUTSTREAM != NULL)
+ if (OUTSTREAM)
{
OUTSTREAM <<"*Elapsed time: "<<end.tv_sec - start.tv_sec<<" seconds."<<endl;
}
38 changes: 38 additions & 0 deletions easybuild/easyconfigs/l/lrslib/lrslib-6.2-intel-2018b.eb
@@ -0,0 +1,38 @@
easyblock = 'ConfigureMake'

name = 'lrslib'
version = '6.2'

homepage = 'http://cgm.cs.mcgill.ca/~avis/C/lrs.html'
description = """lrslib is a self-contained ANSI C implementation of the
reverse search algorithm for vertex enumeration/convex hull problems"""

toolchain = {'name': 'intel', 'version': '2018b'}

source_urls = ['http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/']
sources = ['%%(name)s-0%s.tar.gz' % version.replace('.', '')]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use %(name)s-0%(version_major)s%(version_minor)s.tar.gz

patches = [
'%(name)s-%(version)s-use-EB-values.patch',
'%(name)s-%(version)s-fix-plrs.patch',
]
checksums = [
'adf92f9c7e70c001340b9c28f414208d49c581df46b550f56ab9a360348e4f09', # lrslib-062.tar.gz
'00ad20f564a71af449d5bf720b9370522cc8189ec7b15a2e20688f6734c812a0', # lrslib-6.2-use-EB-values.patch
'6f49ed9f6219e8bf9448799c5be5cf1752447f3cbd2c7a07db44bd85d48f3a62', # lrslib-6.2-fix-plrs.patch
]

dependencies = [
('Boost', '1.67.0'),
('GMP', '6.1.2'),
]

skipsteps = ['configure']
buildopts = 'all plrs mplrs'
installopts = 'prefix=%(installdir)s'

sanity_check_paths = {
'files': ['bin/%s' % x for x in ['lrs', 'lrs1', '2nash', 'plrs', 'mplrs']],
'dirs': ['include', 'lib']
}

moduleclass = 'math'