ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/root.spec
Revision: 1.214
Committed: Thu Oct 28 21:00:16 2010 UTC (14 years, 6 months ago) by andreasp
Branch: MAIN
CVS Tags: CMSSW_3_9_5_xdaq11b4_ONLINE, CMSSW_3_9_5_ONLINE, for310X-101122a, CMSSW_3_9_1_onlpatch4_ONLINE, CMSSW_3_9_1_onlpatch3_ONLINE, for310X-101122, CMSSW_3_10_0_pre5, CMSSW_3_9_3_ONLINE, azFor3100p5, CMSSW_3_9_3, apFor393v0, smFor310X-101111, CMSSW_3_9_2_patch5, CMSSW_3_10_0_pre4, CMSSW_3_9_2_patch4, azFor3100pre4-Updated, azFor3100pre4, smFor392p4, CMSSW_3_9_2_patch3, apFor392p3v0, CMSSW_3_9_2_patch2, apFor392p2v0, smFor310-101106, CMSSW_3_9_2_patch1, apFor392p1v0, CMSSW_3_9_1_onlpatch2_ONLINE, CMSSW_3_9_1_onlpatch1_ONLINE, smFor310-101104, CMSSW_3_9_2, apFor392v0, sjgFor392, CMSSW_3_10_0_pre3, azFor3100p3a, CMSSW_3_9_1_patch1, smFor391patch1, CMSSW_3_9_1_ONLINE, smFor391onl, CMSSW_3_9_1, smFor391, apFor391v1, apFor391v0
Changes since 1.213: +7 -7 lines
Log Message:
update root.spec for 3.9.1 - adding fireworks9

File Contents

