PKGBUILDs/extra/texlive-bin/PKGBUILD
2022-03-21 12:48:13 +00:00

398 lines
9.1 KiB
Bash

# Maintainer: Rémy Oudompheng <remy@archlinux.org>
# Contributor: francois <francois.archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# -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')
pkgver=2021.59745
pkgrel=2
license=('GPL')
arch=('x86_64')
makedepends=('git' 'cairo' 'pixman' 'graphite' 't1lib' 'gd'
'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2'
'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper'
'perl' 'libxcrypt')
url='https://tug.org/texlive/'
_commit=7eaec95e244515fe11445111c0aaa1349de6790d # svn://tug.org/texlive/tags/texlive-2021.3/Build/source@59745
source=("git+https://github.com/Tex-Live/texlive-source.git#commit=${_commit}")
sha256sums=('SKIP')
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
}
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
#
# Preset float endianness to avoid a crash in cairo configure
# with recent toolchains. We are not building cairo anyway.
ax_cv_c_float_words_bigendian=no \
../configure --prefix=/usr -C \
--sysconfdir=/etc \
--datarootdir=/usr/share \
--datadir=/usr/share \
--mandir=/usr/share/man \
--disable-native-texlive-build \
--with-banner-add="/Arch Linux" \
--disable-cxx-runtime-hack \
--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-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 \
--disable-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"
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')
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
albatross
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
git-latexdiff
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
llmk
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
spix
srcredact
sty2dtx
tex4ebook
texconfig
texconfig-dialog
texconfig-sys
texcount
texdef
texdiff
texdirflatten
texdoc
texdoctk
texexec
texfot
texhash
texlinks
texliveonfly
texloganalyser
texmfstart
texosquery
texosquery-jre5
texosquery-jre8
texplate
thumbpdf
tlcockpit
tlshell
typeoutfileinfo
updmap
updmap-sys
updmap-user
vpl2ovp
vpl2vpl
xhlatex
xindex
"
_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
hyperxmp-add-bytecount
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
tikztosvg"
_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
if [[ -f "$pkgdir/usr/share/man/man1/${s%.*}.1" ]]; then
rm -vf "$pkgdir/usr/share/man/man1/${s%.*}.1"
fi
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.*
}