# $Id: PKGBUILD 159191 2012-05-17 14:36:30Z remy $
# Maintainer: Rémy Oudompheng <remy@archlinux.org>
# Contributor: francois <francois.archlinux.org>
# Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu>
# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>

pkgname=texlive-bin-libre
pkgver=2011.3
_luatex_ver=0.70.1
pkgrel=7
pkgdesc="TeX Live binaries"
license=('GPL')
arch=('i686' 'x86_64' 'mips64el')
depends=('t1lib' 'gd' 'poppler' 'libsigsegv' 'zziplib')
makedepends=('perl' 'clisp' 'ffcall')
optdepends=('ed: for texconfig')
provides=('lcdf-typetools' 'kpathsea' 'xindy' 'pdfjam' 'texlive-bin')
conflicts=('pdfjam' 'texlive-bin')
replaces=('texlive-bin')
options=('!libtool' '!strip')
url='http://tug.org/texlive/'
install="texlive.install"
source=('texmf.cnf'
        'fix-fontforge-encoding.patch'
        '09-texlive-fonts.conf'
        'luatex-poppler-0.20.patch'
        'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-source-20111210.tar.xz'
        'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-texmf-20111210.tar.xz'
        # "http://foundry.supelec.fr/gf/download/frsrelease/392/1730/luatex-beta-${_luatex_ver}.tar.bz2"
        'ftp://ftp.archlinux.org/other/texlive/luatex-svn4356.tar.xz'
)
backup=(etc/texmf/web2c/texmf.cnf \
  etc/texmf/chktex/chktexrc \
	etc/texmf/web2c/mktex.cnf \
	etc/texmf/web2c/updmap.cfg \
	etc/texmf/web2c/fmtutil.cnf \
	etc/texmf/tex/generic/config/language.dat \
	etc/texmf/tex/generic/config/language.def \
	etc/texmf/tex/generic/config/pdftexconfig.tex \
	etc/texmf/ttf2pk/ttf2pk.cfg \
	etc/texmf/dvips/config/config.ps \
	etc/texmf/dvipdfmx/dvipdfmx.cfg \
	etc/texmf/dvipdfm/config/config \
	etc/texmf/xdvi/XDvi)

md5sums=('220a4f4cc0d915bf8fcbcb553dcee1ae'
         'bfb9716aa00c86c08cd31e5b32edeb98'
         '393a4bf67adc7ca5df2b386759d1a637'
         '52ce57c02e30a25036b6a3175c566b78'
         'c7bb38c0ab30c2b64cf4cf83a736b35c'
         '5d8f06a3683ce88a3c33e15f5ba6a858'
         'e7f0197559ef865d8c01683dab3b8526')

build() {
   if [ "${CARCH}" != "i686" ]; then
     export CFLAGS="${CFLAGS} -fPIC"
     export CXXFLAGS="${CXXFLAGS} -fPIC"
   fi

   cd "$srcdir"
   # Building LuaTeX
   # cd luatex-beta-${_luatex_ver}
   cd luatex
   patch -p0 -i ../fix-fontforge-encoding.patch
   patch -Np0 -i ../luatex-poppler-0.20.patch
  (cd source && ./texk/web2c/luatexdir/getluatexsvnversion.sh)
   mkdir build
   cd build
   ../source/configure --prefix=/usr -C \
     --disable-native-texlive-build \
     --with-banner-add="/Parabola GNU/Linux-libre" \
    --enable-cxx-runtime-hack \
    --disable-all-pkgs \
    --disable-dump-share \
    --disable-ptex \
    --enable-luatex  \
    --without-system-ptexenc \
    --without-system-graphite \
    --without-system-icu \
    --without-system-kpathsea \
    --with-system-freetype2 \
    --with-system-poppler \
    --with-freetype2-libdir=/usr/lib \
    --with-freetype2-include=/usr/include/freetype2 \
    --with-system-gd \
    --with-system-libpng \
    --without-system-teckit \
    --with-system-zlib \
    --with-system-zziplib \
    --with-system-t1lib \
    --disable-shared \
    --disable-largefile \
    --disable-ipc \
    --without-mf-x-toolkit \
    --without-x
   make
   make -C libs/obsdcompat
   make -C texk/kpathsea
   make -C texk/web2c luatex

   cd "$srcdir"
   # this patch removes spurious error message with locale "xx_YY.utf8"
   patch -p0 -i fix-fontforge-encoding.patch
   # t4ht expects to be un /usr/share/texmf/bin/t4ht (FS#27251)
   sed -i s/SELFAUTOPARENT/TEXMFROOT/ source/texk/tex4htk/t4ht.c
   #############################################################
   ### configure
   cd source
   ## prevent compiling Xdvi with libXp
   sed -i~ 's|-lXp ||' texk/xdvik/configure
   test ! -d Work && mkdir Work
   cd Work
   echo "--> Initial configuration..."
   # we use temporary prefix to avoid messing the existing
   # $pkgdir/usr/share/texmf tree
   # system zlib is disabled due to issues with zlib 1.2.6 (FS#28221)
   ../configure --prefix=/usr -C \
     --sysconfdir=/etc \
     --datarootdir=/usr/share \
     --datadir=/usr/share \
     --mandir=/usr/share/man \
     --disable-native-texlive-build \
     --with-banner-add="/Parabola GNU/Linux-libre" \
     --disable-multiplatform \
     --disable-dialog \
     --disable-psutils \
     --disable-t1utils \
     --disable-bibtexu \
     --disable-xz \
     --without-system-zlib \
     --without-system-zziplib \
     --without-system-pnglib \
     --with-system-ncurses \
     --with-system-t1lib \
     --without-system-gd \
     --without-system-poppler \
     --without-system-xpdf \
     --without-system-freetype2 \
     --without-system-graphite \
     --with-freetype2-libdir=/usr/lib \
     --with-freetype2-include=/usr/include/freetype2 \
     --with-xdvi-x-toolkit=xaw \
     --disable-dump-share \
     --disable-aleph \
     --disable-luatex \
     --with-clisp-runtime=default \
     --enable-xindy --disable-xindy-rules --disable-xindy-docs
   #############################################################
   ### make
   echo "-------------------------------------------------------"
   echo "--> Building the whole beast ..."
   echo "-------------------------------------------------------"
   make
}

