# $Id: PKGBUILD 235485 2015-04-06 00:21:47Z remy $
# Maintainer (Arch): Rémy Oudompheng <remy@archlinux.org>
# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
# Contributor: André Silva <emulatorman@parabola.nu>

_pkgname=texlive-core-libre
pkgname=texlive-core
pkgver=2014.36709
_revnr=${pkgver#2014.}
pkgrel=1.parabola1
pkgdesc="TeX Live core distribution, without nonfree add-on packages (Parabola rebranded)"
license=('GPL')
arch=(any)
depends=('texlive-bin' 'perl')
optdepends=(
  'dialog:      for texconfig'
  'ghostscript: for epstopdf, epspdf and other ConTeXt tools' 
  'java-runtime: for utilities like arara'
  'perl-tk:     for texdoctk'
  'psutils:     to manipulate the output of dvips'
  'python:      for pythontex'
  'python2:     for dviasm'
  'ruby:        for old ConTeXT MkII and epspdf'
  't1utils:     can be useful when installing Type1 fonts'
)
groups=('texlive-most')
conflicts=('tetex' 'texlive-latex3' 'texlive-core-libre')
provides=('tetex' 'texlive-latex3')
replaces=('tetex' 'texlive-latex3' 'texlive-core-libre')
url='http://tug.org/texlive/'
mksource=("https://sources.archlinux.org/other/texlive/$pkgname-$pkgver-src.zip")
noextract=("$pkgname-$pkgver-src.zip")
source=("https://repo.parabola.nu/other/$_pkgname/$_pkgname-$pkgver-src.tar.xz"
        "$pkgname.maps"
        "texmf.cnf"
        "texmfcnf.lua"
        "09-texlive-fonts.conf")
install=texlive.install
backup=(etc/texmf/web2c/texmf.cnf \
        etc/texmf/chktex/chktexrc \
	etc/texmf/dvipdfmx/dvipdfmx.cfg \
	etc/texmf/dvips/config/config.ps \
	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/web2c/fmtutil.cnf \
	etc/texmf/web2c/mktex.cnf \
	etc/texmf/xdvi/XDvi)
mkmd5sums=('c02299998a0e7a26a7e9fff1c16d2f97')
md5sums=('c9e1624850a79a8d5e9acfcc1cae697b'
         '54a34f8ddbeccec2427e4d5763349f9b'
         '00d2e495f34c4e055b70c0ba13fcd891'
         '16ad4dc53deb00029baef1b01ba1d984'
         '393a4bf67adc7ca5df2b386759d1a637')

mksource() {
   mkdir $pkgname-$pkgver
   pushd $pkgname-$pkgver
   bsdtar xfv ../$pkgname-$pkgver-src.zip

   # remove nonfree packages
   # MeX licensed packages.
   rm -v {cc-pl,cs,ec,mex,pl}.tar.xz
   # Public domain, will be relicensed.
   rm -v context-{account,algorithmic,fixme,games,letter,ruby}.tar.xz
   # No specific free license.
   rm -v euro-ce.tar.xz
   # Remove their references from package list.
   sed -ri '/^(cc-pl|cs|ec|mex|pl|context-(account|algorithmic|fixme|games|letter|ruby)|euro-ce) /d' CONTENTS

   popd
}

build() {
   cd $srcdir/$pkgname-$pkgver
   echo -n "   --> extracting all packages... "
   for p in *.tar.xz; do 
     bsdtar -xf $p
   done
   echo "done"
   rm -rf source doc

   # remove nonfree packages references from updmap.cfg
   sed -i '/ccpl.map/d'       texmf-dist/web2c/updmap.cfg
   sed -i '/cs-charter.map/d' texmf-dist/web2c/updmap.cfg
   sed -i '/csfonts.map/d'    texmf-dist/web2c/updmap.cfg
   sed -i '/plother.map/d'    texmf-dist/web2c/updmap.cfg
   sed -i '/pltext.map/d'     texmf-dist/web2c/updmap.cfg 

   # remove nonfree packages references from texlive-core.maps
   sed -i '/ccpl.map/d'       $srcdir/$pkgname.maps
   sed -i '/cs-charter.map/d' $srcdir/$pkgname.maps
   sed -i '/csfonts.map/d'    $srcdir/$pkgname.maps
   sed -i '/plother.map/d'    $srcdir/$pkgname.maps
   sed -i '/pltext.map/d'     $srcdir/$pkgname.maps

   # remove nonfree packages references from fmtutil.cnf
   sed -i '/cslatex/d'     texmf-dist/web2c/fmtutil.cnf
   sed -i '/csplain/d'     texmf-dist/web2c/fmtutil.cnf
   sed -i '/from mex/d'    texmf-dist/web2c/fmtutil.cnf
   sed -i '/mexconf.tex/d' texmf-dist/web2c/fmtutil.cnf
}

package() {
   cd $srcdir/$pkgname-$pkgver
   # Install packages.
   install -m755 -d $pkgdir/var/lib/texmf/arch/installedpkgs
   sed -i '/^#/d' CONTENTS
   install -m644 CONTENTS $pkgdir/var/lib/texmf/arch/installedpkgs/${pkgname}_${_revnr}.pkgs
   install -m644 $srcdir/$pkgname.maps $pkgdir/var/lib/texmf/arch/installedpkgs/
   install -m755 -d $pkgdir/usr/share
   wanteddirs=$(for d in *; do test -d $d && [[ $d != texmf* ]] && echo $d; done) || true
   for dir in $wanteddirs; do
     find $dir -type d -exec install -d -m755 $pkgdir/usr/share/texmf-dist/'{}' \;
     find $dir -type f -exec install -m644 '{}' $pkgdir/usr/share/texmf-dist/'{}' \;
   done
   find texmf-dist -type d -exec install -d -m755 $pkgdir/usr/share/'{}' \;
   find texmf-dist -type f -exec install -m644 '{}' $pkgdir/usr/share/'{}' \;
   find texmf-dist -type f -executable -exec chmod 755 $pkgdir/usr/share/'{}' \;
 
   #############################################################
   ### install texmf tree
   echo "--> installing the /etc/texmf tree"
   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/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/

   # Remove manpages (already in texlive-bin).
   rm -rf "$pkgdir"/usr/share/texmf-dist/doc/man

   # copy config files to $TEXMFCONFIG tree
   cp -a "$pkgdir"/usr/share/texmf-dist/chktex/chktexrc \
     	"$pkgdir"/etc/texmf/chktex/
   cp -a "$pkgdir"/usr/share/texmf-dist/web2c/mktex.cnf \
   	  "$pkgdir"/etc/texmf/web2c/
   cp -a "$pkgdir"/usr/share/texmf-dist/web2c/updmap.cfg \
   	  "$pkgdir"/etc/texmf/web2c/
   cp -a "$pkgdir"/usr/share/texmf-dist/web2c/fmtutil.cnf \
   	  "$pkgdir"/etc/texmf/web2c/
   cp -a "$pkgdir"/usr/share/texmf-dist/dvips/config/config.ps \
   	  "$pkgdir"/etc/texmf/dvips/config/
   cp -a "$pkgdir"/usr/share/texmf-dist/dvipdfmx/dvipdfmx.cfg \
   	  "$pkgdir"/etc/texmf/dvipdfmx/
   cp -a "$pkgdir"/usr/share/texmf-dist/tex/generic/config/pdftexconfig.tex \
   	  "$pkgdir"/etc/texmf/tex/generic/config/
   cp -a "$pkgdir"/usr/share/texmf-dist/tex/generic/config/language.dat \
   	  "$pkgdir"/etc/texmf/tex/generic/config/
   cp -a "$pkgdir"/usr/share/texmf-dist/tex/generic/config/language.def \
   	  "$pkgdir"/etc/texmf/tex/generic/config/
   cp -a "$pkgdir"/usr/share/texmf-dist/ttf2pk/ttf2pk.cfg \
   	  "$pkgdir"/etc/texmf/ttf2pk/
   cp -a "$pkgdir"/usr/share/texmf-dist/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


   # replace upstream texmf.cnf with ours
   rm -f "$pkgdir"/usr/share/texmf-dist/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-dist/web2c/texmf.cnf
   # replace upstream texmfcnf.lua with ours
   install -m644 "$srcdir"/texmfcnf.lua "$pkgdir"/usr/share/texmf-dist/web2c/texmfcnf.lua
   ## remove aleph from fmtutil.cnf
   sed -i -e '/aleph/d' "$pkgdir"/usr/share/texmf-dist/web2c/fmtutil.cnf

   # create symlinks for formats 
   echo "--> Create symlinks for TeX formats ..."
   mkdir -p "${pkgdir}/usr/bin"
   bash "${pkgdir}"/usr/share/texmf-dist/scripts/texlive/texlinks.sh -f "$pkgdir"/usr/share/texmf-dist/web2c/fmtutil.cnf "$pkgdir"/usr/bin/

   # use python2 instead of python for scripts.
   sed -i '1s/python/python2/' $pkgdir/usr/share/texmf-dist/scripts/de-macro/de-macro
   sed -i 's/env python/env python2/' $pkgdir/usr/share/texmf-dist/scripts/dviasm/dviasm.py

   # install Perl libraries
   mv "$pkgdir"/usr/share/texmf-dist/tlpkg "$pkgdir"/usr/share
   rm -rf "$pkgdir"/usr/share/tlpkg/tlpobj

   # copy config file to texmf-config
   #mkdir -p $pkgdir/etc/texmf/tex/context/config
   #cp -a $pkgdir/usr/share/texmf-dist/tex/context/config/cont-usr.tex \
   #	  $pkgdir/etc/texmf/tex/context/config/cont-usr.tex
   
   # remove obsolete stuff (we don't provide the omega and aleph binaries anyway)
   rm -f $pkgdir/usr/share/texmf-dist/tex/plain/config/{omega,aleph}.ini
   #sed -i '/cherokee\.map/d; /oinuit\.map/d; /omega\.map/d' \
   #    "${pkgdir}/usr/share/texmf-dist/web2c/updmap.cfg"

   # remove upstream updmap.cfg: it contains too many maps.
   rm "${pkgdir}/usr/share/texmf-dist/web2c/updmap.cfg"
 
   # more cleanup
   rm -rf $pkgdir/usr/share/texmf-dist/scripts/context/stubs/mswin/

    # link programs from /usr/share/texmf-dist/scripts
    _linked_scripts="
a2ping/a2ping.pl
accfonts/mkt1font
accfonts/vpl2ovp
accfonts/vpl2vpl
adhocfilelist/adhocfilelist.sh
arara/arara.sh
bundledoc/arlatex
bundledoc/bundledoc
checkcites/checkcites.lua
chktex/chkweb.sh
chktex/deweb.pl
context/perl/mptopdf.pl
context/stubs/unix/context
context/stubs/unix/contextjit
context/stubs/unix/ctxtools
context/stubs/unix/luatools
context/stubs/unix/mtxrun
context/stubs/unix/mtxrunjit
context/stubs/unix/pstopdf
context/stubs/unix/texexec
context/stubs/unix/texmfstart
ctanify/ctanify
ctanupload/ctanupload.pl
de-macro/de-macro
dosepsbin/dosepsbin.pl
dtxgen/dtxgen
dviasm/dviasm.py
epstopdf/epstopdf.pl
findhyph/findhyph
fontools/afm2afm
fontools/autoinst
fontools/ot2kpx
fragmaster/fragmaster.pl
installfont/installfont-tl
latex-git-log/latex-git-log
latex2man/latex2man
latexdiff/latexdiff-vc.pl
latexdiff/latexdiff.pl
latexdiff/latexrevise.pl
latexfileversion/latexfileversion
latexindent/latexindent.pl
latexmk/latexmk.pl
latexpand/latexpand
ltxfileinfo/ltxfileinfo
ltximg/ltximg.pl
lua2dox/lua2dox_filter
luaotfload/luaotfload-tool.lua
match_parens/match_parens
mf2pt1/mf2pt1.pl
mkjobtexmf/mkjobtexmf.pl
oberdiek/pdfatfi.pl
pdfcrop/pdfcrop.pl
pdfjam/pdf180
pdfjam/pdf270
pdfjam/pdf90
pdfjam/pdfbook
pdfjam/pdfflip
pdfjam/pdfjam
pdfjam/pdfjam-pocketmod
pdfjam/pdfjam-slides3up
pdfjam/pdfjam-slides6up
pdfjam/pdfjoin
pdfjam/pdfnup
pdfjam/pdfpun
pfarrei/a5toa4.tlu
pfarrei/pfarrei.tlu
pkfix-helper/pkfix-helper
pkfix/pkfix.pl
ps2eps/ps2eps.pl
purifyeps/purifyeps
pythontex/pythontex.py
pythontex/depythontex.py
simpdftex/simpdftex
sty2dtx/sty2dtx.pl
texcount/texcount.pl
texdef/texdef.pl
texdiff/texdiff
texdirflatten/texdirflatten
texdoc/texdoc.tlu
texdoctk/texdoctk.pl
texfot/texfot.pl
texlive/allcm.sh
texlive/allneeded.sh
texlive/dvi2fax.sh
texlive/dvired.sh
texlive/e2pall.sh
texlive/fmtutil-sys.sh
texlive/fmtutil.sh
texlive/fontinst.sh
texlive/kpsetool.sh
texlive/kpsewhere.sh
texlive/ps2frag.sh
texlive/pslatex.sh
texlive/rungs.tlu
texlive/texconfig-dialog.sh
texlive/texconfig-sys.sh
texlive/texconfig.sh
texlive/texlinks.sh
texlive/updmap-sys.sh
texlive/updmap.pl
texliveonfly/texliveonfly.py
texloganalyser/texloganalyser
thumbpdf/thumbpdf.pl
typeoutfileinfo/typeoutfileinfo.sh
xindy/texindy.pl
xindy/xindy.pl
"
    install -m755 -d $pkgdir/usr/bin
    for _script in ${_linked_scripts}; do
        _scriptbase=$(basename $_script)
        _scriptbase=${_scriptbase%.*}
        [[ -f ${pkgdir}/usr/share/texmf-dist/scripts/${_script} ]] &&
            ln -s /usr/share/texmf-dist/scripts/${_script} ${pkgdir}/usr/bin/${_scriptbase}
    done
    ln -s /usr/share/texmf-dist/scripts/listings-ext/listings-ext.sh ${pkgdir}/usr/bin/listings-ext.sh

    # additional symlinks
    ln -s allcm ${pkgdir}/usr/bin/allec
    ln -s fmtutil ${pkgdir}/usr/bin/mktexfmt
    ln -s kpsetool ${pkgdir}/usr/bin/kpsexpand
    ln -s kpsetool ${pkgdir}/usr/bin/kpsepath
    ln -s epstopdf ${pkgdir}/usr/bin/repstopdf
    ln -s pdfcrop ${pkgdir}/usr/bin/rpdfcrop
    ln -s luaotfload-tool ${pkgdir}/usr/bin/mkluatexfontdb
}