forked from cms-sw/cmsdist
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bootstrap-driver.spec
290 lines (250 loc) · 14.5 KB
/
bootstrap-driver.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
### RPM external bootstrap-driver 20.0
Source: bootstrap
Requires: apt
#danger! cms-common version is now hardwired below (and in bootstrap.file)
%prep
%build
%install
packageList=""
echo requiredtools `echo %{requiredtools} | sed -e's|\s+| |;s|^\s+||'`
for tool in `echo %{requiredtools} | sed -e's|\s+| |;s|^\s+||'`
do
case X$tool in
Xdistcc|Xccache )
;;
* )
toolcap=`echo $tool | tr a-z- A-Z_`
toolversion=$(eval echo $`echo ${toolcap}_VERSION`)
toolrevision=$(eval echo $`echo ${toolcap}_REVISION`)
echo $toolversion $toolrevision
packageList="$packageList external+${tool}+${toolversion}-1-${toolrevision}.%cmsplatf.rpm"
;;
esac
done
case %cmsplatf in
slc*onl* )
##########################################################
# Backward compatible seeds, so that old bootstrap does not suddenly stop working.
platformSeeds="glibc coreutils bash tcsh zsh pdksh perl tcl
readline ncurses
e2fsprogs krb5-libs freetype fontconfig
xorg-x11-deprecated-libs xorg-x11-libs xorg-x11-Mesa-libGLU
xorg-x11-Mesa-libGL compat-libstdc++-33 libidn"
# ONLINE: seed system compiler (only libraries for runtime)
platformSeeds="$platformSeeds libgcc libstdc++"
# ONLINE: seed other available system tools:
platformSeeds="$platformSeeds libpng libtiff libungif qt zlib perl-DBI-1.40-8"
# Python tools are commented out due to compatibility problems.
platformSeeds="$platformSeeds python python-elementtree"
# ONLINE: seed daq-built tools:
platformSeeds="$platformSeeds daq-cgicc daq-mimetic daq-oracle daq-tinyproxy daq-xerces daq-xdaq"
platformSeeds="$platformSeeds daq-config daq-log4cplus daq-logudpappender
daq-logxmlappender daq-pt daq-ptfifo daq-pthttp
daq-pttcp daq-toolbox daq-xcept daq-xdaq2rc daq-xdata
daq-xgi daq-xoap daq-sentinelutils"
##########################################################
#slc4onl_ia32 Specific
slc4onl_ia32_platformSeeds="glibc coreutils bash tcsh zsh pdksh perl tcl
readline openssl ncurses
e2fsprogs krb5-libs freetype fontconfig
xorg-x11-deprecated-libs xorg-x11-libs xorg-x11-Mesa-libGLU
xorg-x11-Mesa-libGL compat-libstdc++-33 libidn"
# ONLINE: seed system compiler (only libraries for runtime)
slc4onl_ia32_platformSeeds="$slc4onl_ia32_platformSeeds libgcc libstdc++"
# ONLINE: seed other available system tools:
slc4onl_ia32_platformSeeds="$slc4onl_ia32_platformSeeds curl libpng libtiff libungif openssl qt zlib perl-DBI-1.40-8"
# Python tools are commented out due to compatibility problems.
slc4onl_ia32_platformSeeds="$slc4onl_ia32_platformSeeds python python-elementtree"
# ONLINE: seed daq-built tools:
slc4onl_ia32_platformSeeds="$slc4onl_ia32_platformSeeds daq-cgicc daq-mimetic daq-oracle daq-tinyproxy daq-xerces daq-xdaq"
slc4onl_ia32_platformSeeds="$slc4onl_ia32_platformSeeds daq-config daq-log4cplus daq-logudpappender
daq-logxmlappender daq-pt daq-ptfifo daq-pthttp
daq-pttcp daq-toolbox daq-xcept daq-xdaq2rc daq-xdata
daq-xgi daq-xoap daq-sentinelutils"
##########################################################
#slc5onl_ia32 Specific
slc5onl_ia32_platformSeeds="glibc coreutils bash tcsh zsh perl tcl tk readline ncurses e2fsprogs krb5-libs freetype
fontconfig libidn libX11 libXmu libSM libICE libXcursor
libXext libXrandr libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama libXft
libXrender libXpm"
# ONLINE: seed system compiler (only libraries for runtime)
slc5onl_ia32_platformSeeds="$slc5onl_ia32_platformSeeds libgcc libstdc++ external+gcc+4.3.4"
# ONLINE: seed other available system tools:
slc5onl_ia32_platformSeeds="$slc5onl_ia32_platformSeeds curl curl-devel openssl openssl-devel zlib zlib-devel e2fsprogs-libs e2fsprogs-devel
perl-DBI-1.52 libtermcap-2.0.8 libX11-devel-1.0.3 libXpm-devel-3.5.5 libXext-devel-1.0.1 libXft-devel-2.1.10"
# ONLINE: seed daq-built tools:
slc5onl_ia32_platformSeeds="$slc5onl_ia32_platformSeeds daq-log4cplus daq-mimetic daq-oracle daq-sqlite daq-xdaq daq-xerces
daq-appweb daq-asyncresolv daq-cgicc daq-tinyproxy daq-config daq-logudpappender
daq-logxmlappender daq-pt daq-ptfifo daq-pthttp daq-pttcp daq-toolbox daq-xalan
daq-xcept daq-xdaq2rc daq-xdata daq-xgi daq-xoap daq-sentinelutils"
##########################################################
#slc5onl_amd64 Specific
slc5onl_amd64_platformSeeds="glibc coreutils bash tcsh zsh perl tcl tk readline ncurses e2fsprogs krb5-libs freetype
fontconfig libidn libX11 libXmu libSM libICE libXcursor
libXext libXrandr libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama libXft
libXrender libXpm"
# ONLINE: seed system compiler (only libraries for runtime) only for amd64_gcc434 arch
case %cmsplatf in
*_amd64_gcc434 ) slc5onl_amd64_platformSeeds="$slc5onl_amd64_platformSeeds libgcc libstdc++ external+gcc+4.3.4-onl64a" ;;
esac
# ONLINE: seed other available system tools:
slc5onl_amd64_platformSeeds="$slc5onl_amd64_platformSeeds zlib zlib-devel e2fsprogs-libs e2fsprogs-devel
perl-DBI-1.52 libtermcap-2.0.8 libX11-devel-1.0.3 libXpm-devel-3.5.5 libXext-devel-1.0.1 libXft-devel-2.1.10"
# ONLINE: seed daq-built tools:
slc5onl_amd64_platformSeeds="$slc5onl_amd64_platformSeeds daq-log4cplus daq-mimetic daq-oracle daq-sqlite daq-xdaq daq-xerces
daq-appweb daq-asyncresolv daq-cgicc daq-tinyproxy daq-config daq-logudpappender
daq-logxmlappender daq-pt daq-ptfifo daq-pthttp daq-pttcp daq-toolbox daq-xalan
daq-xcept daq-xdaq2rc daq-xdata daq-xgi daq-xoap daq-sentinelutils"
;;
slc*)
# Backward compatible seeds, so that old bootstrap does not suddenly stop working.
platformSeeds="glibc glibc-32bit coreutils bash tcsh zsh pdksh perl
tcl tk perl-Tk readline openssl ncurses XFree86-libs
e2fsprogs krb5-libs freetype fontconfig XFree86-Mesa-libGLU
XFree86-Mesa-libGL xorg-x11-deprecated-libs
xorg-x11-libs xorg-x11-Mesa-libGLU xorg-x11-Mesa-libGL
compat-libstdc++-33 fglrx_6_8_0 libidn"
# Platform specific seeds. These are mandatory and the new bootstrap.sh will refuse continuing in the case they are not found.
slc4_ia32_platformSeeds="glibc coreutils bash tcsh zsh pdksh perl
tcl tk perl-Tk readline openssl ncurses XFree86-libs
e2fsprogs krb5-libs freetype fontconfig XFree86-Mesa-libGLU
XFree86-Mesa-libGL xorg-x11-deprecated-libs
xorg-x11-libs xorg-x11-Mesa-libGLU xorg-x11-Mesa-libGL
compat-libstdc++-33 fglrx_6_8_0 libidn"
slc4_amd64_platformSeeds="glibc glibc-32bit coreutils bash tcsh zsh pdksh perl
tcl tk perl-Tk readline openssl ncurses XFree86-libs
e2fsprogs krb5-libs freetype fontconfig XFree86-Mesa-libGLU
XFree86-Mesa-libGL xorg-x11-deprecated-libs
xorg-x11-libs xorg-x11-Mesa-libGLU xorg-x11-Mesa-libGL
compat-libstdc++-33 fglrx_6_8_0 libidn"
slc5_ia32_platformSeeds="glibc coreutils bash tcsh zsh perl tcl tk readline openssl ncurses e2fsprogs krb5-libs freetype
fontconfig compat-libstdc++-33 libidn libX11 libXmu libSM libICE libXcursor
libXext libXrandr libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama libXft
libXrender libXpm"
slc5_amd64_platformSeeds="glibc coreutils bash tcsh zsh perl tcl tk readline openssl ncurses e2fsprogs krb5-libs freetype
fontconfig compat-libstdc++-33 libidn libX11 libXmu libSM libICE libXcursor
libXext libXrandr libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama libXft
libXrender libXpm"
slc5_corei7_platformSeeds="glibc coreutils bash tcsh zsh perl tcl tk readline openssl ncurses e2fsprogs krb5-libs freetype
fontconfig compat-libstdc++-33 libidn libX11 libXmu libSM libICE libXcursor
libXext libXrandr libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama libXft
libXrender libXpm"
slc6_amd64_platformSeeds="glibc coreutils bash tcsh zsh perl tcl tk readline openssl ncurses e2fsprogs krb5-libs freetype compat-readline5 ncurses-libs perl-libs perl-ExtUtils-Embed
fontconfig compat-libstdc++-33 libidn libX11 libXmu libSM libICE libXcursor
libXext libXrandr libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama libXft
libXrender libXpm libcom_err"
slc6_mic_platformSeeds="glibc coreutils bash tcsh zsh perl tcl tk readline openssl ncurses e2fsprogs krb5-libs freetype compat-readline5 ncurses-libs perl-libs perl-ExtUtils-Embed
fontconfig compat-libstdc++-33 libidn libX11 libXmu libSM libICE libXcursor
libXext libXrandr libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama libXft
libXrender libXpm libcom_err"
# Add rh5* (not SLC5) as supported distribution.
rh5_ia32_platformSeeds=$slc5_ia32_platformSeeds
rh5_amd64_platformSeeds=$slc5_amd64_platformSeeds
# This bit here is needed in case we are using the old cmsos
# which was erroneously only reporting the platform, but not the
# architecture.
rh5_platformSeeds=$slc5_amd64_platformSeeds
;;
fc*)
fc18_armv7hl_platformSeeds="glibc coreutils bash tcsh zsh perl tcl tk readline openssl
ncurses e2fsprogs krb5-libs freetype fontconfig libstdc++-4.7.2
libidn libX11 libXmu libSM libICE libXcursor libXext libXrandr
libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama
libXft libXrender libXpm gcc-c++ libcom_err libXpm-devel libXft-devel
libX11-devel libXext-devel mesa-libGLU mesa-libGLU-devel libGLEW
glew perl-Digest-MD5"
;;
esac
case $cmsplatf in
ydl*_ppc64_* )
platformSeeds="$platformSeeds gcc libgcc libstdc++"
;;
ydl*_ppc_* )
platformSeeds="$platformSeeds gcc libgcc libstdc++"
;;
esac
slc5_compPackages="compat-readline43 libXp libXtst libXt"
# Seeds for unsupported platforms. These will not make bootstrap die, if not found.
# OpenSuse
unsupportedSeeds="xorg-x11-Mesa compat-readline4 compat-curl2 freetype2
xorg-x11-libX11"
# Ubuntu
unsupportedSeeds="$unsupportedSeeds libcomerr2 libidn11 libxi6 libxpm4 libxinerama1
libncurses5 libsm6 libice6 libc6 libxcursor1 libxmu6
libgl1-mesa-glx libxft2 perl-base xserver-xorg xserver-xorg-core
libfreetype6 libfontconfig1 libgl1-mesa libxrandr2 libglu1-mesa
libxext6 libx11-6 libxrender1"
# Fedora
unsupportedSeeds="$unsupportedSeeds libX11 libXmu libSM libICE libXcursor
libXext libXrandr libXft mesa-libGLU mesa-libGL e2fsprogs-libs libXi libXinerama
libXft libXrender libXpm ncurses-libs libc6-i686 compat-readline5"
# Case statement for additional provides.
case %cmsplatf in
slc5onl* )
additionalProvides="libX11.so.6 libXext.so.6 libXft.so.2 libXpm.so.4"
;;
osx* )
additionalProvides="AGL ApplicationServices Carbon CoreFoundation
CoreServices OpenGL Python QuickTime Tcl Tk
libintl.3.dylib libperl.dylib"
;;
# Required to get slc5_amd64_gcc434 work on slc6.
slc* )
additionalProvides="perl(CGI)"
;;
esac
unsupportedProvides="libtcl8.3.so libtk8.3.so /bin/env libcom_err.so.3
libcrypto.so.4 libgssapi_krb5.so.2 libk5crypto.so.3
libkrb5.so.3 libssl.so.4 /bin/csh /bin/tcsh libreadline.so.4
libtcl8.4.so libtk8.4.so"
defaultPkgs="cms+cms-common+1.0"
mkdir -p %{i}/etc/profile.d
(echo "rpm_version=$RPM_VERSION"; \
echo "apt_version=$APT_VERSION"; \
echo "platformSeeds=\"$platformSeeds\""; \
echo "unsupportedSeeds=\"$unsupportedSeeds\""; \
echo "slc4_amd64_platformSeeds=\"$slc4_amd64_platformSeeds\""; \
echo "slc4_ia32_platformSeeds=\"$slc4_ia32_platformSeeds\""; \
echo "slc5_ia32_platformSeeds=\"$slc5_ia32_platformSeeds\""; \
echo "slc5_amd64_platformSeeds=\"$slc5_amd64_platformSeeds\""; \
echo "fc18_armv7hl_platformSeeds=\"$fc18_armv7hl_platformSeeds\""; \
echo "slc5_corei7_platformSeeds=\"$slc5_corei7_platformSeeds\""; \
echo "slc6_amd64_platformSeeds=\"$slc6_amd64_platformSeeds\""; \
echo "slc6_mic_platformSeeds=\"$slc6_mic_platformSeeds\""; \
echo "slc5onl_ia32_platformSeeds=\"$slc5onl_ia32_platformSeeds\""; \
echo "slc5onl_amd64_platformSeeds=\"$slc5onl_amd64_platformSeeds\""; \
echo "rh5_ia32_platformSeeds=\"$rh5_ia32_platformSeeds\""; \
echo "rh5_amd64_platformSeeds=\"$rh5_amd64_platformSeeds\""; \
echo "rh5_platformSeeds=\"$rh5_platformSeeds\""; \
echo "packageList=\"`echo $packageList`\""; \
echo "additionalProvides=\"$additionalProvides\""; \
echo "unsupportedProvides=\"$unsupportedProvides\""; \
echo "defaultPkgs=\"$defaultPkgs\""; \
) > %{i}/%{cmsplatf}-driver.txt
(echo "rpm_version=$RPM_VERSION"; \
echo "apt_version=$APT_VERSION"; \
echo "platformSeeds=\"$platformSeeds $compPackages\""; \
echo "unsupportedSeeds=\"$unsupportedSeeds\""; \
echo "slc4_amd64_platformSeeds=\"$slc4_amd64_platformSeeds \""; \
echo "slc4_ia32_platformSeeds=\"$slc4_ia32_platformSeeds \""; \
echo "slc5_ia32_platformSeeds=\"$slc5_ia32_platformSeeds $slc5_compPackages\""; \
echo "slc5_amd64_platformSeeds=\"$slc5_amd64_platformSeeds $slc5_compPackages\""; \
echo "fc18_armv7hl_platformSeeds=\"$fc18_armv7hl_platformSeeds\""; \
echo "slc5_corei7_platformSeeds=\"$slc5_corei7_platformSeeds $slc5_compPackages\""; \
echo "slc6_amd64_platformSeeds=\"$slc6_amd64_platformSeeds $slc6_compPackages\""; \
echo "slc6_mic_platformSeeds=\"$slc6_mic_platformSeeds $slc6_compPackages\""; \
echo "slc5onl_ia32_platformSeeds=\"$slc5onl_ia32_platformSeeds $slc5_compPackages\""; \
echo "slc5onl_amd64_platformSeeds=\"$slc5onl_amd64_platformSeeds $slc5_compPackages\""; \
echo "rh5_ia32_platformSeeds=\"$rh5_ia32_platformSeeds\""; \
echo "rh5_amd64_platformSeeds=\"$rh5_amd64_platformSeeds\""; \
echo "rh5_platformSeeds=\"$rh5_platformSeeds\""; \
echo "packageList=\"`echo $packageList`\""; \
echo "additionalProvides=\"$additionalProvides\""; \
echo "unsupportedProvides=\"$unsupportedProvides\""; \
echo "defaultPkgs=\"$defaultPkgs\""; \
) > %{i}/%{cmsplatf}-driver-comp.txt
# FIXME: Hack to make sure that the cms-common package is named correctly in the driver file.
# We should make sure that the $PACKAGE_CATEGORY variable is used (requires changes to cmsBuild.sh which
# I don't want to do at this point.
perl -p -i -e 's|external[+]cms-common|cms+cms-common|g' %{i}/%{cmsplatf}-driver.txt
perl -p -i -e 's|external[+]cms-common|cms+cms-common|g' %{i}/%{cmsplatf}-driver-comp.txt