package() {
   cd "$srcdir"
   #############################################################
   ### install texmf tree
   echo "-------------------------------------------------------"
   echo "--> installing the texmf tree"
   echo "-------------------------------------------------------"
   install -m755 -d "$pkgdir"/usr/share
   cp -r texmf "$pkgdir"/usr/share/
   install -d -m755 "$pkgdir"/etc/texmf/web2c
   install -d -m755 "$pkgdir"/etc/texmf/chktex
   install -d -m755 "$pkgdir"/etc/texmf/dvips/config
   install -d -m755 "$pkgdir"/etc/texmf/dvipdfm/config
   install -d -m755 "$pkgdir"/etc/texmf/dvipdfmx
   install -d -m755 "$pkgdir"/etc/texmf/tex/generic/config
   install -d -m755 "$pkgdir"/etc/texmf/ttf2pk
   install -d -m755 "$pkgdir"/etc/texmf/xdvi
   install -d -m755 "$pkgdir"/etc/fonts/conf.avail
   install -m644 "$srcdir"/09-texlive-fonts.conf "$pkgdir"/etc/fonts/conf.avail/
   # move man files to /usr/share/man
   for i in 1 5; do
     install -d -m755 "$pkgdir"/usr/share/man/man$i
     mv "$pkgdir"/usr/share/texmf/doc/man/man$i/*.$i "$pkgdir"/usr/share/man/man$i/
   done
   # move info files to /usr/share/info
   install -d -m755 "$pkgdir"/usr/share/info
   mv "$pkgdir"/usr/share/texmf/doc/info/*.info "$pkgdir"/usr/share/info/
   rm -rf "$pkgdir"/usr/share/texmf/doc/{man,info}
   # copy config files to $TEXMFCONFIG tree
   cp -a "$pkgdir"/usr/share/texmf/chktex/chktexrc \
     	"$pkgdir"/etc/texmf/chktex/
   cp -a "$pkgdir"/usr/share/texmf/web2c/mktex.cnf \
   	  "$pkgdir"/etc/texmf/web2c/
   cp -a "$pkgdir"/usr/share/texmf/web2c/updmap.cfg \
   	  "$pkgdir"/etc/texmf/web2c/
   cp -a "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf \
   	  "$pkgdir"/etc/texmf/web2c/
   cp -a "$pkgdir"/usr/share/texmf/dvips/config/config.ps \
   	  "$pkgdir"/etc/texmf/dvips/config/
   cp -a "$pkgdir"/usr/share/texmf/dvipdfm/config/config \
   	  "$pkgdir"/etc/texmf/dvipdfm/config/
   cp -a "$pkgdir"/usr/share/texmf/dvipdfmx/dvipdfmx.cfg \
   	  "$pkgdir"/etc/texmf/dvipdfmx/
   cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/pdftexconfig.tex \
   	  "$pkgdir"/etc/texmf/tex/generic/config/
   cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/language.dat \
   	  "$pkgdir"/etc/texmf/tex/generic/config/
   cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/language.def \
   	  "$pkgdir"/etc/texmf/tex/generic/config/
   cp -a "$pkgdir"/usr/share/texmf/ttf2pk/ttf2pk.cfg \
   	  "$pkgdir"/etc/texmf/ttf2pk/
   cp -a "$pkgdir"/usr/share/texmf/xdvi/XDvi \
   	  "$pkgdir"/etc/texmf/xdvi/
   # remove TL specific warnings in the language.{dat,def} files:
   sed -i -e '/DO NOT EDIT/,+3 d' "$pkgdir"/etc/texmf/tex/generic/config/language.*
   # clean updmap.cfg
   sed -i '/^\(Map\|MixedMap\)/d' "$pkgdir"/etc/texmf/web2c/updmap.cfg
   sed -i '/^#! \(Map\|MixedMap\)/d' "$pkgdir"/etc/texmf/web2c/updmap.cfg
   # Don't list formats which need removed packages to work.
   sed -i '/csplain\|mex\|jadetex/d' "$pkgdir"/etc/texmf/web2c/fmtutil.cnf

   #############################################################
   ### install
   cd source
   # fixes for xindy
   find utils/xindy -name Makefile -exec sed -i -e "s|^prefix =.\+$|prefix = $pkgdir/usr|" -e "s|^mandir =.\+$|mandir = \${prefix}/share/man|" -e "s|^datadir =.\+$|datadir = \${datarootdir}/texmf|" -e "s|^docdir =.\+$|docdir = \${datadir}/doc/xindy|" '{}' \;

   echo "-------------------------------------------------------"
   echo "--> Proceeding with make install ..."
   echo "-------------------------------------------------------"
   cd Work
   make DESTDIR="${pkgdir}" texmf="$pkgdir"/usr/share/texmf install
   rm -rf "${pkgdir}"/usr/{texmf,share/texmf-dist}

   # replace upstream texmf.cnf with ours
   rm -f "$pkgdir"/usr/share/texmf/web2c/texmf.cnf
   install -m644 "$srcdir"/texmf.cnf "$pkgdir"/etc/texmf/web2c/texmf.cnf
   # since the location of texmf.cnf is hard-wired to be under /usr/share/texmf/web2c
   # we make a symlink from /etc/texmf/web2c/texmf.cnf to the latter
   ln -sf /etc/texmf/web2c/texmf.cnf "$pkgdir"/usr/share/texmf/web2c/texmf.cnf
   # fix location of TEXMFCACHE for luatools
   sed -i 's#texlive2010#texlive#' "$pkgdir"/usr/share/texmf/web2c/texmfcnf.lua
   ## remove aleph from fmtutil.cnf
   sed -i -e '/aleph/d' "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf

   ## install luatex binary
   #install -m755 "$srcdir"/luatex-beta-${_luatex_ver}/build/texk/web2c/luatex "$pkgdir"/usr/bin/
   install -m755 "$srcdir"/luatex/build/texk/web2c/luatex "$pkgdir"/usr/bin/
   cd "$pkgdir"/usr/bin
   /bin/ln -s luatex texlua
   /bin/ln -s luatex texluac

   ## install Perl libraries
   mkdir -p "$pkgdir"/usr/share/tlpkg/TeXLive
   install -m644 "${srcdir}"/source/utils/biber/TeXLive/*.pm "$pkgdir"/usr/share/tlpkg/TeXLive

   # create symlinks for formats
   echo "--> Create symlinks for TeX formats ..."
   PATH="$PATH:${pkgdir}/usr/bin" texlinks -f "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf "$pkgdir"/usr/bin/
   #############################################################
   # remove dangling symlinks
   _bibtexextra_scripts="
bibexport
urlbst
"
   _core_scripts="
afm2afm
arlatex
autoinst
bundledoc
cmap2enc
ctanify
ctanupload
de-macro
dosepsbin
dviasm
epstopdf
findhyph
font2afm
fragmaster
installfont-tl
latex2man
latexdiff
latexdiff-vc
latexmk
latexrevise
listings-ext.sh
match_parens
mf2pt1
mkjobtexmf
mkluatexfontdb
mkt1font
mptopdf
ot2kpx
pdf180
pdf270
pdf90
pdfatfi
pdfbook
pdfcrop
pdfflip
pdfjam
pdfjam-pocketmod
pdfjam-slides3up
pdfjam-slides6up
pdfjoin
pdfnup
pdfpun
pfm2kpx
pkfix
pkfix-helper
purifyeps
repstopdf
rpdfcrop
showglyphs
sty2dtx
texcount
texdef
texdiff
texdirflatten
texliveonfly
texloganalyser
thumbpdf
vpl2ovp
vpl2vpl
"
   _htmlxml_scripts="ht htcontext htlatex htmex httex httexi htxelatex htxetex mk4ht"
   _langextra_scripts="ebong"
   _langgreek_scripts="mkgrkindex"
   _latexextra_scripts="authorindex \
makeglossaries \
pdfannotextractor \
pdfthumb \
perltex \
ppower4 \
ps4pdf \
splitindex \
svn-multi \
vpe"
   _music_scripts="musixtex musixflx"
   _pictures_scripts="cachepic epspdf epspdftk fig4latex mathspic"
   _pstricks_scripts="pst2pdf"
   _science_scripts="ulqda"
   for s in \
        ${_bibtexextra_scripts} \
        ${_core_scripts}       \
        ${_htmlxml_scripts}    \
        ${_langextra_scripts}  \
        ${_langgreek_scripts}  \
        ${_latexextra_scripts} \
        ${_music_scripts}      \
        ${_pictures_scripts}   \
        ${_pstricks_scripts}   \
        ${_science_scripts}    \
        tlmgr biber; do  # biber is not built from source
     rm -f "$pkgdir"/usr/bin/$s
   done
   ###################################################################
}