ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/root.spec
Revision: 1.221
Committed: Mon Nov 29 13:46:57 2010 UTC (14 years, 5 months ago) by elmer
Branch: MAIN
CVS Tags: pe20101203-root52706b
Changes since 1.220: +31 -82 lines
Log Message:
  Update to version 5.27/06b (starting from last 5.27/06 spec file), adding
additional patches:
  root-5.27-06b-gdb-backtrace.patch
  root-5.27-06-tmva-DecisionTreeNode.patch
  root-5.27-06b-r36567.patch
  root-5.27-06b-r36572.patch
  root-5.27-06b-r36707.patch
  root-5.27-06b-r36594.patch
In addition, add dependency on fftw3 and enable its use in the ROOT build
itself.

File Contents

# Content
1 ### RPM lcg root 5.27.06b
2 ## INITENV +PATH PYTHONPATH %i/lib/python
3 ## INITENV SET ROOTSYS %i
4 #Source: cvs://:pserver:cvs@root.cern.ch:2401/user/cvs?passwd=Ah<Z&tag=-rv%(echo %realversion | tr . -)&module=root&output=/%{n}_v%{realversion}.source.tar.gz
5 Source: ftp://root.cern.ch/%n/%{n}_v%{realversion}.source.tar.gz
6 %define closingbrace )
7 %define online %(case %cmsplatf in *onl_*_*%closingbrace echo true;; *%closingbrace echo false;; esac)
8
9 Patch0: root-5.27-06-externals
10 Patch1: root-5.27-04-CINT-maxlongline-maxtypedef
11 Patch2: root-5.22-00a-roofit-silence-static-printout
12 Patch3: root-5.22-00d-linker-gnu-hash-style
13 Patch4: root-5.22-00d-TBranchElement-dropped-data-member
14 Patch5: root-5.27-06-fireworks9
15 Patch6: root-5.27-06b-gdb-backtrace
16 Patch7: root-5.27-06-tmva-DecisionTreeNode
17 Patch8: root-5.27-06b-r36567
18 Patch9: root-5.27-06b-r36572
19 Patch10: root-5.27-06b-r36707
20 Patch11: root-5.27-06b-r36594
21
22 %define cpu %(echo %cmsplatf | cut -d_ -f2)
23
24 Requires: xrootd gccxml gsl castor libjpg dcap pcre python fftw3
25 %if "%online" != "true"
26 Requires: qt openssl libpng zlib libungif libtiff
27 %endif
28
29 %prep
30 %setup -n root
31 %patch0 -p1
32 %patch1 -p1
33 %patch2 -p1
34 # patch3 is OS version dependent, see below
35 %patch4 -p1
36 %patch5 -p1
37 %patch6 -p1
38 %patch7 -p1
39 %patch8 -p1
40 %patch9 -p1
41 %patch10 -p1
42 %patch11 -p1
43
44 # The following patch can only be applied on SLC5 or later (extra linker
45 # options only available with the SLC5 binutils)
46 case %cmsplatf in
47 slc5_* | slc5onl_* )
48 %patch3 -p1
49 ;;
50 esac
51
52 %build
53
54 mkdir -p %i
55 export LIBJPG_ROOT
56 export ROOTSYS=%_builddir/root
57 export PYTHONV=$(echo $PYTHON_VERSION | cut -f1,2 -d.)
58
59 %if "%online" == "true"
60 # Use system qt. Also skip xrootd and odbc for online case:
61
62 EXTRA_CONFIG_ARGS="--with-f77=/usr
63 --disable-odbc
64 --disable-qt --disable-qtgsi --disable-astiff"
65 %else
66 export LIBPNG_ROOT ZLIB_ROOT LIBTIFF_ROOT LIBUNGIF_ROOT
67 EXTRA_CONFIG_ARGS="--with-f77=${GCC_ROOT}
68 --enable-qt --with-qt-libdir=${QT_ROOT}/lib --with-qt-incdir=${QT_ROOT}/include
69 --with-ssl-incdir=${OPENSSL_ROOT}/include
70 --with-ssl-libdir=${OPENSSL_ROOT}/lib
71 --enable-qtgsi"
72 %endif
73
74 CONFIG_ARGS="--enable-table
75 --disable-builtin-pcre
76 --disable-builtin-freetype
77 --disable-builtin-zlib
78 --with-gccxml=${GCCXML_ROOT}
79 --enable-python --with-python-libdir=${PYTHON_ROOT}/lib --with-python-incdir=${PYTHON_ROOT}/include/python${PYTHONV}
80 --enable-explicitlink
81 --enable-mathmore
82 --enable-reflex
83 --enable-cintex
84 --enable-minuit2
85 --enable-fftw3
86 --with-fftw3-incdir=${FFTW3_ROOT}/include
87 --with-fftw3-libdir=${FFTW3_ROOT}/lib
88 --disable-ldap
89 --disable-krb5
90 --with-xrootd=${XROOTD_ROOT}
91 --with-gsl-incdir=${GSL_ROOT}/include
92 --with-gsl-libdir=${GSL_ROOT}/lib
93 --with-dcap-libdir=${DCAP_ROOT}/lib
94 --with-dcap-incdir=${DCAP_ROOT}/include
95 --disable-pgsql
96 --disable-mysql
97 --disable-xml ${EXTRA_CONFIG_ARGS}"
98
99 case $(uname)-$(uname -m) in
100 Linux-x86_64)
101 ./configure linuxx8664gcc $CONFIG_ARGS --with-rfio-libdir=${CASTOR_ROOT}/lib --with-rfio-incdir=${CASTOR_ROOT}/include/shift --with-castor-libdir=${CASTOR_ROOT}/lib --with-castor-incdir=${CASTOR_ROOT}/include/shift ;;
102 Linux-i*86)
103 ./configure linux $CONFIG_ARGS --with-rfio-libdir=${CASTOR_ROOT}/lib --with-rfio-incdir=${CASTOR_ROOT}/include/shift --with-castor-libdir=${CASTOR_ROOT}/lib --with-castor-incdir=${CASTOR_ROOT}/include/shift ;;
104 Darwin*)
105 case %cmsplatf in
106 *_ia32_* )
107 comparch=i386 ;;
108 *_amd64_* )
109 comparch=x86_64 ;;
110 * )
111 comparch=ppc ;;
112 esac
113 export CC="gcc -arch $comparch" CXX="g++ -arch $comparch"
114 ./configure macosx $CONFIG_ARGS --with-cc="$CC" --with-cxx="$CXX" --disable-rfio --disable-builtin_afterimage ;;
115 Linux-ppc64*)
116 ./configure linux $CONFIG_ARGS --disable-rfio;;
117 esac
118
119 case %cmsplatf in
120 osx*)
121 makeopts=
122 ;;
123 *)
124 makeopts="%makeprocesses"
125 ;;
126 esac
127
128 make $makeopts
129 make cintdlls
130
131 %install
132 # Override installers if we are using GNU fileutils cp. On OS X
133 # ROOT's INSTALL is defined to "cp -pPR", which only works with
134 # the system cp (/bin/cp). If you have fileutils on fink, you
135 # lose. Check which one is getting picked up and select syntax
136 # accordingly. (FIXME: do we need to check that -P is accepted?)
137 if (cp --help | grep -e '-P.*--parents') >/dev/null 2>&1; then
138 cp="cp -dpR"
139 else
140 cp="cp -pPR"
141 fi
142
143 export ROOTSYS=%i
144 make INSTALL="$cp" INSTALLDATA="$cp" install
145 mkdir -p $ROOTSYS/lib/python
146 cp -r cint/reflex/python/genreflex $ROOTSYS/lib/python
147
148 # SCRAM ToolBox toolfile
149 mkdir -p %i/etc/scram.d
150 # rootcore toolfile
151 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootcore.xml
152 <tool name="rootcore" version="%v">
153 <info url="http://root.cern.ch/root/"/>
154 <lib name="Tree"/>
155 <lib name="Net"/>
156 <lib name="Thread"/>
157 <lib name="MathCore"/>
158 <lib name="RIO"/>
159 <lib name="Core"/>
160 <lib name="Cint"/>
161 <client>
162 <environment name="ROOTCORE_BASE" default="%i"/>
163 <environment name="LIBDIR" default="$ROOTCORE_BASE/lib"/>
164 <environment name="INCLUDE" default="$ROOTCORE_BASE/include"/>
165 <environment name="INCLUDE" default="$ROOTCORE_BASE/cint"/>
166 </client>
167 <runtime name="PATH" value="$ROOTCORE_BASE/bin" type="path"/>
168 <runtime name="ROOTSYS" value="$ROOTCORE_BASE/"/>
169 <runtime name="PYTHONPATH" value="$ROOTCORE_BASE/lib" type="path"/>
170 <use name="sockets"/>
171 <use name="pcre"/>
172 <use name="zlib"/>
173 </tool>
174 EOF_TOOLFILE
175
176 # root toolfile, alias for rootphysics. Using rootphysics is preferred.
177 cat << \EOF_TOOLFILE >%i/etc/scram.d/root.xml
178 <tool name="root" version="%v">
179 <info url="http://root.cern.ch/root/"/>
180 <use name="rootphysics"/>
181 </tool>
182 EOF_TOOLFILE
183
184 # roothistmatrix toolfile
185 cat << \EOF_TOOLFILE >%i/etc/scram.d/roothistmatrix.xml
186 <tool name="roothistmatrix" version="%v">
187 <info url="http://root.cern.ch/root/"/>
188 <lib name="Hist"/>
189 <lib name="Matrix"/>
190 <use name="ROOTCore"/>
191 </tool>
192 EOF_TOOLFILE
193
194 # rootgpad toolfile
195 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootgpad.xml
196 <tool name="rootgpad" version="%v">
197 <info url="http://root.cern.ch/root/"/>
198 <lib name="Gpad"/>
199 <lib name="Graf"/>
200 <use name="roothistmatrix"/>
201 </tool>
202 EOF_TOOLFILE
203
204 # rootphysics toolfile
205 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootphysics.xml
206 <tool name="rootphysics" version="%v">
207 <info url="http://root.cern.ch/root/"/>
208 <lib name="Physics"/>
209 <use name="roothistmatrix"/>
210 </tool>
211 EOF_TOOLFILE
212
213 # rootgraphics toolfile, identical to old "root" toolfile
214 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootgraphics.xml
215 <tool name="rootgraphics" version="%v">
216 <info url="http://root.cern.ch/root/"/>
217 <lib name="TreePlayer"/>
218 <lib name="Graf3d"/>
219 <lib name="Postscript"/>
220 <use name="rootgpad"/>
221 </tool>
222 EOF_TOOLFILE
223
224 # rootcintex toolfile
225 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootcintex.xml
226 <tool name="rootcintex" version="%v">
227 <info url="http://root.cern.ch/root/"/>
228 <lib name="Cintex"/>
229 <use name="ROOTRflx"/>
230 <use name="ROOTCore"/>
231 </tool>
232 EOF_TOOLFILE
233
234 # rootinteractive toolfile (GQt/qt lib dependencies
235 # have been moved to rootqt.xml)
236 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootinteractive.xml
237 <tool name="rootinteractive" version="%v">
238 <info url="http://root.cern.ch/root/"/>
239 <lib name="Rint"/>
240 <lib name="Gui"/>
241 <use name="libjpg"/>
242 <use name="libpng"/>
243 <use name="rootgpad"/>
244 </tool>
245 EOF_TOOLFILE
246
247 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootqt.xml
248 <tool name="rootqt" version="%v">
249 <info url="http://root.cern.ch/root/"/>
250 <lib name="GQt"/>
251 <use name="qt"/>
252 </tool>
253 EOF_TOOLFILE
254
255 # rootmath toolfile
256 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootmath.xml
257 <tool name="rootmath" version="%v">
258 <info url="http://root.cern.ch/root/"/>
259 <lib name="GenVector"/>
260 <lib name="MathMore"/>
261 <use name="ROOTCore"/>
262 <use name="gsl"/>
263 </tool>
264 EOF_TOOLFILE
265
266 # rootminuit toolfile
267 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootminuit.xml
268 <tool name="rootminuit" version="%v">
269 <info url="http://root.cern.ch/root/"/>
270 <lib name="Minuit"/>
271 <use name="rootgpad"/>
272 </tool>
273 EOF_TOOLFILE
274
275 # rootminuit2 toolfile
276 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootminuit2.xml
277 <tool name="rootminuit2" version="%v">
278 <info url="http://root.cern.ch/root/"/>
279 <lib name="Minuit2"/>
280 <use name="rootgpad"/>
281 </tool>
282 EOF_TOOLFILE
283
284 # rootrflx toolfile
285 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootrflx.xml
286 <tool name="rootrflx" version="%v">
287 <info url="http://root.cern.ch/root/"/>
288 <lib name="Reflex"/>
289 <client>
290 <environment name="ROOTRFLX_BASE" default="%i"/>
291 <environment name="LIBDIR" default="$ROOTRFLX_BASE/lib"/>
292 <environment name="INCLUDE" default="$ROOTRFLX_BASE/include"/>
293 </client>
294 <runtime name="PATH" value="$ROOTRFLX_BASE/bin" type="path"/>
295 <runtime name="ROOTSYS" value="$ROOTRFLX_BASE/"/>
296 <runtime name="GENREFLEX" value="$ROOTRFLX_BASE/bin/genreflex"/>
297 <use name="sockets"/>
298 <use name="gccxml"/>
299 </tool>
300 EOF_TOOLFILE
301
302 # roothtml toolfile
303 cat << \EOF_TOOLFILE >%i/etc/scram.d/roothtml.xml
304 <tool name="roothtml" version="%v">
305 <info url="http://root.cern.ch/root/"/>
306 <lib name="Html"/>
307 <use name="rootgpad"/>
308 </tool>
309 EOF_TOOLFILE
310
311 # rootmlp toolfile
312 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootmlp.xml
313 <tool name="rootmlp" version="%v">
314 <info url="http://root.cern.ch/root/"/>
315 <lib name="MLP"/>
316 <use name="RootGraphics"/>
317 </tool>
318 EOF_TOOLFILE
319
320 # roottmva toolfile
321 cat << \EOF_TOOLFILE >%i/etc/scram.d/roottmva.xml
322 <tool name="roottmva" version="%v">
323 <info url="http://root.cern.ch/root/"/>
324 <lib name="TMVA"/>
325 <use name="ROOTMLP"/>
326 <use name="rootminuit"/>
327 </tool>
328 EOF_TOOLFILE
329
330 # rootthread toolfile
331 cat << \EOF_TOOLFILE >%i/etc/scram.d/rootthread.xml
332 <tool name="rootthread" version="%v">
333 <info url="http://root.cern.ch/root/"/>
334 <use name="ROOTCore"/>
335 </tool>
336 EOF_TOOLFILE
337
338 %post
339 perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $(find $RPM_INSTALL_PREFIX/%pkgrel/etc/scram.d -type f)
340