CERN ROOT (nixpkgs#root): Prevent TBrowser from expanding directories and going HAM

ROOT (nixpkgs#root) is a C++-based data analysis framework mainly used in the field of high energy physics. ROOT Object Browser (TBrowser) is a class and and a gui tool to view and edit the content of .root files conveniently.

The default behavior of TBrowser is to follow the symlinks and to expand all the directories above the current working directory (i. e. all the directories on the path from / to $(realpath $PWD)). Considering that the tutorials in the profile is linked to ${root}/etc/tutorials. When try to start TBrowser at the tutorials directory, it will try to expand /nix/store/ and get stuck there.

https://github.com/root-project/root/issues/7213

Thanks to the suggestions from a maintainer of ROOT, the expand-all-directories behavior can be disabled by adding

 Browser.ExpandDirectories: false

inside ${root}/etc/system.rootrc or $HOME/.rootrc. It’s not easy to modify the former, but one can easily create the latter in there home directory. Just do:

echo 'Browser.ExpandDirectories: false' >> ~/.rootrc

Nix package manager is one of the few cross-platform package manager that comes with ROOT package that can be download and run out of the box, and is also one of the few package manager that allows unprivileged users to use multiple version of ROOT in a clean way declarative or ad-hock. Thank you all for this great project!

1 Like