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.16 by ratnik, Fri Mar 7 23:30:18 2008 UTC vs.
Revision 1.41 by muzaffar, Tue Jun 30 22:13:16 2009 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines