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

Comparing COMP/CMSDIST/fwlite.spec (file contents):
Revision 1.8 by ratnik, Mon Jul 23 21:59:32 2007 UTC vs.
Revision 1.12 by ratnik, Thu Oct 25 14:59:35 2007 UTC

# Line 1 | Line 1
1 < ### RPM cms fwlite CMSSW_1_6_0_pre5_FWLITE
1 > ### RPM cms fwlite CMSSW_1_7_0_pre5_FWLITE
2   ## IMPORT configurations
3   Provides: /bin/zsh
4 < Requires: fwlite-tool-conf
5 < %define cmssw_release   %(perl -e '$_="%v"; s/_FWLITE//; print;')
6 < %define toolconf        ${FWLITE_TOOL_CONF_ROOT}/configurations/tools-STANDALONE.conf
7 <
8 < #Defines for file containing list of packages for checkout and build:
9 < %define buildsetrepo    CMSDIST
10 < %define buildsetfile    fwlite_build_set.file
11 < %define buildsetvers    buildset_V3_0
12 <
13 < # Define list of external tools to be selected in scram configuration.
14 < # Any changes must be propagated in fwlite-tool-conf.spec:
15 < %define externals "cxxcompiler ccompiler clhep sockets boost boost_filesystem rootrflx rootcore rootmath gccxml boost_python elementtree sigcpp hepmc gsl boost_regex boost_program_options boost_program_options boost_regex bz2lib pcre root rootcintex zlib glimpse"
16 <
4 > Requires: fwlite-tool-conf glimpse
5 > Requires: SCRAMV1
6 > %define cmssw_release   %(perl -e '$_="%v"; s/_FWLITE//; print;')
7 > %define ucprojname  CMSSW
8 > %define lcprojname  cmssw
9  
10   %define prebuildtarget  gindices
11   %define buildtarget     release-build
12 <
13 < # Skip library load and symbol checks to avoid dependency on seal:
14 < %define nolibchecks     on
12 > %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: fwlite_build_set
36 > Source3: cmssw-tool
37 > Source4: findDependencies.pl
38  
39   # Switch off building tests:
40 < %define patchsrc3 perl -p -i -e ' s!(<ClassPath.*test\\+test>)!#$1!;' config/BuildFile
26 <
27 < # Additional source patches named patchsrc4, patchsrc5 can be defined here.
40 > %define patchsrc perl -p -i -e ' s!(<ClassPath.*test\\+test>)!#$1!;' config/BuildFile
41  
42 < ## IMPORT cms-scram-build
43 < ## IMPORT partial-build
44 < ## IMPORT scramv1-build
42 > %prep
43 > rm -rf config
44 > rm -rf %{srctree}
45 > # Create a SCRAM project area, but using the already extracted
46 > # sources.  In other words, pick up the files from the project config
47 > # area, but munge all instances of <base url="cvs:*"> into a local
48 > # reference so SCRAM won't try to download stuff from the network.
49 >
50 > %setup -T -b 0 -n config
51 > %setup -D -T -b 1 -n %{srctree}
52 > #%setup -D -T -a 2 -n %{srctree}
53 >
54 > touch %_builddir/config/%{ucprojname}_ignore.file
55 > for file in `ls %_builddir/config/%{ucprojname}_*.file | grep -v  '/%{ucprojname}_ignore.file$' | sed 's|.*/%{ucprojname}_||;s|.file$||'`; do
56 >  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}
57 > done
58 > if [ ${FWLITE_TOOL_CONF_ROOT}/configurations/requirements%scram_xml ] ; then
59 >  cp ${FWLITE_TOOL_CONF_ROOT}/configurations/requirements%scram_xml %_builddir/config/
60 > fi
61 > rm -f %_builddir/config/%{ucprojname}_ignore.file
62 > rm -rf %_builddir/config/site
63 > cp -rf ${FWLITE_TOOL_CONF_ROOT}/configurations/SCRAMToolBox/CMSconfigs %_builddir/config/site
64 > echo $SCRAMV1_VERSION > %_builddir/config/scram_version
65 >
66 > pwd
67 > cd %_builddir
68 > %{?patchsrc:%patchsrc}
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/fwlite_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 > export SCRAM_NOLOADCHECK=true
108 > export SCRAM_NOSYMCHECK=true
109 >
110 > %if "%{?preBuildCommand:set}" == "set"
111 > echo "executing %preBuildCommand"
112 > %preBuildCommand
113 > %endif
114 >
115 > %if "%{?buildtarget:set}" != "set"
116 > %define buildtarget %{nil}
117 > %endif
118 >
119 > %scramcmd b -r echo_CXX </dev/null
120 > %if "%{?prebuildtarget:set}" == "set"
121 > %scramcmd b --verbose -f %{prebuildtarget} </dev/null
122 > %endif
123 > %scramcmd b --verbose -f %{compileOptions} %{makeprocesses}  %{buildtarget} </dev/null
124 > %if "%{?additionalBuildTarget0:set}" == "set"
125 > %scramcmd b --verbose -f %{additionalBuildTarget0} < /dev/null
126 > %endif
127 > %if "%{?postbuildtarget:set}" == "set"
128 > %scramcmd b --verbose -f %{postbuildtarget} </dev/null
129 > %endif
130 >
131 > # strip out dependencies first...
132 > %if "%{?saveDeps:set}" == "set"
133 > mkdir -p %i/etc/dependencies
134 > chmod +x %{_sourcedir}/findDependencies.pl
135 > %{_sourcedir}/findDependencies.pl -rel %i
136 > gzip %i/etc/dependencies/uses.out
137 > gzip %i/etc/dependencies/usedby.out
138 > %endif
139 >
140 >
141 > rm -rf %i/tmp
142 > chmod -R 755 %i %i/.SCRAM
143 > (eval `%scramcmd run -sh` ; SealPluginRefresh) || true
144 > rm -fR %i/lib/%cmsplatf/.edmplugincache
145 > (eval `%scramcmd run -sh` ; EdmPluginRefresh) || true
146 >
147 > %install
148 > cd %i
149 > %{?buildarch:%buildarch}
150 > perl -p -i -e "s|^#!.*perl(.*)|#!/usr/bin/env perl$1|" $(grep -r -e "^#!.*perl.*" . | cut -d: -f1)
151 > # need writeable directory for profile stuff
152 > mkdir -p etc/scram.d
153 > 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
154 > yes | %scramcmd install # FIXME: do by hand?
155 >
156 > %post
157 > cd $RPM_INSTALL_PREFIX/%pkgrel
158 > %{relocateConfig}etc/scram.d/%lcprojname
159 > perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $(find config -type f) $(find .SCRAM -type f)
160 > scramver=`cat config/scram_version`
161 > source $RPM_INSTALL_PREFIX/%cmsplatf/lcg/SCRAMV1/$scramver/etc/profile.d/init.sh
162 > %{?buildarch:%buildarch}
163 > yes | %scramcmd install
164 > (rm -rf external/%cmsplatf; ./config/linkexternal.pl --arch %cmsplatf --nolink INCLUDE) || true
165 > eval `%scramcmd run -sh`
166 > for cmd in SealPluginRefresh EdmPluginRefresh IgPluginRefresh ; do
167 >  cmdpath=`which $cmd 2> /dev/null`
168 >  if [ "X$cmdpath" != X ] ; then
169 >    $cmd || true
170 >  fi
171 > done

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines