use built-in Xerces, not from apt-get
Hi @rbianchi, @jojunnge,
this is the proposed fix for the docker xerces lib issue when compiling GeoModelATLAS later inside the image against GeoModel.
Best, Nico
Merge request reports
Activity
I think I now remember why in my case, I always compiled Xerces myself from source and afterwards Geant4+GeoMode: The reason is that Geant4 also needs Xerces but has no built-in version as GeoModel does. That is the reason why the FullDocker build fails: when I remove Xerces from apt-get, Geant4 does not compile.
However, when you use Xerces from apt-get, the version is too old, as you pointed out several times @rbianchi. What I did for full installations locally, was just starting the whole procedure with:
wget https://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.2.2.tar.gz tar -xf xerces-c-3.2.2.tar.gz mkdir build_xerces && cd build_xerces cmake -DCMAKE_INSTALL_PREFIX=../install ../xerces-c-3.2.2/ make make install
What do people think?
Hi @nkoehler ,
I was also preparing a MR with the same fix, which I also have tested on macOS, plus some other tweaks to the Dockerfile. But I think we can start by merging this anyway; then I'll push mine with the other tweaks.
Yes, that fixes the issue with Xerces.
Also, if you are interested in testing a build with a custom Xerces, you could also take a look at what we do in the CI pipelines, where I have set a build of FullSimLight with a custom Xerces-3.2.3 build:
Xerces-3.2.3 build: https://gitlab.cern.ch/GeoModelDev/GeoModel/-/blob/master/.gitlab-ci.yml#L377
Custom FullSimLight build: https://gitlab.cern.ch/GeoModelDev/GeoModel/-/blob/master/.gitlab-ci.yml#L446
mentioned in commit cbaa38a6
mentioned in commit 505e6592
Ops, sorry, I had read this too quickly. I gather that the MR is not ready to be merged because it does not fix the Full build. I have just reverted the merge. Sorry for the mess.
OK, then we can add a custom build for Xerces to the Dockerfile and push that. As Nico said, that will fix the Geant4 build too.
Edited by Riccardo Maria Bianchi