texlive: update to 2018 and update poppler patches to work with 0.64
[termux-packages] / packages / texlive / build.sh
index 68fd22f..3fd6c24 100644 (file)
 TERMUX_PKG_HOMEPAGE=https://www.tug.org/texlive/
 TERMUX_PKG_DESCRIPTION="TeX Live is a distribution of the TeX typesetting system."
 TERMUX_PKG_MAINTAINER="Henrik Grimler @Grimler91"
-_MAJOR_VERSION=20170524
-_MINOR_VERSION=
-TERMUX_PKG_VERSION=${_MAJOR_VERSION}${_MINOR_VERSION}
-TERMUX_PKG_REVISION=1
-TERMUX_PKG_SRCURL=ftp://tug.org/historic/systems/texlive/${TERMUX_PKG_VERSION:0:4}/texlive-${TERMUX_PKG_VERSION}-source.tar.xz
-TERMUX_PKG_SHA256="0161695304e941334dc0b3b5dabcf8edf46c09b7bc33eea8229b5ead7ccfb2aa"
-TERMUX_PKG_DEPENDS="freetype, libpng, libgd, libgmp, libmpfr, libicu, liblua, poppler, libgraphite, harfbuzz-icu, perl, xz-utils, wget, gnupg"
-TERMUX_PKG_FOLDERNAME=texlive-${_MAJOR_VERSION}-source
+_MAJOR_VERSION=20180414
+TERMUX_PKG_VERSION=${_MAJOR_VERSION}
+TERMUX_PKG_SRCURL=("ftp://ftp.tug.org/texlive/historic/${TERMUX_PKG_VERSION:0:4}/"\
+{"texlive-$_MAJOR_VERSION-texmf.tar.xz",\
+"texlive-$_MAJOR_VERSION-extra.tar.xz",\
+"install-tl-unx.tar.gz"})
+TERMUX_PKG_SHA256=("bae2fa05ea1858b489f8138bea855c6d65829cf595c1fb219c5d65f4fe8b1fad"
+"5b4397854723405f20df7172e73a04cee2d3ab712f78b064a7f523d6ab9f0329"
+"82c13110852af162c4c5ef1579fa2f4f51c2040850ec02fb7f97497da45eb446")
+TERMUX_PKG_DEPENDS="perl, texlive-bin (>= 20180414)"
+TERMUX_PKG_CONFLICTS="texlive (<< 20170524-5), texlive-bin (<< 20180414)"
+TERMUX_PKG_RECOMMENDS="texlive-tlmgr"
+TERMUX_PKG_FOLDERNAME=("texlive-$_MAJOR_VERSION-texmf"
+"texlive-$_MAJOR_VERSION-extra"
+"install-tl-$_MAJOR_VERSION")
+TL_FILE_LISTS=("texlive-texmf.list"
+"texlive-extra.list"
+"install-tl.list")
+TERMUX_PKG_PLATFORM_INDEPENDENT=yes
 
-TL_ROOT=$TERMUX_PREFIX/opt/texlive/${TERMUX_PKG_VERSION:0:4}
+TL_ROOT=$TERMUX_PREFIX/share/texlive
+TL_BINDIR=$TERMUX_PREFIX/bin
 
-TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-AR=ar \
-RANLIB=ranlib \
-BUILDAR=ar \
-BUILDRANLIB=ranlib \
-ac_cv_c_bigendian=no \
---prefix=$TL_ROOT \
---bindir=$TL_ROOT/bin/pkg \
---datarootdir=$TL_ROOT \
---datadir=$TERMUX_PREFIX/share \
---mandir=$TERMUX_PREFIX/share/man \
---docdir=$TERMUX_PREFIX/share/doc \
---infodir=$TERMUX_PREFIX/share/info \
---libdir=$TERMUX_PREFIX/lib \
---includedir=$TERMUX_PREFIX/include \
---build=$TERMUX_BUILD_TUPLE \
---enable-ttfdump=no \
---enable-makeindexk=yes \
---enable-makejvf=no \
---enable-mendexk=no \
---enable-musixtnt=no \
---enable-ps2pk=no \
---enable-seetexk=no \
---enable-gregorio=no \
---disable-native-texlive-build \
---disable-bibtexu \
---disable-dvisvgm \
---disable-dialog \
---disable-psutils \
---disable-multiplatform \
---disable-t1utils \
---enable-luatex \
---disable-luajittex \
---disable-mflua \
---disable-mfluajit \
---disable-xz \
---disable-pmx \
---without-texinfo \
---without-xdvipdfmx \
---without-texi2html \
---with-system-cairo \
---with-system-graphite2 \
---with-system-harfbuzz \
---with-system-gd \
---with-system-gmp \
---with-system-icu \
---with-system-lua \
---with-system-mpfr \
---with-system-poppler \
---with-system-zlib \
---with-system-xpdf \
---with-system-lua \
---without-x \
---with-banner-add=/Termux"
-
-termux_step_pre_configure() {
-       # When building against libicu 59.1 or later we need c++11:
-       CXXFLAGS+=" -std=c++11"
+termux_step_extract_package() {
+       mkdir -p "$TERMUX_PKG_SRCDIR"
+       
+       cd "$TERMUX_PKG_TMPDIR"
+       for index in $(seq 0 2); do
+               local filename
+               filename=$(basename "${TERMUX_PKG_SRCURL[$index]}")
+               local file="$TERMUX_PKG_CACHEDIR/$filename"
+               termux_download "${TERMUX_PKG_SRCURL[$index]}" "$file" "${TERMUX_PKG_SHA256[$index]}"
+               
+               folder=${TERMUX_PKG_FOLDERNAME[$index]}
+               
+               rm -Rf $folder
+               echo "Extracting files listed in ${TL_FILE_LISTS[$index]} from $folder"
+               tar xf "$file" $(paste -d'\0' <(for i in $(seq 1 $( wc -l < $TERMUX_PKG_BUILDER_DIR/${TL_FILE_LISTS[$index]} )); do echo ${TERMUX_PKG_FOLDERNAME[$index]}/; done ) $TERMUX_PKG_BUILDER_DIR/${TL_FILE_LISTS[$index]} )
+       done
+       cp -r ${TERMUX_PKG_FOLDERNAME[@]} "$TERMUX_PKG_SRCDIR"
 }
 
-termux_step_post_make_install () {
-       cp $TERMUX_PKG_BUILDER_DIR/termux-install-tl.sh $TERMUX_PREFIX/bin/termux-install-tl
-       mkdir -p $TERMUX_PREFIX/etc/profile.d/
-       echo "export PATH=\$PATH:$TERMUX_PREFIX/opt/texlive/${TERMUX_PKG_VERSION:0:4}/bin/custom/" >> $TERMUX_PREFIX/etc/profile.d/texlive.sh
-       echo "export TMPDIR=$TERMUX_PREFIX/tmp/" >> $TERMUX_PREFIX/etc/profile.d/texlive.sh
-       chmod 0744 $TERMUX_PREFIX/etc/profile.d/texlive.sh
+termux_step_make() {
+       for index in $( seq 0 2 ); do
+               cp -r $TERMUX_PKG_SRCDIR/${TERMUX_PKG_FOLDERNAME[$index]}/* $TL_ROOT/
+       done
+       
+       mkdir -p $TL_ROOT/{tlpkg/{backups,tlpobj},texmf-var/web2c}
+       cp $TERMUX_PKG_BUILDER_DIR/texlive.tlpdb $TL_ROOT/tlpkg/
+       
+       perl -I$TL_ROOT/tlpkg/ $TL_ROOT/texmf-dist/scripts/texlive/mktexlsr.pl $TL_ROOT/texmf-dist
+
+       # Replace tlmgr link with a small wrapper that prevents error on "tlmgr update --self"
+       rm -rf $TL_BINDIR/tlmgr
+       ln -sf ../share/texlive/texmf-dist/scripts/texlive/tlmgr.pl $TL_BINDIR/tlmgr.ln
+       echo "#!$TERMUX_PREFIX/bin/sh" > $TL_BINDIR/tlmgr
+       echo "termux-fix-shebang $TL_ROOT/texmf-dist/scripts/texlive/tlmgr.pl" >> $TL_BINDIR/tlmgr
+       echo "sed -i 's%\`kpsewhich -var-value=SELFAUTOPARENT\`);%\`kpsewhich -var-value=TEXMFROOT\`);%g' $TL_ROOT/texmf-dist/scripts/texlive/tlmgr.pl" >> $TL_BINDIR/tlmgr
+       echo "sed -i 's%TEXMFROOT = \$SELFAUTOPARENT%TEXMFROOT = \$SELFAUTODIR/share/texlive%gb' $TL_ROOT/texmf-dist/web2c/texmf.cnf" >> $TL_BINDIR/tlmgr
+       echo "sed -E -i '"'s@`/bin/sh@`'$TERMUX_PREFIX"/bin/sh@g' ${TL_ROOT}/tlpkg/TeXLive/TLUtils.pm" >> $TL_BINDIR/tlmgr
+       echo 'tlmgr.ln "$@"' >> $TL_BINDIR/tlmgr
+       chmod 0744 $TL_BINDIR/tlmgr
 }
 
 termux_step_create_debscripts () {
-        echo 'echo "========================================================"' > postinst
-       echo 'echo "retrieving texlive..."' >> postinst
-       echo 'echo "you can start this manually by calling termux-install-tl"' >> postinst
-        echo 'echo "========================================================"' >> postinst
-       echo "termux-install-tl" >> postinst
-       echo "exit 0" >> postinst
-       chmod 0755 postinst
-
-       # Clean texlive's folder if needed.
-       echo "if [ ! -f $TERMUX_PREFIX/opt/texlive/2016/install-tl ]; then exit 0; else echo 'Removing residual files from old version of TeX Live for Termux'; fi" > preinst
-       echo "rm -rf $TERMUX_PREFIX/{etc/profile.d/texlive.sh,opt/texlive}" >> preinst
+       # Clean texlive's folder if needed (run on upgrade)
+       echo "#!$TERMUX_PREFIX/bin/bash" > preinst
+       echo "if [ -d $TERMUX_PREFIX/opt/texlive ]; then echo 'Removing residual files from old version of TeX Live for Termux'; rm -rf $PREFIX/opt/texlive; fi" >> preinst
        echo "exit 0" >> preinst
        chmod 0755 preinst
+       
+       echo "#!$TERMUX_PREFIX/bin/bash" > postinst
+       echo "mkdir -p $TL_ROOT/{tlpkg/{backups,tlpobj},texmf-var/{web2c,tex/generic/config}}" >> postinst
+       echo "export TMPDIR=$TERMUX_PREFIX/tmp" >> postinst
+       echo "echo Updating tlmgr" >> postinst
+       echo "tlmgr update --self" >> postinst
+       echo "echo Generating language files and setting up symlinks" >> postinst
+       echo "tlmgr -q generate language" >> postinst
+       echo "mktexlsr $TL_ROOT/texmf-var" >> postinst
+       echo "texlinks" >> postinst
+       echo "echo ''" >> postinst
+       echo "echo Welcome to TeX Live!" >> postinst
+       echo "echo ''" >> postinst
+       echo "echo 'TeX Live is a joint project of the TeX user groups around the world;'" >> postinst
+       echo "echo 'please consider supporting it by joining the group best for you.'" >> postinst
+       echo "echo 'The list of groups is available on the web at http://tug.org/usergroups.html.'" >> postinst
+       echo "exit 0" >> postinst
+       chmod 0755 postinst
 
-       # Remove all files installed/downloaded through termux-install-tl
-       echo 'if [ $1 != "remove" ]; then exit 0; fi' > prerm
+       # Remove all files installed through tlmgr on removal
+       echo "#!$TERMUX_PREFIX/bin/bash" > prerm
+       echo 'if [ $1 != "remove" ]; then exit 0; fi' >> prerm
        echo "echo Running texlinks --unlink" >> prerm
        echo "texlinks --unlink" >> prerm
-       echo "echo Removing bin/custom and texmf-dist" >> prerm
-       echo "rm -rf $TL_ROOT/{bin/custom,texmf-dist}" >> prerm
+       echo "echo Removing texmf-dist" >> prerm
+       echo "rm -rf $TL_ROOT/texmf-dist" >> prerm
+       echo "echo Removing texmf-var and tlpkg" >> prerm
+       echo "rm -rf $TL_ROOT/{texmf-var,tlpkg/{texlive.tlpdb.*,tlpobj,backups}}" >> prerm
        echo "exit 0" >> prerm
        chmod 0755 prerm
 }
+
+# Files to rm, first from texlive-$_MAJOR_VERSION-extra and then from install-tl-unx
+TERMUX_PKG_RM_AFTER_INSTALL="
+share/texlive/README
+share/texlive/README.usergroups
+share/texlive/autorun.inf
+share/texlive/doc.html
+share/texlive/index.html
+share/texlive/install-tl
+share/texlive/install-tl-advanced.bat
+share/texlive/install-tl-windows.bat
+share/texlive/readme-html.dir/readme.ja.html
+share/texlive/readme-html.dir/readme.ru.html
+share/texlive/readme-html.dir/readme.zh-cn.html
+share/texlive/readme-html.dir/readme.it.html
+share/texlive/readme-html.dir/readme.es.html
+share/texlive/readme-html.dir/readme.pl.html
+share/texlive/readme-html.dir/readme.de.html
+share/texlive/readme-html.dir/readme.fr.html
+share/texlive/readme-html.dir/readme.sr.html
+share/texlive/readme-html.dir/readme.pt-br.html
+share/texlive/readme-html.dir/readme.en.html
+share/texlive/readme-html.dir/readme.cs.html
+share/texlive/readme-txt.dir/README.RU-koi8
+share/texlive/readme-txt.dir/README.EN
+share/texlive/readme-txt.dir/README.FR
+share/texlive/readme-txt.dir/README.SK-il2
+share/texlive/readme-txt.dir/README.SK-ascii
+share/texlive/readme-txt.dir/README.RU
+share/texlive/readme-txt.dir/README.IT
+share/texlive/readme-txt.dir/README.CS
+share/texlive/readme-txt.dir/README.JA
+share/texlive/readme-txt.dir/README.ES
+share/texlive/readme-txt.dir/README.ZH-CN
+share/texlive/readme-txt.dir/README.DE
+share/texlive/readme-txt.dir/README.PL
+share/texlive/readme-txt.dir/README.SK-cp1250
+share/texlive/readme-txt.dir/README.SR
+share/texlive/readme-txt.dir/README.PT-BR
+share/texlive/readme-txt.dir/README.RU-cp1251
+share/texlive/tl-tray-menu.exe
+share/texlive/tlpkg/tlpostcode/xetex.pl
+share/texlive/tlpkg/tlpostcode/xetex/conf/fonts.conf
+share/texlive/tlpkg/tlpostcode/xetex/conf/fonts.dtd
+share/texlive/tlpkg/tlpostcode/xetex/conf/conf.d/51-local.conf
+share/texlive/tlpkg/tlpostcode/xetex/cache/readme.txt
+share/texlive/tlpkg/tlpostcode/ptex2pdf-tlpost.pl
+share/texlive/texmf-dist/web2c/texmf.cnf
+share/texlive/texmf-dist/scripts/texlive/fmtutil-user.sh
+share/texlive/texmf-dist/scripts/texlive/rungs.tlu
+share/texlive/texmf-dist/scripts/texlive/updmap-user.sh"