# Maintainer (Arch): Rémy Oudompheng # Contributor (Arch): francois # Maintainer: Omar Vega Ramos # Contributor: André Silva # Contributor: Michał Masłowski # Contributor: Isaac David # Contributor: Denis 'GNUtoo' Carikli # parabola changes and rationale: # - rebranded to parabola # - versioned dependencies to mitigate breakage from Arch's .so bumps # - diable xindy on armv7h pkgname=('texlive-bin' 'libsynctex') pkgver=2018.48691 pkgrel=5 pkgrel+=.par2 license=('GPL') arch=('x86_64') arch+=('i686' 'armv7h') makedepends=('git' 'cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler' 'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2' 'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper' 'perl' 'clisp' 'ffcall') makedepends_i686=('pkgconf') url='http://tug.org/texlive/' _commit=f68b0992e13a2e155d71beb3e016ea4139023224 # texlive-2018.2 source=("git+https://github.com/Tex-Live/texlive-source.git#commit=${_commit}" "pdftex-poppler0.72.patch" "luatex-poppler-fixes.patch" "xetex-poppler-fixes.patch" "freetype-pkgconfig.patch" "synctex-missing-header.patch") sha256sums=('SKIP' 'c70f1cf5bee5cba17b40855d584c7f1e8f67c2bf1ce4633a1c5abcdebb59865c' 'ea2abcaf57cfb99c22560a1d98daa7468dafd4713425ef01a6fda29803bf39bc' '7deb8bd50640b0f4ff9b4c11985fe6153906384b62cb9b5a3c4b52397fb941ca' 'bed44f4ccda369410e90eac527cf44b8c1afda7d987ae521b4fd5edb425eef3e' 'b6c81eb091b5910226e0359768edd178680debee56b63ab0a3753c3429c28ab0') prepare() { cd "$srcdir/texlive-source" # Synctex "make install" misses synctex_version.h patch -Np1 -i "${srcdir}/synctex-missing-header.patch" # Freetype2 2.9.1 package no longer has freetype-config patch -Np1 -i "${srcdir}/freetype-pkgconfig.patch" ./reautoconf # t4ht expects to be un /usr/share/texmf/bin/t4ht (FS#27251) sed -i s/SELFAUTOPARENT/TEXMFROOT/ texk/tex4htk/t4ht.c # luatex switched from poppler to pplib in newer versions so # upstream fixes aren't available; hopefully this is correct patch -Np1 -i "${srcdir}/luatex-poppler-fixes.patch" find texk/web2c/luatexdir -type f -exec sed -i \ -e 's|gTrue|true|g' \ -e 's|gFalse|false|g' \ -e 's|GBool|bool|g' \ -e 's|getCString|c_str|g' \ -e 's|Guint|unsigned int|g' \ -e 's|Guchar|unsigned char|g' \ {} + # xetex poppler compatibility patch -Np1 -i "${srcdir}/xetex-poppler-fixes.patch" # pdftex poppler compatibility (upstream patches) patch -Np1 -i "${srcdir}/pdftex-poppler0.72.patch" cp -pv texk/web2c/pdftexdir/pdftoepdf{-poppler0.72.0,}.cc cp -pv texk/web2c/pdftexdir/pdftosrc{-poppler0.72.0,}.cc } build() { cd "$srcdir/texlive-source" if [ "${CARCH}" = "armv7h" ]; then local config_xindy="--disable-xindy" else local config_xindy="--enable-xindy" fi ############################################################# ### configure mkdir -p Work cd Work echo "--> Initial configuration..." # we use temporary prefix to avoid messing the existing # $pkgdir/usr/share/texmf tree ../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 \ --enable-shared \ --disable-static \ --with-system-zlib \ --with-system-zziplib \ --with-system-pnglib \ --with-system-ncurses \ --with-system-t1lib \ --with-system-gd \ --with-system-poppler \ --with-system-xpdf \ --with-system-freetype2 \ --with-system-pixman \ --with-system-cairo \ --with-system-harfbuzz \ --with-system-graphite \ --with-system-icu \ --with-system-gmp \ --with-system-mpfr \ --with-system-potrace \ --with-system-libpaper \ --with-freetype2-libdir=/usr/lib \ --with-freetype2-include=/usr/include/freetype2 \ --with-xdvi-x-toolkit=xaw \ --disable-dump-share \ --disable-aleph \ --enable-luatex \ --with-clisp-runtime=default \ $config_xindy --disable-xindy-rules --disable-xindy-docs ############################################################# ### make echo "-------------------------------------------------------" echo "--> Building the whole beast ..." echo "-------------------------------------------------------" make } package_libsynctex() { pkgdesc='Library for synchronization between TeX files and resulting file' depends=('glibc' 'zlib') cd "${srcdir}/texlive-source/Work" make -C texk/web2c DESTDIR="${pkgdir}" \ install-data-am install-libLTLIBRARIES } package_texlive-bin() { pkgdesc="TeX Live binaries" pkgdesc+=" (Parabola rebranded)" depends=('cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler' 'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2' 'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper' 'libsynctex') provides=('lcdf-typetools' 'kpathsea' 'xindy') optdepends=('ed: for texconfig' 'biber: for bibliography processing') options=('!strip') local _icu_ver _icu_ver=$(pacman -S --print-format='%v' icu) depends+=("icu>=${_icu_ver}" "icu<$((${_icu_ver%%.*} + 1))") local _poppler_ver _poppler_ver=$(pacman -S --print-format='%v' poppler) depends+=("poppler=${_poppler_ver}") cd "$srcdir/texlive-source" ############################################################# ### install # 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} ## symlink engines by hand. texlinks has moved to texlive-core... mkdir -p ${pkgdir}/usr/bin ln -s eptex ${pkgdir}/usr/bin/platex ln -s euptex ${pkgdir}/usr/bin/uplatex ln -s luatex ${pkgdir}/usr/bin/dvilualatex ln -s luatex ${pkgdir}/usr/bin/dviluatex ln -s luatex ${pkgdir}/usr/bin/lualatex ln -s pdftex ${pkgdir}/usr/bin/amstex ln -s pdftex ${pkgdir}/usr/bin/cslatex ln -s pdftex ${pkgdir}/usr/bin/csplain ln -s pdftex ${pkgdir}/usr/bin/eplain ln -s pdftex ${pkgdir}/usr/bin/etex ln -s pdftex ${pkgdir}/usr/bin/jadetex ln -s pdftex ${pkgdir}/usr/bin/latex ln -s tex ${pkgdir}/usr/bin/lollipop ln -s pdftex ${pkgdir}/usr/bin/mex ln -s pdftex ${pkgdir}/usr/bin/mllatex ln -s pdftex ${pkgdir}/usr/bin/mltex ln -s pdftex ${pkgdir}/usr/bin/pdfetex ln -s pdftex ${pkgdir}/usr/bin/pdfcslatex ln -s pdftex ${pkgdir}/usr/bin/pdfcsplain ln -s pdftex ${pkgdir}/usr/bin/pdfjadetex ln -s pdftex ${pkgdir}/usr/bin/pdflatex ln -s pdftex ${pkgdir}/usr/bin/pdfmex ln -s pdftex ${pkgdir}/usr/bin/pdfxmltex ln -s pdftex ${pkgdir}/usr/bin/texsis ln -s pdftex ${pkgdir}/usr/bin/utf8mex ln -s pdftex ${pkgdir}/usr/bin/xmltex ln -s xetex ${pkgdir}/usr/bin/xelatex ############################################################# # remove dangling symlinks _bibtexextra_scripts=" bbl2bib bib2gls bibdoiadd bibexport bibmradd biburl2doi bibzbladd convertgls2bib listbib ltx2crossrefxml multibibliography urlbst " _core_scripts=" a2ping a5toa4 adhocfilelist afm2afm allcm allec allneeded arara arlatex autoinst bundledoc checkcites checklistings chkweb cjk-gs-integrate context contextjit ctanify ctanupload ctan-o-mat de-macro depythontex deweb dosepsbin dtxgen dvi2fax dviasm dviinfox dvired e2pall epstopdf findhyph fmtutil fmtutil-sys fmtutil-user fontinst fragmaster ht htcontext htlatex htmex httex httexi htxelatex htxetex installfont-tl jfmutil kpsepath kpsetool kpsewhere kpsexpand latex-git-log latex-papersize latex2man latex2nemeth latexdef latexdiff latexdiff-vc latexfileversion latexindent latexmk latexpand latexrevise listings-ext.sh ltxfileinfo ltximg lua2dox_filter luaotfload-tool luatools lwarpmk make4ht match_parens mf2pt1 mk4ht mkjobtexmf mkt1font mktexfmt mptopdf mtxrun mtxrunjit ot2kpx pdf180 pdf270 pdf90 pdfatfi pdfbook pdfbook2 pdfcrop pdfflip pdfjam pdfjam-pocketmod pdfjam-slides3up pdfjam-slides6up pdfjoin pdflatexpicscale pdfnup pdfpun pdfxup pfarrei pkfix pkfix-helper ps2eps ps2frag pslatex purifyeps pythontex repstopdf rpdfcrop rungs simpdftex srcredact sty2dtx tex4ebook texconfig texconfig-dialog texconfig-sys texcount texdef texdiff texdirflatten texdoc texdoctk texexec texfot texindy texlinks texliveonfly texloganalyser texmfstart texosquery texosquery-jre5 texosquery-jre8 thumbpdf tlcockpit tlshell typeoutfileinfo updmap updmap-sys updmap-user vpl2ovp vpl2vpl xhlatex xindy " if [ "$CARCH" = "armv7h" ]; then _core_scripts="$(echo "$_core_scripts" | sed '/xindy$/d')" fi _games_scripts="rubikrotation" _humanities_scripts="diadia" _langcyrillic_scripts="rubibtex rumakeindex" _langextra_scripts="ebong" _langgreek_scripts="mkgrkindex" _langjapanese_scripts="convbkmk ptex2pdf kanji-fontmap-creator kanji-config-updmap kanji-config-updmap-sys kanji-config-updmap-user " _langkorean_scripts="jamo-normalize komkindex ttf2kotexfont" _latexextra_scripts=" authorindex exceltex l3build makedtx makeglossaries makeglossaries-lite pdfannotextractor perltex ps4pdf splitindex svn-multi vpe wordcount yplan" _music_scripts="lily-glyph-commands lily-image-commands lily-rebuild-pdfs m-tx musixtex musixflx pmxchords" _pictures_scripts=" cachepic epspdf epspdftk fig4latex getmapdl mathspic mkpic pn2pdf" _pstricks_scripts="pedigree pst2pdf" _science_scripts="pygmentex ulqda" for s in \ ${_bibtexextra_scripts} \ ${_core_scripts} \ ${_games_scripts} \ ${_htmlxml_scripts} \ ${_humanities_scripts} \ ${_langcyrillic_scripts} \ ${_langextra_scripts} \ ${_langgreek_scripts} \ ${_langjapanese_scripts} \ ${_langkorean_scripts} \ ${_latexextra_scripts} \ ${_music_scripts} \ ${_pictures_scripts} \ ${_pstricks_scripts} \ ${_science_scripts} \ tlmgr; do ! readlink -e "$pkgdir"/usr/bin/$s && rm "$pkgdir"/usr/bin/$s done ################################################################### # remove libsynctex rm -f "$pkgdir"/usr/include/synctex/* rm -f "$pkgdir"/usr/lib/libsynctex.* rm -f "$pkgdir"/usr/lib/pkgconfig/synctex.pc rm -f "$pkgdir"/usr/share/man/man*/synctex.* }