215 lines
5.9 KiB
Bash
215 lines
5.9 KiB
Bash
# Copyright 1999-2011 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/eclass/tetex-3.eclass,v 1.24 2011/12/27 17:55:12 fauli Exp $
|
|
#
|
|
# Author: Jaromir Malenko <malenko@email.cz>
|
|
# Author: Mamoru KOMACHI <usata@gentoo.org>
|
|
# Author: Martin Ehmsen <ehmsen@gentoo.org>
|
|
# Author: Alexandre Buisse <nattfodd@gentoo.org>
|
|
#
|
|
# A generic eclass to install tetex 3.x distributions.
|
|
|
|
TEXMF_PATH=/var/lib/texmf
|
|
|
|
inherit tetex
|
|
|
|
EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_preinst pkg_postinst
|
|
|
|
IUSE="X Xaw3d motif neXt"
|
|
|
|
DEPEND="X? ( motif? ( >=x11-libs/openmotif-2.3 )
|
|
!motif? ( neXt? ( x11-libs/neXtaw )
|
|
!neXt? ( Xaw3d? ( x11-libs/libXaw3d ) ) )
|
|
!app-text/xdvik
|
|
)
|
|
!dev-tex/memoir
|
|
!dev-tex/lineno
|
|
!dev-tex/SIunits
|
|
!dev-tex/floatflt
|
|
!dev-tex/g-brief
|
|
!dev-tex/koma-script"
|
|
|
|
RDEPEND="${DEPEND}"
|
|
|
|
tetex-3_pkg_setup() {
|
|
ewarn
|
|
ewarn "teTeX 3.0 ebuild will remove config files stored in /usr/share/texmf."
|
|
ewarn "Please make a backup before upgrading if you changed anything."
|
|
ewarn
|
|
|
|
ebeep
|
|
epause
|
|
}
|
|
|
|
tetex-3_src_unpack() {
|
|
|
|
tetex_src_unpack
|
|
|
|
# create update script
|
|
cat >${T}/texmf-update<<'EOF'
|
|
#!/bin/bash
|
|
#
|
|
# Utility to update Gentoo teTeX distribution configuration files
|
|
#
|
|
|
|
PATH=/bin:/usr/bin
|
|
|
|
# Fix for all those with altered umask for root
|
|
umask 022
|
|
|
|
# Make sure we have a correct environment, bug #30432
|
|
# The list of env. vars is taken from the INSTALL file
|
|
for texvar in AFMFONTS BIBINPUTS BSTINPUTS DVILJFONTS DVIPSFONTS \
|
|
DVIPSHEADERS GFFONTS GLYPHFONTS INDEXSTYLE MFBASES MFINPUTS \
|
|
MFPOOL MFTINPUTS MPINPUTS MPMEMS MPPOOL MPSUPPORT OCPINPUTS \
|
|
OFMFONTS OPLFONTS OTPINPUTS OVFFONTS OVPFONTS PKFONTS PSHEADERS \
|
|
T1FONTS T1INPUTS TEXBIB TEXCONFIG TEXDOCS TEXFONTMAPS TEXFONTS \
|
|
TEXFORMATS TEXINDEXSTYLE TEXINPUTS TEXMFCNF TEXMFDBS TEXMFINI \
|
|
TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS TEXSOURCES TFMFONTS TRFONTS \
|
|
VFFONTS XDVIFONTS XDVIVFS ; do
|
|
|
|
if [ "${!texvar}" ]; then
|
|
if ! $(echo ${!texvar} | grep '^:\|::\|:$' &>/dev/null) ; then
|
|
export ${texvar}="${!texvar}:"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ "$TEXINPUTS" ]; then
|
|
if $(echo ${TEXINPUTS} | grep '/usr/share/texmf' &>/dev/null) ; then
|
|
export TEXINPUTS=$(echo ${TEXINPUTS} | sed -e 's|/usr/share/texmf/*:\?||g')
|
|
elif $(echo ${TEXINPUTS} | grep '/var/lib/texmf' &>/dev/null) ; then
|
|
export TEXINPUTS=$(echo ${TEXINPUTS} | sed -e 's|/var/lib/texmf/*:\?||g')
|
|
fi
|
|
fi
|
|
|
|
for conf in texmf.cnf fmtutil.cnf updmap.cfg
|
|
do
|
|
if [ -d "/etc/texmf/${conf/.*/.d}" ]
|
|
then
|
|
echo "Generating /etc/texmf/web2c/${conf} from /etc/texmf/${conf/.*/.d} ..."
|
|
cat /etc/texmf/${conf/.*/.d}/* > "/etc/texmf/web2c/${conf}"
|
|
fi
|
|
done
|
|
|
|
# configure
|
|
echo "Configuring teTeX ..."
|
|
mktexlsr &>/dev/null
|
|
texconfig-sys init &>/dev/null
|
|
texconfig-sys confall &>/dev/null
|
|
texconfig-sys font rw &>/dev/null
|
|
texconfig-sys font vardir /var/cache/fonts &>/dev/null
|
|
updmap-sys &>/dev/null
|
|
|
|
# generate
|
|
echo "Generating format files ..."
|
|
fmtutil-sys --missing &>/dev/null
|
|
echo
|
|
echo "Use 'texconfig font ro' to disable font generation for users"
|
|
echo
|
|
EOF
|
|
|
|
# need to fix up the hyperref driver, see bug #31967
|
|
sed -i -e "/providecommand/s/hdvips/hypertex/" \
|
|
${S}/texmf/tex/latex/hyperref/hyperref.cfg
|
|
}
|
|
|
|
tetex-3_src_compile() {
|
|
sed -i -e "/mktexlsr/,+3d" \
|
|
-e "s/\(updmap-sys\)/\1 --nohash/" \
|
|
Makefile.in || die
|
|
|
|
use amd64 && replace-flags "-O3" "-O2"
|
|
|
|
if use X ; then
|
|
if use motif ; then
|
|
toolkit="motif"
|
|
elif use neXt ; then
|
|
toolkit="neXtaw"
|
|
elif use Xaw3d ; then
|
|
toolkit="xaw3d"
|
|
else
|
|
toolkit="xaw"
|
|
fi
|
|
|
|
TETEX_ECONF="${TETEX_ECONF} --with-xdvi-x-toolkit=${toolkit}"
|
|
fi
|
|
|
|
tetex_src_compile
|
|
}
|
|
|
|
tetex-3_src_install() {
|
|
|
|
tetex_src_install
|
|
|
|
dodir /etc/env.d
|
|
echo 'CONFIG_PROTECT_MASK="/etc/texmf/web2c"' > ${D}/etc/env.d/98tetex
|
|
# populate /etc/texmf
|
|
keepdir /etc/texmf/web2c
|
|
cd ${D}/usr/share/texmf # not ${TEXMF_PATH}
|
|
for d in $(find . -name config -type d | sed -e "s:\./::g") ; do
|
|
dodir /etc/texmf/${d}
|
|
for f in $(find ${D}usr/share/texmf/$d -maxdepth 1 -mindepth 1); do
|
|
mv $f ${D}/etc/texmf/$d || die "mv $f failed"
|
|
dosym /etc/texmf/$d/$(basename $f) /usr/share/texmf/$d/$(basename $f)
|
|
done
|
|
done
|
|
cd -
|
|
cd ${D}${TEXMF_PATH}
|
|
for f in $(find . -name '*.cnf' -o -name '*.cfg' -type f | sed -e "s:\./::g") ; do
|
|
if [ "${f/config/}" != "${f}" ] ; then
|
|
continue
|
|
fi
|
|
dodir /etc/texmf/$(dirname $f)
|
|
mv ${D}${TEXMF_PATH}/$f ${D}/etc/texmf/$(dirname $f) || die "mv $f failed."
|
|
dosym /etc/texmf/$f ${TEXMF_PATH}/$f
|
|
done
|
|
|
|
# take care of updmap.cfg, fmtutil.cnf and texmf.cnf
|
|
dodir /etc/texmf/{updmap.d,fmtutil.d,texmf.d}
|
|
#cp ${D}/usr/share/texmf/web2c/updmap.cfg ${D}/etc/texmf/updmap.d/00updmap.cfg
|
|
dosym /etc/texmf/web2c/updmap.cfg ${TEXMF_PATH}/web2c/updmap.cfg
|
|
mv ${D}/usr/share/texmf/web2c/updmap.cfg ${D}/etc/texmf/updmap.d/00updmap.cfg
|
|
mv ${D}/etc/texmf/web2c/fmtutil.cnf ${D}/etc/texmf/fmtutil.d/00fmtutil.cnf
|
|
mv ${D}/etc/texmf/web2c/texmf.cnf ${D}/etc/texmf/texmf.d/00texmf.cnf
|
|
|
|
# xdvi
|
|
if use X ; then
|
|
dodir /etc/X11/app-defaults /etc/texmf/xdvi
|
|
mv ${D}${TEXMF_PATH}/xdvi/XDvi ${D}/etc/X11/app-defaults || die "mv XDvi failed"
|
|
dosym /etc/X11/app-defaults/XDvi ${TEXMF_PATH}/xdvi/XDvi
|
|
fi
|
|
cd -
|
|
}
|
|
|
|
tetex-3_pkg_preinst() {
|
|
|
|
ewarn "Removing ${ROOT}usr/share/texmf/web2c"
|
|
rm -rf "${ROOT}usr/share/texmf/web2c"
|
|
|
|
# take care of symlinks problems, see bug 120515
|
|
# this can be removed when that is not an issue anymore
|
|
# i.e., all users with problem has got them fixed
|
|
for conf in updmap.d/00updmap.cfg texmf.d/00texmf.cnf fmtutil.d/00fmtutil.cnf
|
|
do
|
|
if [ -L "${ROOT}etc/texmf/${conf}" ]
|
|
then
|
|
ewarn "Removing ${ROOT}etc/texmf/${conf}"
|
|
rm -f "${ROOT}etc/texmf/${conf}"
|
|
fi
|
|
done
|
|
|
|
# take care of config protection, upgrade from <=tetex-2.0.2-r4
|
|
for conf in updmap.cfg texmf.cnf fmtutil.cnf
|
|
do
|
|
if [ ! -d "${ROOT}etc/texmf/${conf/.*/.d}" -a -f "${ROOT}etc/texmf/${conf}" ]
|
|
then
|
|
mkdir "${ROOT}etc/texmf/${conf/.*/.d}"
|
|
cp "${ROOT}etc/texmf/${conf}" "${ROOT}etc/texmf/00${conf/.*/.d}"
|
|
fi
|
|
done
|
|
}
|
|
|
|
tetex-3_pkg_postinst() {
|
|
tetex_pkg_postinst
|
|
}
|