itcl-vl.spec 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. %define tcl_major 8.4
  2. %define tk_major 8.4
  3. %define thread_major 2.6
  4. %define itcl_major 3.2
  5. %define itclvers %{itcl_major}.1
  6. Summary: [Incr Tcl] OOP Extension for TCL
  7. Summary(ja): [Incr Tcl] TCL のオブジェクト指向拡張
  8. Name: itcl
  9. Version: %{itclvers}
  10. Release: 2%{?_dist_release}
  11. Group: Development/Languages
  12. License: BSD
  13. Source0: http://prdownloads.sourceforge.net/incrtcl/itcl%{itclvers}_src.tgz
  14. Patch31: itcl-3.2.1-makecfg.patch
  15. BuildRequires: tcl >= %{tcl_major}
  16. BuildRequires: tk >= %{tk_major}
  17. BuildRequires: thread >= %{thread_major}
  18. Requires: tcl >= %{tcl_major}
  19. Requires: tk >= %{tk_major}
  20. Requires: thread >= %{thread_major}
  21. Buildroot: %{_tmppath}/%{name}-%{version}-root
  22. Distribution: Vine Linux
  23. Vendor: Project Vine
  24. %description
  25. [incr Tcl] is an object-oriented extension of the Tcl language. It
  26. was created to support more structured programming in Tcl. Tcl scripts
  27. that grow beyond a few thousand lines become extremely difficult to
  28. maintain. This is because the building blocks of vanilla Tcl are
  29. procedures and global variables, and all of these building blocks
  30. must reside in a single global namespace. There is no support for
  31. protection or encapsulation.
  32. [incr Tcl] introduces the notion of objects. Each object is a bag
  33. of data with a set of procedures or "methods" that are used to
  34. manipulate it. Objects are organized into "classes" with identical
  35. characteristics, and classes can inherit functionality from one
  36. another. This object-oriented paradigm adds another level of
  37. organization on top of the basic variable/procedure elements, and
  38. the resulting code is easier to understand and maintain.
  39. %description -l ja
  40. [incr Tcl] は Tcl 言語のオブジェクト指向な拡張キットで、Tcl で
  41. より構造的なプログラムをサポートするために作成されました。
  42. 2, 3000 行を超えるくらい増えた Tcl スクリプトは、メンテナンスが極めて
  43. 困難です。これは vanilla Tcl を構成するブロックが手続きやグローバル変数
  44. であり、それらすべてのブロック一つのグローバルな名前空間に属さなければ
  45. ならないためです。保護やカプセル化はサポートされておりません。
  46. [incr Tcl]はオブジェクトの概念を導入します。各オブジェクトは、それを操作
  47. するために使用する手続きや「方法」のセットを含んだデータのひと包みになり
  48. ます。オブジェクトはその識別特性により「クラス」化され、クラスはお互いに
  49. 機能を継承することができます。このオブジェクト指向のパラダイムにより、基
  50. 本的な変数/手続きの要素の上に、別のレベルの組織化を行うことができます。
  51. その結果、コードの理解やメンテナンスが容易になります。
  52. %prep
  53. %setup -q -n %{name}%{itclvers}
  54. %patch31 -p1 -b .makecfg
  55. #==========================================
  56. %build
  57. # make the libraries reentrant
  58. RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_REENTRANT"
  59. #------------------------------------------
  60. # Itcl
  61. #
  62. %configure \
  63. --enable-shared \
  64. --enable-threads \
  65. --with-tcl=%{_libdir} \
  66. --with-tk=%{_libdir} \
  67. make
  68. #==========================================
  69. %install
  70. rm -rf ${RPM_BUILD_ROOT}
  71. mkdir -p ${RPM_BUILD_ROOT}
  72. rm -f *.files
  73. #------------------------------------------
  74. # Itcl
  75. #
  76. %makeinstall \
  77. ITCL_LIBRARY=$RPM_BUILD_ROOT%{_datadir}/itcl%{itcl_major} \
  78. ITK_LIBRARY=$RPM_BUILD_ROOT%{_datadir}/itk%{itcl_major}
  79. # fixed *Config variables
  80. ln -sf ../itclConfig.sh $RPM_BUILD_ROOT%{_libdir}/itcl%{itcl_major}/itclConfig.sh
  81. ln -sf ../itkConfig.sh $RPM_BUILD_ROOT%{_libdir}/itk%{itcl_major}/itkConfig.sh
  82. echo "ITCL_SRC_DIR='%{_includedir}/tcl%{tcl_major}/'" >> $RPM_BUILD_ROOT%{_libdir}/itcl%{itcl_major}/itclConfig.sh
  83. echo "ITCL_BUILD_LIB_SPEC='-L%{_libdir} -litcl%{itcl_major}'" >> $RPM_BUILD_ROOT%{_libdir}/itcl%{itcl_major}/itclConfig.sh
  84. # install include files
  85. mkdir -p $RPM_BUILD_ROOT%{_includedir}/tcl%{tcl_major}/generic
  86. mkdir -p $RPM_BUILD_ROOT%{_includedir}/tk%{tk_major}/generic
  87. cp itcl/generic/*.h $RPM_BUILD_ROOT%{_includedir}/tcl%{tcl_major}/generic
  88. cp itk/generic/*.h $RPM_BUILD_ROOT%{_includedir}/tk%{tk_major}/generic
  89. rm -rf $RPM_BUILD_ROOT%{_mandir}/mann/dialog.*
  90. rm -rf $RPM_BUILD_ROOT%{_mandir}/mann/menubar.*
  91. echo "%%defattr(-,root,root)" > itcl.files
  92. (find ${RPM_BUILD_ROOT}%{_bindir} ${RPM_BUILD_ROOT}%{_includedir} \
  93. ${RPM_BUILD_ROOT}%{_mandir} -type f -o -type l;
  94. find ${RPM_BUILD_ROOT}%{_libdir}/*) | cat - *.files \
  95. | sort | uniq -u >> itcl.files
  96. set +x +H
  97. for n in `cat itcl.files`; do
  98. [ -f $n ] || continue
  99. head -1 $n | grep -q ^#! || continue
  100. chmod u+w $n
  101. perl -pi -e "s|${RPM_BUILD_ROOT}||" $n
  102. done
  103. set -x -H
  104. #==========================================
  105. # post process the *.files list, removing build sys references and mark
  106. # which are directories
  107. set +x
  108. for n in *.files; do
  109. mv $n $n.in
  110. sed "s|.*%{_prefix}\\>|%{_prefix}|" < $n.in | while read file; do
  111. if [ -d ${RPM_BUILD_ROOT}/$file ]; then
  112. echo -n '%dir '
  113. fi
  114. echo $file
  115. done > $n
  116. rm -f $n.in
  117. done
  118. set -x
  119. # Man pages can be compressed
  120. perl -pi -e 's|(^%{_mandir}/man.*$)|\1\*|' *.files
  121. #==========================================
  122. %post -p /sbin/ldconfig -n itcl
  123. %postun -p /sbin/ldconfig -n itcl
  124. %clean
  125. rm -rf $RPM_BUILD_ROOT
  126. %files -f itcl.files -n itcl
  127. %defattr(-,root,root,-)
  128. %{_datadir}/itcl%{itcl_major}
  129. %{_datadir}/itk%{itcl_major}
  130. %changelog
  131. * Tue Jun 29 2010 Shu KONNO <owa@bg.wakwak.com> 3.2.1-2
  132. - rebuilt with tcl/tk-8.4.19-2
  133. * Sat Jul 26 2008 Shu KONNO <owa@bg.wakwak.com> 3.2.1-1vl5
  134. - applied new versioning policy and spec in utf-8
  135. * Sun Feb 17 2008 Shu KONNO <owa@bg.wakwak.com> 3.2.1-0vl4
  136. - rebuild with tcl/tk-8.4.18
  137. * Tue Jan 01 2008 Shu KONNO <owa@bg.wakwak.com> 3.2.1-0vl3
  138. - moved itcl script path to /usr/share/{itcl3.2,itk3.2} like tcl/tk
  139. * Tue Oct 09 2007 Shu KONNO <owa@bg.wakwak.com> 3.2.1-0vl2
  140. - rebuild with tcl/tk-8.4.16
  141. - changed macro %%thread_major to 2.6
  142. - added {ITCL,ITK}_LIBRARY to %%makeinstall for lib64 support
  143. * Mon Mar 31 2003 KOBAYASHI R. Taizo <tkoba@vinelinux.org> 3.2.1-0vl1
  144. - update based on BitWalk's tcltk-8.4.2-83bw
  145. * Thu Nov 15 2001 Kazuhisa TAKEI <takei@linux.or.jp>
  146. - split itcl
  147. * Sun Jul 15 2001 Daisuke SUZUKI <daisuke@linux.or.jp> 8.0.5_jp-10vl2
  148. - expand some macros.. (FIXME)
  149. * Sat Jul 14 2001 Daisuke SUZUKI <daisuke@linux.or.jp> 8.0.5_jp-10vl1
  150. - use %configure macros
  151. - add Patch 47,50
  152. * Thu May 31 2001 <sagami@vinelinux.org>
  153. - 8.0.5_jp-10
  154. - unexpand old %%{configure}, new one causes build failure
  155. - fixed missing libtkx.so libtclx.so symlink in /usr/lib
  156. - install manpages into %%{_mandir} and mode 644
  157. * Wed Jul 19 2000 MATSUBAYASHI 'Shaolin' Kohji <shaolin@rhythmaning.org>
  158. - 8.0.5_jp-9
  159. - modified %install section to handle compressed man pages
  160. - fixed /usr/lib/tk8.0jp/demos.jp/images symlink
  161. * Sun Jul 2 2000 Daisuke SUZUKI <daisuke@linux.or.jp>
  162. - changed default fonts
  163. * Tue Jan 25 2000 Jun Nishii <jun@vinelinux.org>
  164. - added defattr
  165. * Mon Jan 24 2000 Jun Nishii <jun@vinelinux.org>
  166. - added some symlinks, such as libtcl8.0.so.
  167. - obsoletes version number using _jp, now 8.0.5-31vl1
  168. * Wed Jan 5 2000 Norihito Ohmori <nono@vinelinux.org>
  169. - Apply Tcl/Tk 8.0 Japanese Patch 1.7
  170. * Tue Nov 30 1999 Jakub Jelinek <jakub@redhat.com>
  171. - fix tclX symlinks.
  172. - compile on systems where SIGPWR == SIGLOST.
  173. * Sat May 1 1999 Jeff Johnson <jbj@redhat.com>
  174. - update tcl/tk to 8.0.5.
  175. - avoid "containing" in Tix (#2332).
  176. * Thu Apr 8 1999 Jeff Johnson <jbj@redhat.com>
  177. - use /usr/bin/write in kibitz (#1320).
  178. - use cirrus.sprl.umich.edu in weather (#1926).
  179. * Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
  180. - auto rebuild in the new build environment (release 28)
  181. * Mon Mar 08 1999 Preston Brown <pbrown@redhat.com>
  182. - whoops, exec-prefix for itcl was set to '/foo', changed to '/usr'.
  183. * Tue Feb 16 1999 Jeff Johnson <jbj@redhat.com>
  184. - expect does unaligned access on alpha (#989)
  185. - upgrade tcl/tk/tclX to 8.0.4
  186. - upgrade expect to 5.28.
  187. - add itcl 3.0.1
  188. * Tue Jan 12 1999 Cristian Gafton <gafton@redhat.com>
  189. - call libtoolize to allow building on the arm
  190. - build for glibc 2.1
  191. - strip binaries
  192. * Thu Sep 10 1998 Jeff Johnson <jbj@redhat.com>
  193. - update tcl/tk/tclX to 8.0.3, expect is updated also.
  194. * Mon Jun 29 1998 Jeff Johnson <jbj@redhat.com>
  195. - expect: mkpasswd needs delay before sending password (problem #576)
  196. * Thu May 07 1998 Prospector System <bugs@redhat.com>
  197. - translations modified for de, fr, tr
  198. * Sat May 02 1998 Cristian Gafton <gafton@redhat.com>
  199. - fixed expect binaries exec permissions
  200. * Thu Apr 09 1998 Erik Troan <ewt@redhat.com>
  201. - updated to Tix 4.1.0.006
  202. - updated version numbers of tcl/tk to relflect includsion of p2
  203. * Wed Mar 25 1998 Cristian Gafton <gafton@redhat.com>
  204. - updated tcl/tk to patch level 2
  205. - updated tclX to 8.0.2
  206. * Thu Oct 30 1997 Otto Hammersmith <otto@redhat.com>
  207. - fixed filelist for tix... replacing path to the expect binary in scripts
  208. was leaving junk files around.
  209. * Wed Oct 22 1997 Otto Hammersmith <otto@redhat.com>
  210. - added patch to remove libieee test in configure.in for tcl and tk.
  211. Shoudln't be needed anymore for glibc systems, but this isn't the "proper"
  212. solution for all systems
  213. - fixed src urls
  214. * Mon Oct 06 1997 Erik Troan <ewt@redhat.com>
  215. - removed version numbers from descriptions
  216. * Mon Sep 22 1997 Erik Troan <ewt@redhat.com>
  217. - updated to tcl/tk 8.0 and related versions of packages
  218. * Tue Jun 17 1997 Erik Troan <ewt@redhat.com>
  219. - built against glibc
  220. - fixed dangling tclx/tkx symlinks