/[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.60 Revision 1.65
1# Copyright 1999-2011 Gentoo Foundation 1# Copyright 1999-2012 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.60 2011/08/29 01:28:10 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/texlive-module.eclass,v 1.65 2013/06/28 12:43:54 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# @AUTHOR: 8# @AUTHOR:
25 25
26# @ECLASS-VARIABLE: TEXLIVE_MODULE_CONTENTS 26# @ECLASS-VARIABLE: TEXLIVE_MODULE_CONTENTS
27# @DESCRIPTION: 27# @DESCRIPTION:
28# The list of packages that will be installed. This variable will be expanded to 28# The list of packages that will be installed. This variable will be expanded to
29# SRC_URI: 29# SRC_URI:
30#
31# For TeX Live 2008: foo -> texlive-module-foo-${PV}.tar.lzma
32# For TeX Live 2009: foo -> texlive-module-foo-${PV}.tar.xz 30# foo -> texlive-module-foo-${PV}.tar.xz
33 31
34# @ECLASS-VARIABLE: TEXLIVE_MODULE_DOC_CONTENTS 32# @ECLASS-VARIABLE: TEXLIVE_MODULE_DOC_CONTENTS
35# @DESCRIPTION: 33# @DESCRIPTION:
36# The list of packages that will be installed if the doc useflag is enabled. 34# The list of packages that will be installed if the doc useflag is enabled.
37# Expansion to SRC_URI is the same as for TEXLIVE_MODULE_CONTENTS. This is only 35# Expansion to SRC_URI is the same as for TEXLIVE_MODULE_CONTENTS.
38# valid for TeX Live 2008 and later.
39 36
40# @ECLASS-VARIABLE: TEXLIVE_MODULE_SRC_CONTENTS 37# @ECLASS-VARIABLE: TEXLIVE_MODULE_SRC_CONTENTS
41# @DESCRIPTION: 38# @DESCRIPTION:
42# The list of packages that will be installed if the source useflag is enabled. 39# The list of packages that will be installed if the source useflag is enabled.
43# Expansion to SRC_URI is the same as for TEXLIVE_MODULE_CONTENTS. This is only 40# Expansion to SRC_URI is the same as for TEXLIVE_MODULE_CONTENTS.
44# valid for TeX Live 2008 and later.
45 41
46# @ECLASS-VARIABLE: TEXLIVE_MODULE_BINSCRIPTS 42# @ECLASS-VARIABLE: TEXLIVE_MODULE_BINSCRIPTS
47# @DESCRIPTION: 43# @DESCRIPTION:
48# A space separated list of files that are in fact scripts installed in the 44# A space separated list of files that are in fact scripts installed in the
49# texmf tree and that we want to be available directly. They will be installed in 45# texmf tree and that we want to be available directly. They will be installed in
50# /usr/bin. 46# /usr/bin.
51 47
48# @ECLASS-VARIABLE: TEXLIVE_MODULE_BINLINKS
49# @DESCRIPTION:
50# A space separated list of links to add for BINSCRIPTS.
51# The systax is: foo:bar to create a symlink bar -> foo.
52
52# @ECLASS-VARIABLE: TL_PV 53# @ECLASS-VARIABLE: TL_PV
53# @DESCRIPTION: 54# @DESCRIPTION:
54# Normally the module's PV reflects the TeXLive release it belongs to. 55# Normally the module's PV reflects the TeXLive release it belongs to.
55# If this is not the case, TL_PV takes the version number for the 56# If this is not the case, TL_PV takes the version number for the
56# needed app-text/texlive-core. 57# needed app-text/texlive-core.
66 67
67COMMON_DEPEND=">=app-text/texlive-core-${TL_PV:-${PV}}" 68COMMON_DEPEND=">=app-text/texlive-core-${TL_PV:-${PV}}"
68 69
69IUSE="source" 70IUSE="source"
70 71
71# TeX Live 2008 was providing .tar.lzma files of CTAN packages. 72# Starting from TeX Live 2009, upstream provides .tar.xz modules.
72# For 2009 and 2010 they are now .tar.xz
73if [ "${PV#2008}" != "${PV}" ]; then
74 PKGEXT=tar.lzma 73PKGEXT=tar.xz
75 DEPEND="${COMMON_DEPEND} 74DEPEND="${COMMON_DEPEND}
76 || ( app-arch/xz-utils app-arch/lzma-utils )"
77else
78 PKGEXT=tar.xz
79 DEPEND="${COMMON_DEPEND}
80 app-arch/xz-utils" 75 app-arch/xz-utils"
81fi
82 76
83for i in ${TEXLIVE_MODULE_CONTENTS}; do 77for i in ${TEXLIVE_MODULE_CONTENTS}; do
84 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.${PKGEXT}" 78 SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.${PKGEXT}"
85done 79done
86 80
103RDEPEND="${COMMON_DEPEND}" 97RDEPEND="${COMMON_DEPEND}"
104 98
105[ -z "${PN##*documentation*}" ] || IUSE="${IUSE} doc" 99[ -z "${PN##*documentation*}" ] || IUSE="${IUSE} doc"
106 100
107S="${WORKDIR}" 101S="${WORKDIR}"
108
109if [ "${PV#2008}" = "${PV}" ]; then
110 102
111# @FUNCTION: texlive-module_src_unpack 103# @FUNCTION: texlive-module_src_unpack
112# @DESCRIPTION: 104# @DESCRIPTION:
113# Only for TeX Live 2009 and later. 105# Only for TeX Live 2009 and later.
114# Gives tar.xz unpack support until we can use an EAPI with that support. 106# Gives tar.xz unpack support until we can use an EAPI with that support.
142 for i in $(<"${T}/reloclist"); do 134 for i in $(<"${T}/reloclist"); do
143 mv "${i}" "${RELOC_TARGET}"/$(dirname "${i}") || die "failed to relocate ${i} to ${RELOC_TARGET}/$(dirname ${i})" 135 mv "${i}" "${RELOC_TARGET}"/$(dirname "${i}") || die "failed to relocate ${i} to ${RELOC_TARGET}/$(dirname ${i})"
144 done 136 done
145} 137}
146 138
147fi
148
149# @FUNCTION: texlive-module_add_format 139# @FUNCTION: texlive-module_add_format
150# @DESCRIPTION: 140# @DESCRIPTION:
151# Creates/appends to a format.${PN}.cnf file for fmtutil. 141# Creates/appends to a format.${PN}.cnf file for fmtutil.
152# It parses the AddFormat directive of tlpobj files to create it. 142# It parses the AddFormat directive of tlpobj files to create it.
153# This will make fmtutil generate the formats when asked and allow the remaining 143# This will make fmtutil generate the formats when asked and allow the remaining
256texlive-module_src_compile() { 246texlive-module_src_compile() {
257 # Generate config files from the tlpobj files provided by TeX Live 2008 and 247 # Generate config files from the tlpobj files provided by TeX Live 2008 and
258 # later 248 # later
259 for i in "${S}"/tlpkg/tlpobj/*; 249 for i in "${S}"/tlpkg/tlpobj/*;
260 do 250 do
261 grep '^execute ' "${i}" | sed -e 's/^execute //' | tr ' \t' '@@' |sort|uniq >> "${T}/jobs" 251 grep '^execute ' "${i}" | sed -e 's/^execute //' | tr ' \t' '##' |sort|uniq >> "${T}/jobs"
262 done 252 done
263 253
264 for i in $(<"${T}/jobs"); 254 for i in $(<"${T}/jobs");
265 do 255 do
266 j="$(echo $i | tr '@' ' ')" 256 j="$(echo $i | tr '#' ' ')"
267 command=${j%% *} 257 command=${j%% *}
268 parameter=${j#* } 258 parameter=${j#* }
269 case "${command}" in 259 case "${command}" in
270 addMap) 260 addMap)
271 echo "Map ${parameter}" >> "${S}/${PN}.cfg";; 261 echo "Map ${parameter}" >> "${S}/${PN}.cfg";;
272 addMixedMap) 262 addMixedMap)
273 echo "MixedMap ${parameter}" >> "${S}/${PN}.cfg";; 263 echo "MixedMap ${parameter}" >> "${S}/${PN}.cfg";;
264 addKanjiMap)
265 echo "KanjiMap ${parameter}" >> "${S}/${PN}.cfg";;
274 addDvipsMap) 266 addDvipsMap)
275 echo "p +${parameter}" >> "${S}/${PN}-config.ps";; 267 echo "p +${parameter}" >> "${S}/${PN}-config.ps";;
276 addDvipdfmMap) 268 addDvipdfmMap)
277 echo "f ${parameter}" >> "${S}/${PN}-config";; 269 echo "f ${parameter}" >> "${S}/${PN}-config";;
278 AddHyphen) 270 AddHyphen)
279 texlive-module_make_language_def_lines "$parameter" 271 texlive-module_make_language_def_lines "$parameter"
280 texlive-module_make_language_dat_lines "$parameter" 272 texlive-module_make_language_dat_lines "$parameter"
281 [ "${PV#2008}" = "${PV}" -a "${PV#2009}" = "${PV}" ] && texlive-module_make_language_lua_lines "$parameter" 273 texlive-module_make_language_lua_lines "$parameter"
282 ;; 274 ;;
283 AddFormat) 275 AddFormat)
284 texlive-module_add_format "$parameter";; 276 texlive-module_add_format "$parameter";;
285 BuildFormat) 277 BuildFormat)
286 einfo "Format $parameter already built.";; 278 einfo "Format $parameter already built.";;
293 285
294 # Build format files 286 # Build format files
295 for i in texmf/fmtutil/format*.cnf; do 287 for i in texmf/fmtutil/format*.cnf; do
296 if [ -f "${i}" ]; then 288 if [ -f "${i}" ]; then
297 einfo "Building format ${i}" 289 einfo "Building format ${i}"
290 [ -d texmf-var ] || mkdir texmf-var
291 [ -d texmf-var/web2c ] || mkdir texmf-var/web2c
298 VARTEXFONTS="${T}/fonts" TEXMFHOME="${S}/texmf:${S}/texmf-dist:${S}/texmf-var"\ 292 VARTEXFONTS="${T}/fonts" TEXMFHOME="${S}/texmf:${S}/texmf-dist:${S}/texmf-var"\
299 env -u TEXINPUTS fmtutil --cnffile "${i}" --fmtdir "${S}/texmf-var/web2c" --all\ 293 env -u TEXINPUTS fmtutil --cnffile "${i}" --fmtdir "${S}/texmf-var/web2c" --all\
300 || die "failed to build format ${i}" 294 || die "failed to build format ${i}"
301 fi 295 fi
302 done 296 done
352 insinto /etc/texmf/language.dat.lua.d 346 insinto /etc/texmf/language.dat.lua.d
353 doins "${S}/language.${PN}.dat.lua" 347 doins "${S}/language.${PN}.dat.lua"
354 fi 348 fi
355 349
356 [ -n "${TEXLIVE_MODULE_BINSCRIPTS}" ] && dobin_texmf_scripts ${TEXLIVE_MODULE_BINSCRIPTS} 350 [ -n "${TEXLIVE_MODULE_BINSCRIPTS}" ] && dobin_texmf_scripts ${TEXLIVE_MODULE_BINSCRIPTS}
351 if [ -n "${TEXLIVE_MODULE_BINLINKS}" ] ; then
352 for i in ${TEXLIVE_MODULE_BINLINKS} ; do
353 [ -f "${ED}/usr/bin/${i%:*}" ] || die "Trying to install an invalid BINLINK. This should not happen. Please file a bug."
354 dosym ${i%:*} /usr/bin/${i#*:}
355 done
356 fi
357 357
358 texlive-common_handle_config_files 358 texlive-common_handle_config_files
359} 359}
360 360
361# @FUNCTION: texlive-module_pkg_postinst 361# @FUNCTION: texlive-module_pkg_postinst
377 377
378texlive-module_pkg_postrm() { 378texlive-module_pkg_postrm() {
379 etexmf-update 379 etexmf-update
380} 380}
381 381
382if [ "${PV#2008}" != "${PV}" ]; then
383EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_postrm
384else
385EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst pkg_postrm 382EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst pkg_postrm
386fi

Legend:
Removed from v.1.60  
changed lines
  Added in v.1.65

  ViewVC Help
Powered by ViewVC 1.1.20