tetex.spec 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. ##
  2. ## tetex.spec -- Portable RPM Specification
  3. ## Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH
  4. ## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
  5. ## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. # package versions
  26. %define V_base 2.0
  27. %define V_src 2.0.1
  28. %define V_texmf 2.0.1
  29. # package information
  30. Name: tetex
  31. Summary: The TeX Typesetting System
  32. URL: http://www.tug.org/teTeX/
  33. Vendor: Thomas Esser et al.
  34. Packager: The OpenPKG Project
  35. Distribution: OpenPKG [BASE]
  36. Group: Text
  37. License: GPL
  38. Version: %{V_src}
  39. Release: 20030222
  40. # package options
  41. %option with_x11 no
  42. # list of sources
  43. Source0: ftp://cam.ctan.org/tex-archive/systems/unix/teTeX/%{V_base}/distrib/tetex-src-%{V_src}.tar.gz
  44. Source1: ftp://cam.ctan.org/tex-archive/systems/unix/teTeX/%{V_base}/distrib/tetex-texmf-%{V_texmf}.tar.gz
  45. Source2: http://www.tei-c.org.uk/Software/passivetex/passivetex.zip
  46. Source3: ftp://ftp.tex.ac.uk/tex-archive/macros/xmltex/base.zip
  47. # build information
  48. Prefix: %{l_prefix}
  49. BuildRoot: %{l_buildroot}
  50. BuildPreReq: OpenPKG, openpkg >= 20030103, gcc, make, infozip, flex, bison
  51. PreReq: OpenPKG, openpkg >= 20030103
  52. %if "%{with_x11}" == "yes"
  53. BuildPreReq: X11
  54. PreReq: X11
  55. %endif
  56. AutoReq: no
  57. AutoReqProv: no
  58. %description
  59. teTeX is a complete TeX distribution for Unix compatible systems,
  60. maintained by Thomas Esser. It is based on Karl Berry's original
  61. Web2c distribution. TeX was invented by Donald E. Knuth, and the
  62. most popular TeX macro set (LaTeX) for TeX was invented by Leslie
  63. Lamport. The OpenPKG teTeX package also contains David Carlisle'
  64. xmltex (namespace-aware XML parser written in TeX) and Sebastian
  65. Rahtz' PassiveTeX (XML-FO rendering engine).
  66. %prep
  67. %setup -q -n tetex-src-%{V_src}
  68. # teTeX requires the texmf stuff to be already in place
  69. # for building and installing the source parts.
  70. rm -rf $RPM_BUILD_ROOT
  71. %{l_shtool} mkdir -f -p -m 755 \
  72. $RPM_BUILD_ROOT%{l_prefix}/share/texmf
  73. %{l_gzip} -d -c %{SOURCE tetex-texmf-%{V_texmf}.tar.gz} |\
  74. (umask 0 && cd $RPM_BUILD_ROOT%{l_prefix}/share/texmf && %{l_tar} xf -)
  75. # add XMLTeX (XML parsing via TeX)
  76. ( cd $RPM_BUILD_ROOT%{l_prefix}/share/texmf/tex
  77. %{l_prefix}/bin/unzip -x %{SOURCE base.zip}
  78. mv base xmltex
  79. )
  80. ( echo ""
  81. echo "# XMLTeX (XML parsing via TeX) [does not work as expected here]"
  82. echo "# xmltex latex language.dat xmltex.ini"
  83. echo "# pdfxmltex pdflatex language.dat pdfxmltex.ini"
  84. echo ""
  85. ) >>texk/web2c/fmtutil.in
  86. ( echo ""
  87. echo "% XMLTeX (XML parsing via TeX)"
  88. echo "main_memory.xmltex = 2500000"
  89. echo "main_memory.pdfxmltex = 2500000"
  90. echo "param_size.xmltex = 1500"
  91. echo "param_size.pdfxmltex = 1500"
  92. echo "stack_size.xmltex = 1500"
  93. echo "stack_size.pdfxmltex = 1500"
  94. echo "hash_extra.xmltex = 50000"
  95. echo "hash_extra.pdfxmltex = 50000"
  96. echo "string_vacancies.xmltex = 45000"
  97. echo "string_vacancies.pdfxmltex = 45000"
  98. echo "pool_free.xmltex = 47500"
  99. echo "pool_free.pdfxmltex = 47500"
  100. echo "nest_size.xmltex = 500"
  101. echo "nest_size.pdfxmltex = 500"
  102. echo "save_size.xmltex = 10000"
  103. echo "save_size.pdfxmltex = 10000"
  104. echo "pool_size.xmltex = 500000"
  105. echo "pool_size.pdfxmltex = 500000"
  106. echo "max_strings.xmltex = 55000"
  107. echo "max_strings.pdfxmltex = 55000"
  108. echo "buf_size.xmltex = 200000"
  109. echo "buf_size.pdfxmltex = 200000"
  110. echo ""
  111. ) >>texk/kpathsea/texmf.in
  112. # add PassiveTeX (XML-FO to DVI/PDF translation via TeX)
  113. ( %{l_shtool} mkdir -f -p -m 755 \
  114. $RPM_BUILD_ROOT%{l_prefix}/share/texmf/tex/latex/passivetex
  115. cd $RPM_BUILD_ROOT%{l_prefix}/share/texmf/tex/latex/passivetex
  116. %{l_prefix}/bin/unzip -x %{SOURCE passivetex.zip}
  117. rm -f ChangeLog Makefile README.passivetex send
  118. rm -rf test
  119. )
  120. # minor fixes to the teTeX sources
  121. %{l_shtool} subst -e "s;\|O_SYNC;;g" libs/libwww/HTMemLog.c
  122. %{l_shtool} subst -e "s;strnstr;my_strnstr;g" libs/libwww/HTReader.c
  123. %build
  124. # configure the system by using the (wrong) paths to the temporary
  125. # installation area, followed by by a step for fixing the paths
  126. # (to the correct values) inside the kpathsea library (which
  127. # performs the run-time searches). This way we get all the magic
  128. # of the teTeX build system without problems, but still make sure
  129. # that the built-in paths are correct.
  130. %{l_shtool} subst -s -v \
  131. -e 's;^vartexfonts =.*;vartexfonts = %{l_prefix}/var/tetex/fonts;' \
  132. texk/make/paths.mk
  133. CC="%{l_cc}" \
  134. CXX="%{l_cxx}" \
  135. CFLAGS="%{l_cflags -O}" \
  136. CXXFLAGS="%{l_cxxflags -O}" \
  137. ./configure \
  138. --prefix=$RPM_BUILD_ROOT%{l_prefix} \
  139. --datadir=$RPM_BUILD_ROOT%{l_prefix}/share \
  140. %if "%{with_x11}" == "yes"
  141. --with-xdvik \
  142. --with-oxdvik \
  143. --with-x \
  144. --with-x11 \
  145. --with-x11win \
  146. --x-includes=`%{l_prefix}/etc/rc --query x11_incdir` \
  147. --x-libraries=`%{l_prefix}/etc/rc --query x11_libdir` \
  148. %else
  149. --without-xdvik \
  150. --without-oxdvik \
  151. --without-x \
  152. --without-x11 \
  153. --without-x11win \
  154. %endif
  155. --disable-multiplatform \
  156. --enable-gf
  157. ( cd texk/kpathsea
  158. %{l_shtool} subst -v \
  159. -e "s;$RPM_BUILD_ROOT%{l_prefix};%{l_prefix};" \
  160. `find . -type f -print`
  161. make %{l_mflags} all
  162. )
  163. # build the sources
  164. # (we cannot use %{l_make}, because teTeX dislikes absolute
  165. # paths for make. Instead we work-around via $PATH)
  166. make %{l_mflags} all
  167. %install
  168. # perform the standard installation procdure of teTeX
  169. # (we cannot use %{l_make}, because teTeX dislikes absolute
  170. # paths for make. Instead we work-around via $PATH)
  171. make %{l_mflags} install
  172. # perform manual steps for installing XMLTeX
  173. ( TEXMFMAIN="$RPM_BUILD_ROOT%{l_prefix}/share/texmf"
  174. export TEXMFMAIN
  175. PATH="$RPM_BUILD_ROOT%{l_prefix}/bin:$PATH"
  176. cd $RPM_BUILD_ROOT%{l_prefix}/share/texmf/web2c
  177. $RPM_BUILD_ROOT%{l_prefix}/bin/tex -ini "&latex" xmltex.ini
  178. $RPM_BUILD_ROOT%{l_prefix}/bin/pdftex -ini "&pdflatex" pdfxmltex.ini
  179. $RPM_BUILD_ROOT%{l_prefix}/bin/mktexlsr
  180. ( cd $RPM_BUILD_ROOT%{l_prefix}/bin
  181. ln -s tex xmltex
  182. ln -s pdftex pdfxmltex
  183. )
  184. )
  185. # create dynamically generated font directory
  186. %{l_shtool} mkdir -f -p -m 755 \
  187. $RPM_BUILD_ROOT%{l_prefix}/var/tetex
  188. %{l_shtool} mkdir -f -p -m 777 \
  189. $RPM_BUILD_ROOT%{l_prefix}/var/tetex/fonts
  190. # adjust paths in manual pages
  191. %{l_shtool} subst -s -v \
  192. -e "s;$RPM_BUILD_ROOT%{l_prefix};%{l_prefix};g" \
  193. $RPM_BUILD_ROOT%{l_prefix}/man/man1/*.1
  194. # readlink utility conflicts with readlink from coreutils
  195. mv $RPM_BUILD_ROOT%{l_prefix}/bin/readlink \
  196. $RPM_BUILD_ROOT%{l_prefix}/bin/tetex-readlink
  197. mv $RPM_BUILD_ROOT%{l_prefix}/man/man1/readlink.1 \
  198. $RPM_BUILD_ROOT%{l_prefix}/man/man1/tetex-readlink.1
  199. %{l_shtool} subst \
  200. -e 's;readlink;tetex-readlink;g' \
  201. $RPM_BUILD_ROOT%{l_prefix}/bin/mktexlsr \
  202. $RPM_BUILD_ROOT%{l_prefix}/bin/texhash
  203. # cleanup the installation
  204. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/install-info
  205. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/makeinfo
  206. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/texi2dvi
  207. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/texindex
  208. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/info
  209. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/infokey
  210. rm -f $RPM_BUILD_ROOT%{l_prefix}/info/dir
  211. rm -f $RPM_BUILD_ROOT%{l_prefix}/info/info*
  212. rm -f $RPM_BUILD_ROOT%{l_prefix}/info/texinfo*
  213. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/install-info.1
  214. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/makeinfo.1
  215. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/texi2dvi.1
  216. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/texindex.1
  217. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/info.1
  218. # determine installation files
  219. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  220. %{l_files_std} \
  221. '%config %{l_prefix}/share/texmf/dvips/config/config.ps' \
  222. '%config %{l_prefix}/share/texmf/metafont/misc/modes.mf' \
  223. '%config %{l_prefix}/share/texmf/pdftex/config/pdftex.cfg' \
  224. '%config %{l_prefix}/share/texmf/web2c/mf.base' \
  225. '%config %{l_prefix}/share/texmf/web2c/mktex.cnf' \
  226. '%config %{l_prefix}/share/texmf/xdvi/XDvi'
  227. %files -f files
  228. %clean
  229. rm -rf $RPM_BUILD_ROOT