Built-in libraries of 6.30.06

I am addressing here the post of @Wile_E_Coyote , also hoping to limit replies to locked news posts in the future.

The strategy adopted by ROOT is to rely more and more on system packages. The motivation is at least twofold: we want to limit the effort spent in trying to aggregate several packages in one and we want to profit from the great work Linux distro packagers contribute to ROOT, delivering to the Linux users high quality ROOT packages (we are sincerely, really, really grateful to them).

You noticed the difference with 6.04 and identified also GPL packages, which are currently absent from the 6.30 cycle (6.04 is an exception, 6.02 is not as 6.00 was not). This is a matter we are discussing internally, and it could be that the situation for 6.32 will be different.

@Wile_E_Coyote , you are a great contributor to the ROOT Forum since years, one of the handful of users that can be proud of a trust level 4 (Leader), a level that proves your commitment and experience. Should you have more comments about the way we deliver binaries, or anything related to ROOT, do not hesitate to contact me in person - we are eager to collaborate even further with you.


For quite a few years, I have advised people to install the official binaries built by the ROOT Team.
These pre-compiled binary distributions provided a generic set of features sufficient for “normal” users.
They did not require fancy system packages, so people did not need to beg system administrators to install something “superfluous.”

Your newest “v6.26.16” and “v6.30.06” binaries are useless (at least on Ubuntu 22.04 / x86_64). VITAL ROOT features are missing.

From now on, people will either need to stay with your “v6.26.14”, “v6.28.12” or “v6.30.04” binaries or build their binaries from the source.

I agree with ROOT’s strategy to rely more and more on system packages rather than builtins. (with the exception of afterimage, that will now always be builtin, since the system packages are no longer mantained).

I can though understand @Wile_E_Coyote use case. These are my two cents:

  • Maybe it’s useful if ROOT website provided two types of binaries, the ‘normal one’ using system packages, and a ‘full-builtin’ one, which rescues the old behavior that Wile’s is missing.

Wrt enabled features, I think this depends a lot on particular cases. I do not consider VITAL any of the features Wile’s is mentioning. In fact, I would prefer a smaller ROOT without TMVA, roofit, webgui, … but not everyone can be happy with any choice, others prefer everything enabled. What’s vital for one is not for the other. So, apart from building yourself to tune however you want, I would suggest two alternatives:

  • That the precompiled binary all_builtin that I mentioned above also has all_features turned on
  • To follow a modularized approach like MATLAB, where features are standalone plugins. When downloading the precompiled binary from the website, it would be interesting to have a feature that lets you click on different checkboxes with what features you want, and then a server side script includes in the downloaded tar.gz those libraries that are selected. This is of course much more complex and tons of developer work until having that tool.

Another suggestion: at least the list of dependencies should be updated accrdoingly for “essential” things needed just to run ROOT, such as libtbb (I think the package libtbb-dev is what’s needed for Ubuntu 22, but it is not listed on the “required dependencies” page). And for cases when the user wants something removed / not included, there should be a list of the additional requirements for each (e.g., if TMVA is removed, what should we install if we need it, etc.)