# User Rev Content
1 elmer 1.206 ### RPM lcg root 5.22.00d
2 dlange 1.57 ## INITENV +PATH PYTHONPATH %i/lib/python
3 elmer 1.198 ## INITENV SET ROOTSYS %i
4 ratnik 1.106 #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 elmer 1.144 Source: ftp://root.cern.ch/%n/%{n}_v%{realversion}.source.tar.gz
6 muzaffar 1.165 %define closingbrace )
7 elmer 1.179 %define online %(case %cmsplatf in *onl_*_*%closingbrace echo true;; *%closingbrace echo false;; esac)
8 eulisse 1.211 %define ismac %(case %cmsplatf in osx*%closingbrace echo true;; *%closingbrace echo false;; esac)
9 elmer 1.96
10 elmer 1.208 Patch0: root-5.22-00d-externals
11 elmer 1.206 Patch1: root-5.22-00d-CINT-maxlongline-maxtypedef
12     Patch2: root-5.22-00-TMVA-shut-the-hell-up-for-once
13     Patch3: root-5.22-00a-TMVA-shut-the-hell-up-again
14 andreasp 1.214 Patch4: root-5.22-00d-fireworks-graf3d-gui
15 elmer 1.206 Patch5: root-5.22-00a-roofit-silence-static-printout
16     Patch6: root-5.22-00a-TMVA-just-shut-the-hell-up
17     Patch7: root-5.22-00a-th1
18     Patch8: root-5.22-00d-makelib-ldl
19     Patch9: root-5.22-00a-fireworks1
20     Patch10: root-5.22-00a-gcc44
21     Patch11: root-5.22-00a-fireworks2
22     Patch12: root-5.22-00a-fireworks3
23     Patch13: root-5.22-00a-gcc43-array-bounds-dictionary-workaround
24     Patch14: root-5.22-00a-fireworks4
25     Patch15: root-5.22-00d-fireworks5
26     Patch16: root-5.22-00d-genreflex_python26_popen3
27     Patch17: root-5.22-00d-fireworks6
28     Patch18: root-5.22-00d-linker-gnu-hash-style
29     Patch19: root-5.22-00d-TFile-version3-Init
30     Patch20: root-5.22-00d-cint-namespace
31     Patch21: root-5.22-00d-fireworks7
32     Patch22: root-5.22-00d-TMath-Vavilov
33     Patch23: root-5.22-00d-TBranchElement-dropped-data-member
34 andreasp 1.214 Patch24: root-5.22-00d-fireworks8
35 elmer 1.206 Patch25: root-5.22-00d-fix-python-shebang
36     Patch26: root-5.22-00d-RootsysOnMac
37     Patch27: root-5.22-00d-TString-Clear
38 elmer 1.208 Patch28: root-5.22-00d-libgfortran-dylib-detection
39 elmer 1.210 Patch29: root-5.22-00d-cint-dll-correct-install-name
40 andreasp 1.214 Patch30: root-5.22-00d-fireworks9
41 elmer 1.98
42     %define cpu %(echo %cmsplatf | cut -d_ -f2)
43    
44 eulisse 1.211 Requires: gccxml gsl libjpg pcre python fftw3
45 elmer 1.206
46 eulisse 1.211 %if "%ismac" == "false"
47     Requires: castor dcap
48     %endif
49    
50     %if "%online-%ismac" == "false-true"
51     Requires: openssl libpng zlib libungif libtiff gfortran-macosx
52     %endif
53    
54     %if "%online-%ismac" == "false-false"
55 elmer 1.208 Requires: qt openssl libpng zlib libungif xrootd libtiff
56 elmer 1.98 %endif
57 eulisse 1.25
58 eulisse 1.1 %prep
59     %setup -n root
60 ratnik 1.106 %patch0 -p1
61     %patch1 -p1
62 elmer 1.205 %patch2 -p1
63 elmer 1.206 %patch3 -p1
64 elmer 1.205 %patch4 -p1
65 elmer 1.206
66 elmer 1.149 %patch5 -p1
67 elmer 1.206 %patch6 -p1
68     %patch7 -p1
69     %patch8 -p1
70     %patch9 -p1
71    
72     # patch10 is compiler version dependent, see below
73     %patch11 -p1
74     %patch12 -p1
75     # patch13 is compiler version dependent, see below
76    
77     # work around patch issue...
78 andreasp 1.214 rm graf3d/gl/src/gl2ps.c
79 elmer 1.206 %patch14 -p1
80     #work around patch issues in patch14(?)
81 andreasp 1.214 rm graf3d/eve/inc/TEveLegoOverlay.h.orig
82     rm graf3d/eve/src/TEveLegoOverlay.cxx
83 elmer 1.206 %patch15 -p1
84     %patch16 -p1
85     %patch17 -p1
86     %patch19 -p1
87     %patch20 -p1
88     %patch21 -p1
89     %patch22 -p1
90     %patch23 -p1
91     %patch24 -p1
92     %patch25 -p1
93     %patch26 -p1
94     %patch27 -p1
95 elmer 1.208 %patch28 -p2
96 elmer 1.210 %patch29 -p1
97 andreasp 1.214 %patch30 -p1
98 elmer 1.206
99     case %gccver in
100     4.3.*)
101     %patch13 -p1
102     ;;
103     4.4.*)
104     %patch10 -p1
105     ;;
106     esac
107 elmer 1.204
108 elmer 1.206 # The following patch can only be applied on SLC5 or later (extra linker
109 elmer 1.198 # options only available with the SLC5 binutils)
110     case %cmsplatf in
111     slc5_* | slc5onl_* )
112 elmer 1.206 %patch18 -p1
113 elmer 1.198 ;;
114     esac
115 eulisse 1.190
116 eulisse 1.1 %build
117 andreasp 1.163
118 eulisse 1.1 mkdir -p %i
119 muzaffar 1.209 export LIBJPG_ROOT
120 elmer 1.14 export ROOTSYS=%_builddir/root
121 elmer 1.180 export PYTHONV=$(echo $PYTHON_VERSION | cut -f1,2 -d.)
122 dlange 1.103
123 muzaffar 1.164 %if "%online" == "true"
124 elmer 1.181 # Use system qt. Also skip xrootd and odbc for online case:
125 ratnik 1.111
126 muzaffar 1.164 EXTRA_CONFIG_ARGS="--with-f77=/usr
127 elmer 1.206 --disable-xrootd
128 ratnik 1.111 --disable-odbc
129 elmer 1.206 --disable-qt --disable-qtgsi"
130 dlange 1.103 %else
131 muzaffar 1.209 export LIBPNG_ROOT ZLIB_ROOT LIBTIFF_ROOT LIBUNGIF_ROOT
132 muzaffar 1.164 EXTRA_CONFIG_ARGS="--with-f77=${GCC_ROOT}
133 elmer 1.206 --with-xrootd=$XROOTD_ROOT
134 ratnik 1.106 --enable-qt --with-qt-libdir=${QT_ROOT}/lib --with-qt-incdir=${QT_ROOT}/include
135     --with-ssl-incdir=${OPENSSL_ROOT}/include
136 muzaffar 1.164 --with-ssl-libdir=${OPENSSL_ROOT}/lib
137     --enable-qtgsi"
138 dlange 1.103 %endif
139    
140 muzaffar 1.164 CONFIG_ARGS="--enable-table
141 eulisse 1.20 --disable-builtin-pcre
142     --disable-builtin-freetype
143     --disable-builtin-zlib
144 elmer 1.98 --with-gccxml=${GCCXML_ROOT}
145 elmer 1.180 --enable-python --with-python-libdir=${PYTHON_ROOT}/lib --with-python-incdir=${PYTHON_ROOT}/include/python${PYTHONV}
146 eulisse 1.2 --enable-explicitlink
147 eulisse 1.20 --enable-mathmore
148 eulisse 1.2 --enable-reflex
149     --enable-cintex
150     --enable-minuit2
151 elmer 1.207 --enable-fftw3
152     --with-fftw3-incdir=${FFTW3_ROOT}/include
153     --with-fftw3-libdir=${FFTW3_ROOT}/lib
154 elmer 1.98 --disable-ldap
155 gowdy 1.143 --disable-krb5
156 eulisse 1.34 --with-gsl-incdir=${GSL_ROOT}/include
157     --with-gsl-libdir=${GSL_ROOT}/lib
158 elmer 1.59 --with-dcap-libdir=${DCAP_ROOT}/lib
159 elmer 1.98 --with-dcap-incdir=${DCAP_ROOT}/include
160     --disable-pgsql
161 elmer 1.181 --disable-mysql
162 elmer 1.187 --disable-xml ${EXTRA_CONFIG_ARGS}"
163 elmer 1.98
164 elmer 1.183 case $(uname)-$(uname -m) in
165 eulisse 1.2 Linux-x86_64)
166 elmer 1.206 ./configure linuxx8664gcc $CONFIG_ARGS --with-shift-libdir=${CASTOR_ROOT}/lib --with-shift-incdir=${CASTOR_ROOT}/include/shift --disable-astiff;;
167 elmer 1.54 Linux-i*86)
168 elmer 1.206 ./configure linux $CONFIG_ARGS --with-shift-libdir=${CASTOR_ROOT}/lib --with-shift-incdir=${CASTOR_ROOT}/include/shift;;
169 elmer 1.11 Darwin*)
170 elmer 1.198 case %cmsplatf in
171     *_ia32_* )
172     comparch=i386 ;;
173     *_amd64_* )
174     comparch=x86_64 ;;
175     * )
176     comparch=ppc ;;
177     esac
178     export CC="gcc -arch $comparch" CXX="g++ -arch $comparch"
179     ./configure macosx $CONFIG_ARGS --with-cc="$CC" --with-cxx="$CXX" --disable-rfio --disable-builtin_afterimage ;;
180 elmer 1.54 Linux-ppc64*)
181 elmer 1.98 ./configure linux $CONFIG_ARGS --disable-rfio;;
182 eulisse 1.1 esac
183 eulisse 1.2
184 eulisse 1.147 case %cmsplatf in
185     osx*)
186     makeopts=
187     ;;
188     *)
189     makeopts="%makeprocesses"
190     ;;
191     esac
192    
193     make $makeopts
194 eulisse 1.20 make cintdlls
195 eulisse 1.147
196 eulisse 1.1 %install
197     # Override installers if we are using GNU fileutils cp. On OS X
198     # ROOT's INSTALL is defined to "cp -pPR", which only works with
199     # the system cp (/bin/cp). If you have fileutils on fink, you
200     # lose. Check which one is getting picked up and select syntax
201     # accordingly. (FIXME: do we need to check that -P is accepted?)
202     if (cp --help | grep -e '-P.*--parents') >/dev/null 2>&1; then
203     cp="cp -dpR"
204     else
205     cp="cp -pPR"
206     fi
207    
208 dlange 1.57 export ROOTSYS=%i
209 eulisse 1.5 make INSTALL="$cp" INSTALLDATA="$cp" install
210 dlange 1.57 mkdir -p $ROOTSYS/lib/python
211 elmer 1.141 cp -r cint/reflex/python/genreflex $ROOTSYS/lib/python
212 elmer 1.206 #
213 elmer 1.204
214     # SCRAM ToolBox toolfile
215     mkdir -p %i/etc/scram.d
216     # rootcore toolfile
217     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootcore.xml
218     <tool name="rootcore" version="%v">
219     <info url="http://root.cern.ch/root/"/>
220     <lib name="Tree"/>
221     <lib name="Net"/>
222     <lib name="Thread"/>
223     <lib name="MathCore"/>
224     <lib name="RIO"/>
225     <lib name="Core"/>
226     <lib name="Cint"/>
227     <client>
228     <environment name="ROOTCORE_BASE" default="%i"/>
229     <environment name="LIBDIR" default="$ROOTCORE_BASE/lib"/>
230     <environment name="INCLUDE" default="$ROOTCORE_BASE/include"/>
231     <environment name="INCLUDE" default="$ROOTCORE_BASE/cint"/>
232     </client>
233     <runtime name="PATH" value="$ROOTCORE_BASE/bin" type="path"/>
234     <runtime name="ROOTSYS" value="$ROOTCORE_BASE/"/>
235     <runtime name="PYTHONPATH" value="$ROOTCORE_BASE/lib" type="path"/>
236     <use name="sockets"/>
237     <use name="pcre"/>
238     <use name="zlib"/>
239     </tool>
240     EOF_TOOLFILE
241    
242     # root toolfile, alias for rootphysics. Using rootphysics is preferred.
243     cat << \EOF_TOOLFILE >%i/etc/scram.d/root.xml
244     <tool name="root" version="%v">
245     <info url="http://root.cern.ch/root/"/>
246     <use name="rootphysics"/>
247     </tool>
248     EOF_TOOLFILE
249    
250     # roothistmatrix toolfile
251     cat << \EOF_TOOLFILE >%i/etc/scram.d/roothistmatrix.xml
252 elmer 1.206 <tool name="roothistmatrix" version="%v">
253 elmer 1.204 <info url="http://root.cern.ch/root/"/>
254     <lib name="Hist"/>
255     <lib name="Matrix"/>
256     <use name="ROOTCore"/>
257     </tool>
258     EOF_TOOLFILE
259    
260     # rootgpad toolfile
261     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootgpad.xml
262 elmer 1.206 <tool name="rootgpad" version="%v">
263 elmer 1.204 <info url="http://root.cern.ch/root/"/>
264     <lib name="Gpad"/>
265     <lib name="Graf"/>
266     <use name="roothistmatrix"/>
267     </tool>
268     EOF_TOOLFILE
269    
270     # rootphysics toolfile
271     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootphysics.xml
272     <tool name="rootphysics" version="%v">
273     <info url="http://root.cern.ch/root/"/>
274     <lib name="Physics"/>
275     <use name="roothistmatrix"/>
276     </tool>
277     EOF_TOOLFILE
278    
279     # rootgraphics toolfile, identical to old "root" toolfile
280     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootgraphics.xml
281     <tool name="rootgraphics" version="%v">
282     <info url="http://root.cern.ch/root/"/>
283     <lib name="TreePlayer"/>
284     <lib name="Graf3d"/>
285     <lib name="Postscript"/>
286     <use name="rootgpad"/>
287     </tool>
288     EOF_TOOLFILE
289    
290     # rootcintex toolfile
291     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootcintex.xml
292     <tool name="rootcintex" version="%v">
293     <info url="http://root.cern.ch/root/"/>
294     <lib name="Cintex"/>
295     <use name="ROOTRflx"/>
296     <use name="ROOTCore"/>
297     </tool>
298     EOF_TOOLFILE
299    
300     # rootinteractive toolfile (GQt/qt lib dependencies
301     # have been moved to rootqt.xml)
302     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootinteractive.xml
303     <tool name="rootinteractive" version="%v">
304     <info url="http://root.cern.ch/root/"/>
305     <lib name="Rint"/>
306     <lib name="Gui"/>
307     <use name="libjpg"/>
308     <use name="libpng"/>
309     <use name="rootgpad"/>
310     </tool>
311     EOF_TOOLFILE
312    
313     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootqt.xml
314     <tool name="rootqt" version="%v">
315     <info url="http://root.cern.ch/root/"/>
316     <lib name="GQt"/>
317     <use name="qt"/>
318     </tool>
319     EOF_TOOLFILE
320    
321     # rootmath toolfile
322     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootmath.xml
323     <tool name="rootmath" version="%v">
324     <info url="http://root.cern.ch/root/"/>
325     <lib name="GenVector"/>
326     <lib name="MathMore"/>
327     <use name="ROOTCore"/>
328     <use name="gsl"/>
329     </tool>
330     EOF_TOOLFILE
331    
332     # rootminuit toolfile
333     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootminuit.xml
334     <tool name="rootminuit" version="%v">
335     <info url="http://root.cern.ch/root/"/>
336     <lib name="Minuit"/>
337     <use name="rootgpad"/>
338     </tool>
339     EOF_TOOLFILE
340    
341     # rootminuit2 toolfile
342     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootminuit2.xml
343     <tool name="rootminuit2" version="%v">
344     <info url="http://root.cern.ch/root/"/>
345     <lib name="Minuit2"/>
346     <use name="rootgpad"/>
347     </tool>
348     EOF_TOOLFILE
349    
350     # rootrflx toolfile
351     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootrflx.xml
352     <tool name="rootrflx" version="%v">
353     <info url="http://root.cern.ch/root/"/>
354     <lib name="Reflex"/>
355     <client>
356     <environment name="ROOTRFLX_BASE" default="%i"/>
357     <environment name="LIBDIR" default="$ROOTRFLX_BASE/lib"/>
358     <environment name="INCLUDE" default="$ROOTRFLX_BASE/include"/>
359     </client>
360     <runtime name="PATH" value="$ROOTRFLX_BASE/bin" type="path"/>
361     <runtime name="ROOTSYS" value="$ROOTRFLX_BASE/"/>
362     <runtime name="GENREFLEX" value="$ROOTRFLX_BASE/bin/genreflex"/>
363     <use name="sockets"/>
364     <use name="gccxml"/>
365     </tool>
366     EOF_TOOLFILE
367    
368     # roothtml toolfile
369     cat << \EOF_TOOLFILE >%i/etc/scram.d/roothtml.xml
370     <tool name="roothtml" version="%v">
371     <info url="http://root.cern.ch/root/"/>
372     <lib name="Html"/>
373     <use name="rootgpad"/>
374     </tool>
375     EOF_TOOLFILE
376    
377     # rootmlp toolfile
378     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootmlp.xml
379     <tool name="rootmlp" version="%v">
380     <info url="http://root.cern.ch/root/"/>
381     <lib name="MLP"/>
382     <use name="RootGraphics"/>
383     </tool>
384     EOF_TOOLFILE
385    
386     # roottmva toolfile
387     cat << \EOF_TOOLFILE >%i/etc/scram.d/roottmva.xml
388     <tool name="roottmva" version="%v">
389     <info url="http://root.cern.ch/root/"/>
390     <lib name="TMVA"/>
391     <use name="ROOTMLP"/>
392     <use name="rootminuit"/>
393     </tool>
394     EOF_TOOLFILE
395    
396     # rootthread toolfile
397     cat << \EOF_TOOLFILE >%i/etc/scram.d/rootthread.xml
398     <tool name="rootthread" version="%v">
399     <info url="http://root.cern.ch/root/"/>
400     <use name="ROOTCore"/>
401     </tool>
402     EOF_TOOLFILE
403    
404     %post
405     perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $(find $RPM_INSTALL_PREFIX/%pkgrel/etc/scram.d -type f)