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