Skip to content

Conversation

guitargeek
Copy link
Contributor

There is no need to two separate executables anymore, but for backwards compatibility we keep root.exe and then root is a symbolic link to it.

If the `root` executable was in the path and could be started, the
`root.exe` is in the path to because they are in the same directory.

Therefore it's not necessary to start `root.exe` with the full path.
There is no need for that, because the `root.exe` application also has a
way to figure out `ROOTSYS` from the executable path if it's not set.
@guitargeek guitargeek self-assigned this Sep 29, 2025
@guitargeek guitargeek added the clean build Ask CI to do non-incremental build on PR label Sep 29, 2025
@guitargeek guitargeek requested a review from dpiparo as a code owner September 29, 2025 17:27
There is no need to two separate executables anymore, but for backwards
compatibility we keep `root.exe` and then `root` is a symbolic link to
it.
Copy link

Test Results

    22 files      22 suites   3d 18h 51m 24s ⏱️
 3 680 tests  3 679 ✅ 0 💤 1 ❌
79 071 runs  79 067 ✅ 0 💤 4 ❌

For more details on these failures, see this check.

Results for commit f5af848.

Copy link
Collaborator

@ferdymercury ferdymercury left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot!

Does this close https://its.cern.ch/jira/browse/ROOT-10697 ?

Please also fix these messages:

core/base/src/TApplication.cxx:         fprintf(stderr, "ROOT splash screen is not visible with root.exe, use root instead.\n");
roofit/histfactory/config/prepareHistFactory:# we will switch here to use root.exe as it is done for the whole ROOT.

And the lost usage-help part.

Potentially add this change to the release-notes 6.38

if (std::getenv("ROOTIGNOREPREFIX")) {
#endif
// Try to set ROOTSYS depending on pathname of the executable
SetRootSys();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are still a few places in the code that looks up ROOTSYS (and thus could potentially lead to a difference in behavior between root and root.exe). Some (eg the one in TUnixSystem.cxx) have additional search to find the 'right' value when not set) but (seemingly) not all.

As part of this PR, we need to review those later ones and either remove if the result is not used or annotated them as needed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolutely. I should mark this PR as draft to make clear that more work is needed.

@guitargeek guitargeek marked this pull request as draft October 1, 2025 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clean build Ask CI to do non-incremental build on PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants