ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/cms-common.spec
Revision: 1.30
Committed: Thu Mar 1 09:34:22 2012 UTC (13 years, 1 month ago) by eulisse
Branch: MAIN
CVS Tags: CMSSW_5_2_4_onlpatch5_ONLINE, CMSSW_5_2_4_onlpatch4_ONLINE, CMSSW_5_2_4_hltpatch4, geForCMSSW_5_2_4_hltpatch4-slc5_amd64_gcc462, CMSSW_5_2_4_onlpatch3_ONLINE, CMSSW_5_2_4_hltpatch3, geForCMSSW_5_2_4_hltpatch3-slc5_amd64_gcc462, CMSSW_5_2_4_hltpatch2, geForCMSSW_5_2_4_hltpatch2-slc5_amd64_gcc462, CMSSW_5_2_4_patch4, geForCMSSW_5_2_4_patch4-slc5_amd64_gcc462, CMSSW_6_0_0_pre3-osx107, CMSSW_6_0_0_pre3-slc6, CMSSW_6_0_0_pre3-gcc470, CMSSW_6_0_0_pre3, ForCMSSW_6_0_0_pre3-slc6_amd64_gcc462, daForCMSSW_6_0_0_pre3-osx107_amd64_gcc462, daForCMSSW_6_0_0_pre3-slc5_amd64_gcc470, CMSSW_5_2_4_patch3, geForCMSSW_5_2_4_patch3-slc5_amd64_gcc462, daForCMSSW_6_0_0_pre3-slc5_amd64_gcc462, CMSSW_5_2_4_patch2, geForCMSSW_5_2_4_patch2-slc5_amd64_gcc462, davidlt_20120419_1431-60X-gcc470, davidlt_20120418_2032-60X-gcc470, davidlt_20120418_1546-60X-gcc470, davidlt_test_3, davidlt_test_2, davidlt_test_1, CMSSW_5_2_4_onlpatch1_ONLINE, CMSSW_5_2_4_ONLINE, CMSSW_5_2_4_patch1, daForCMSSW_5_2_4_patch1-slc5_amd64_gcc462, CMSSW_5_2_4-osx107, CMSSW_5_2_4-osx106, daForCMSSW_5_2_4-osx106_amd64_gcc462, daForCMSSW_5_2_4-osx107_amd64_gcc462, CMSSW_5_2_4, daForCMSSW_5_2_4-slc5_amd64_gcc462, CMSSW_5_2_3_patch4_ONLINE, CMSSW_5_2_3_patch4, davidlt_20120406_1647-60X-gcc470, CMSSW_5_2_3_patch3, daForCMSSW_5_2_3_patch3-slc5_amd64_gcc462, davidlt_20120405_1007-60X-gcc470, CMSSW_6_0_0_pre2-osx107, CMSSW_6_0_0_pre2-slc6, CMSSW_6_0_0_pre2, sm20120404-60X-osx107, sm20120404-60X-slc6, sm20120404-60X-gcc470, sm20120404-60X, CMSSW_5_2_3_patch2, geForCMSSW_5_2_3_patch2-slc5_amd64_gcc462, davidlt_20120403_1447-60X-slc6, davidlt_20120403_1455-60X-gcc470, davidlt_20120403_1459-60X-osx107, davidlt_20120403_1446-60X, geForCMSSW_5_2_3-osx106_amd64_gcc462, geForCMSSW_5_2_3-osx107_amd64_gcc462, davidlt_20120401_1059-60X-slc6, CMSSW_5_2_3_patch1_ONLINE, CMSSW_5_2_3_patch1, av20120330-cmssw523patch1-gcc462onl, geForCMSSW_5_2_3_patch1-slc5_amd64_gcc462, CMSSW_5_2_3_onlpatch1_ONLINE, av20120329-cmssw523onlpatch1-gcc462onl, CMSSW_5_2_3_ONLINE, CMSSW_5_2_3, geForCMSSW_5_2_3-slc5_amd64_gcc462, sm20120327-60X-osx107, sm20120327-60X-gcc470, sm20120327-60X-slc6, sm20120327-60X, CMSSW_5_2_2_ONLINE, fw20120325-cmssw522-gcc462onl, av20120324-cmssw522-gcc462onl, CMSSW_6_0_0_pre1_LOOPER, davidlt_20120323_1820-slc6, davidlt_20120323_1438-osx107, davidlt_20120323_1340-60X, CMSSW_6_0_0_pre1-osx107, CMSSW_6_0_0_pre1-slc6, CMSSW_6_0_0_pre1, sm20120322-60x-slc6, eulisse_20120321_1634-52X, davidlt_20120321_1033-60X-lion, davidlt_20120321_1024-60X, geForCMSSW_5_2_2-osx107_amd64_gcc462, geForCMSSW_5_2_2-osx106_amd64_gcc462, CMSSW_5_2_2, geForCMSSW_5_2_2-slc5_amd64_gcc462, geForCMSSW_5_2_1-osx107_amd64_gcc462, ge20120314-52X-lion, geForCMSSW_5_2_1-osx106_amd64_gcc462, CMSSW_5_2_1, geForCMSSW_5_2_1-slc5_amd64_gcc462, davidlt_20120315_1325-60X-gcc470, davidlt_20120313_1031-60X-lion, davidlt_20120307_0959-60X-slc6, davidlt_20120313_1023-60X, davidlt_20120314_1407-60X-gcc470, BOOTSTRAP_slc5_amd64_gcc470, ge20120314-52X, davidlt_20120313_1031-52X-lion, davidlt_20120313_1023-52X, davidlt_60X_gcc470_2, davidlt_60X_gcc470, ge20120310-52X, geForCMSSW_5_2_0-osx106_amd64_gcc462, geForCMSSW_5_2_0-osx107_amd64_gcc462, CMSSW_5_2_0, davidlt_20120307_0959-52X-slc6, geForCMSSW_5_2_0-slc5_amd64_gcc462, ge20120305-52X-lion, ge20120305-52X, davidlt_20120304_1754-52X-slc6, sm20120302-52X-lion, sm20120302-52X, ge20120301-52X-lion, ge20120301-52X
Changes since 1.29: +2 -2 lines
Log Message:
Use the new /local/reps path by default for CVSROOT.

