/[gentoo-x86]/eclass/texlive-module.eclass
Gentoo

Diff of /eclass/texlive-module.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.20 Revision 1.28
1# Copyright 1999-2008 Gentoo Foundation 1# Copyright 1999-2008 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/texlive-module.eclass,v 1.20 2008/11/06 19:02:41 aballier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/texlive-module.eclass,v 1.28 2010/01/07 18:42:47 aballier Exp $
4 4
5# @ECLASS: texlive-module.eclass 5# @ECLASS: texlive-module.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# tex@gentoo.org 7# tex@gentoo.org
8# 8#
49 49
50HOMEPAGE="http://www.tug.org/texlive/" 50HOMEPAGE="http://www.tug.org/texlive/"
51 51
52COMMON_DEPEND=">=app-text/texlive-core-${PV}" 52COMMON_DEPEND=">=app-text/texlive-core-${PV}"
53 53
54IUSE="" 54IUSE="source"
55 55
56# TeX Live 2007 was providing .zip files of CTAN packages. For 2008 they are now 56# TeX Live 2008 was providing .tar.lzma files of CTAN packages. For 2009 they are now
57# .tar.lzma 57# .tar.xz
58if [ -z "${PV##2007*}" ] ; then 58if [ "${PV#2008}" != "${PV}" ]; then
59 PKGEXT=tar.lzma
60 DEPEND="${COMMON_DEPEND}
61 || ( app-arch/xz-utils app-arch/lzma-utils )"
62else
63 PKGEXT=tar.xz
64 DEPEND="${COMMON_DEPEND}
65 app-arch/xz-utils"
66fi
67
59for i in ${TEXLIVE_MODULE_CONTENTS}; do 68for i in ${TEXLIVE_MODULE_CONTENTS}; do
60 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.zip" 69 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.${PKGEXT}"
61done 70done
62COMMON_DEPEND="${COMMON_DEPEND}
63 ${TEXLIVE_MODULES_DEPS}"
64DEPEND="${COMMON_DEPEND}
65 app-arch/unzip"
66else
67for i in ${TEXLIVE_MODULE_CONTENTS}; do
68 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.tar.lzma"
69done
70DEPEND="${COMMON_DEPEND}
71 app-arch/lzma-utils"
72IUSE="${IUSE} source"
73 71
74# Forge doc SRC_URI 72# Forge doc SRC_URI
75[ -n "${PN##*documentation*}" ] && [ -n "${TEXLIVE_MODULE_DOC_CONTENTS}" ] && SRC_URI="${SRC_URI} doc? (" 73[ -n "${PN##*documentation*}" ] && [ -n "${TEXLIVE_MODULE_DOC_CONTENTS}" ] && SRC_URI="${SRC_URI} doc? ("
76for i in ${TEXLIVE_MODULE_DOC_CONTENTS}; do 74for i in ${TEXLIVE_MODULE_DOC_CONTENTS}; do
77 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.tar.lzma" 75 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.${PKGEXT}"
78done 76done
79[ -n "${PN##*documentation*}" ] && [ -n "${TEXLIVE_MODULE_DOC_CONTENTS}" ] && SRC_URI="${SRC_URI} )" 77[ -n "${PN##*documentation*}" ] && [ -n "${TEXLIVE_MODULE_DOC_CONTENTS}" ] && SRC_URI="${SRC_URI} )"
80 78
81# Forge source SRC_URI 79# Forge source SRC_URI
82if [ -n "${TEXLIVE_MODULE_SRC_CONTENTS}" ] ; then 80if [ -n "${TEXLIVE_MODULE_SRC_CONTENTS}" ] ; then
83 SRC_URI="${SRC_URI} source? (" 81 SRC_URI="${SRC_URI} source? ("
84 for i in ${TEXLIVE_MODULE_SRC_CONTENTS}; do 82 for i in ${TEXLIVE_MODULE_SRC_CONTENTS}; do
85 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.tar.lzma" 83 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.${PKGEXT}"
86 done 84 done
87 SRC_URI="${SRC_URI} )" 85 SRC_URI="${SRC_URI} )"
88fi 86fi
89fi
90 87
91RDEPEND="${COMMON_DEPEND}" 88RDEPEND="${COMMON_DEPEND}"
92 89
93[ -z "${PN##*documentation*}" ] || IUSE="${IUSE} doc" 90[ -z "${PN##*documentation*}" ] || IUSE="${IUSE} doc"
94 91
95S="${WORKDIR}" 92S="${WORKDIR}"
96 93
94if [ "${PV#2008}" == "${PV}" ]; then
95
96# @FUNCTION: texlive-module_src_unpack
97# @DESCRIPTION:
98# Only for TeX Live 2009.
99# Gives tar.xz unpack support until we can use an EAPI with that support.
100
101texlive-module_src_unpack() {
102 local i s
103 for i in ${A}
104 do
105 s="${DISTDIR%/}/${i}"
106 einfo "Unpacking ${s} to ${PWD}"
107 test -s "${s}" || die "${s} does not exist"
108 xz -dc -- "${s}" | tar xof - || die "Unpacking ${s} failed"
109 done
110}
111
112fi
97 113
98# @FUNCTION: texlive-module_make_language_def_lines 114# @FUNCTION: texlive-module_make_language_def_lines
99# @DESCRIPTION: 115# @DESCRIPTION:
100# Only valid for TeXLive 2008.
101# Creates a language.${PN}.def entry to put in /etc/texmf/language.def.d 116# Creates a language.${PN}.def entry to put in /etc/texmf/language.def.d
102# It parses the AddHyphen directive of tlpobj files to create it. 117# It parses the AddHyphen directive of tlpobj files to create it.
103 118
104texlive-module_make_language_def_lines() { 119texlive-module_make_language_def_lines() {
105 local lefthyphenmin righthyphenmin synonyms name file 120 local lefthyphenmin righthyphenmin synonyms name file
149texlive-module_src_compile() { 164texlive-module_src_compile() {
150 # Build format files 165 # Build format files
151 for i in texmf/fmtutil/format*.cnf; do 166 for i in texmf/fmtutil/format*.cnf; do
152 if [ -f "${i}" ]; then 167 if [ -f "${i}" ]; then
153 einfo "Building format ${i}" 168 einfo "Building format ${i}"
154 TEXMFHOME="${S}/texmf:${S}/texmf-dist"\ 169 VARTEXFONTS="${T}/fonts" TEXMFHOME="${S}/texmf:${S}/texmf-dist:${S}/texmf-var"\
155 fmtutil --cnffile "${i}" --fmtdir "${S}/texmf-var/web2c" --all\ 170 env -u TEXINPUTS fmtutil --cnffile "${i}" --fmtdir "${S}/texmf-var/web2c" --all\
156 || die "failed to build format ${i}" 171 || die "failed to build format ${i}"
157 fi 172 fi
158 done 173 done
159 174
160 # Generate config files 175 # Generate config files
161 # TeX Live 2007 was providing lists. For 2008 they are now tlpobj. 176 # TeX Live 2007 was providing lists. For 2008 they are now tlpobj.
162 if [ -z "${PV##2007*}" ] ; then
163 for i in "${S}"/texmf/lists/*;
164 do
165 grep '^!' "${i}" | sed -e 's/^!//' | tr ' ' '@' |sort|uniq >> "${T}/jobs"
166 done
167 else
168 for i in "${S}"/tlpkg/tlpobj/*; 177 for i in "${S}"/tlpkg/tlpobj/*;
169 do 178 do
170 grep '^execute ' "${i}" | sed -e 's/^execute //' | tr ' ' '@' |sort|uniq >> "${T}/jobs" 179 grep '^execute ' "${i}" | sed -e 's/^execute //' | tr ' ' '@' |sort|uniq >> "${T}/jobs"
171 done 180 done
172 fi
173 181
174 for i in $(<"${T}/jobs"); 182 for i in $(<"${T}/jobs");
175 do 183 do
176 j="$(echo $i | tr '@' ' ')" 184 j="$(echo $i | tr '@' ' ')"
177 command=${j%% *} 185 command=${j%% *}
194 einfo "Language file $parameter already generated.";; 202 einfo "Language file $parameter already generated.";;
195 *) 203 *)
196 die "No rule to proccess ${command}. Please file a bug." 204 die "No rule to proccess ${command}. Please file a bug."
197 esac 205 esac
198 done 206 done
207
208 # Delete ls-R files, these should not be created but better be certain they
209 # do not end up being installed.
210 find . -name 'ls-R' -delete
199} 211}
200 212
201# @FUNCTION: texlive-module_src_install 213# @FUNCTION: texlive-module_src_install
202# @DESCRIPTION: 214# @DESCRIPTION:
203# exported function: 215# exported function:
216 [ -d texmf-dist/doc ] && rm -rf texmf-dist/doc 228 [ -d texmf-dist/doc ] && rm -rf texmf-dist/doc
217 fi 229 fi
218 230
219 [ -d texmf ] && cp -pR texmf "${D}/usr/share/" 231 [ -d texmf ] && cp -pR texmf "${D}/usr/share/"
220 [ -d texmf-dist ] && cp -pR texmf-dist "${D}/usr/share/" 232 [ -d texmf-dist ] && cp -pR texmf-dist "${D}/usr/share/"
221 [ -n "${PV##2007*}" ] && [ -d tlpkg ] && use source && cp -pR tlpkg "${D}/usr/share/" 233 [ -d tlpkg ] && use source && cp -pR tlpkg "${D}/usr/share/"
222 234
223 insinto /var/lib/texmf 235 insinto /var/lib/texmf
224 [ -d texmf-var ] && doins -r texmf-var/* 236 [ -d texmf-var ] && doins -r texmf-var/*
225 237
226 insinto /etc/texmf/updmap.d 238 insinto /etc/texmf/updmap.d
274 ewarn "Your texmf tree might be inconsistent with your configuration" 286 ewarn "Your texmf tree might be inconsistent with your configuration"
275 ewarn "Please try to figure what has happened" 287 ewarn "Please try to figure what has happened"
276 fi 288 fi
277} 289}
278 290
291if [ "${PV#2008}" != "${PV}" ]; then
279EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_postrm 292EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_postrm
293else
294EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst pkg_postrm
295fi

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.28

  ViewVC Help
Powered by ViewVC 1.1.20