# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/tetex.eclass,v 1.60 2009/01/06 19:25:20 grobian 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 distributions. This shouldn't be # inherited directly in any ebuilds. It should be inherited from # tetex-{2,3}.eclass. inherit eutils flag-o-matic toolchain-funcs EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst if [ -z "${TETEX_PV}" ] ; then TETEX_PV=${PV} fi IUSE="X doc tk" S=${WORKDIR}/tetex-src-${TETEX_PV} TETEX_SRC="tetex-src-${TETEX_PV}.tar.gz" TETEX_TEXMF="tetex-texmf-${TETEX_PV}.tar.gz" TETEX_TEXMF_SRC="tetex-texmfsrc-${TETEX_PV}.tar.gz" DESCRIPTION="a complete TeX distribution" HOMEPAGE="http://tug.org/teTeX/" SRC_PATH_TETEX=ftp://cam.ctan.org/tex-archive/systems/unix/teTeX/2.0/distrib SRC_URI="${SRC_PATH_TETEX}/${TETEX_SRC} ${SRC_PATH_TETEX}/${TETEX_TEXMF} ${SRC_PATH_TETEX}/${TETEX_TEXMF_SRC} mirror://gentoo/tetex-${TETEX_PV}-gentoo.tar.gz http://dev.gentoo.org/~usata/distfiles/tetex-${TETEX_PV}-gentoo.tar.gz" SLOT="0" LICENSE="GPL-2" KEYWORDS="~ia64 ~x86 ~ppc ~sparc ~alpha ~amd64" # tetex, ptex, cstetex must not block itself, fix for bug 121727 if [[ "${PN}" = "tetex" ]] ; then # >=app-text/ptex-3.1.9 work with app-text/tetex DEPEND="!<app-text/ptex-3.1.9" fi if [[ "${PN}" = "ptex" ]] ; then # >=app-text/ptex-3.1.9 does not co-exist with tetex-2 DEPEND="!<app-text/tetex-3" fi if [[ "${PN}" = "cstetex" ]] ; then DEPEND="!app-text/ptex !app-text/tetex" fi DEPEND="${DEPEND} sys-apps/ed sys-libs/zlib X? ( x11-libs/libXmu x11-libs/libXp x11-libs/libXpm x11-libs/libICE x11-libs/libSM x11-libs/libXaw x11-libs/libXfont ) >=media-libs/libpng-1.2.1 sys-libs/ncurses >=net-libs/libwww-5.3.2-r1" RDEPEND="${DEPEND} !app-text/dvipdfm !dev-tex/currvita >=dev-lang/perl-5.2 tk? ( dev-perl/perl-tk ) dev-util/dialog" tetex_src_unpack() { [ -z "$1" ] && tetex_src_unpack all while [ "$1" ]; do case $1 in unpack) unpack ${TETEX_SRC} unpack tetex-${TETEX_PV}-gentoo.tar.gz mkdir ${S}/texmf; cd ${S}/texmf umask 022 unpack ${TETEX_TEXMF} ;; patch) # Do not run config. Also fix local texmf tree. cd ${S} for p in ${WORKDIR}/patches/* ; do epatch $p done ;; all) tetex_src_unpack unpack patch ;; esac shift done } tetex_src_compile() { filter-flags "-fstack-protector" # filter -Os; bug #74708. # replace by -O2 instead, bug #191244 replace-flags -Os -O2 einfo "Building teTeX" local xdvik if useq X ; then addwrite /var/cache/fonts xdvik="--with-xdvik --with-oxdvik" #xdvik="$xdvik --with-system-t1lib" else xdvik="--without-xdvik --without-oxdvik" fi econf --bindir=/usr/bin \ --datadir=${S} \ --with-system-wwwlib \ --with-libwww-include=/usr/include/w3c-libwww \ --with-system-ncurses \ --with-system-pnglib \ --without-texinfo \ --without-dialog \ --without-texi2html \ --with-system-zlib \ --disable-multiplatform \ --with-epsfwin \ --with-mftalkwin \ --with-regiswin \ --with-tektronixwin \ --with-unitermwin \ --with-ps=gs \ --enable-ipc \ --with-etex \ $(use_with X x) \ ${xdvik} \ ${TETEX_ECONF} || die emake -j1 CC="$(tc-getCC)" CXX="$(tc-getCXX)" texmf=${TEXMF_PATH:-/usr/share/texmf} || die "make teTeX failed" } tetex_src_install() { if [ -z "$1" ]; then tetex_src_install all fi while [ "$1" ]; do case $1 in base) dodir /usr/share/ # Install texmf files einfo "Installing texmf ..." cp -Rv texmf ${D}/usr/share # Install teTeX files einfo "Installing teTeX ..." dodir ${TEXMF_PATH:-/usr/share/texmf}/web2c einstall bindir=${D}/usr/bin texmf=${D}${TEXMF_PATH:-/usr/share/texmf} || die dosbin ${T}/texmf-update ;; doc) dodoc PROBLEMS README docinto texk dodoc texk/ChangeLog texk/README docinto kpathesa cd ${S}/texk/kpathsea dodoc README* NEWS PROJECTS HIER docinto dviljk cd ${S}/texk/dviljk dodoc AUTHORS README NEWS docinto dvipsk cd ${S}/texk/dvipsk dodoc AUTHORS ChangeLog INSTALLATION README docinto makeindexk cd ${S}/texk/makeindexk dodoc CONTRIB COPYING NEWS NOTES PORTING README docinto ps2pkm cd ${S}/texk/ps2pkm dodoc ChangeLog CHANGES.type1 INSTALLATION README* docinto web2c cd ${S}/texk/web2c dodoc AUTHORS ChangeLog NEWS PROJECTS README #docinto xdvik #cd ${S}/texk/xdvik #dodoc BUGS FAQ README* # move docs to /usr/share/doc/${PF} if useq doc ; then dodir /usr/share/doc/${PF} mv ${D}/usr/share/texmf/doc/* \ ${D}/usr/share/doc/${PF} \ || die "mv doc failed." cd ${D}/usr/share/texmf rmdir doc ln -s ../doc/${PF} doc \ || die "ln -s doc failed." cd - else rm -rf ${D}/usr/share/texmf/doc fi ;; fixup) #fix for conflicting readlink binary: rm -f ${D}/bin/readlink rm -f ${D}/usr/bin/readlink #add /var/cache/fonts directory dodir /var/cache/fonts #fix for lousy upstream permisssions on /usr/share/texmf files #NOTE: do not use fowners, as its not recursive ... einfo "Fixing permissions ..." # root group name doesn't necessarily exist on non-Linux chown -R 0:0 ${D}/usr/share/texmf find ${D} -name "ls-R" -exec rm {} \; ;; all) tetex_src_install base doc fixup ;; esac shift done } tetex_pkg_postinst() { if [ "$ROOT" = "/" ] ; then /usr/sbin/texmf-update fi if [ -d "/etc/texmf" ] ; then elog elog "If you have configuration files in /etc/texmf to merge," elog "please update them and run /usr/sbin/texmf-update." elog fi }