File Contents

# User Rev Content
1 muzaffar 1.11 ### RPM cms cms-common 1.0
2 muzaffar 1.29 ## REVISION 1101
3 muzaffar 1.15 ## NOCOMPILER
4 muzaffar 1.28
5 lat 1.27 %define online %(case %cmsplatf in (*onl_*_*) echo true;; (*) echo false;; esac)
6 muzaffar 1.28 %if "%{?cmsroot:set}" != "set"
7     %define cmsroot %instroot
8     %endif
9    
10 muzaffar 1.1 Source: cmsos
11 muzaffar 1.28
12 muzaffar 1.1 %prep
13 muzaffar 1.28 #Make sure that we always build cms-common with a different revision and
14     #hardcoded version 1.0 because this is what bootstrap.sh is going to install
15     %if "%v" != "1.0"
16     echo "ERROR: Please do not change the version. We have to build this RPM with a different REVISION"
17     echo " Please update the revision in %n.spec and make sure that version is set to 1.0"
18     exit 1
19     %endif
20    
21 muzaffar 1.1 %build
22 muzaffar 1.28
23 muzaffar 1.1 %install
24    
25 muzaffar 1.28 #Create all files in %i/%{pkgrevision} directory.
26     #This can be avoid if we move to --buildroot based builds
27     mkdir -p %i/%{pkgrevision}/common
28     cd %i/%{pkgrevision}
29    
30     cp %_sourcedir/cmsos ./common/cmsos
31 muzaffar 1.1
32 muzaffar 1.17 %if "%online" != "true"
33 muzaffar 1.28 cat << \EOF_CMSARCH_SH > ./common/cmsarch
34 muzaffar 1.1 #!/bin/sh
35     osarch=`%instroot/common/cmsos`
36 elmer 1.20 compilerv=gcc434
37 muzaffar 1.1 # We need to assume 1 compiler per platform.
38     # There is no other way around this.
39     if [ ! "$SCRAM_ARCH" ]
40     then
41     case $osarch in
42     osx104_ia32) compilerv=gcc401;;
43     osx104_ppc32) compilerv=gcc400;;
44 muzaffar 1.16 osx105_*) compilerv=gcc401;;
45 dsr 1.21 osx106_*) compilerv=gcc421;;
46 lat 1.27 slc6_*) compilerv=gcc461; osarch=slc6_amd64;;
47 elmer 1.26 slc5_*) compilerv=gcc434; osarch=slc5_amd64;;
48 elmer 1.18 slc4_*) compilerv=gcc345; osarch=slc4_ia32;;
49 elmer 1.20 *) compilerv=gcc434; osarch=slc5_ia32;;
50 muzaffar 1.1 esac
51     echo ${osarch}_${compilerv}
52     else
53     echo $SCRAM_ARCH
54     fi
55    
56     EOF_CMSARCH_SH
57 muzaffar 1.17 %else
58 muzaffar 1.28 cat << \EOF_CMSARCH_SH > ./common/cmsarch
59 muzaffar 1.17 #!/bin/sh
60     if [ ! "$SCRAM_ARCH" ] ; then
61     echo %cmsplatf
62     else
63     echo $SCRAM_ARCH
64     fi
65    
66     EOF_CMSARCH_SH
67     %endif
68 muzaffar 1.1
69     ### BASH code
70    
71 muzaffar 1.28 cat << \EOF_CMSSET_DEFAULT_SH > ./cmsset_default.sh
72 muzaffar 1.1 export PATH=%instroot/common:%instroot/bin:$PATH
73    
74     if [ ! $SCRAM_ARCH ]
75     then
76     SCRAM_ARCH=`%instroot/common/cmsarch`
77     export SCRAM_ARCH
78     fi
79    
80     here=%{instroot}
81    
82     if [ "$VO_CMS_SW_DIR" != "" ]
83     then
84     here=$VO_CMS_SW_DIR
85     else
86     if [ "$OSG_APP" != "" ]
87     then
88     here=$OSG_APP/cmssoft/cms
89     fi
90     fi
91    
92     if [ ! -d $here/${SCRAM_ARCH}/etc/profile.d ]
93     then
94     echo "Your shell is not able to find where cmsset_default.sh is located."
95     echo "Either you have not set VO_CMS_SW_DIR or OSG_APP correctly"
96     echo "or SCRAM_ARCH is not set to a valid architecture."
97     fi
98    
99     for pkg in `/bin/ls $here/${SCRAM_ARCH}/etc/profile.d/ | grep 'S.*[.]sh'`
100     do
101     source $here/${SCRAM_ARCH}/etc/profile.d/$pkg
102     done
103    
104     if [ ! $CMS_PATH ]
105     then
106     export CMS_PATH=$here
107     fi
108    
109     # aliases
110 muzaffar 1.9 alias cmsenv='eval `scramv1 runtime -sh`'
111     alias cmsrel='scramv1 project CMSSW'
112 muzaffar 1.1
113     if [ -f $CMS_PATH/SITECONF/local/JobConfig/cmsset_local.sh ]; then
114     . $CMS_PATH/SITECONF/local/JobConfig/cmsset_local.sh
115     fi
116    
117     if [ ! $CVSROOT ]
118     then
119 eulisse 1.30 CVSROOT=:gserver:cmssw.cvs.cern.ch:/local/reps/CMSSW
120 muzaffar 1.1 export CVSROOT
121     fi
122    
123     EOF_CMSSET_DEFAULT_SH
124    
125    
126     ### CSH code
127    
128 muzaffar 1.28 cat << \EOF_CMSSET_DEFAULT_CSH > ./cmsset_default.csh
129 muzaffar 1.1
130     if (${?PATH}) then
131     setenv PATH %instroot/common:%instroot/bin:$PATH
132     else
133     setenv PATH %instroot/common:%instroot/bin
134     endif
135    
136     if ( ! ${?SCRAM_ARCH}) then
137     setenv SCRAM_ARCH `sh -c %instroot/common/cmsarch`
138     endif
139    
140     set here=%instroot
141    
142     if ( ${?VO_CMS_SW_DIR} ) then
143     set here=$VO_CMS_SW_DIR
144     else
145     # OSG
146     if ( ${?OSG_APP} ) then
147     set here=$OSG_APP/cmssoft/cms
148     endif
149     # OSG
150     endif
151    
152 muzaffar 1.28 if ( ! -d $here/${SCRAM_ARCH}/etc/profile.d ) then
153     echo "Your shell is not able to find where cmsset_default.csh is located."
154     echo "Either you have not set VO_CMS_SW_DIR or OSG_APP correctly"
155     echo "or SCRAM_ARCH is not set to a valid architecture."
156 muzaffar 1.1 endif
157    
158     foreach pkg ( `/bin/ls ${here}/${SCRAM_ARCH}/etc/profile.d/ | grep 'S.*[.]csh'` )
159     source ${here}/${SCRAM_ARCH}/etc/profile.d/$pkg
160     end
161     if ( ! ${?CMS_PATH} ) then
162     setenv CMS_PATH $here
163     endif
164    
165     # aliases
166 muzaffar 1.9 alias cmsenv 'eval `scramv1 runtime -csh`'
167     alias cmsrel 'scramv1 project CMSSW'
168 muzaffar 1.1
169     if( -e $CMS_PATH/SITECONF/local/JobConfig/cmsset_local.csh ) then
170     source $CMS_PATH/SITECONF/local/JobConfig/cmsset_local.csh
171     endif
172    
173     if ( ! ${?CVSROOT}) then
174 eulisse 1.30 setenv CVSROOT :gserver:cmssw.cvs.cern.ch:/local/reps/CMSSW
175 muzaffar 1.1 endif
176    
177     unset here
178     EOF_CMSSET_DEFAULT_CSH
179    
180 muzaffar 1.28 cat << \EOF_COMMON_SCRAM > ./common/scram
181 muzaffar 1.1 #!/bin/sh
182     CMSARCH=`cmsarch`
183 muzaffar 1.10 srbase=%{instroot}/$CMSARCH
184     sver=$SCRAM_VERSION
185     dir=`/bin/pwd`
186 muzaffar 1.17 while [ ! -d ${dir}/.SCRAM ] && [ "$dir" != "/" ] ; do
187 muzaffar 1.10 dir=`dirname $dir`
188     done
189     if [ -f ${dir}/config/scram_version ] ; then
190     sver=`cat ${dir}/config/scram_version`
191 muzaffar 1.17 elif [ "X$sver" = "X" ] ; then
192 muzaffar 1.10 sver=`cat ${srbase}/etc/default-scramv1-version`
193     fi
194 muzaffar 1.17 if [ "X$sver" = "XV1_0_3-p1" ] && [ "X$CMSARCH" = "Xslc4_ia32_gcc345" ] ; then
195 muzaffar 1.10 sver=V1_0_3-p2
196     fi
197 muzaffar 1.28 scram_rel_series=`echo $sver | grep '^V[0-9][0-9]*_[0-9][0-9]*_[0-9][0-9]*' | sed 's|^\(V[0-9][0-9]*_[0-9][0-9]*\)_.*|\1|'`
198     case $sver in
199     V[01]_*|V2_[012]_* ) ;;
200     * ) scram_rel_series=`echo $scram_rel_series | sed 's|_.*||'` ;;
201     esac
202 muzaffar 1.17 if [ "X${scram_rel_series}" != "X" ] && [ -f ${srbase}/etc/default-scram/${scram_rel_series} ] ; then
203 muzaffar 1.10 sver=`cat ${srbase}/etc/default-scram/${scram_rel_series}`
204 muzaffar 1.1 fi
205     scmd=scram
206 muzaffar 1.10 srbase=%{instroot}/$CMSARCH/lcg/SCRAMV1
207 muzaffar 1.1 case $sver in
208 muzaffar 1.10 V0_* ) srbase=%{instroot}/$CMSARCH/lcg/SCRAM; scmd=scramv0;;
209     V1_0* ) scmd=scramv1;;
210     * ) ;;
211 muzaffar 1.1 esac
212 muzaffar 1.10 if [ ! -f ${srbase}/${sver}/etc/profile.d/init.sh ] ; then
213 muzaffar 1.8 echo "Unable to find SCRAM version $sver for $CMSARCH architecture."
214     exit 1
215     fi
216 muzaffar 1.17 . ${srbase}/${sver}/etc/profile.d/init.sh
217 elmer 1.2 # In the case we are on linux ia32 we prepend the linux32 command to the
218     # actual scram command so that, no matter where the ia32 architecture is
219     # running (i686 or x84_64) scram detects it as ia32.
220 muzaffar 1.1 CMSPLAT=`echo $CMSARCH | cut -d_ -f 2`
221 elmer 1.2 USE_LINUX32=
222 muzaffar 1.17 if [ `uname` = "Linux" ] && [ "$CMSPLAT" = "ia32" ] ; then
223 muzaffar 1.10 USE_LINUX32=linux32
224 muzaffar 1.1 fi
225 muzaffar 1.10 $USE_LINUX32 ${srbase}/${sver}/bin/${scmd} $@
226 muzaffar 1.1 EOF_COMMON_SCRAM
227    
228 muzaffar 1.28 find . -name "*" -type f | xargs chmod +x
229    
230     %post
231     cd $RPM_INSTALL_PREFIX/%{pkgrel}/%{pkgrevision}
232     %{relocateCmsFiles} `find . -name "*" -type f`
233    
234     mkdir -p $RPM_INSTALL_PREFIX/common $RPM_INSTALL_PREFIX/bin $RPM_INSTALL_PREFIX/etc/%{pkgname} $RPM_INSTALL_PREFIX/%{cmsplatf}/etc/profile.d
235 muzaffar 1.1
236 muzaffar 1.28 #Check if a newer revision is already installed
237     #Also force installation if older revision has deleted cmsset_default.sh
238     if [ -f $RPM_INSTALL_PREFIX/cmsset_default.csh ] && [ -f $RPM_INSTALL_PREFIX/etc/%{pkgname}/revision ] ; then
239     oldrev=`cat $RPM_INSTALL_PREFIX/etc/%{pkgname}/revision`
240     if [ $oldrev -ge %{pkgrevision} ] ; then
241     exit 0
242     fi
243     fi
244    
245     for file in `find . -name "*" -type f`; do
246     rm -f $RPM_INSTALL_PREFIX/$file
247     cp $file $RPM_INSTALL_PREFIX/$file
248     done
249 muzaffar 1.1
250 muzaffar 1.28 cd $RPM_INSTALL_PREFIX
251     rm -f common/scramv1; ln -s scram common/scramv1
252     rm -f common/scramv0; ln -s scram common/scramv0
253     rm -f bin/cmsarch; ln -s ../common/cmsarch bin/cmsarch
254     rm -f bin/cmsos; ln -s ../common/cmsarch bin/cmsos
255     rm -f bin/scramv1; ln -s ../common/scramv1 bin/scramv1
256     echo %{pkgrevision} > etc/%{pkgname}/revision