ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/online.spec
(Generate patch)

Comparing COMP/CMSDIST/online.spec (file contents):
Revision 1.3 by ratnik, Mon Nov 5 19:56:25 2007 UTC vs.
Revision 1.52 by muzaffar, Tue Sep 22 12:13:09 2009 UTC

# Line 1 | Line 1
1 < ### RPM cms online CMSSW_1_7_0_pre10_ONLINE
1 > ### RPM cms online CMSSW_3_2_7_ONLINE
2   ## IMPORT configurations
3 +
4   Provides: /bin/zsh
5 < Requires: online-tool-conf python glimpse
6 < Requires: SCRAMV1
7 < %define cmssw_release   %(perl -e '$_="%v"; s/_ONLINE//; print;')
8 < %define ucprojname  CMSSW
9 < %define lcprojname  cmssw
5 > Provides: /bin/ksh
6 > Provides: /bin/sed
7 > Provides: /usr/bin/awk
8 > Provides: /usr/bin/python
9 > Provides: perl(Date::Format)
10 > Provides: perl(Term::ReadKey)
11 > Provides: perl(full)
12 > Provides: perl(LWP::UserAgent)
13 > Provides: perl(Template)
14 > Provides: libg2c.so.0
15 > Requires: online-tool-conf python
16 > Patch0: online_src
17  
18 < %define prebuildtarget  gindices
18 > %define cmssw_release   %(perl -e '$_="%v"; s/_ONLINE//; print;')
19 > %define cvsprojuc       %(echo %n | sed -e "s|-debug||"| tr 'a-z' 'A-Z')
20 > %define cvsprojlc       %(echo %cvsprojuc | tr 'A-Z' 'a-z')
21 > %define cvsdir          %cvsprojuc
22 > %define cvsserver       %cvsprojlc
23 > %define useCmsTC        1
24   %define buildtarget     release-build
25   %define saveDeps        yes
13 %define cvsproj         %cvsprojuc
14 %define srctree         src
15
16 #%define scram_xml   .xml
17 %define scram_xml   %{nil}
18 %define scramcmd    scramv1
19
20 # NR: allow to change tarball names, otherwise old distributions
21 # are fetched from the apt SOURCE repository.
22
23 %if "%{?configtar:set}" != "set"
24 %define configtar       config.tar.gz
25 %endif
26
27 %define cmsswsrc http://cmsrep.cern.ch/cms/cpt/Software/download/cms/SOURCES/cms/cmssw/%{cmssw_release}
28 # For partial releases re-using CMSSW sources:
29 %if "%{?cmsswsrc:set}" == "set"
30 Source0: %{cmsswsrc}/config.tar.gz
31 Source1: %{cmsswsrc}/src.tar.gz
32 %endif
33
34 # List of packages to bootstrap for partial builds:
35 Source2: online_build_set
36 Source3: cmssw-tool
37 Source4: findDependencies.pl
38
39 %prep
40 rm -rf config
41 rm -rf %{srctree}
42 # Create a SCRAM project area, but using the already extracted
43 # sources.  In other words, pick up the files from the project config
44 # area, but munge all instances of <base url="cvs:*"> into a local
45 # reference so SCRAM won't try to download stuff from the network.
46
47 %setup -T -b 0 -n config
48 %setup -D -T -b 1 -n %{srctree}
49 #%setup -D -T -a 2 -n %{srctree}
50
51 touch %_builddir/config/%{ucprojname}_ignore.file
52 for file in `ls %_builddir/config/%{ucprojname}_*.file | grep -v  '/%{ucprojname}_ignore.file$' | sed 's|.*/%{ucprojname}_||;s|.file$||'`; do
53  sed 's|@PROJECT_NAME@|%ucprojname|g;s|@PROJECT_VERSION@|%v|g;s|@PROJECT_BUILD_PATH@|%_builddir|g' %_builddir/config/%{ucprojname}_${file}.file > %_builddir/config/${file}
54 done
55
56 # Disable building tests, as they bring dependency on cppunit
57 perl -p -i -e ' s!(<ClassPath.*test\\+test>)!#$1!;' config/BuildFile
58
59 if [ ${ONLINE_TOOL_CONF_ROOT}/configurations/requirements%scram_xml ] ; then
60  cp ${ONLINE_TOOL_CONF_ROOT}/configurations/requirements%scram_xml %_builddir/config/
61 fi
62 rm -f %_builddir/config/%{ucprojname}_ignore.file
63 rm -rf %_builddir/config/site
64 cp -rf ${ONLINE_TOOL_CONF_ROOT}/configurations/SCRAMToolBox/CMSconfigs %_builddir/config/site
65 echo $SCRAMV1_VERSION > %_builddir/config/scram_version
66
67 pwd
68 cd %_builddir
69
70 echo $PERL5LIB
71 echo rm -rf %i
72 mkdir -p $(dirname %i)
73
74 %{?buildarch:%buildarch}
75 export SCRAM_TOOLBOXVERSION=%cmssw_release
76
77 mv config/bootsrc config/bootsrc_orig
78
79 perl -p -e 'if (s/(<download.*)(file:src)(.*)(name="src)(">)/#$1$2$3$4$5/){open $fh, "%_sourcedir/online_build_set" or die; while(readline $fh){chomp;print "$1$2/$_$3$4/$_$5\n"}}' config/bootsrc_orig > config/bootsrc
80
81 %scramcmd project -d $(dirname %i) -b config/bootsrc -f %_builddir/config/site/tools-`cat %_builddir/config/site/sitename`.conf
82 perl -p -i -e "s|STANDALONE|%v|" %i/.SCRAM/Environment* %i/.SCRAM/%cmsplatf/ToolCache.db
83 cd %i
84 %scramcmd setup
85
86 %build
87 pwd
88 # Remove cmt stuff that brings unwanted dependencies:
89 rm -rf `find %{i}/src -type d -name cmt`
90 echo `%scramcmd arch`
91 cd %i
92 cd src
93
94 %{?buildarch:%buildarch}
95
96 export BUILD_LOG=yes
97 export SCRAM_NOPLUGINREFRESH=yes
98 # export SCRAM_NOSYMCHECK=true
99
100 if [ $(uname) = Darwin ]; then
101  # %scramcmd doesn't know the rpath variable on darwin...
102  %scramcmd b echo_null # ensure lib, bin exist
103  eval `%scramcmd runtime -sh`
104  export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH
105 fi
106
107 %if "%{?nolibchecks:set}" == "set"
108 export SCRAM_NOLOADCHECK=true
109 export SCRAM_NOSYMCHECK=true
110 %endif
111
112 %if "%{?preBuildCommand:set}" == "set"
113 echo "executing %preBuildCommand"
114 %preBuildCommand
115 %endif
116
117 %if "%{?buildtarget:set}" != "set"
118 %define buildtarget %{nil}
119 %endif
120
121 %scramcmd b -r echo_CXX </dev/null
122 %if "%{?prebuildtarget:set}" == "set"
123 %scramcmd b --verbose -f %{prebuildtarget} </dev/null
124 %endif
125 %scramcmd b --verbose -f %{compileOptions} %{makeprocesses}  %{buildtarget} </dev/null
126 %if "%{?additionalBuildTarget0:set}" == "set"
127 %scramcmd b --verbose -f %{additionalBuildTarget0} < /dev/null
128 %endif
129 %if "%{?postbuildtarget:set}" == "set"
130 %scramcmd b --verbose -f %{postbuildtarget} </dev/null
131 %endif
132
133 # strip out dependencies first...
134 %if "%{?saveDeps:set}" == "set"
135 mkdir -p %i/etc/dependencies
136 chmod +x %{_sourcedir}/findDependencies.pl
137 %{_sourcedir}/findDependencies.pl -rel %i
138 gzip %i/etc/dependencies/uses.out
139 gzip %i/etc/dependencies/usedby.out
140 %endif
141
142
143 rm -rf %i/tmp
144 chmod -R 755 %i %i/.SCRAM
145 (eval `%scramcmd run -sh` ; SealPluginRefresh) || true
146 rm -fR %i/lib/%cmsplatf/.edmplugincache
147 (eval `%scramcmd run -sh` ; EdmPluginRefresh) || true
26  
27 < %install
28 < cd %i
151 < %{?buildarch:%buildarch}
152 < perl -p -i -e "s|^#!.*perl(.*)|#!/usr/bin/env perl$1|" $(grep -r -e "^#!.*perl.*" . | cut -d: -f1)
153 < # need writeable directory for profile stuff
154 < mkdir -p etc/scram.d
155 < sed 's|@PROJECT_NAME@|%ucprojname|g;s|@PROJECT_VERSION@|%v|g;s|@PROJECT_BUILD_PATH@|%_builddir|g;s|@PROJECT_ROOT@|%i|g' %_sourcedir/%lcprojname-tool > etc/scram.d/%lcprojname
156 < yes | %scramcmd install # FIXME: do by hand?
27 > #Defines for file containing list of packages for checkout and build:
28 > %define buildsetfile    online_build_set
29  
30 < %post
31 < cd $RPM_INSTALL_PREFIX/%pkgrel
32 < %{relocateConfig}etc/scram.d/%lcprojname
33 < perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $(find config -type f) $(find .SCRAM -type f)
34 < scramver=`cat config/scram_version`
35 < source $RPM_INSTALL_PREFIX/%cmsplatf/lcg/SCRAMV1/$scramver/etc/profile.d/init.sh
36 < %{?buildarch:%buildarch}
165 < yes | %scramcmd install
166 < (rm -rf external/%cmsplatf; ./config/linkexternal.pl --arch %cmsplatf --nolink INCLUDE) || true
167 < eval `%scramcmd run -sh`
168 < for cmd in SealPluginRefresh EdmPluginRefresh IgPluginRefresh ; do
169 <  cmdpath=`which $cmd 2> /dev/null`
170 <  if [ "X$cmdpath" != X ] ; then
171 <    $cmd || true
172 <  fi
173 < done
30 > %define patchsrc2       perl -p -i -e ' s!(<classpath.*/test\\+.*>)!!' config/BuildFile.xml
31 > %define patchsrc3       %patch -p0
32 > %define patchsrc4       rm -rf src/DQM/SiPixelHistoricInfoClient/bin
33 >
34 > ## IMPORT cms-scram-build
35 > ## IMPORT partial-build
36 > ## IMPORT scramv1-build

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines