Recipes to build ALICE software
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
scripts Check for defaults_upper usage (#1140) May 15, 2018
.gitignore Add Monitoring and Configuration to O2 (#940) Dec 4, 2017
.travis.yml Check for the presence of a Modulefile (#1099) Apr 25, 2018
CODEOWNERS Update JAliEn-related parts in CODEOWNERS (#1209) Jun 27, 2018
Jenkinsfile Do not run tests for deleted files (#557) Nov 2, 2016
README.md Improve documentation of how to include homebrew system packages Aug 24, 2018
agile.sh Make recipes depend on Python-modules, not Python Nov 30, 2017
alidpg.sh Add AliDPG recipe May 3, 2016
alien-cas.sh Bump AliEn CAs to alisw/alien-cas#2 (#1291) Sep 19, 2018
alien-runtime.sh Use upstream OpenSSL v1.0.2o (#1091) Apr 24, 2018
alien-workqueue.sh Update cctools/AliEn-WorkQueue (#518, #519, #520) Sep 27, 2016
aligenerators.sh New AliGenerator release (#1036) Apr 24, 2018
aligenmc.sh Improve defaults_upper handling Oct 12, 2017
aliphysics.sh Add compile_commands to AliRoot and AliPhysics (#1158) May 23, 2018
aliroot-coverage.sh Improve defaults_upper handling Oct 12, 2017
aliroot-csa.sh Support for Clang Static Analyser, including Danilo's SAS. Aug 26, 2015
aliroot-guntest.sh Providing a recipe that runs and verifies a simple virtual Monte Carl… ( Jun 29, 2017
aliroot-ocdb.sh Add AliRoot-OCDB optional package (#659) Mar 22, 2017
aliroot-test.sh Improve defaults_upper handling Oct 12, 2017
aliroot.sh Integrate JAliEn (#1084) Aug 28, 2018
alitpccommon.sh Bump AliTPCCommon to v1.4.1 - fix MacOS compilation (#1281) Sep 7, 2018
alo.sh Link the compile_command.json also when not doing an incremental_reci… Sep 20, 2018
ampt.sh Bump versions (#1227) Jul 26, 2018
apmon-cpp.sh Fix XCode9 issues in ApMon Oct 3, 2017
arrow.sh Bump GCC to v7.3.0 for O2/ROOT6 (#1214) Jul 4, 2018
aurora.sh Move to alice/v0.16.0 Mar 8, 2017
autotools.sh Keep linter happy Oct 23, 2017
boost.sh Build boost with containter support (#1074) Apr 10, 2018
bz2.sh Improve error messages and dependencies for O2 (#793) Jul 12, 2017
cctools.sh Update cctools/AliEn-WorkQueue (#518, #519, #520) Sep 27, 2016
cern-get-sso-cookie.sh Add cern-get-sso-cookie recipe (#524) Sep 14, 2016
cgal.sh Fix cgal curl command Feb 14, 2018
clang.sh Fix clang recipe platforms compatibility Jun 1, 2017
clhep.sh Package names to follow current conventions Jul 23, 2015
cmake.sh Disable problematic SSL in CMake (#1061) Mar 22, 2018
coconut.sh Use short_hash instead of commit_hash in version numbers (#1201) Jun 15, 2018
common-o2.sh common-o2: use BOOST_ROOT for explicit boost lookup (#1266) Aug 24, 2018
configuration-benchmark.sh Cannot assume boost is installed with brew Dec 7, 2017
configuration.sh Build ppconsul on mac (#1224) Jul 30, 2018
control-core.sh Use short_hash instead of commit_hash in version numbers (#1201) Jun 15, 2018
control-occplugin.sh Use short_hash instead of commit_hash in version numbers (#1201) Jun 15, 2018
control.sh Add recipes for golang, Control and coconut (#1180) Jun 13, 2018
cpprestsdk.sh Disable tests and samples Nov 28, 2016
crmc.sh New AliGenerator release (#1036) Apr 24, 2018
curl.sh Fix aliDoctor curl test (#797) Jul 18, 2017
daq.sh Update defaults for native/DAQ SLC6 builds (#751) May 19, 2017
datasampling.sh datasampling: use BOOST_ROOT to enable boost lookup (#1269) Aug 24, 2018
dds.sh Bump DDS version an re-enable building of wn_bin (#1054) Mar 21, 2018
defaults-alo.sh Require ninja for ppconsul (#1294) Sep 20, 2018
defaults-coverage.sh Add coverage support (#437) Jun 14, 2016
defaults-daq.sh Disable AliEn explicitly for DAQ DA builds Nov 20, 2017
defaults-debug.sh Add missing c++11 support in debug defaults May 3, 2016
defaults-el6native.sh Disable Python in SLC6 builds (#1059) Mar 22, 2018
defaults-jalien-root6.sh Bump AliRoot to v5-09-37 (#1278) Sep 2, 2018
defaults-jalien.sh Add JAliEn (#1167) Jun 21, 2018
defaults-next-root6.sh Fix AliRoot/AliPhysics version name in ROOT 6 (#1289) Sep 18, 2018
defaults-o2-dataflow.sh Bump ROOT 6 to v6-14-04 (#1270) Aug 24, 2018
defaults-o2-dev-fairroot.sh default-o2-dev-fairroot: update msgpack (#1286) Sep 12, 2018
defaults-o2-ninja.sh Bump ROOT 6 to v6-14-04 (#1270) Aug 24, 2018
defaults-o2.sh Bump ROOT 6 to v6-14-04 (#1270) Aug 24, 2018
defaults-prod-latest.sh Bump AliRoot to v5-09-37 (#1278) Sep 2, 2018
defaults-prod.sh Add new defaults for prod and user installation (#924) Nov 16, 2017
defaults-pwgmmtest.sh Bump AliRoot to v5-09-37 (#1278) Sep 2, 2018
defaults-release.sh Enable C++11 Apr 1, 2016
defaults-root6.sh Bump AliRoot to v5-09-37 (#1278) Sep 2, 2018
defaults-shuttle.sh Lower CMake requirement on SHUTTLE Nov 8, 2017
defaults-test.sh Use RELEASE for CMake builds (implies -O3) (#469) Jul 21, 2016
defaults-user-next-root6.sh Bump AliRoot to v5-09-37a for ROOT 6 tests (#1288) Sep 18, 2018
defaults-user-root6.sh Bump AliRoot to v5-09-37 (#1278) Sep 2, 2018
defaults-user.sh Bump AliRoot to v5-09-37 (#1278) Sep 2, 2018
dim.sh Make DIM work without gmake Jan 16, 2018
dpmjet.sh Improve defaults_upper handling Oct 12, 2017
epos-test.sh Fixing EPOS recipe and basic test Nov 16, 2015
epos.sh New AliGenerator release (#1036) Apr 24, 2018
fairlogger.sh Add $FAIRLOGGER_ROOT/include to ROOT_INCLUDE_PATH (#1191) Jun 13, 2018
fairmq.sh bump fairmq (#1285) Sep 12, 2018
fairroot.sh Work around hardcoded FairRoot paths in PCM (#1198) Jun 14, 2018
fastjet.sh Bump FastJet to v3.2.1_1.024-alice3 (#1069) Apr 7, 2018
flatbuffers.sh Integrate Apache Arrow v0.9.0 (#1102) Apr 26, 2018
flpproto.sh Bump dataflow versions for FairRoot split (#1190) Jun 12, 2018
flpprotocheckcode.sh FLP prototype checkcode recipe (#850) Sep 18, 2017
fluka.sh Add FLUKA and FLUKA_VMC (#1052) Apr 29, 2018
fluka_vmc.sh Bump FLUKA_VMC (#1253) Aug 21, 2018
fonll.sh Add FONLL recipe (#806) Aug 11, 2017
freetype.sh Improve error messages and dependencies for O2 (#793) Jul 12, 2017
gcc-toolchain.sh Make ROOT and Python build without AliEn-Runtime (#907) Mar 21, 2018
geant-vmc-test.sh Improve defaults_upper handling Oct 12, 2017
geant3.sh Add missing ROOT_INCLUDE_PATHs Aug 6, 2018
geant3_vmc-examples.sh Update Pythia6 to version 6.4.28 (#470) Jul 21, 2016
geant4.sh Use initial-exec as threading model for G4(MT) mode (#1258) Aug 23, 2018
geant4_vmc.sh Bump GEANT4_VMC to v3-2-p2-alice1 (#1081) Apr 23, 2018
geantv.sh Improve defaults_upper handling Oct 12, 2017
geekbench.sh Add Geekbench May 3, 2016
generators.sh Add automatic Modulefile for sim/gen Nov 22, 2017
glog.sh Fix glog modulefile Oct 13, 2017
gmp.sh Make modulefiles work on OSX (#324) May 3, 2016
go.sh Add Go-1.7 (#563) Nov 8, 2016
golang.sh Add recipes for golang, Control and coconut (#1180) Jun 13, 2018
googlebenchmark.sh Fix googlebenchmark support in O2 (#1100) Apr 25, 2018
googletest.sh Add CMake to googletest requirements (#672) Apr 5, 2017
grpc.sh Bump gRPC to 1.14.0 (#1240) Aug 6, 2018
gsl.sh Improve defaults_upper handling Oct 12, 2017
hepmc.sh Improve defaults_upper handling Oct 12, 2017
hepmc3.sh Bump HepMC3 version Feb 6, 2018
herwig.sh New AliGenerator release (#1036) Apr 24, 2018
hijing.sh Make GCC_TOOLCHAING a dependency for hijing Oct 26, 2017
igprof-packaging.sh Improved IgProf packaging Nov 2, 2015
igprof.sh Improved IgProf packaging Nov 2, 2015
infologger.sh infologger v1.0.5 (#1062) Mar 26, 2018
jalien-root.sh Integrate JAliEn (#1084) Aug 28, 2018
jalien.sh Bump jalien to version 1.0.3 (#1264) Aug 23, 2018
jdk.sh Use OpenJDK on both macOS and Linux (#1208) Jun 26, 2018
jemalloc.sh Improve defaults_upper handling Oct 12, 2017
jewel.sh New AliGenerator release (#1036) Apr 24, 2018
json-c.sh Integrate JAliEn (#1084) Aug 28, 2018
kernel-devel.sh pda recipe initial version (#794) Jul 18, 2017
kfparticle.sh Bump KFParticle to v1.0 and add ROOT include Feb 14, 2018
lcov.sh Fix another typo with env Jan 16, 2018
lhapdf-pdfsets.sh New AliGenerator release (#1036) Apr 24, 2018
lhapdf.sh Bump LHAPDF to a version with pdfsets URL fixed (#1262) Aug 23, 2018
lhapdf5.sh Bump LHAPDF to a version with pdfsets URL fixed (#1262) Aug 23, 2018
libatomic_ops.sh Use build_requires wherever appropriate Sep 18, 2015
libinfologger.sh Add libinfologger (#1063) Apr 2, 2018
libperl.sh Do not depend on c++ to check for perl (#497) Aug 29, 2016
libpng.sh Force libpng libpath to be `lib` everywhere Mar 2, 2018
libunwind.sh Improved IgProf packaging Nov 2, 2015
libwebsockets.sh Integrate JAliEn (#1084) Aug 28, 2018
libxml2.sh Add JAliEn (#1167) Jun 21, 2018
lz4.sh Add parquet-cpp recipe (#422) Jun 7, 2016
lzma.sh Add recipe for LZMA Nov 30, 2017
mesos-dds.sh Allow picking mesos from the system (#477) Jul 21, 2016
mesos-workqueue.sh Make modulefiles work on OSX (#324) May 3, 2016
mesos.sh Make recipes depend on Python-modules, not Python Nov 30, 2017
monitoring.sh Fixes env var (#1221) Jul 5, 2018
motif.sh Improve DIM dependencies and installation (#798) Jul 18, 2017
mpfr.sh Make modulefiles work on OSX (#324) May 3, 2016
ms_gsl.sh Add ROOT_INCLUDE_PATH to ms_gsl and Vc Feb 27, 2018
msgpack.sh Add FairMQ and FairLogger (#1131) May 11, 2018
mysql.sh Add MySQL/MariaDB as a ROOT system dep on CC7 (#692) Apr 26, 2017
nanomsg.sh nanomsg: move to 1.1.3 (#1283) Sep 12, 2018
ninja.sh Use ROOT v6-10-08, restore working userspace (#1226) Jul 19, 2018
node.sh Improve nodejs recipe (#1126) May 4, 2018
o2.sh Add curl as dependency of O2 (#1287) (O2-347) Sep 13, 2018
o2checkcode.sh Fix o2checkcode when no source files changed (#1275) Aug 30, 2018
o2codechecker.sh Improve defaults_upper handling Oct 12, 2017
ocdb-test.sh Update OCDB to v5-08-19 (#600) Dec 15, 2016
opengl.sh Improve error messages and dependencies for O2 (#793) Jul 12, 2017
openssl.sh Add OpenSSL version check (#1245) Aug 9, 2018
osx-system-openssl.sh Make OpenSSL is a system requirement on OSX (#398) Jun 22, 2016
parquet-cpp.sh Add parquet-cpp recipe (#422) Jun 7, 2016
pcre.sh Improve prefer system rules for a few externals Jan 15, 2016
pda.sh pda recipe initial version (#794) Jul 18, 2017
perl-modules.sh Add perl-modules initial implementation (#429) Jun 9, 2016
powheg.sh Improve defaults_upper handling Oct 12, 2017
ppconsul.sh ppconsul: Allow boost to be picked up via brew (#1265) Aug 24, 2018
protobuf.sh Add version check to protobuf (#966) Dec 12, 2017
pythia.sh Bump Pythia version to 8.235 (#1159) Jun 12, 2018
pythia6.sh Fix Pytha6 recipe (#1068) Apr 7, 2018
python-modules.sh Fix Matplotlib download/unpack from GitHub Mar 2, 2018
python.sh Disable unreliable multicore Python builds (#1058) Mar 22, 2018
qcg.sh Update QCG version (#1171) May 31, 2018
qualitycontrol.sh Bump quality_control to v0.6.2 (#1255) Aug 21, 2018
rapidjson.sh Bump RapidJSON to v1.1.0-alice1 (#1071) Apr 7, 2018
readout.sh bump readout v0.9.0 (#1273) Aug 29, 2018
readoutcard.sh bump v0.8.8 (#1094) Apr 24, 2018
rivet-hi.sh Fix rivet-config relocation (#1280) Sep 7, 2018
rivet-test.sh Update Rivet and YODA (#464) Jul 6, 2016
rivet.sh Fix rivet-config relocation (#1280) Sep 7, 2018
root.sh Explicitly enable Fortran in ROOT (#1218) Jul 5, 2018
roounfold.sh Improve defaults_upper handling Oct 12, 2017
sacrifice.sh New AliGenerator release (#1036) Apr 24, 2018
sas.sh Pick up my version of SAS. Aug 26, 2015
sherpa.sh New AliGenerator release (#1036) Apr 24, 2018
simulation.sh Enable HepMC3 in O2 and avoid conflicts with packages requiring HepMC2 ( Dec 1, 2017
sip-check.sh Improve system requirements checks (#349) May 3, 2016
snappy.sh Add parquet-cpp recipe (#422) Jun 7, 2016
sodium.sh Make modulefiles work on OSX (#324) May 3, 2016
sqlite.sh Improve defaults_upper handling Oct 12, 2017
swig.sh Improve SWIG support (#999) Jan 29, 2018
template-recipe.sh Make modulefiles work on OSX (#324) May 3, 2016
termcap.sh Fix autotools emacs and termcap problem (#419) Jun 3, 2016
thepeg-test.sh ThePEG v2015-08-11 Oct 12, 2015
thepeg.sh New AliGenerator release (#1036) Apr 24, 2018
therminator2.sh Bump versions (#1227) Jul 26, 2018
thrift.sh Cleanup thrift recipe Aug 3, 2018
uuid.sh UUID preserve links when copying to installroot (#809) Aug 11, 2017
vc.sh Add ROOT_INCLUDE_PATH to ms_gsl and Vc Feb 27, 2018
vecgeom.sh Generalize G4 recipe; Upgrade sim environment for O2 Nov 29, 2017
vgm.sh Generalize G4 recipe; Upgrade sim environment for O2 Nov 29, 2017
xalienfs.sh Fix xalienfs error with Xcode 9 Oct 3, 2017
xcode.sh Check for Xcode cmdline tools on macOS (#747) May 17, 2017
xdevel.sh Improve error messages and dependencies for O2 (#793) Jul 12, 2017
xrootd.sh Add JAliEn (#1167) Jun 21, 2018
yacc-like.sh Improve error message for yacc-like (#382) May 11, 2016
yaml-cpp.sh Avoid boost modulefile if system boost is used (#522) Oct 11, 2016
yoda.sh New AliGenerator release (#1036) Apr 24, 2018
zeromq.sh Add FairMQ/FairLogger as FairRoot deps for o2-fairroot-dev (#1155) May 23, 2018
zlib.sh Use cc instead of gcc in system checks (#979) Jan 16, 2018

README.md

alidist

Recipes to build ALICE SW

Guidelines for commit messages

  • Keep the first line of the commit below 50 chars
  • Leave the second line empty
  • Try to keep the lines after the third below 72 chars
  • Use some imperative verb as first word of the first line
  • Do not end the first line with a full-stop (i. e. .)
  • Make sure you squash / cleanup your commits when it makes sense (e.g. if they are really one the fix of the other). Keep history clean.

Example:

Fix issue in Geant4

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.

Guidelines for contributing recipes

  • Keep things simple (but concise).
  • Use 2 spaces to indent them.
  • Try avoid "fix typo" commits and squash history whenever makes sense.
  • Avoid touching $SOURCEDIR. If your recipe needs to compile in source, first copy them to $BUILDIR via:
rsync -a $SOURCEDIR ./
  • If a package is a toolkit not really affecting physics performance, make sure you provide a prefer_system_check rule to have laptop user pick it up from the system.
  • If a package is a physics related one. Avoid providing a prefer_system_check unless explicitly discussed withing the Computing Board or the O2 Technical board.
  • If SOMETHING_VERSION or SOMETHING_REVISION is defined, you can assume SOMETHING_ROOT is defined and points to an aliBuild built package. However the opposite is not true. I.e. you should not assume that SOMETHING_ROOT being defined means that a something was built with aliBuild (it could come from the system) and you cannot assume that SOMETHING_VERSION and SOMETHING_REVISION are set.
  • If a package can / could be picked up from the system, do not provide, in the modulefile, any variable which is not also exposed in general by the system installation. E.g. ROOTSYS is fine because that kind of a standard for ROOT installations, GCC_ROOT is not because GCC in general does not use GCC_ROOT.
  • When picking up a system dependency installed with homebrew, make sure you override the SOMETHING_ROOT variable when it's not set by using brew --prefix.
case $ARCHITECTURE in
  osx)
[ ! $BOOST_ROOT ] || BOOST_ROOT=$(brew --prefix boost)
  ;;
esac

Then use such a variable to pass the information optionally to, e.g., CMake.

cmake ...                                   \
  ${BOOST_ROOT:+-DBOOST_ROOT=$BOOST_ROOT}

This will make sure that if a package was selected to be picked up by the system (i.e. BOOST_ROOT is not set), we will look it up in the package specific folder when using homebrew.

You should never set any SOMETHING_ROOT variable to /usr/local because that is a global folder and it will make it have precendence in the lookup, therefore potentially implicitly bringing in incompatible versions of external packages.

Guidelines for handling externals sources

Whenever you need to build a new external, you should consider the following:

  • If a Git / GitHub mirror exists, and no patches are required, use it for the package source.

  • If a Git / GitHub repository exists and you need to patch it, fork it, decide a fork point, possibly based on a tag or eventually a commit hash, and create a branch in your fork called alice/<fork-point>. This can be done with:

    git checkout -b alice/<fork-point> <fork-point>
    

    patches should be applied on such a branch.

  • If no git repository is available, or if mirroring the whole repository is not desirable, create a repository with a master branch. On the master branch import relevant released tarballs, one commit per tarball. Make sure you tag the commit with the tag of the tarball. E.g.:

    git clone https://github.com/alisw/mysoft
    curl -O https://mysoftware.com/mysoft-version.tar.gz
    tar xzvf mysoft-version.tar.gz
    rsync -a --delete --exclude '**/.git' mysoft-version/ mysoft/
    cd mysoft
    git add -A .
    git commit -a -m 'Import https://mysoftware.com/mysoft-<version>.tar.gz'
    git tag <version>
    

    In case you need to add a patch on top of a tarball, create a branch with:

    git checkout -b alice/<version> <version>
    

    and add your patches on such a branch.

  • Do not create extra branches unless you do need to patch the original sources.

Moreover try to keep the package name (as specified inside the recipe in the package field of the header) and the repository name the same, including capitalization.

PWGMM owned packages

The following packages have been agreed to be under PWGMM ownership and will require its signoff to be deployed in production.

  • aligenerators
  • crmc
  • epos
  • epos-test
  • hepmc
  • jewel
  • lhapdf
  • lhapdf5
  • powheg
  • pythia
  • pythia6
  • rivet
  • rivet-test
  • sherpa
  • thepeg
  • thepeg-test
  • yoda

Plus any of their dependencies.