ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/cms-common.spec
Revision: 1.29
Committed: Wed Nov 23 17:29:43 2011 UTC (13 years, 5 months ago) by muzaffar
Branch: MAIN
CVS Tags: davidlt-20120912-1527-osx107_amd64_gcc462, davidlt_20120327_1112-51X-gcc470, davidlt_1-51X-gcc470, CMSSW_5_1_3, daForCMSSW_5_1_3-osx106_amd64_gcc462, daForCMSSW_5_1_3-slc5_amd64_gcc462, davidlt_20120314_1059-51X-gcc462, davidlt_20120312_1508-51X-gcc462, CMSSW_5_1_2_patch1, daForCMSSW_5_1_2_patch1-slc5_amd64_gcc462, davidlt_20120307_1529-51X-gcc462, CMSSW_5_1_2_ONLINE, fw20120305-cmssw512-gcc462onl, CMSSW_5_1_1_patch2_ONLINE, CMSSW_5_1_1_patch3, daForCMSSW_5_1_1_patch3-slc5_amd64_gcc462, sm20120302-52X-slc6, fw20120302-cmssw511p2-gcc461onl, davidlt_20120301_1448-52X-gcc462-slc6, davidlt_20120229_1507-52X-gcc462-slc6, da20120229-52X-gcc462-slc6, davidlt_slc6c, davidlt_slc6b, geForCMSSW_5_2_0_pre6_TS117498-slc5_amd64_gcc462, CMSSW_5_2_0_pre5_TS117504, davidlt_slc6a, geForCMSSW_5_2_0_pre5_TS117504-slc5_amd64_gcc462, BOOTSTRAP_slc6_amd64_gcc462, ge20120227-52X, geForCMSSW_5_2_0_pre6-osx106_amd64_gcc462, geForCMSSW_5_2_0_pre6DQM-slc5_amd64_gcc462, CMSSW_5_1_2, daForCMSSW_5_1_2-osx106_amd64_gcc462, daForCMSSW_5_1_2-slc5_amd64_gcc462, geForCMSSW_5_2_0_pre6-osx107_amd64_gcc462, CMSSW_5_2_0_pre6, davidlt_20120224_2132-51X-gcc462, CMSSW_5_1_1_ONLINE, geForCMSSW_5_2_0_pre6-slc5_amd64_gcc462, fw20120222-cmssw511-gcc461onl-3, fw20120222-cmssw511-gcc461onl-2, fw20120222-cmssw511-gcc461onl, ge20120222-52X-gcc462-lion, ge20120222-52X-gcc462, fw20120221-gcc461onl, sm120221, CMSSW_5_1_1_patch2, daForCMSSW_5_1_1_patch2-slc5_amd64_gcc462, ge20120218-52X-gcc462-lion, vs20120218-52X-gcc462-lion, ge20120218-52X-gcc462, ge20120215-52X-gcc462, CMSSW_5_1_1_patch1, daForCMSSW_5_1_1_patch1-slc5_amd64_gcc462, vs20120215-52X-gcc462, vs20120215-52X, vs20120215-52X-gcc462-lion, vs20120215-51X-gcc462, vs20120215-51X, vs20120215-50X-gcc461-ports, CMSSW_5_2_0_pre5, da20120215-52X-gcc462-lion, da20120215-52X-gcc462, da20120214-50X-gcc461-ports, CMSSW_5_1_1, geForCMSSW_5_2_0_pre5-osx106_amd64_gcc462, geForCMSSW_5_2_0_pre5-osx107_amd64_gcc462, geForCMSSW_5_2_0_pre5-slc5_amd64_gcc462, geForCMSSW_5_2_0_pre5-slc5_amd64_gcc461, CMSSW_5_0_1_patch3-gcc461-ports, ge20120213-52X-gcc462, daForCMSSW_5_0_1_patch3b-slc5_amd64_gcc461, daForCMSSW_5_1_1b-osx106_amd64_gcc462, daForCMSSW_5_1_1b-slc5_amd64_gcc462, da20120213-51X-gcc462, ge20120213-52X-gcc462-lion, ge20120212c-52X-gcc462-lion, daForCMSSW_5_1_1-osx106_amd64_gcc462, daForCMSSW_5_1_1-slc5_amd64_gcc462, ge20120212b-52X-gcc462-lion, ge20120212-52X-gcc462-lion, da20120209-52X-gcc462-lion, da20120209-52X-gcc462, da20120209-52X, CMSSW_5_0_1_patch2-gcc461-ports, vs20120207-52X, vs20120207a-51X, da20120207b-51X-gcc462, da20120207-51X-gcc462, daForCMSSW_5_0_1_patch2c-slc5_amd64_gcc461, daForCMSSW_5_0_1_patch2-slc5_amd64_gcc461, CMSSW_5_2_0_pre4, vs20120207-51X, da20120206-50X-gcc461-ports, geForCMSSW_5_2_0_pre4-slc5_amd64_gcc461, geForCMSSW_5_2_0_pre4, da20120205-50X-gcc461-ports, da20120205-51X, fw20120205-cmssw50x-online, CMSSW_5_0_1_ONLINE, ge20120204-51X-gcc462-lion, ge20120204-51X-gcc462, da20120204-52X-gcc462-lion, da20120204-52X, geForCMSSW_5_2_0_pre2_TS113282_TS115242, CMSSW_5_0_1_patch1-gcc461-ports, CMSSW_5_0_0_patch2-gcc461-ports, fw20120202cmssw501online, fw20120201cmssw501online, da20120130-52X, CMSSW_5_0_1-gcc461-ports, da20120129-50X-gcc461-ports, da20120129-52X, CMSSW_5_0_0_ONLINE-cms, fw20120127gcc461cmssw500onl, fw20120126gcc461cmssw500onl, CMSSW_5_2_0_pre2_TS113282, daFor520pre2TS113282, daFor520pre2TS113042, fw20120125gcc461cmssw500onl, da20120124-52X, da20120123-52X, da20120123-51X, da20120123-50X-gcc461-ports, CMSSW_5_0_0_patch1-gcc461-ports, CMSSW_5_2_0_pre2, daFor520pre2, da20120120-52X, CMSSW_5_2_0_pre1, daFor520pre1, CMSSW_5_1_0_pre2, daFor510pre2, da20120116-52X, da20120112b-51X, da20120112b-52X, da20120112-50X-gcc461-ports, da20120112-51X, da20120112-52X, CMSSW_5_0_0_ONLINE, da20120110-50X-gcc461-ports, da20120110-51X, fw20120110gcc461cmssw500onl, da20120110-52X, da20120109b-51X, da20120109b-52X, da20120109-52X, da20120108-52X-gcc461-ports, da20120106-52X-gcc461-ports, sm120105onl500, sm111222a-onlgcc461, sm111222-onlgcc461, da20111220-50X-gcc461-ports, da20111219-50X-gcc461-ports, CMSSW_5_1_0_pre1-gcc461-ports, sjgFor510pre1d-gcc461-ports, sjgFor510pre1c-gcc461-ports, sjgFor510pre1b-gcc461-ports, daFor510pre1c-gcc461-ports, CMSSW_5_0_0-gcc461-ports, sjgFor500-gcc461-ports, daFor510pre1b-gcc461-ports, az20111214-50X-gcc461-ports, daFor510pre1-gcc461-ports
Changes since 1.28: +1 -10 lines
Log Message:
no need of explicit files section when build with PKGTOOLS V00-20-09 and above

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 muzaffar 1.23 CVSROOT=:gserver:cmssw.cvs.cern.ch:/cvs/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 muzaffar 1.23 setenv CVSROOT :gserver:cmssw.cvs.cern.ch:/cvs/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