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

add easyconfigs for pplacer and OCaml deps (REVIEW) #1056

Merged
merged 40 commits into from
Feb 24, 2016
Merged
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
6d5ab1a
add easyconfigs for pplacer and OCaml deps
boegel Sep 3, 2014
fc5be44
ad missing patch file for csv
boegel Sep 4, 2014
42760da
add zlib dependency for pplacer
boegel Sep 4, 2014
9c13932
Revert "add zlib dependency for pplacer"
boegel Sep 4, 2014
8172280
fix location of findlib.conf
boegel Sep 4, 2014
9f73f3d
get rid of unnecessary patch for OCaml with ictce
boegel Oct 10, 2014
53128ed
Revert "get rid of unnecessary patch for OCaml with ictce"
boegel Oct 10, 2014
4c7d79d
Merge branch 'develop' into ocaml_pplacer
boegel May 19, 2015
b9f6e36
include extensions in OCaml easyconfigs
boegel May 19, 2015
cac5a9c
Merge branch 'develop' into ocaml_pplacer
boegel Sep 29, 2015
f5ea289
bump to OCaml 4.02.3 and foss/2015a (2015b yields problems?)
boegel Oct 1, 2015
2563baf
remove use of faulty patch file
boegel Oct 1, 2015
b372389
fix easyconfig for CamlZIP
boegel Oct 1, 2015
4b040f6
add ocaml+twt and gsl extensions, drop csv and xmlm specialized exten…
boegel Oct 1, 2015
1bdbf8d
fix Autotools version
boegel Oct 1, 2015
79ba11a
fix style isses, drop extensions from existing OCaml 4.01.0 easyconfig
boegel Oct 1, 2015
f91fcbe
drop separate easyconfigs for OCaml packages, switch back to pplacer …
boegel Oct 6, 2015
f51f48e
remove unused easyconfigs
boegel Oct 6, 2015
a19fa08
add patch to make compilation of OCaml 4.01.0 with ictce/5.5.0 work
boegel Oct 6, 2015
8973370
fix patch
boegel Oct 6, 2015
196677c
really fix patch
boegel Oct 6, 2015
414eb8a
fix typo
boegel Oct 6, 2015
2f7d085
no need to specify start_dir
boegel Oct 6, 2015
79c87ba
extend patch for OCaml configure, add M4 as build dep for pplacer
boegel Oct 6, 2015
50eed51
set $OCAML_BACKEND to 'gcc' to fix issue with building gsl-ocaml
boegel Oct 6, 2015
e150a50
Merge branch 'develop' into ocaml_pplacer
boegel Oct 6, 2015
bc0b179
Merge branch 'develop' into ocaml_pplacer
boegel Feb 20, 2016
395bc0f
sync OCaml 4.01.0 ictce/5.5.0 easyconfig wrt deps & extensions
boegel Feb 20, 2016
56fde42
fix M4 version
boegel Feb 20, 2016
258f8f1
Merge branch 'ocaml_pplacer' of github.com:boegel/easybuild-easyconfi…
boegel Feb 21, 2016
1ee5deb
sync SQLite/Tcl easyconfigs
boegel Feb 21, 2016
564274e
remove custom libreadline/Tcl/SQLite easyconfigs
boegel Feb 21, 2016
137ebfd
Merge branch 'develop' into ocaml_pplacer
boegel Feb 21, 2016
b825580
stick to libreadline 6.2
boegel Feb 21, 2016
bb8088a
sync up OCaml 4.01.0 easyconfigs
boegel Feb 21, 2016
71836c9
fix source URLs for OCaml
boegel Feb 21, 2016
7536aa2
add comment in patch file
boegel Feb 21, 2016
287331b
fix output of 'pplacer --version'
boegel Feb 22, 2016
afdf8a5
fix remark
boegel Feb 23, 2016
8cb4757
use pplacer easyblock
boegel Feb 23, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 27 additions & 20 deletions easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-goolf-1.4.10.eb
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,43 @@
# License:: MIT/GPL
# $Id$
##

easyblock = 'ConfigureMake'

name = "OCaml"
version = "4.01.0"
name = 'OCaml'
version = '4.01.0'

homepage = 'http://ocaml.org/'
description = """OCaml is a general purpose industrial-strength programming language
with an emphasis on expressiveness and safety. Developed for more than 20 years at Inria
it benefits from one of the most advanced type systems and supports functional,
imperative and object-oriented styles of programming."""

toolchain = {'version': '1.4.10', 'name': 'goolf'}

sources = [SOURCELOWER_TAR_GZ]
sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1])
source_urls = ['http://caml.inria.fr/pub/distrib/%s' % sourcedir]

builddependencies = [('Autoconf', '2.69')]
dependencies = [('ncurses', '5.9')]

prefix_opt = "-prefix "
buildopts = "world.opt"
toolchain = {'name': 'goolf', 'version': '1.4.10'}

opam_ver = '1.2.2'
source_urls = [
'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]),
'https://github.com/ocaml/opam/releases/download/%s' % opam_ver,
]
sources = [
'ocaml-%(version)s.tar.gz',
Copy link
Member

Choose a reason for hiding this comment

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

NAMELOWER_TAR_GZ?

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, but SOURCELOWER_TAR_GZ would work ;)

'opam-full-%s.tar.gz' % opam_ver,
]

builddependencies = [('Autotools', '20150215', '', ('GCC', '4.7.2'))]
dependencies = [
('ncurses', '5.9'),
('libreadline', '6.3'),
('GSL', '1.16'),
]

# parallel build tends to break
parallel = 1

sanity_check_paths = {
'files': ["bin/ocaml", "bin/ocamlc"],
'dirs': []
}
# handled by OPAM, order matters!
exts_list = [
('ocamlfind', '1.5.5'),
('batteries', '2.3.1'),
('ocaml+twt', '0.94.0'),
('gsl', '1.18.5'),
]

moduleclass = 'lang'
50 changes: 50 additions & 0 deletions easybuild/easyconfigs/o/OCaml/OCaml-4.01.0-ictce-5.5.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
##
# This file is an EasyBuild reciPY as per https://github.com/hpcugent/easybuild
#
# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
# Authors:: Fotis Georgatos <fotis@cern.ch>
# License:: MIT/GPL
# $Id$
##
name = 'OCaml'
version = '4.01.0'

homepage = 'http://ocaml.org/'
description = """OCaml is a general purpose industrial-strength programming language
with an emphasis on expressiveness and safety. Developed for more than 20 years at Inria
it benefits from one of the most advanced type systems and supports functional,
imperative and object-oriented styles of programming."""

toolchain = {'name': 'ictce', 'version': '5.5.0'}

opam_ver = '1.2.2'
source_urls = [
'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]),
'https://github.com/ocaml/opam/releases/download/%s' % opam_ver,
]
sources = [
'ocaml-%(version)s.tar.gz',
'opam-full-%s.tar.gz' % opam_ver,
]

patches = ['OCaml-%(version)s_icc-fixes.patch']

builddependencies = [('Autotools', '20150215')]
dependencies = [
('ncurses', '5.9'),
('libreadline', '6.2'),
('GSL', '1.16'),
]

# parallel build tends to break
parallel = 1

# handled by OPAM, order matters!
exts_list = [
('ocamlfind', '1.5.5'),
('batteries', '2.3.1'),
('ocaml+twt', '0.94.0'),
('gsl', '1.18.5'),
]

moduleclass = 'lang'
22 changes: 22 additions & 0 deletions easybuild/easyconfigs/o/OCaml/OCaml-4.01.0_icc-fixes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
fix for Fatal error: exception Invalid_argument("gettimeofday not implemented")
author: Kenneth Hoste (HPC-UGent)
--- configure.orig 2015-10-06 10:19:12.763826416 +0200
+++ configure 2015-10-06 10:19:56.005026703 +0200
@@ -1015,7 +1015,7 @@
fi

has_select=no
-if sh ./hasgot select && \
+if cc="$cc -wd165" sh ./hasgot select && \
sh ./hasgot -i sys/types.h $select_include -t fd_set ; then
echo "select() found."
echo "#define HAS_SELECT" >> s.h
@@ -1084,7 +1084,7 @@
fi

