Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROOT 6.30.01 unable to find module.modulemap when packaged via fpm #15318

Open
1 task
ktf opened this issue Apr 23, 2024 · 6 comments
Open
1 task

ROOT 6.30.01 unable to find module.modulemap when packaged via fpm #15318

ktf opened this issue Apr 23, 2024 · 6 comments

Comments

@ktf
Copy link
Contributor

ktf commented Apr 23, 2024

Check duplicate issues.

  • Checked for duplicates

Description

We have our own packaging of root via fpm which relocates our builds which happen in some folder in /tmp to and rpm which installs in /opt/o2.

This was working fine in v6.28.00 however when switching to v6-30-01 we have a bunch of errors along the lines of:

Module Net not found.
Error in <TCling::LoadPCM>: ROOT PCM /opt/o2/lib/libNet_rdict.pcm file does not exist
Module MultiProc not found.
Module Imt not found.
Module MathCore not found.
Error in <TCling::LoadPCM>: ROOT PCM /opt/o2/lib/libMathCore_rdict.pcm file does not exist
Error in <TClass::LoadClassInfo>: no interpreter information for class TSignalHandler is available even though it has a TClass initialization routine.
Error in <TClass::LoadClassInfo>: no interpreter information for class TFileHandler is available even though it has a TClass initialization routine.

when starting root on the command line.

By doing a strace, we figured out that this derives from root not being able to find module.modulemap which is present in /opt/o2/include, yet it is not considered. We are able to workaround the issue by simply copying module.modulemap in the current directory, which is apparently in the search path, however that is clearly not a viable solution in a deployed environment.

What mechanism is used by default to lookup module.modulemap? We would be fine if we could work it around via some environment variable or systemrc tweak.

Reproducer

Build root in one folder and relocate it to a different one.

ROOT version

v6-30-01. v6-28-01 works fine.

Installation method

alibuild, fpm

Operating system

el8

Additional context

This is preventing ALICE DAQ to use the latest ROOT.

@vgvassilev
Copy link
Member

Do you have the pcm files in $ROOTSYS/lib? What does it expand to? /opt/o2/lib/?

@ktf
Copy link
Contributor Author

ktf commented Apr 30, 2024

We do not have ROOTSYS set explicitly, however even if I set it by hand, it produces the same result.

In /opt/o2/lib we do not have /opt/o2/lib/libNet_rdict.pcm, however we do have /opt/o2/lib/Net.pcm, not sure if that's the issue.

@Barthelemy
Copy link

And to add on top of that, I would still be interested to understand where the modulemap files are searched and if there is another environment variable we could set to force the search in /opt/o2/include.

@ktf
Copy link
Contributor Author

ktf commented May 13, 2024

Any idea of what might be going on here? To a first loop, we just need a some hint on how to force the lookup, and then we can add a workaround in our packaging instructions.

@vgvassilev
Copy link
Member

I do not have time to look at this now. Maybe in a week?

@ktf
Copy link
Contributor Author

ktf commented May 14, 2024

That would be great. Anything we can try on our own?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants