diff options
Diffstat (limited to 'libre/texlive-bin/PKGBUILD')
-rw-r--r-- | libre/texlive-bin/PKGBUILD | 535 |
1 files changed, 152 insertions, 383 deletions
diff --git a/libre/texlive-bin/PKGBUILD b/libre/texlive-bin/PKGBUILD index 411f55384..7f321e4d3 100644 --- a/libre/texlive-bin/PKGBUILD +++ b/libre/texlive-bin/PKGBUILD @@ -1,407 +1,176 @@ -# Maintainer (Arch): Rémy Oudompheng <remy@archlinux.org> -# Contributor (Arch): francois <francois.archlinux.org> +# Maintainer (arch): Antonio Rojas <arojas@archlinux.org> +# Contributor: Rémy Oudompheng <remy@archlinux.org> +# Contributor: francois <francois.archlinux.org> # Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe> # Contributor: André Silva <emulatorman@hyperbola.info> # Contributor: Michał Masłowski <mtjm@mtjm.eu> # Contributor: Isaac David <isacdaavid(at)isacdaavid!info> # Contributor: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> # Contrbutor: bill-auger <bill-auger@programmer.net> +# Maintainer (archarm): Kevin Mihelich <kevin@archlinuxarm.org> # parabola changes and rationale: -# - rebrand for parabola -# - pin versioned dependencies to mitigate breakage from Arch's .so bumps -# - disable xindy on armv7h - - -pkgname=('texlive-bin' 'libsynctex') -pkgver=2020.54586 -pkgrel=5 -pkgrel+=.parabola2 -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' 'libxcrypt') -[[ "${CARCH}" == 'armv7h' ]] && makedepends=( $(sed -E 's/clisp|ffcall//g' <<<${deps[@]}) ) +# technical: +# - re-brand for parabola (due to changes in texlive-{core,fontsextra,latexextra}) +# - pin to strongly-coupled dependency versions +# - disable texindy/xindy on armv7h +# - build from upstream sourve-ball, rather than VCS +# archarm changes: +# -fPIC for v6 and v7 +# --disable-xindy, remove xindy stuff, segfaults with clisp +# --disable-cxx-runtime-hack +# drop clisp and ffcall makedepends + + +pkgname=(texlive-bin libsynctex) +_rev=66984 +pkgver=2023.$_rev +pkgrel=17 +pkgrel+=.parabola1 +license=(GPL) +arch=(x86_64) +arch+=(armv7h i686) +makedepends=(git cairo pixman graphite t1lib gd libsigsegv zziplib libpng libjpeg freetype2 + icu harfbuzz-icu mpfr potrace libpaper perl clisp ffcall libxcrypt subversion + glibc zlib bash libxaw fontconfig icu readline libxmu libxpm libunistring libxt + libx11 ncurses gcc-libs harfbuzz) +makedepends=( ${makedepends[*]/git/} ) +[[ "${CARCH}" == 'armv7h' ]] && makedepends=( $(sed -E 's/clisp|ffcall//g' <<<${makedepends[@]}) ) url='https://tug.org/texlive/' -_commit=8e5e0e89d413d09cca133c8966d1a3af8a2ac440 # svn://tug.org/texlive/trunk/Build/source@54586 -source=("git+https://github.com/Tex-Live/texlive-source.git#commit=${_commit}") -sha256sums=('SKIP') +# we use source-ball +source=(texlive-bin-${_rev}.tar.gz::https://github.com/TeX-Live/texlive-source/archive/refs/tags/build-svn${_rev}.tar.gz + ptex-debug-print.patch + context-luatex-1.17.patch) +sha256sums=('SKIP' + 'aa838f09003c62c2efb5770a8de66f99b409df049fbd65098d80fd1957d06c50' + 'a56838d19c3bd820781693b5a2e058e1a22378b37ea199bac426d97fcc420920') prepare() { - cd "$srcdir/texlive-source" - - # t4ht expects to be un /usr/share/texmf/bin/t4ht (FS#27251) - sed -i s/SELFAUTOPARENT/TEXMFROOT/ texk/tex4htk/t4ht.c - - # pdftex poppler compatibility - cp -pv texk/web2c/pdftexdir/pdftoepdf{-poppler0.86.0,}.cc - cp -pv texk/web2c/pdftexdir/pdftosrc{-poppler0.83.0,}.cc + ln -s texlive-source-build-svn${_rev} texlive-source # minimize diff + cd texlive-source + + # bibtex-x needs kpathsea flags + sed -i '/AC_SEARCH_LIBS/a KPSE_KPATHSEA_FLAGS' texk/bibtex-x/configure.ac + (cd texk/bibtex-x && autoreconf) + # t4ht expects to be un /usr/share/texmf/bin/t4ht (FS#27251) + sed -i s/SELFAUTOPARENT/TEXMFROOT/ texk/tex4htk/t4ht.c + # remove spurious ptex "guessed encoding" print + patch -p1 -i ../ptex-debug-print.patch + # update context to work with luatex 1.17 + patch -p1 -i ../context-luatex-1.17.patch } build() { - cd "$srcdir/texlive-source" - - ############################################################# - ### 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 \ - $(case "$CARCH" in - armv7h ) echo '--disable-xindy --disable-cxx-runtime-hack' ;; - x86_64|i686) echo '--enable-xindy --disable-xindy-rules --disable-xindy-docs' ;; - esac) - ############################################################# - ### make - echo "-------------------------------------------------------" - echo "--> Building the whole beast ..." - echo "-------------------------------------------------------" - make + cd texlive-source + + mkdir -p build + cd build + ax_cv_c_float_words_bigendian=no \ + ../configure --prefix=/usr -C \ + --sysconfdir=/etc \ + --datarootdir=/usr/share \ + --datadir=/usr/share \ + --mandir=/usr/share/man \ + $([[ "${CARCH}" != armv7h ]] || printf -- '--disable-cxx-runtime-hack') \ + --disable-native-texlive-build \ + --with-banner-add="/Parabola GNU/Linux-libre" \ + --disable-multiplatform \ + --disable-dialog \ + --disable-psutils \ + --disable-t1utils \ + --disable-bibtexu \ + --disable-dvisvgm \ + --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-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 \ + --with-clisp-runtime=default \ + $([[ "${CARCH}" == armv7h ]] && echo -n --disable-xindy || echo -n --enable-xindy) \ + --disable-xindy-rules \ + --disable-xindy-docs + # prevent excessive overlinking due to libtool + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make } package_libsynctex() { - pkgdesc='Library for synchronization between TeX files and resulting file' - depends=('glibc' 'zlib') + pkgdesc='Library for synchronization between TeX files and resulting file' + depends=(glibc zlib) - cd "${srcdir}/texlive-source/Work" - make -C texk/web2c DESTDIR="${pkgdir}" \ + cd texlive-source/build + make -C texk/web2c DESTDIR="$pkgdir" \ install-data-am install-libLTLIBRARIES + + # remove docs included in texlive-doc + rm -r "$pkgdir"/usr/share/man } package_texlive-bin() { - pkgdesc="TeX Live binaries" - pkgdesc+=" (Parabola rebranded)" - depends=('cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler' - 'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2' 'libxcrypt' - 'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper' - 'libsynctex') - provides=('lcdf-typetools' 'kpathsea' 'xindy') - optdepends=('ed: for texconfig' - 'biber: for bibliography processing') - options=('!strip') - - # pin to current 'icu' and 'poppler' libs - local poppler_ver=$(pacman -S --print-format='%v' poppler) - depends+=('libicui18n.so' 'libicuuc.so' "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 luahbtex "${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 -chklref -chkweb -cjk-gs-integrate -cluttex -cllualatex -clxelatex -context -contextjit -ctanbib -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 -ketcindy -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 -luaotfload-tool -luatools -lwarpmk -make4ht -match_parens -mf2pt1 -mk4ht -mkjobtexmf -mkt1font -mktexfmt -mktexlsr -mktexmf -mktexpk -mktextfm -mptopdf -mtxrun -mtxrunjit -ot2kpx -pamphletangler -pdfatfi -pdfbook2 -pdfcrop -pdfjam -pdflatexpicscale -pdftex-quiet -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 -texhash -texindy -texlinks -texliveonfly -texloganalyser -texmfstart -texosquery -texosquery-jre5 -texosquery-jre8 -texplate -thumbpdf -tlcockpit -tlshell -typeoutfileinfo -updmap -updmap-sys -updmap-user -vpl2ovp -vpl2vpl -xhlatex -xindex -$( [[ "$CARCH" != "armv7h" ]] && echo 'xindy') -" - _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 -webquiz -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.* + pkgdesc='TeX Live binaries' + depends=(cairo pixman graphite t1lib gd poppler ffcall libsigsegv zziplib libpng libjpeg freetype2 libxcrypt + harfbuzz-icu mpfr potrace libpaper libsynctex glibc zlib bash libxaw fontconfig icu readline libxmu + libxpm libunistring libxt libx11 ncurses gcc-libs harfbuzz) + provides=(lcdf-typetools kpathsea xindy) + optdepends=('psutils: to manipulate the output of dvips') + + case "$CARCH" in + armv7h) + depends=( ${depends[*]/ffcall/} ) + provides=( ${provides[*]/xindy/} ) + esac + + # pin to strongly-coupled dependency versions + depends+=('libicui18n.so' 'libicuuc.so') + + cd texlive-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|" '{}' \; + + cd build + make DESTDIR="$pkgdir" texmf="$pkgdir"/usr/share/texmf install + LD_PRELOAD="$pkgdir"/usr/lib/libkpathsea.so.6 \ + make DESTDIR="$pkgdir" texlinks + + # install old ConTeXt stubs + cd "$srcdir"/texlive-source + for _stub in `ls texk/texlive/linked_scripts/context/stubs/unix`; do + install -m755 texk/texlive/linked_scripts/context/stubs/unix/$_stub "$pkgdir"/usr/bin/$_stub + done + + # remove stuff included in texlive-texmf + rm -r "$pkgdir"/usr/share/texmf-dist + + # remove docs included in texlive-doc + rm -r "$pkgdir"/usr/share/{info,man} + + # remove links to scripts + for _link in $(ls "$pkgdir"/usr/bin); do + [[ $(readlink -m "$pkgdir"/usr/bin/$_link) == */scripts/* ]] && _rmlinks+="$pkgdir/usr/bin/$_link " + done + rm $_rmlinks + + # remove libsynctex + rm "$pkgdir"/usr/include/synctex/* + rm "$pkgdir"/usr/lib/libsynctex.* + rm "$pkgdir"/usr/lib/pkgconfig/synctex.pc } |