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

setup-lhcb-build.sh cannot work in chroot environments #25

Open
manuelschiller opened this issue Nov 16, 2015 · 4 comments
Open

setup-lhcb-build.sh cannot work in chroot environments #25

manuelschiller opened this issue Nov 16, 2015 · 4 comments

Comments

@manuelschiller
Copy link
Contributor

Hi,

your script cannot work in chroot environments, since it changes MYSITEROOT to cvmfs which may or may not be available, and it changes CMTCONFIG as well (again, binaries for the new setting may or may not be available). I've sort of hacked things by hand to point to the right locations on my laptop (and use gcc 4.8 which is the only version for which I have binaries installed), but even after that, I cannot start compiling:

[mala@fenchurch]~/paris2015/moo/Gaudi% make
mkdir -p /home/mala/paris2015/moo/Gaudi/build.x86_64-slc6-gcc48-opt
cd /home/mala/paris2015/moo/Gaudi/build.x86_64-slc6-gcc48-opt && cmake -DCMAKE_USE_CCACHE=ON -DCMAKE_TOOLCHAIN_FILE=/home/mala/paris2015/moo/Gaudi/toolchain.cmake -GNinja /home/mala/paris2015/moo/Gaudi
CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_C_COMPILER
CMake Error: Could not find cmake module file: /home/mala/paris2015/moo/Gaudi/build.x86_64-slc6-gcc48-opt/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_CXX_COMPILER
CMake Error: Could not find cmake module file: /home/mala/paris2015/moo/Gaudi/build.x86_64-slc6-gcc48-opt/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake
-- Configuring incomplete, errors occurred!
make: *** [/home/mala/paris2015/moo/Gaudi/build.x86_64-slc6-gcc48-opt/build.ninja] Error 1

If that's expected behaviour, and if I should therefore compile this on lxplus, please let me know. In any case, things need at least some kind of clarification...

Cheers,

Manuel

@GerhardRaven
Copy link
Contributor

It was only intended to work on SL(C)6 machines which have /cvmfs available -- but the problem you encounter above is that it is confused about Ninja. Now, the code does actually download Ninja, compiles it and put the binary in the work directory, and then pre-pends the work directory to your $PATH (yes, it's a bit evil). It looks like the above doesn't find ninja anymore. Given that I know you know how to use ninja, I suspect you may have an alternative way of doing so...

(note: it was never intended to be a general tool, and I suspect (hope) Marco or Ben will provide a much more generic version 'soon' as merge request...)

@GerhardRaven
Copy link
Contributor

ps. it should work out of the box on lxplus (it was tested there) and, if you still have access, on stbc (which is a bit faster then lxplus ;-)

@manuelschiller
Copy link
Contributor Author

Well, ninja isn't the problem - I can always fall back on good old make. I'm more worried that it doesn't find the C/C++ compilers - there must be more evil stuff going on behind the scenes. And: relying on cvmfs to be available is about as bad as relying on AFS. I'll see what I can do about this tomorrow morning (and may have to fall back on lxplus) - I'm too tired now...

@GerhardRaven
Copy link
Contributor

Another point I just realized: the instructions should have been to first fork the lhcb-svn-mirrors on gitlab, then clone the forked repos, and pull from my repository. That way, merging stuff back together would be trivial -- but now push will go to my repo, which only I can write to.

But I think that can be repaired a-posteriori, by forking on gitlab, and then updating the 'origin' remote of the already checked out repo, and pushing to it...

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

No branches or pull requests

2 participants