Skip to content

AnalysisBaseExternals sync to LCG_88, 1.0 branch (2017.05.26.)

This is a pretty lengthy one...

First off, I updated the Boost, Python and ROOT packages to build versions of these externals compatible with LCG_88. For this I started picking up the sources of Boost and Python from the new SFT web location (http://cern.ch/lcgpackages/tarFiles/sources).

But the main reason I started this work (and the reason the source branch is called as it is) was to find a way to fix the one remaining issue on MacOS X with System Integrity Protection (SIP). Until now PyROOT scripts could only work in AnalysisBase jobs on the latest MacOS version if SIP was disabled. Now I'm circumventing the issue by forcing AnalysisBaseExternals to always build Python when on MacOS. In the future the logic should be updated to not build it if find_package(PythonInterp) finds thepython executable outside of /usr/bin (so the user made a custom build of it already), but as a first step this should be good enough. After all the normal users don't have proper Python+ROOT installations on their laptops at the moment for PyROOT anyway.

Finally, to deal with this additional logic in when/where the different externals should and should not be built, the logic deciding about it was removed from the individual packages, and put into Projects/AnalysisBaseExternals/ProjectOptions.cmake. Which sets some simple variables, that the individual "packages" in turn respect. This logic update should not break the build of all the other projects, as neither of them build Boost, Python or ROOT themselves. So none of them setting any of these variables gives us the expected behaviour.

I'd like to put this in before 1.0.13 is tagged. As that tag will be used for a large number of purposes...

Merge request reports