1 |
< |
### RPM cms online CMSSW_1_7_0_pre10_ONLINE |
1 |
> |
### RPM cms online CMSSW_2_0_0_ONLINE2 |
2 |
|
## IMPORT configurations |
3 |
|
Provides: /bin/zsh |
4 |
< |
Requires: online-tool-conf python glimpse |
5 |
< |
Requires: SCRAMV1 |
6 |
< |
%define cmssw_release %(perl -e '$_="%v"; s/_ONLINE//; print;') |
7 |
< |
%define ucprojname CMSSW |
8 |
< |
%define lcprojname cmssw |
9 |
< |
|
10 |
< |
%define prebuildtarget gindices |
4 |
> |
Provides: /bin/ksh |
5 |
> |
Provides: /bin/sed |
6 |
> |
Provides: /usr/bin/awk |
7 |
> |
Provides: perl(Date::Format) |
8 |
> |
Provides: perl(Term::ReadKey) |
9 |
> |
Provides: perl(full) |
10 |
> |
Provides: perl(LWP::UserAgent) |
11 |
> |
Provides: perl(Template) |
12 |
> |
|
13 |
> |
Requires: online-tool-conf python |
14 |
> |
|
15 |
> |
%define cmssw_release %(perl -e '$_="%v"; s/_ONLINE2//; print;') |
16 |
> |
%define cvsprojuc %(echo %n | sed -e "s|-debug||"| tr 'a-z' 'A-Z') |
17 |
> |
%define cvsprojlc %(echo %cvsprojuc | tr 'A-Z' 'a-z') |
18 |
> |
%define cvsdir %cvsprojuc |
19 |
> |
%define cvsserver %cvsprojlc |
20 |
|
%define buildtarget release-build |
21 |
|
%define saveDeps yes |
13 |
– |
%define cvsproj %cvsprojuc |
14 |
– |
%define srctree src |
22 |
|
|
23 |
< |
#%define scram_xml .xml |
24 |
< |
%define scram_xml %{nil} |
25 |
< |
%define scramcmd scramv1 |
26 |
< |
|
27 |
< |
# NR: allow to change tarball names, otherwise old distributions |
28 |
< |
# are fetched from the apt SOURCE repository. |
29 |
< |
|
30 |
< |
%if "%{?configtar:set}" != "set" |
31 |
< |
%define configtar config.tar.gz |
32 |
< |
%endif |
33 |
< |
|
34 |
< |
%define cmsswsrc http://cmsrep.cern.ch/cms/cpt/Software/download/cms/SOURCES/cms/cmssw/%{cmssw_release} |
35 |
< |
# 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 |
148 |
< |
|
149 |
< |
%install |
150 |
< |
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? |
157 |
< |
|
158 |
< |
%post |
159 |
< |
cd $RPM_INSTALL_PREFIX/%pkgrel |
160 |
< |
%{relocateConfig}etc/scram.d/%lcprojname |
161 |
< |
perl -p -i -e "s|%{instroot}|$RPM_INSTALL_PREFIX|g" $(find config -type f) $(find .SCRAM -type f) |
162 |
< |
scramver=`cat config/scram_version` |
163 |
< |
source $RPM_INSTALL_PREFIX/%cmsplatf/lcg/SCRAMV1/$scramver/etc/profile.d/init.sh |
164 |
< |
%{?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 |
23 |
> |
#Defines for file containing list of packages for checkout and build: |
24 |
> |
%define buildsetrepo CMSDIST |
25 |
> |
%define buildsetfile online_build_set.file |
26 |
> |
%define buildsetvers buildset_V2_1 |
27 |
> |
|
28 |
> |
|
29 |
> |
%define patchsrc2 perl -p -i -e ' s!(<classpath.*/test\\+.*>)!!;' config/BuildFile.xml |
30 |
> |
%define patchsrc3 perl -p -i -e ' s!int depth=1,!int depth,!;' src/DQM/HcalMonitorTasks/interface/HcalTrigPrimMonitor.h |
31 |
> |
%define scramcmd $SCRAMV1_ROOT/bin/scram |
32 |
> |
|
33 |
> |
## IMPORT cms-scram-build |
34 |
> |
## IMPORT partial-build |
35 |
> |
## IMPORT scramv1-build |