Recipes to build ALICE software
Clone or download
ktf Add support for arrow 0.12.0 (#1464)
* Also enable support for parquet, which is now shipped with arrow
* Build our own lz4 and thrift packages, rather than consider them
  system dependencies.
Latest commit 5f8c00e Jan 18, 2019
Permalink
Type Name Latest commit message Commit time
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 New recipe for Monte Carlo step logger (#1441) Dec 19, 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 ROOUnfold to AliPhysics (#1448) Jan 10, 2019
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 Allow to build AliPhysics using ninja (#1272) Oct 4, 2018
alitpccommon.sh Bump AliTPCCommon to 2.3.2 (#1455) Jan 10, 2019
alo-aliroot.sh Add dependency on yaml-cpp (#1429) Dec 7, 2018
alo-o2.sh alo is now split in two : alo-aliroot and alo-o2 (#1342) Oct 17, 2018
ampt.sh Bump versions (#1227) Jul 26, 2018
apmon-cpp.sh Use C++17 in O2 (#1293) Oct 4, 2018
arrow.sh Add support for arrow 0.12.0 (#1464) Jan 18, 2019
aurora.sh Move to alice/v0.16.0 Mar 8, 2017
autotools.sh Simplify and improve defaults and configurations (#1415) Dec 4, 2018
boost.sh Simplify and improve defaults and configurations (#1415) Dec 4, 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 Update clang.sh (#1397) Nov 19, 2018
clhep.sh Package names to follow current conventions Jul 23, 2015
cmake.sh Fix CMake version check (#1425) Dec 5, 2018
coconut.sh Bump Control (#1446) Dec 20, 2018
codingguidelines.sh Addition of codingguidelines recipe and use in qualitycontrol (#1362) Nov 4, 2018
common-o2.sh Bump common to v1.4.0 (#1470) Jan 17, 2019
configuration-benchmark.sh Cannot assume boost is installed with brew Dec 7, 2017
configuration.sh Bump Configuration to v2.2.0 (#1394) Nov 20, 2018
control-core.sh Bump Control (#1446) Dec 20, 2018
control-occplugin.sh Bump Control (#1446) Dec 20, 2018
control.sh Bump Control (#1446) Dec 20, 2018
cpprestsdk.sh Disable tests and samples Nov 28, 2016
crmc.sh New AliGenerator release (#1036) Apr 24, 2018
cub.sh Add dependencies required by the ITS GPU builds (#1406) Nov 26, 2018
curl.sh Fix aliDoctor curl test (#797) Jul 18, 2017
daq.sh Update defaults for native/DAQ SLC6 builds (#751) May 19, 2017
dds.sh DDS: wrong logic in wn_bin building Jan 17, 2019
defaults-coverage.sh Add coverage support (#437) Jun 14, 2016
defaults-jalien.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
defaults-next-root6.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
defaults-o2-dataflow.sh Simplify and improve defaults and configurations (#1415) Dec 4, 2018
defaults-o2-dev-fairroot.sh Simplify and improve defaults and configurations (#1415) Dec 4, 2018
defaults-o2.sh Enable grpc in defaults-o2 (#1426) Dec 6, 2018
defaults-prod-latest.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
defaults-pwgmmtest.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
defaults-release.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
defaults-root6.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
defaults-user-next-root6.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
defaults-user-root6.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
defaults-user.sh Bump AliRoot to v5-09-45 (#1465) Jan 15, 2019
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 to 1.3.8 (#1461) Jan 15, 2019
fairroot.sh Bump FairRoot (#1365) Nov 1, 2018
fastjet.sh Add ROOT_INCLUDE_PATH to FastJet (#1356) Oct 25, 2018
flatbuffers.sh Bump flatbuffers to fix -Werror=ignored-qualifiers in GCC 8 (#1449) Jan 11, 2019
flpproto.sh flpproto does not need to build anything itself (#1337) Oct 16, 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 to 2011.2c-vmc4 (input file fix) (#1304) Sep 26, 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 Simplify and improve defaults and configurations (#1415) Dec 4, 2018
geant-vmc-test.sh Improve defaults_upper handling Oct 12, 2017
geant3.sh Bump GEANT3 to v2-6 to fix GCC 7 issue (#1466) Jan 17, 2019
geant3_vmc-examples.sh Update Pythia6 to version 6.4.28 (#470) Jul 21, 2016
geant4.sh Simplify and improve defaults and configurations (#1415) Dec 4, 2018
geant4_vmc.sh Simplify and improve defaults and configurations (#1415) Dec 4, 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 Bump go (#1339) Oct 16, 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 Fix gRPC recipe on Mac (#1431) Dec 22, 2018
gsl.sh Simplify and improve defaults and configurations (#1415) Dec 4, 2018
hdf5.sh Adding build recipe for jetscape (#1460) Jan 17, 2019
hepmc.sh Bump HepMC version to v2.06.09-alice1 (#1376) Nov 7, 2018
hepmc3.sh Fix HepMC3 install libdir (#1320) Oct 8, 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 bump infologger v1.2.0 (#1475) Jan 18, 2019
jalien-root.sh Fix ROOT plugin loading order for JAliEn (#1386) Dec 12, 2018
jalien.sh Bump jAliEn to 1.0.8 (#1437) Dec 14, 2018
jdk.sh Use OpenJDK on both macOS and Linux (#1208) Jun 26, 2018
jemalloc.sh Bump jemalloc to 5.1.0 (#1317) Oct 4, 2018
jetscape.sh Adding build recipe for jetscape (#1460) Jan 17, 2019
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
libtirpc.sh Add libtirpc (#1381) Nov 16, 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 support for arrow 0.12.0 (#1464) Jan 18, 2019
lzma.sh Add recipe for LZMA Nov 30, 2017
mcsteplogger.sh PATH information for MCStepLogger in modulefile (#1444) Jan 11, 2019
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 Bump monitoring to v2 (#1445) Jan 18, 2019
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 msgpack: bump version to satisfy FairMQ 1.3.5 (#1366) Nov 1, 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 o2: require MCStepLogger (#1443) Jan 11, 2019
o2checkcode.sh Fix o2checkcode when no source files changed (#1275) Aug 30, 2018
o2codechecker.sh Improve defaults_upper handling Oct 12, 2017
o2suite.sh Add O2Suite and tag O2 (#1403) Nov 21, 2018
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 Simplify and improve defaults and configurations (#1415) Dec 4, 2018
pythia.sh pythia: version bump (#1474) Jan 18, 2019
pythia6.sh Fix Pytha6 recipe (#1068) Apr 7, 2018
python-modules.sh Fix Matplotlib download/unpack from GitHub Mar 2, 2018
python.sh Build Python's own libffi (#1377) Nov 7, 2018
qcg.sh QCG changes in order to enable RPMs (#1471) Jan 17, 2019
qualitycontrol.sh bump qc (#1473) Jan 18, 2019
rapidjson.sh Bump RapidJSON to v1.1.0-alice1 (#1071) Apr 7, 2018
readout.sh bump readout v0.17.0 (#1469) Jan 18, 2019
readoutcard.sh Bump ReadoutCard to v0.9.6 (#1472) Jan 17, 2019
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 Fix ROOT plugin loading order for JAliEn (#1386) Dec 12, 2018
roounfold.sh Add ROOUnfold to ROOT_INCLUDE_PATH (#1458) Jan 10, 2019
sacrifice.sh New AliGenerator release (#1036) Apr 24, 2018
sas.sh Pick up my version of SAS. Aug 26, 2015
sherpa.sh Fix SHERPA dependency on GCC-Toolchain on macOS (#1334) Oct 16, 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 Add support for arrow 0.12.0 (#1464) Jan 18, 2019
treelite.sh Introduce treelite (#1412) Dec 4, 2018
uuid.sh UUID preserve links when copying to installroot (#809) Aug 11, 2017
vc.sh Use C++17 in O2 (#1293) Oct 4, 2018
vecgeom.sh Generalize G4 recipe; Upgrade sim environment for O2 Nov 29, 2017
vgm.sh Fix vgm version specification (#1423) Dec 5, 2018
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 Allow to build AliPhysics using ninja (#1272) Oct 4, 2018
yacc-like.sh Improve error message for yacc-like (#382) May 11, 2016
yaml-cpp.sh Use C++17 in O2 (#1293) Oct 4, 2018
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.