diff options
author | Alexis Ballier <aballier@gentoo.org> | 2007-10-14 07:47:10 +0000 |
---|---|---|
committer | Alexis Ballier <aballier@gentoo.org> | 2007-10-14 07:47:10 +0000 |
commit | 2b40a41157b653a18c2ba6e2707cc8010da81e05 (patch) | |
tree | 5ddc4161856ef53883e8f839954f0b4e5f7d381e /eclass/texlive-module.eclass | |
parent | Rev bump java-config to fix SyntaxError that occurs with python2.4 (diff) | |
download | historical-2b40a41157b653a18c2ba6e2707cc8010da81e05.tar.gz historical-2b40a41157b653a18c2ba6e2707cc8010da81e05.tar.bz2 historical-2b40a41157b653a18c2ba6e2707cc8010da81e05.zip |
add texlive module eclass
Diffstat (limited to 'eclass/texlive-module.eclass')
-rw-r--r-- | eclass/texlive-module.eclass | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/eclass/texlive-module.eclass b/eclass/texlive-module.eclass new file mode 100644 index 000000000000..657217d2de1f --- /dev/null +++ b/eclass/texlive-module.eclass @@ -0,0 +1,116 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/eclass/texlive-module.eclass,v 1.1 2007/10/14 07:47:10 aballier Exp $ + +# +# Original Author: Alexis Ballier <aballier@gentoo.org> +# Purpose: Provide generic install functions so that modular texlive's texmf ebuilds will +# only have to inherit this eclass. +# Ebuilds have to provide TEXLIVE_MODULE_CONTENTS variable that contains the list +# of packages that it will install. +# TEXLIVE_MODULE_CONTENTS will be expanded to SRC_URI : +# foo -> texlive-module-foo-${PV}.zip +# What is assumed is that it unpacks texmf and texmf-dist directories to +# ${WORKDIR}. +# + +inherit texlive-common + +HOMEPAGE="http://www.tug.org/texlive/" + +for i in ${TEXLIVE_MODULE_CONTENTS}; do + SRC_URI="${SRC_URI} mirror://gentoo/texlive-module-${i}-${PV}.zip" +done + +COMMON_DEPEND=">=app-text/texlive-core-${PV} + ${TEXLIVE_MODULES_DEPS}" + +DEPEND="${COMMON_DEPEND} + app-arch/unzip" + +RDEPEND="${COMMON_DEPEND}" + +IUSE="doc" + +S="${WORKDIR}" + +# src_compile, exported function: +# Will look for format.foo.cnf and build foo format files using fmtutil +# (provided by texlive-core). The compiled format files will be sent to +# texmf-var/web2c, like fmtutil defaults to but with some trick to stay in the +# sandbox +# The next step is to generate config files that are to be installed in +# /etc/texmf; texmf-update script will take care of merging the different config +# files for different packages in a single one used by the whole tex installation. + +texlive-module_src_compile() { + # Build format files + for i in texmf/fmtutil/format*.cnf; do + if [ -f "${i}" ]; then + einfo "Building format ${i}" + TEXMFHOME="${S}/texmf:${S}/texmf-dist"\ + fmtutil --cnffile "${i}" --fmtdir "${S}/texmf-var/web2c" --all\ + || die "failed to build format ${i}" + fi + done + + # Generate config files + for i in "${S}"/texmf/lists/*; + do + grep '^!' "${i}" | tr ' ' '=' |sort|uniq >> "${T}/jobs" + done + + for j in $(<"${T}/jobs"); + do + command=$(echo ${j} | sed 's/.\(.*\)=.*/\1/') + parameter=$(echo ${j} | sed 's/.*=\(.*\)/\1/') + case "${command}" in + addMap) + echo "Map ${parameter}" >> "${S}/${PN}.cfg";; + addMixedMap) + echo "MixedMap ${parameter}" >> "${S}/${PN}.cfg";; + addDvipsMap) + echo "p +${parameter}" >> "${S}/${PN}-config.ps";; + addDvipdfmMap) + echo "f ${parameter}" >> "${S}/${PN}-config";; + esac + done +} + +# src_install, exported function: +# Install texmf and config files to the system + +texlive-module_src_install() { + insinto /usr/share + [ -d texmf ] && doins -r texmf + [ -d texmf-dist ] && doins -r texmf-dist + [ -d texmf-var ] && doins -r texmf-var + use doc && [ -d texmf-doc ] && doins -r texmf-doc + + insinto /etc/texmf/updmap.d + [ -f "${S}/${PN}.cfg" ] && doins "${S}/${PN}.cfg" + insinto /etc/texmf/dvips/config + [ -f "${S}/${PN}-config.ps" ] && doins "${S}/${PN}-config.ps" + insinto /etc/texmf/dvipdfm/config + [ -f "${S}/${PN}-config" ] && doins "${S}/${PN}-config" + + texlive-common_handle_config_files +} + +# pkg_postinst and pkg_postrm, exported functions: +# run texmf-update to ensure the tex installation is consistent with the +# installed texmf trees. + +texlive-module_pkg_postinst() { + if [ "$ROOT" = "/" ] ; then + /usr/sbin/texmf-update + fi +} + +texlive-module_pkg_postrm() { + if [ "$ROOT" = "/" ] ; then + /usr/sbin/texmf-update + fi +} + +EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_postrm |