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