has_gettimeofday=no
-if sh ./hasgot gettimeofday; then
+if cc="$cc -wd165" sh ./hasgot gettimeofday; then
echo "gettimeofday() found."
echo "#define HAS_GETTIMEOFDAY" >> s.h
has_gettimeofday="yes"
3 changes: 1 addition & 2 deletions easybuild/easyconfigs/o/OCaml/OCaml-4.02.3-foss-2015a.eb
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,9 @@ description = """OCaml is a general purpose industrial-strength programming lang

toolchain = {'name': 'foss', 'version': '2015a'}

ocaml_sourcedir = name.lower() + '-' + '.'.join(version.split('.')[0:-1])
opam_ver = '1.2.2'
source_urls = [
'http://caml.inria.fr/pub/distrib/%s' % ocaml_sourcedir,
'http://caml.inria.fr/pub/distrib/ocaml-%s' % '.'.join(version.split('.')[:2]),
'https://github.com/ocaml/opam/releases/download/%s' % opam_ver,
]
sources = [
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
easyblock = 'MakeCp'
Copy link
Member Author

Choose a reason for hiding this comment

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

needs to be changed to OCamlPackage

Copy link
Member Author

Choose a reason for hiding this comment

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

well, maybe not... the build procedure here is quite different


name = 'pplacer'
version = '1.1.alpha16'

homepage = 'http://matsen.fhcrc.org/pplacer/'
description = """Pplacer places query sequences on a fixed reference phylogenetic tree to maximize phylogenetic
likelihood or posterior probability according to a reference alignment. Pplacer is designed to be fast, to give
useful information about uncertainty, and to offer advanced visualization and downstream analysis."""

toolchain = {'name': 'ictce', 'version': '5.5.0'}

source_urls = [
'https://github.com/matsen/pplacer/archive/',
'https://github.com/matsen/pplacer-opam-repository/archive/',
]
sources = [
'v%(version)s.tar.gz',
'ba5e766.tar.gz', # pplacer-opam-repository (20151002)
]

patches = ['pplacer-%(version)s_fix-sqlite3-req-pkg.patch']

ocaml = 'OCaml'
ocamlver = '4.01.0'
versionsuffix = '-%s-%s' % (ocaml, ocamlver)
dependencies = [
(ocaml, ocamlver),
('zlib', '1.2.7'), # for CamlZIP OCaml package
('GSL', '1.16'), # for GSL-OCaml package
('SQLite', '3.8.6'), # for SQLite3-OCaml package
]
builddependencies = [
('M4', '1.4.17'),
]

# see http://matsen.github.io/pplacer/compiling.html#opam
prebuildopts = "rm -rf %(installdir)s && export OPAMROOT=%(installdir)s && opam init && "
prebuildopts += "opam repo add pplacer-deps %(builddir)s/pplacer-opam-repository*/ && "
prebuildopts += "opam update pplacer-deps && eval `opam config env` && "
prebuildopts += "export OCAML_BACKEND=gcc && cat opam-requirements.txt | xargs opam install -y && "
prebuildopts += "echo 'let version = \"v%(version)s\"\n' > common_src/version.ml && "
Copy link
Member

Choose a reason for hiding this comment

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

this hurts my eyes

Copy link
Member Author

Choose a reason for hiding this comment

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

meaning?

Copy link
Member

Choose a reason for hiding this comment

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

it needs a block?

Copy link
Member Author

Choose a reason for hiding this comment

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

well, ok then...


# parallel build tends to break
parallel = 1

files_to_copy = ['bin']

sanity_check_paths = {
'files': ['bin/guppy', 'bin/pplacer', 'bin/rppr'],
'dirs': [],
}

sanity_check_commands = [('pplacer', '--version | grep %(version)s')]

moduleclass = 'bio'
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
fix name of required sqlite3-ocaml package
see also https://github.com/matsen/pplacer/commit/4ae1c6803486a6460a776b6807657a3bcc4005da
--- opam-requirements.txt.orig 2015-10-06 16:38:42.246475661 +0200
+++ opam-requirements.txt 2015-10-06 16:38:50.586708932 +0200
@@ -4,5 +4,5 @@
mcl.12-068oasis3
batteries.2.1.0
ocaml-gsl.0.6.3
-sqlite3-ocaml.1.6.3
+sqlite3.1.6.3
camlzip.1.05