]> git.pld-linux.org Git - packages/tcl.git/blob - tcl.spec
- release 2
[packages/tcl.git] / tcl.spec
1 # TODO
2 # - why is tclConfig.sh in /usr/lib on lib64 platform?
3 #
4 # Conditional build:
5 %bcond_without  tests   # don't perform "make test"
6 #
7 Summary:        Tool Command Language embeddable scripting language, with shared libraries
8 Summary(fr.UTF-8):      Tool Command Language, langage de script avec bibliothèques partagées
9 Summary(pl.UTF-8):      Tool Command Language - język skryptowy z bibliotekami dynamicznymi
10 Summary(ru.UTF-8):      Tool Command Language - встраиваемый язык скриптов
11 Summary(tr.UTF-8):      Tcl ile kullanılabilen betik dili
12 Summary(uk.UTF-8):      Tool Command Language - вбудовувана мова скриптів
13 Name:           tcl
14 %define major 8.5
15 %define minor 6
16 Version:        %{major}.%{minor}
17 Release:        2
18 License:        BSD
19 Group:          Development/Languages/Tcl
20 Source0:        http://dl.sourceforge.net/tcl/%{name}%{version}-src.tar.gz
21 # Source0-md5:  d0b0b3ff7600ff63135c710b575265cd
22 Source1:        %{name}-pl-man-pages.tar.bz2
23 # Source1-md5:  dd3370f2b588763758787831a4bf48fc
24 Patch0:         %{name}-ieee.patch
25 Patch1:         %{name}-readline.patch
26 Patch2:         %{name}-opt.patch
27 Patch3:         %{name}-mannames.patch
28 Patch4:         %{name}-soname_fix.patch
29 Patch5:         %{name}-norpath.patch
30 Patch6:         %{name}-multilib.patch
31 URL:            http://www.tcl.tk/
32 BuildRequires:  autoconf >= 2.59
33 BuildRequires:  ncurses-devel >= 5.2
34 BuildRequires:  readline-devel >= 4.2
35 Requires:       tzdata
36 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37
38 %define         _ulibdir        /usr/lib
39
40 %if "%{_libdir}" != "%{_ulibdir}"
41 %define         have_ulibdir    1
42 %endif
43
44 %description
45 Tcl is a simple scripting language that is designed to be embedded in
46 other applications. This package includes tclsh, a simple example of a
47 tcl application. Tcl is very popular for writing small graphical
48 applications because of the Tk widget set which is closely tied to it.
49
50 %description -l de.UTF-8
51 Tcl ist eine einfache Skriptsprache, die zur Ingegration in andere
52 Applikationen vorgesehen ist. Dieses Paket umfaßt tclsh, ein einfaches
53 Beispiel einer tcl-Applikation. Tcl wird gern zum Schreiben kleiner
54 grafischer Anwendungen benutzt, weil das Tk-Widget-Set eng damit
55 verknüpft ist.
56
57 %description -l fr.UTF-8
58 Tcl est un langage simple de script, conçu pour être intégré dans
59 d'autres applications. Ce paquetage contient tclsh, un exemple simple
60 d'application tcl. Tcl est très utilisé pour écrire de petites
61 applications graphiques grâce à l'ensemble de widgets Tk qui lui est
62 très lié.
63
64 %description -l ja.UTF-8
65 Tcl は他のアプリケーションに埋め込むためにデザインされた簡単なスクリプ
66 ト言語です。Tclはウィジッド・セットであるTkとともに用いるようにデザイン
67 しています。このパッケージにはTclの簡単な例として、tclsh
68 も含んでいます。
69
70 %description -l pl.UTF-8
71 Tcl jest prostym językiem skryptowym, przeznaczonym do współpracy z
72 innymi aplikacjami. W pakiecie znajduje się również tclsh - prosty
73 przykład programów. Tcl jest bardzo popularnym językiem do pisania
74 małych programów graficznych.
75
76 %description -l ru.UTF-8
77 Tcl - это простой интерпретируемый язык, предназначенный для
78 встраивания в другие программы. Этот пакет включает tclsh, простой
79 пример программы на tcl. Tcl очень популярен для написания небольших
80 графических программ из-за набора экранных примитивов Tk, который
81 очень тесно с ним связан.
82
83 %description -l tr.UTF-8
84 Tcl, başka uygulamaların içine gömülmesi hedeflenerek geliştirilmiş
85 basit bir betimleme dilidir. Bu paket basit bir Tcl uygulaması örneği
86 olan tclsh kabuğunu içerir. Tcl, kendisi ile sıkıca ilintili olan Tk
87 arayüz elemanı kümesinin de desteğiyle küçük grafik uygulamalar yazma
88 konusunda son derece yaygın kullanılmaktadır.
89
90 %description -l uk.UTF-8
91 Tcl - це проста інтерпретована мова, призначена для вбудови в інші
92 програми. Цей пакет містить також tclsh, простий приклад програми на
93 tcl. Tcl дуже популярний для написання простих графічних програм
94 завдяки набору екранних примітивів Tk, котрий з ним дуже тісно
95 зв'язаний.
96
97 %package devel
98 Summary:        Tool Command Language header files and development documentation
99 Summary(pl.UTF-8):      Pliki nagłówkowe oraz dokumentacja dla Tcl (Tool Command Language)
100 Group:          Development/Languages/Tcl
101 Requires:       %{name} = %{version}-%{release}
102
103 %description devel
104 Tool Command Language embeddable scripting language header files and
105 develpment documentation.
106
107 %description devel -l pl.UTF-8
108 Pliki nagłówkowe oraz dokumentacja dla Tcl (Tool Command Language).
109
110 %prep
111 %setup -q -n %{name}%{version}
112 %patch0 -p1
113 %patch1 -p1
114 %patch2 -p1
115 %patch3 -p1
116 %patch4 -p1
117 %patch5 -p1
118 %patch6 -p1
119
120 %build
121 # Make sure we have /proc mounted - otherwise pthread_getattr_np will fail
122 # https://sourceforge.net/tracker/index.php?func=detail&aid=1815573&group_id=10894&atid=110894
123 if [ ! -r /proc/self/maps ]; then
124         echo "You need to have /proc mounted in order to build this package!"
125         exit 1
126 fi
127
128 cd unix
129 sed -i -e "s/^CFLAGS_OPTIMIZE.*/CFLAGS_OPTIMIZE=%{rpmcflags} -D__NO_STRING_INLINES -D__NO_MATH_INLINES -D_REENTRANT -DTCL_NO_STACK_CHECK=1/" \
130         Makefile.in
131 %{__autoconf}
132 %configure \
133         --enable-langinfo \
134         --enable-shared \
135         --enable-threads \
136         --enable-64bit \
137         --without-tzdata
138 %{__make} \
139         TCL_PACKAGE_PATH="%{_libdir} %{_libdir}/tcl%{major} %{_ulibdir} %{_ulibdir}/tcl%{major}"
140
141 cp -a tclConfig.sh tclConfig.sh-orig
142 sed -i -e "s#%{_builddir}/%{name}%{version}/unix#%{_libdir}#; \
143         s#%{_builddir}/%{name}%{version}#%{_includedir}/tcl-private#" tclConfig.sh
144 if (cmp -s tclConfig.sh tclConfig.sh-orig); then
145         echo "tclConfig.sh fix rule didn't change anything. Please verify it."
146 fi
147
148 %if %{with tests}
149 # tests that are problematic on builders; some probably could be fixed
150 rm ../tests/{http,httpold,socket,unixInit}.test
151 # problematic
152 rm ../tests/{clock,async}.test
153
154 %{__make} test 2>&1 | tee make-test.log
155 FAILED=$(grep 'Files with failing tests:' make-test.log | sed -e 's#Files with failing tests: ##g' | sort | xargs)
156 if [ -n "$FAILED" ]; then
157         echo "Files with failing tests: $FAILED"
158         exit 1
159 fi
160 %endif
161
162 %install
163 rm -rf $RPM_BUILD_ROOT
164 install -d $RPM_BUILD_ROOT{%{_prefix},%{_mandir}/man1}
165
166 %{__make} -C unix install \
167         INSTALL_ROOT=$RPM_BUILD_ROOT \
168         TCL_PACKAGE_PATH="%{_libdir} %{_libdir}/tcl%{major} %{_ulibdir} %{_ulibdir}/tcl%{major}" \
169         MAN_INSTALL_DIR=$RPM_BUILD_ROOT%{_mandir}
170
171 install -d $RPM_BUILD_ROOT%{_includedir}/%{name}-private/{generic,unix}
172 find generic unix -name "*.h" -exec cp -p '{}' $RPM_BUILD_ROOT%{_includedir}/%{name}-private/'{}' ';'
173 for h in $RPM_BUILD_ROOT%{_includedir}/*.h; do
174         rh=$(basename "$h")
175         if [ -f "$RPM_BUILD_ROOT%{_includedir}/%{name}-private/generic/$rh" ]; then
176                 ln -sf "../../$rh" $RPM_BUILD_ROOT%{_includedir}/%{name}-private/generic
177         fi
178 done
179
180 ln -sf libtcl%{major}.so.0.0 $RPM_BUILD_ROOT%{_libdir}/libtcl.so
181 ln -sf libtcl%{major}.so.0.0 $RPM_BUILD_ROOT%{_libdir}/libtcl%{major}.so
182 ln -sf libtcl%{major}.so.0.0 $RPM_BUILD_ROOT%{_libdir}/libtcl%{major}.so.0
183 mv -f $RPM_BUILD_ROOT%{_bindir}/tclsh%{major} $RPM_BUILD_ROOT%{_bindir}/tclsh
184
185 %{?have_ulibdir:mv $RPM_BUILD_ROOT%{_libdir}/tclConfig.sh $RPM_BUILD_ROOT%{_ulibdir}/tclConfig.sh}
186
187 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
188
189 install -d $RPM_BUILD_ROOT%{_libdir}/tcl%{major}
190
191 %clean
192 rm -rf $RPM_BUILD_ROOT
193
194 %post   -p /sbin/ldconfig
195 %postun -p /sbin/ldconfig
196
197 %files
198 %defattr(644,root,root,755)
199 %attr(755,root,root) %{_bindir}/*
200 %attr(755,root,root) %{_libdir}/libtcl%{major}.so.*.*
201 %attr(755,root,root) %ghost %{_libdir}/libtcl%{major}.so.0
202 %{?have_ulibdir:%dir %{_libdir}/tcl%{major}}
203 %{_ulibdir}/tcl[0-9]
204 %dir %{_ulibdir}/tcl%{major}
205 %{_ulibdir}/tcl%{major}/*.tcl
206 %{_ulibdir}/tcl%{major}/encoding
207 %{_ulibdir}/tcl%{major}/http1.0
208 %{_ulibdir}/tcl%{major}/ldAix
209 %dir %{_ulibdir}/tcl%{major}/msgs
210 %lang(af) %{_ulibdir}/tcl%{major}/msgs/af.msg
211 %lang(af_ZA) %{_ulibdir}/tcl%{major}/msgs/af_za.msg
212 %lang(ar) %{_ulibdir}/tcl%{major}/msgs/ar.msg
213 %lang(ar_IN) %{_ulibdir}/tcl%{major}/msgs/ar_in.msg
214 %lang(ar_JO) %{_ulibdir}/tcl%{major}/msgs/ar_jo.msg
215 %lang(ar_LB) %{_ulibdir}/tcl%{major}/msgs/ar_lb.msg
216 %lang(ar_SY) %{_ulibdir}/tcl%{major}/msgs/ar_sy.msg
217 %lang(be) %{_ulibdir}/tcl%{major}/msgs/be.msg
218 %lang(bg) %{_ulibdir}/tcl%{major}/msgs/bg.msg
219 %lang(bn) %{_ulibdir}/tcl%{major}/msgs/bn.msg
220 %lang(bn_IN) %{_ulibdir}/tcl%{major}/msgs/bn_in.msg
221 %lang(ca) %{_ulibdir}/tcl%{major}/msgs/ca.msg
222 %lang(cs) %{_ulibdir}/tcl%{major}/msgs/cs.msg
223 %lang(da) %{_ulibdir}/tcl%{major}/msgs/da.msg
224 %lang(de) %{_ulibdir}/tcl%{major}/msgs/de.msg
225 %lang(de_AT) %{_ulibdir}/tcl%{major}/msgs/de_at.msg
226 %lang(de_BE) %{_ulibdir}/tcl%{major}/msgs/de_be.msg
227 %lang(el) %{_ulibdir}/tcl%{major}/msgs/el.msg
228 %lang(en_AU) %{_ulibdir}/tcl%{major}/msgs/en_au.msg
229 %lang(en_BE) %{_ulibdir}/tcl%{major}/msgs/en_be.msg
230 %lang(en_BW) %{_ulibdir}/tcl%{major}/msgs/en_bw.msg
231 %lang(en_CA) %{_ulibdir}/tcl%{major}/msgs/en_ca.msg
232 %lang(en_GB) %{_ulibdir}/tcl%{major}/msgs/en_gb.msg
233 %lang(en_HK) %{_ulibdir}/tcl%{major}/msgs/en_hk.msg
234 %lang(en_IE) %{_ulibdir}/tcl%{major}/msgs/en_ie.msg
235 %lang(en_IN) %{_ulibdir}/tcl%{major}/msgs/en_in.msg
236 %lang(en_NZ) %{_ulibdir}/tcl%{major}/msgs/en_nz.msg
237 %lang(en_PH) %{_ulibdir}/tcl%{major}/msgs/en_ph.msg
238 %lang(en_SG) %{_ulibdir}/tcl%{major}/msgs/en_sg.msg
239 %lang(en_ZA) %{_ulibdir}/tcl%{major}/msgs/en_za.msg
240 %lang(en_ZW) %{_ulibdir}/tcl%{major}/msgs/en_zw.msg
241 %lang(eo) %{_ulibdir}/tcl%{major}/msgs/eo.msg
242 %lang(es) %{_ulibdir}/tcl%{major}/msgs/es.msg
243 %lang(es_AR) %{_ulibdir}/tcl%{major}/msgs/es_ar.msg
244 %lang(es_BO) %{_ulibdir}/tcl%{major}/msgs/es_bo.msg
245 %lang(es_CL) %{_ulibdir}/tcl%{major}/msgs/es_cl.msg
246 %lang(es_CO) %{_ulibdir}/tcl%{major}/msgs/es_co.msg
247 %lang(es_CR) %{_ulibdir}/tcl%{major}/msgs/es_cr.msg
248 %lang(es_DO) %{_ulibdir}/tcl%{major}/msgs/es_do.msg
249 %lang(es_EC) %{_ulibdir}/tcl%{major}/msgs/es_ec.msg
250 %lang(es_GT) %{_ulibdir}/tcl%{major}/msgs/es_gt.msg
251 %lang(es_HN) %{_ulibdir}/tcl%{major}/msgs/es_hn.msg
252 %lang(es_MX) %{_ulibdir}/tcl%{major}/msgs/es_mx.msg
253 %lang(es_NI) %{_ulibdir}/tcl%{major}/msgs/es_ni.msg
254 %lang(es_PA) %{_ulibdir}/tcl%{major}/msgs/es_pa.msg
255 %lang(es_PE) %{_ulibdir}/tcl%{major}/msgs/es_pe.msg
256 %lang(es_PR) %{_ulibdir}/tcl%{major}/msgs/es_pr.msg
257 %lang(es_PY) %{_ulibdir}/tcl%{major}/msgs/es_py.msg
258 %lang(es_SV) %{_ulibdir}/tcl%{major}/msgs/es_sv.msg
259 %lang(es_UY) %{_ulibdir}/tcl%{major}/msgs/es_uy.msg
260 %lang(es_VE) %{_ulibdir}/tcl%{major}/msgs/es_ve.msg
261 %lang(et) %{_ulibdir}/tcl%{major}/msgs/et.msg
262 %lang(eu) %{_ulibdir}/tcl%{major}/msgs/eu.msg
263 %lang(eu_ES) %{_ulibdir}/tcl%{major}/msgs/eu_es.msg
264 %lang(fa) %{_ulibdir}/tcl%{major}/msgs/fa.msg
265 %lang(fa_IN) %{_ulibdir}/tcl%{major}/msgs/fa_in.msg
266 %lang(fa_IR) %{_ulibdir}/tcl%{major}/msgs/fa_ir.msg
267 %lang(fi) %{_ulibdir}/tcl%{major}/msgs/fi.msg
268 %lang(fo) %{_ulibdir}/tcl%{major}/msgs/fo.msg
269 %lang(fo_FO) %{_ulibdir}/tcl%{major}/msgs/fo_fo.msg
270 %lang(fr) %{_ulibdir}/tcl%{major}/msgs/fr.msg
271 %lang(fr_BE) %{_ulibdir}/tcl%{major}/msgs/fr_be.msg
272 %lang(fr_CA) %{_ulibdir}/tcl%{major}/msgs/fr_ca.msg
273 %lang(fr_CH) %{_ulibdir}/tcl%{major}/msgs/fr_ch.msg
274 %lang(ga) %{_ulibdir}/tcl%{major}/msgs/ga.msg
275 %lang(ga_IE) %{_ulibdir}/tcl%{major}/msgs/ga_ie.msg
276 %lang(gl) %{_ulibdir}/tcl%{major}/msgs/gl.msg
277 %lang(gl_ES) %{_ulibdir}/tcl%{major}/msgs/gl_es.msg
278 %lang(gv) %{_ulibdir}/tcl%{major}/msgs/gv.msg
279 %lang(gv_GB) %{_ulibdir}/tcl%{major}/msgs/gv_gb.msg
280 %lang(he) %{_ulibdir}/tcl%{major}/msgs/he.msg
281 %lang(hi) %{_ulibdir}/tcl%{major}/msgs/hi.msg
282 %lang(hi_IN) %{_ulibdir}/tcl%{major}/msgs/hi_in.msg
283 %lang(hr) %{_ulibdir}/tcl%{major}/msgs/hr.msg
284 %lang(hu) %{_ulibdir}/tcl%{major}/msgs/hu.msg
285 %lang(id) %{_ulibdir}/tcl%{major}/msgs/id.msg
286 %lang(id_ID) %{_ulibdir}/tcl%{major}/msgs/id_id.msg
287 %lang(is) %{_ulibdir}/tcl%{major}/msgs/is.msg
288 %lang(it) %{_ulibdir}/tcl%{major}/msgs/it.msg
289 %lang(it_CH) %{_ulibdir}/tcl%{major}/msgs/it_ch.msg
290 %lang(ja) %{_ulibdir}/tcl%{major}/msgs/ja.msg
291 %lang(kl) %{_ulibdir}/tcl%{major}/msgs/kl.msg
292 %lang(kl_GL) %{_ulibdir}/tcl%{major}/msgs/kl_gl.msg
293 %lang(ko) %{_ulibdir}/tcl%{major}/msgs/ko.msg
294 %lang(ko) %{_ulibdir}/tcl%{major}/msgs/ko_kr.msg
295 %lang(kok) %{_ulibdir}/tcl%{major}/msgs/kok.msg
296 %lang(kok_IN) %{_ulibdir}/tcl%{major}/msgs/kok_in.msg
297 %lang(kw) %{_ulibdir}/tcl%{major}/msgs/kw.msg
298 %lang(kw_GB) %{_ulibdir}/tcl%{major}/msgs/kw_gb.msg
299 %lang(lt) %{_ulibdir}/tcl%{major}/msgs/lt.msg
300 %lang(lv) %{_ulibdir}/tcl%{major}/msgs/lv.msg
301 %lang(mk) %{_ulibdir}/tcl%{major}/msgs/mk.msg
302 %lang(mr) %{_ulibdir}/tcl%{major}/msgs/mr.msg
303 %lang(mr_IN) %{_ulibdir}/tcl%{major}/msgs/mr_in.msg
304 %lang(ms) %{_ulibdir}/tcl%{major}/msgs/ms.msg
305 %lang(ms_MY) %{_ulibdir}/tcl%{major}/msgs/ms_my.msg
306 %lang(mt) %{_ulibdir}/tcl%{major}/msgs/mt.msg
307 %lang(nb) %{_ulibdir}/tcl%{major}/msgs/nb.msg
308 %lang(nl) %{_ulibdir}/tcl%{major}/msgs/nl.msg
309 %lang(nl_BE) %{_ulibdir}/tcl%{major}/msgs/nl_be.msg
310 %lang(nn) %{_ulibdir}/tcl%{major}/msgs/nn.msg
311 %lang(pl) %{_ulibdir}/tcl%{major}/msgs/pl.msg
312 %lang(pt) %{_ulibdir}/tcl%{major}/msgs/pt.msg
313 %lang(pt_BR) %{_ulibdir}/tcl%{major}/msgs/pt_br.msg
314 %lang(ro) %{_ulibdir}/tcl%{major}/msgs/ro.msg
315 %lang(ru) %{_ulibdir}/tcl%{major}/msgs/ru.msg
316 %lang(ru_UA) %{_ulibdir}/tcl%{major}/msgs/ru_ua.msg
317 %lang(sh) %{_ulibdir}/tcl%{major}/msgs/sh.msg
318 %lang(sk) %{_ulibdir}/tcl%{major}/msgs/sk.msg
319 %lang(sl) %{_ulibdir}/tcl%{major}/msgs/sl.msg
320 %lang(sq) %{_ulibdir}/tcl%{major}/msgs/sq.msg
321 %lang(sr) %{_ulibdir}/tcl%{major}/msgs/sr.msg
322 %lang(sv) %{_ulibdir}/tcl%{major}/msgs/sv.msg
323 %lang(sw) %{_ulibdir}/tcl%{major}/msgs/sw.msg
324 %lang(ta) %{_ulibdir}/tcl%{major}/msgs/ta.msg
325 %lang(ta_IN) %{_ulibdir}/tcl%{major}/msgs/ta_in.msg
326 %lang(te) %{_ulibdir}/tcl%{major}/msgs/te.msg
327 %lang(te_IN) %{_ulibdir}/tcl%{major}/msgs/te_in.msg
328 %lang(th) %{_ulibdir}/tcl%{major}/msgs/th.msg
329 %lang(tr) %{_ulibdir}/tcl%{major}/msgs/tr.msg
330 %lang(uk) %{_ulibdir}/tcl%{major}/msgs/uk.msg
331 %lang(vi) %{_ulibdir}/tcl%{major}/msgs/vi.msg
332 %lang(zh) %{_ulibdir}/tcl%{major}/msgs/zh.msg
333 %lang(zh_CN) %{_ulibdir}/tcl%{major}/msgs/zh_cn.msg
334 %lang(zh_HK) %{_ulibdir}/tcl%{major}/msgs/zh_hk.msg
335 %lang(zh_SG) %{_ulibdir}/tcl%{major}/msgs/zh_sg.msg
336 %lang(zh_TW) %{_ulibdir}/tcl%{major}/msgs/zh_tw.msg
337 %{_ulibdir}/tcl%{major}/opt0.4
338 %{_ulibdir}/tcl%{major}/tclAppInit.c
339 %{_ulibdir}/tcl%{major}/tclIndex
340 %{_mandir}/man1/tclsh.1*
341 %lang(pl) %{_mandir}/pl/man1/tclsh.1*
342
343 %files devel
344 %defattr(644,root,root,755)
345 %attr(755,root,root) %{_ulibdir}/tclConfig.sh
346 %attr(755,root,root) %{_libdir}/libtcl%{major}.so
347 %attr(755,root,root) %{_libdir}/libtcl.so
348 %{_libdir}/libtclstub%{major}.a
349 %{_includedir}/tcl*.h
350 %{_includedir}/tcl-private
351 %{_mandir}/man3/TCL_*.3*
352 %{_mandir}/man3/Tcl_*.3*
353 %{_mandir}/man3/attemptck*alloc.3*
354 %{_mandir}/man3/ck*.3*
355 %{_mandir}/mann/*.n*
356 %lang(pl) %{_mandir}/pl/mann/*.n*
This page took 0.092406 seconds and 3 git commands to generate.