To get newer GDML with material and surface properties to work with old geant4 requires
Compared new geant4 GDML with the version used with NuWa
src/G4DAEWriteMaterials.cc:144: error: cannot convert
'const std::map<G4String, G4MaterialPropertyVector*, std::less<G4String>, std::allocator<std::pair<const G4String, G4MaterialPropertyVector*> > >*' to
'const std::map<G4String, G4PhysicsOrderedFreeVector*, std::less<G4String>, std::allocator<std::pair<const G4String, G4PhysicsOrderedFreeVector*> > >*' in initialization
Future geant4 gets rid of the deficient G4MaterialPropertyVector typedefing from G4PhysicsOrderedFreeVector. /usr/local/env/geant4/geant4.10.00.b01/source/materials/include/G4MaterialPropertyVector.hh:
56 #include "G4PhysicsOrderedFreeVector.hh"
..
62 typedef G4PhysicsOrderedFreeVector G4MaterialPropertyVector;
[blyth@belle7 scripts]$ cat geant4_config.sh
#!/bin/sh
. ${LCG_BUILDPOLICYROOT_DIR}/scripts/common.sh
untar
goto ${LCG_srcdir}
apply_patch geant4.9.2.p01.patch 1
apply_patch geant4.9.2.p01.patch2 1
LCG_srcdir:
[blyth@belle7 geant4.9.2.p01]$ ll
total 324
-rw-r--r-- 1 blyth blyth 4029 Mar 16 2009 LICENSE
-rwxr-xr-x 1 blyth blyth 142639 Mar 16 2009 Configure
drwxr-xr-x 2 blyth blyth 4096 Mar 16 2009 ReleaseNotes
drwxr-xr-x 5 blyth blyth 4096 Mar 16 2009 examples
drwxr-xr-x 4 blyth blyth 4096 Mar 16 2009 environments
drwxr-xr-x 4 blyth blyth 4096 Mar 16 2009 config
-rw-rw-r-- 1 blyth blyth 0 Mar 3 16:43 .geant4.9.2.p01.patch2
-rw-rw-r-- 1 blyth blyth 0 Mar 3 16:43 .geant4.9.2.p01.patch
drwxrwxr-x 3 blyth blyth 4096 Mar 3 16:43 lib
drwxrwxr-x 2 blyth blyth 4096 Mar 3 16:43 bin
drwxr-xr-x 11 blyth blyth 4096 Mar 3 16:43 .
drwxrwxr-x 3 blyth blyth 4096 Mar 3 16:43 tmp
drwxrwxr-x 2 blyth blyth 135168 Mar 3 17:15 include
drwxr-xr-x 22 blyth blyth 4096 Mar 4 17:39 source
drwxrwxr-x 30 blyth blyth 4096 Mar 4 18:03 ..
[blyth@belle7 geant4.9.2.p01]$ pwd
/data1/env/local/dyb/external/build/LCG/geant4.9.2.p01
[blyth@belle7 geant4.9.2.p01]$ find . -name '*.orig' -exec ls -l {} \;
-rw-r--r-- 1 blyth blyth 10395 Mar 16 2009 ./include/G4OpBoundaryProcess.hh.orig
-rw-r--r-- 1 blyth blyth 10395 Mar 16 2009 ./source/processes/optical/include/G4OpBoundaryProcess.hh.orig
[blyth@belle7 geant4.9.2.p01]$
Suspect that G4OpBoundaryProcess.hh.orig suggests suspect patch application.
108 # Apply given patch with optional strip level (default is 0). If the
109 # patchfile is not found it is looked for as a path relative to
110 # Package/patches/ assuming the running script is in Package/scripts/.
111 apply_patch () {
112 file=$1 ;
113 if [ -n "$1" ] ; then shift; fi
114 level=${1-"0"}
115 if [ -n "$1" ] ; then shift; fi
116
117 if [ ! -f "$file" ] ; then
118 file=$(dirname $(dirname $0))/patches/$file
119 fi
120 if [ ! -f "$file" ] ; then
121 fatal "failed to find patch file $file"
122 fi
123
124 been_here=".$(basename $file)"
125 if [ -f "$been_here" ] ; then
126 info "Already applied patch \"$file\""
127 return
128 fi
129
130 # need quotes since using redirection
131 cmd "patch -N -p$level -i $file"
132 touch $been_here
133 }
Assume that this patch was created with the old and new files swapped. (Yes, I’m afraid that does happen occasionally, human nature being what it is.) patch attempts to swap each hunk around before applying it. Rejects come out in the swapped format. The -R option does not work with ed diff scripts because there is too little information to reconstruct the reverse operation.
If the first hunk of a patch fails, patch reverses the hunk to see if it can be applied that way. If it can, you are asked if you want to have the -R option set. If it can’t, the patch continues to be applied normally. (Note: this method cannot detect a reversed patch if it is a normal diff and if the first command is an append (i.e. it should have been a delete) since appends always succeed, due to the fact that a null context matches anywhere. Luckily, most patches add or change lines rather than delete them, so most reversed normal diffs begin with a delete, which fails, triggering the heuristic.)
[blyth@belle7 include]$ pwd
/data1/env/local/dyb/external/build/LCG/geant4.9.2.p01/source/materials/include
[blyth@belle7 include]$ diff G4MaterialPropertiesTable.hh.orig G4MaterialPropertiesTable.hh
136a137,149
>
> // copied from Geant4 future
> public: // without description
>
> const std::map< G4String, G4MaterialPropertyVector*, std::less<G4String> >*
> GetPropertiesMap() const { return &MPT; }
> const std::map< G4String, G4double, std::less<G4String> >*
> GetPropertiesCMap() const { return &MPTC; }
> // Accessors required for persistency purposes
>
g4pb:src blyth$ grep GetPropertiesMap *.cc
G4GDMLWriteMaterials.cc: std::less<G4String> >* pmap = ptable->GetPropertiesMap();
g4pb:src blyth$ pwd
/usr/local/env/geant4/geant4.10.00.b01/source/persistency/gdml/src
Not so simple due to geant4 change from use of G4MaterialPropertyVector to G4PhysicsOrderedFreeVector, so as stuck with older geant4 need to workaround limitations of the old G4MaterialPropertyVector.
What planet are the authors of G4MaterialPropertyVector from, no API to access NumEntries ? Its simpler to patch than to kludge iterate to count entries, plus patch to match Geant4 future API.
[blyth@cms01 geant4.9.2.p01]$ cd source/
[blyth@cms01 source]$ find . -name 'G4MaterialPropertyVector.cc'
./materials/src/G4MaterialPropertyVector.cc
[blyth@cms01 source]$ find . -name 'G4MaterialPropertyVector.hh'
./materials/include/G4MaterialPropertyVector.hh
[blyth@cms01 source]$ find . -name 'G4PhysicsFreeVector.cc'
./global/management/src/G4PhysicsFreeVector.cc
[blyth@cms01 source]$ find . -name 'G4PhysicsFreeVector.hh'
./global/management/include/G4PhysicsFreeVector.hh
[blyth@cms01 source]$ find . -name 'G4PhysicsOrderedFreeVector.hh'
./global/management/include/G4PhysicsOrderedFreeVector.hh
[blyth@cms01 source]$
[blyth@cms01 source]$ find . -name 'G4PhysicsOrderedFreeVector.cc'
./global/management/src/G4PhysicsOrderedFreeVector.cc
[blyth@cms01 source]$
All this to get MPV to spill the beans:
[blyth@cms01 source]$ vi materials/src/G4MaterialPropertyVector.cc materials/include/G4MaterialPropertyVector.hh
public: // SCB getting MPV to spill the beans
size_t GetVectorLength() const ;
G4double Energy(const size_t binNumber) const ;
G4double operator[](const size_t binNumber) const;
// SCB getting MPV to spill the beans
size_t G4MaterialPropertyVector::GetVectorLength() const
{
return NumEntries ;
}
G4double G4MaterialPropertyVector::Energy(const size_t binNumber) const
{
G4MPVEntry* mpv = MPV[binNumber] ;
return mpv->GetPhotonEnergy();
}
G4double G4MaterialPropertyVector::operator[](const size_t binNumber) const
{
G4MPVEntry* mpv = MPV[binNumber] ;
return mpv->GetProperty();
}
[blyth@belle7 source]$ cp materials/src/G4MaterialPropertyVector.cc materials/src/G4MaterialPropertyVector.cc.orig
[blyth@belle7 source]$ cp materials/include/G4MaterialPropertyVector.hh materials/include/G4MaterialPropertyVector.hh.orig
[blyth@belle7 source]$ vi materials/src/G4MaterialPropertyVector.cc materials/include/G4MaterialPropertyVector.hh
[blyth@belle7 source]$ g4-
[blyth@belle7 source]$ g4-libs-rebuild ## tedious full rebuild of all g4 libs, cmake is in geant4 future so no motivation to improve this back here
...
[blyth@belle7 source]$ g4-includes-rebuild ## also needed, to use the added APIs
...
Runtime fail:
788 G4DAE: Writing library_materials...
789 G4DAE: Writing structure/library_nodes...
790 G4DAE: Writing library_visual_scenes...
791 python: symbol lookup error: /data1/env/local/dyb/NuWa-trunk/../external/geant4/4.9.2.p01/i686-slc5-gcc41-dbg/lib/libG4DAE.so: undefined symbol: _ZNK24G4MaterialPropertyVector15GetVectorLengthEv
Hmm missing the install step, as libs in /data1/env/local/dyb/external/geant4/4.9.2.p01/i686-slc5-gcc41-dbg/lib are old
Add in g4-install-rebuild to do that after the below investigations of the dybinst geant4 build mechanism.
But subsequently another runtime fail from missing libG4gdml.so:
48 DetectorDataSvc SUCCESS Detector description database: /data1/env/local/dyb/NuWa-trunk/dybgaudi/Detector/XmlDetDesc/DDDB/dayabay.xml
49 EventClockSvc.FakeEventTime INFO Event times generated from 0 with steps of 0
50 Generator INFO Added gen tool GtTransformTool/onemuonTransformer
51 AlgorithmManager ERROR Algorithm of type GiGaInputStream is unknown (No factory available).
52 AlgorithmManager ERROR libG4gdml.so: cannot open shared object file: No such file or directory
53 AlgorithmManager ERROR More information may be available by setting the global jobOpt "ReflexPluginDebugLevel" to 1
54 GaudiSequencer WARNING Unable to find or create GiGaInputStream
55 AlgorithmManager ERROR Algorithm of type DsPushKine is unknown (No factory available).
56 AlgorithmManager ERROR libG4gdml.so: cannot open shared object file: No such file or directory
57 AlgorithmManager ERROR More information may be available by setting the global jobOpt "ReflexPluginDebugLevel" to 1
58 GaudiSequencer WARNING Unable to find or create DsPushKine
59 AlgorithmManager ERROR Algorithm of type DsPullEvent is unknown (No factory available).
60 AlgorithmManager ERROR libG4gdml.so: cannot open shared object file: No such file or directory
61 AlgorithmManager ERROR More information may be available by setting the global jobOpt "ReflexPluginDebugLevel" to 1
62 GaudiSequencer WARNING Unable to find or create DsPullEvent
63 GaudiSequencer INFO Member list:
Compare libs:
[blyth@belle7 4.9.2.p01]$ ( cd i686-slc5-gcc41-dbg/lib/ ; ls -1 *.so ) > new.so
[blyth@belle7 4.9.2.p01]$ ( cd i686-slc5-gcc41-dbg.prior/lib/ ; ls -1 *.so ) > old.so
[blyth@belle7 4.9.2.p01]$ diff old.so new.so
6a7
> libG4DAEFILE.so
22d22
< libG4gdml.so
[blyth@belle7 4.9.2.p01]$
Get dirty:
[blyth@belle7 4.9.2.p01]$ cp i686-slc5-gcc41-dbg.prior/lib/libG4gdml.so i686-slc5-gcc41-dbg/lib/
[blyth@belle7 4.9.2.p01]$
This succeeds to write properties to the DAE, need some veracity checking:
70373 <material id="__dd__Materials__Acrylic0xa7b6b48">
70374 <instance_effect url="#__dd__Materials__Acrylic_fx_0xa7b6b48"/>
70375 <extra>
70376 <matrix coldim="2" name="ABSLENGTH0xa7b4d78" values="1.55e-06 8000 1.61e-06 8000 2.07e-06 8000 2.48e-06 8000 3.76e-06 8000 4.13e-06 8000 6.2e-06 0.008 1.033e-05 0.008 1.55e-05 0.008"/>
70377 <property name="ABSLENGTH" ref="ABSLENGTH0xa7b4d78"/>
70378 <matrix coldim="2" name="RAYLEIGH0xa7b4da8" values="1.55e-06 500000 1.7714e-06 300000 2.102e-06 170000 2.255e-06 100000 2.531e-06 62000 2.884e-06 42000 3.024e-06 30000 4.133e-06 7600 6.2e-06 850 1.033e-05 850 1.55e-05 850"/>
70379 <property name="RAYLEIGH" ref="RAYLEIGH0xa7b4da8"/>
70380 <matrix coldim="2" name="RINDEX0xa504f20" values="1.55e-06 1.4878 1.79505e-06 1.4895 2.10499e-06 1.4925 2.27077e-06 1.4946 2.55111e-06 1.4986 2.84498e-06 1.5022 3.06361e-06 1.5065 4.13281e-06 1. 5358 6.2e-06 1.6279 6.526e-06 1.627 6.889e-06 1.5359 7.294e-06 1.5635 7.75e-06 1.793 8.267e-06 1.7199 8.857e-06"/>
70381 <property name="RINDEX" ref="RINDEX0xa504f20"/>
70382 </extra>
70383 </material>
Possible truncation:
70497 <material id="__dd__Materials__ESR0xa56f4b0">
70498 <instance_effect url="#__dd__Materials__ESR_fx_0xa56f4b0"/>
70499 <extra>
70500 <matrix coldim="2" name="ABSLENGTH0xa8080f8" values="1.55e-06 0.001 1.63e-06 0.001 1.68e-06 0.001 1.72e-06 0.001 1.77e-06 0.001 1.82e-06 0.001 1.88e-06 0.001 1.94e-06 0.001 2e-06 0.001 2.07e-06 0.001 2.14e-06 0.001 2.21e-06 0.001 2.3e-06 0.001 2.38e-06 0.001 2.48e-06 0.001 2.58e-06 0.001 2.7e-06 0.001 2.82e"/>
70501 <property name="ABSLENGTH" ref="ABSLENGTH0xa8080f8"/>
70502 </extra>
70503 </material>
Story continues Material Properties
Simple rebuild is too quick, doing nothing:
[blyth@belle7 dyb]$ ./dybinst trunk external geant4
Tue Feb 18 10:43:06 CST 2014
Start Logging to /data1/env/local/dyb/dybinst-20140218-104306.log (or dybinst-recent.log)
Starting dybinst commands: external
Stage: "external"...
Found CMTCONFIG="i686-slc5-gcc41-dbg" from lcgcmt
Checking your CMTCONFIG="i686-slc5-gcc41-dbg"...
...ok.
dybinst-external: installing packages: geant4
Installing external packages, this will take a while. Go get coffee...
Installing geant4 ... done with geant4
[blyth@belle7 dyb]$
Examining dybinst-external dybinst-common.sh note that geant4 is built with standard LCG Builders kicked off with pkg_build geant4 which is defined in common.sh
291 # to build using LCG_Builders
292 pkg_build () {
293
294 pkg=$1 ; shift
295 goto $SITEROOT/lcgcmt/LCG_Builders/$pkg/cmt
296 cmt config
297 source setup.sh
298
299 #cmt_macro LCG_BuildPolicy LCG_tardir LCG_Builders
300 #cmt_macro LCG_BuildPolicy LCG_builddir LCG_Builders
301
302 echo "LCG_tardir=\"$LCG_tardir\""
303 if [ ! -d ${LCG_tardir} ] ; then
304 mkdir -p ${LCG_tardir}
305 fi
306 echo "LCG_builddir=\"$LCG_builddir\""
307 if [ ! -d ${LCG_builddir} ] ; then
308 mkdir -p ${LCG_builddir}
309 fi
310
311 cmt config
312 if [ -r setup.sh ] ; then
313 source setup.sh
314 else
315 echo "Failed to setup $gluedir"
316 exit 1
317 fi
318
319 #echo "## begin env dump ##"
320 #env
321 #echo "## end env dump ##"
322 #echo "## begin cmt dump ##"
323 #cmt show tags
324 #cmt show macros
325 #echo "## end cmt dump ##"
326 #cmt show macro LCG_basesystem
327
328 for cmd in get config make install
329 do
330 echo "$pkg: running \"cmt pkg_$cmd\""
331 cmt pkg_$cmd
332 check_cmd
333 done
334
335 goback
336 }
The cmt pkg_install invokes:
[blyth@belle7 lib]$ cat /data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/scripts/geant4_install.sh
#!/bin/sh
# . ${LCG_BUILDPOLICYROOT_DIR}/scripts/common.sh
echo "geant4: installing code"
cd ${G4INSTALL}
mkdir -p ${LCG_destdir}
for dir in lib include
do
target="${LCG_destdir}/$dir"
if [ -d "$target" ] ; then
echo "geant4: $target already exists, remove to force reinstall"
else
tar -cf - $dir | (cd ${LCG_destdir} && tar -xf -)
fi
done
cd ${LCG_destdir}/lib
# curious move contents of Linux-g++ one up and remove Linux-g++
if [ -d "${G4SYSTEM}" ] ; then
mv ${G4SYSTEM}/* .
rmdir ${G4SYSTEM}
fi
... then data downloading
Installation checks for G4INSTALL/lib and G4INSTALL/include:
[blyth@belle7 lib]$ echo $G4INSTALL
/data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01
[blyth@belle7 lib]$
[blyth@belle7 lib]$ ll $G4INSTALL/
total 324
-rw-r--r-- 1 blyth blyth 4029 Mar 16 2009 LICENSE
-rwxr-xr-x 1 blyth blyth 142639 Mar 16 2009 Configure
drwxr-xr-x 2 blyth blyth 4096 Mar 16 2009 ReleaseNotes
drwxr-xr-x 4 blyth blyth 4096 Mar 16 2009 environments
-rw-rw-r-- 1 blyth blyth 0 Feb 16 2011 .geant4.9.2.p01.patch2
-rw-rw-r-- 1 blyth blyth 0 Feb 16 2011 .geant4.9.2.p01.patch
drwxrwxr-x 3 blyth blyth 4096 Feb 16 2011 lib
drwxrwxr-x 34 blyth blyth 4096 Sep 18 18:32 ..
-rw-rw-r-- 1 blyth blyth 0 Sep 18 18:44 .geant4.9.2.p01.patch3
drwxr-xr-x 11 blyth blyth 4096 Sep 18 19:17 .
drwxr-xr-x 22 blyth blyth 4096 Sep 18 19:21 source
drwxr-xr-x 5 blyth blyth 4096 Oct 1 19:40 examples
drwxrwxr-x 3 blyth blyth 4096 Oct 1 20:06 bin
drwxrwxr-x 6 blyth blyth 4096 Oct 2 20:13 tmp
drwxr-xr-x 4 blyth blyth 4096 Dec 4 15:13 config
drwxrwxr-x 2 blyth blyth 135168 Feb 19 14:01 include
[blyth@belle7 lib]$
And propagates from there to LCG_destdir:
[blyth@belle7 lib]$ echo ${LCG_destdir}
/data1/env/local/dyb/NuWa-trunk/../external/geant4/4.9.2.p01/i686-slc5-gcc41-dbg
[blyth@belle7 lib]$ ll ${LCG_destdir}/
total 196
drwxrwxr-x 3 blyth blyth 4096 Feb 16 2011 ..
drwxrwxr-x 2 blyth blyth 4096 Feb 16 2011 lib.prior
drwxrwxr-x 5 blyth blyth 4096 Sep 18 19:55 .
drwxrwxr-x 2 blyth blyth 180224 Nov 14 18:36 include
drwxrwxr-x 2 blyth blyth 4096 Feb 19 14:34 lib
As this is kinda expensive do this manually:
[blyth@belle7 4.9.2.p01]$ pwd
/data1/env/local/dyb/external/geant4/4.9.2.p01
[blyth@belle7 4.9.2.p01]$ mv i686-slc5-gcc41-dbg i686-slc5-gcc41-dbg.prior
From the log:
[blyth@belle7 dyb]$ grep ^geant4: /data1/env/local/dyb/dybinst-20140218-104306.log
geant4: running "cmt pkg_get"
geant4: running "cmt pkg_config"
geant4: "using file from LCG_tarfilename="geant4.9.2.p01.tar.gz""
geant4: "running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG"
geant4: "source directory exists, to re-untar remove "/data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01""
geant4: "running command: cd /data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/cmt"
geant4: "running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01"
geant4: "Already applied patch "/data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/patches/geant4.9.2.p01.patch""
geant4: "Already applied patch "/data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/patches/geant4.9.2.p01.patch2""
geant4: "Already applied patch "/data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/patches/geant4.9.2.p01.patch3""
geant4: running "cmt pkg_make"
geant4: "running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source"
geant4: running "cmt pkg_install"
geant4: installing code
geant4: /data1/env/local/dyb/NuWa-trunk/../external/geant4/4.9.2.p01/i686-slc5-gcc41-dbg/lib already exists, remove to force reinstall
geant4: /data1/env/local/dyb/NuWa-trunk/../external/geant4/4.9.2.p01/i686-slc5-gcc41-dbg/include already exists, remove to force reinstall
geant4: installing data
[blyth@belle7 dyb]$
The make step:
[blyth@belle7 dyb]$ cat /data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/scripts/geant4_make.sh
#!/bin/sh
. ${LCG_BUILDPOLICYROOT_DIR}/scripts/common.sh
CPPVERBOSE=1
export CPPVERBOSE
# Geant4's make is a bit more than just "make" so spell it out
goto $LCG_srcdir/source
if [ ! -f ${G4INSTALL}/lib/$G4SYSTEM/libG4run.so ] ; then
cmd make
fi
if [ ! -f ${G4INSTALL}/lib/$G4SYSTEM/libname.map ] ; then
cmd make libmap
fi
if [ ! -f ${G4INSTALL}/include/G4Version.hh ] ; then
cmd make includes
fi
Jump in and build:
fenv # pick up basis env
cd /data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/cmt
cmt config
. setup.sh
Detects libG4run.so and does nothing:
[blyth@belle7 cmt]$ cmt pkg_make
Execute action pkg_make => sh -x /data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/scripts/geant4_make.sh
+ . /data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/LCG_BuildPolicy/scripts/common.sh
+ CPPVERBOSE=1
+ export CPPVERBOSE
+ goto /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source
+ dir=/data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source
+ '[' -n /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source ']'
+ shift
+ cmd cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source
+ info 'running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source'
+ '[' -n 'running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source' ']'
+ msg='running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source'
+ shift
+ echo 'geant4: "running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source"'
geant4: "running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source"
+ cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source
+ check 'running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source'
+ err=0
+ msg='running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source'
+ '[' -n 'running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source' ']'
+ shift
+ '[' 0 '!=' 0 ']'
+ '[' '!' -f /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libG4run.so ']'
+ '[' '!' -f /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libname.map ']'
+ '[' '!' -f /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/include/G4Version.hh ']'
[blyth@belle7 cmt]$
[blyth@belle7 cmt]$
[blyth@belle7 cmt]$ l /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libG4run.so
-rwxrwxr-x 1 blyth blyth 3558478 Sep 18 19:27 /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libG4run.so
[blyth@belle7 cmt]$
Removing the libG4run.so coaxes the build into action, a full build it seems:
[blyth@belle7 cmt]$ mv /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libG4run.so /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libG4run.so.rebuild
[blyth@belle7 cmt]$ cmt pkg_make
Execute action pkg_make => sh -x /data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/geant4/scripts/geant4_make.sh
+ . /data1/env/local/dyb/NuWa-trunk/lcgcmt/LCG_Builders/LCG_BuildPolicy/scripts/common.sh
+ CPPVERBOSE=1
+ export CPPVERBOSE
+ goto /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source
+ dir=/data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source
+ '[' -n /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source ']'
+ shift
+ cmd cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source
+ info 'running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source'
+ '[' -n 'running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source' ']'
+ msg='running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source'
+ shift
+ echo 'geant4: "running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source"'
geant4: "running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source"
+ cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source
+ check 'running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source'
+ err=0
+ msg='running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source'
+ '[' -n 'running command: cd /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/source' ']'
+ shift
+ '[' 0 '!=' 0 ']'
+ '[' '!' -f /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libG4run.so ']'
+ cmd make
+ info 'running command: make'
+ '[' -n 'running command: make' ']'
+ msg='running command: make'
+ shift
+ echo 'geant4: "running command: make"'
geant4: "running command: make"
+ make
*************************************************************
Installation Geant4 version : geant4-09-02-patch-01
Copyright (C) 1994-2009 Geant4 Collaboration
*************************************************************
Creating shared library /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libG4globman.so ...
Creating shared library /data1/env/local/dyb/NuWa-trunk/../external/build/LCG/geant4.9.2.p01/lib/Linux-g++/libG4hepnumerics.so ...
make[1]: Nothing to be done for `lib'.
make[1]: Nothing to be done for `lib'.
Making dependency for file src/G4SandiaTable.cc ...
Making dependency for file src/G4NistMessenger.cc ...
Making dependency for file src/G4NistMaterialBuilder.cc ...
Making dependency for file src/G4NistManager.cc ...
Making dependency for file src/G4MaterialPropertiesTable.cc ...
...
Record the rebuild method in:
g4-libs-rebuild
g4-includes-rebuild