303 lines
7.7 KiB
Bash
303 lines
7.7 KiB
Bash
# Template file for 'texlive'
|
|
pkgname=texlive
|
|
version=20250308
|
|
revision=2
|
|
_year=${version%${version#????}}
|
|
_svn_tag=svn75246.2
|
|
build_wrksrc="build"
|
|
build_style=gnu-configure
|
|
configure_script="../configure"
|
|
configure_args="
|
|
--prefix=/usr
|
|
--sysconfdir=/etc
|
|
--datarootdir=/usr/share
|
|
--datadir=/usr/share
|
|
--mandir=/usr/share/man
|
|
--infodir=/usr/share/info
|
|
--enable-biber
|
|
--enable-dvipng
|
|
--enable-dvipsk
|
|
--enable-epsfwin
|
|
--enable-ipc
|
|
--enable-luahbtex
|
|
--enable-luatex
|
|
--enable-mflua
|
|
--enable-mftalkwin
|
|
--enable-ps2eps
|
|
--enable-psutils
|
|
--enable-regiswin
|
|
--enable-shared
|
|
--enable-tektronixwin
|
|
--enable-unitermwin
|
|
--enable-xetex
|
|
--disable-bibtex-x
|
|
--disable-chktex
|
|
--disable-cjkutils
|
|
--disable-detex
|
|
--disable-dialog
|
|
--disable-dvi2tty
|
|
--disable-dvisvgm
|
|
--disable-largefile
|
|
--disable-lcdf-typetools
|
|
--disable-multiplatform
|
|
--disable-native-texlive-build
|
|
--disable-pdfopen
|
|
--disable-ps2pkm
|
|
--disable-t1utils
|
|
--disable-tex4htk
|
|
--disable-ttf2pk2
|
|
--disable-vlna
|
|
--disable-xindy
|
|
--disable-xpdfopen
|
|
--with-banner-add=/VoidLinux
|
|
--with-ps=gs
|
|
--with-system-cairo
|
|
--with-system-freetype2
|
|
--with-system-gd
|
|
--with-system-gmp
|
|
--with-system-graphite2
|
|
--with-system-harfbuzz
|
|
--with-system-icu
|
|
--with-system-libpaper
|
|
--with-system-libpng
|
|
--with-system-mpfr
|
|
--with-system-pixman
|
|
--with-system-teckit
|
|
--with-system-zlib
|
|
--with-system-zziplib
|
|
--with-xdvi-x-toolkit=Xaw"
|
|
hostmakedepends="pkg-config perl lua52-BitOp texinfo libXaw-devel"
|
|
makedepends="cairo-devel freetype-devel gd-devel graphite-devel gmp-devel
|
|
harfbuzz-devel icu-devel libpaper-devel libpng-devel mpfr-devel
|
|
pixman-devel libteckit-devel zlib-devel zziplib-devel libXaw-devel"
|
|
depends="dialog ghostscript perl-Tk texlive-core>=${version}_1 xbps-triggers
|
|
texlive-latexmk latexindent"
|
|
checkdepends="diffutils"
|
|
short_desc="TeX Live"
|
|
maintainer="dkwo <npiazza@disroot.org>"
|
|
license="GPL-2.0-or-later"
|
|
homepage="https://tug.org/texlive/"
|
|
distfiles="https://github.com/TeX-Live/texlive-source/archive/refs/tags/${_svn_tag}.tar.gz"
|
|
checksum=9a5c0c52e29c528c62b2c38d5385525e2b52a1803115f4d98e79a65e3dc70a18
|
|
python_version=3
|
|
# Virtual package cares only about year part of version
|
|
provides="tex-${_year}_1"
|
|
|
|
if [ -n "${CROSS_BUILD}" ] ; then
|
|
# Tangle is required for cross compile
|
|
hostmakedepends+=" texlive"
|
|
fi
|
|
|
|
build_options="luajit"
|
|
|
|
# fixme: use system luajit when it will be available
|
|
# https://tug.org/pipermail/tex-live/2025-January/051045.html
|
|
|
|
if [ ! "${CROSS_BUILD}"] ; then
|
|
build_options_default+=" luajit"
|
|
fi
|
|
|
|
if [ -n "${build_option_luajit}" ] ; then
|
|
configure_args+="
|
|
--enable-mfluajit
|
|
--enable-mfluajit-nowin
|
|
--enable-luajittex
|
|
--enable-luajithbtex"
|
|
else
|
|
configure_args+="
|
|
--with-system-luajit
|
|
--disable-luajittex
|
|
--disable-mfluajit
|
|
--disable-mfluajit-nowin
|
|
--disable-luajithbtex"
|
|
fi
|
|
|
|
post_extract() {
|
|
mkdir -p "${build_wrksrc}"
|
|
cp -rf texk/web2c "${build_wrksrc}/web2c-host"
|
|
|
|
# https://tug.org/pipermail/tlbuild/2025q1/005635.html
|
|
if [ -n "${CROSS_BUILD}" ] ; then
|
|
sed -i 's|\./himktables\$(EXEEXT)|#\./himktables\$(EXEEXT)|' texk/web2c/Makefile.in
|
|
cp texk/web2c/hitexdir/hitables.c texk/web2c/hitables.c
|
|
fi
|
|
|
|
# fixme: texlive's build system blindly configures everything
|
|
if [ ! "${build_option_luajit}" ] ; then
|
|
rm -r libs/luajit
|
|
fi
|
|
}
|
|
|
|
pre_build() {
|
|
# fixme: web2c should not be cross
|
|
mkdir -p "${wrksrc}/build/texk/web2c/web2c"
|
|
cd "${wrksrc}/build/texk/web2c/web2c"
|
|
unset CC CXX
|
|
CFLAGS="$XBPS_CFLAGS" LDFLAGS="$XBPS_LDFLAGS" RANLIB=ranlib \
|
|
../../../../texk/web2c/web2c/configure
|
|
|
|
# Replace configure script with dummy script
|
|
cd "${wrksrc}"
|
|
cat > texk/web2c/web2c/configure << EOF
|
|
#!/bin/sh
|
|
printf "already complete\\n"
|
|
EOF
|
|
}
|
|
|
|
post_install() {
|
|
# trick from Alpine Linux
|
|
if [ ! "${CROSS_BUILD}" ] ; then
|
|
export PATH="${DESTDIR}/usr/bin:$PATH"
|
|
export LD_LIBRARY_PATH="${DESTDIR}/usr/lib:$LD_LIBRARY_PATH"
|
|
fi
|
|
texlinks -f ${DESTDIR}/usr/share/texmf-dist/web2c/fmtutil.cnf $DESTDIR/usr/bin
|
|
|
|
# These tools are still useful for a texlive workflow, but are modified
|
|
# psutils and conflict with psutils; rename them to have a tl- prefix
|
|
for f in extractres includeres psbook psjoin psnup psresize psselect \
|
|
pstops epsffit ; do
|
|
mv "${DESTDIR}/usr/share/man/man1/"{,tl-}"${f}.1"
|
|
mv "${DESTDIR}/usr/bin/"{,tl-}"${f}"
|
|
done
|
|
|
|
rm -rf ${DESTDIR}/usr/share/texmf-dist
|
|
rm -f ${DESTDIR}/usr/bin/tlmgr
|
|
}
|
|
|
|
texlive-XeTeX_package() {
|
|
depends="${sourcepkg}>=${version}_${revision} texlive-dvi"
|
|
short_desc+=" - engine supporting modern typography"
|
|
pkg_install() {
|
|
vmove usr/bin/xetex
|
|
vmove usr/share/man/man1/xe*.1
|
|
vmove usr/bin/xelatex
|
|
}
|
|
}
|
|
|
|
texlive-dvi_package() {
|
|
depends="${sourcepkg}>=${version}_${revision}"
|
|
short_desc+=" - tools for dvi based workflow"
|
|
pkg_install() {
|
|
for i in afm2tfm bbox tl-extractres tl-includeres tl-psbook tl-psjoin \
|
|
tl-psnup tl-psresize tl-psselect tl-pstops ; do
|
|
vmove "usr/bin/${i}"
|
|
vmove "usr/share/man/man1/${i}.1"
|
|
done
|
|
vmove usr/bin/dvi*
|
|
}
|
|
}
|
|
|
|
texlive-LuaTeX_package() {
|
|
depends="${sourcepkg}>=${version}_${revision} bash"
|
|
short_desc+=" - extended pdfTeX using Lua"
|
|
pkg_install() {
|
|
if [ "$build_option_luajit" ] ; then
|
|
for i in luajittex mfluajit mfluajit-nowin luajithbtex texluajit \
|
|
texluajitc ; do
|
|
vmove "usr/bin/${i}"
|
|
done
|
|
fi
|
|
for i in checkcites cllualatex cluttex diadia digestif getmapdl l3build luafindfont luahbtex \
|
|
lualatex luaotfload-tool luatex lwarpmk m-tx \
|
|
makeglossaries-lite mflua mflua-nowin musixflx musixtex optex pmxchords \
|
|
ptex2pdf texlua texluac xindex ; do
|
|
vmove "usr/bin/${i}"
|
|
done
|
|
for i in luatex texlua texluac ; do
|
|
vmove "usr/share/man/man1/${i}.1"
|
|
done
|
|
vmove "usr/lib/libtexlua*.so.*"
|
|
}
|
|
}
|
|
|
|
texlive-LuaTeX-devel_package() {
|
|
depends="${sourcepkg}-devel>=${version}_${revision}
|
|
${sourcepkg}-LuaTeX>=${version}_${revision}"
|
|
short_desc+=" - extended pdfTeX using Lua - development files"
|
|
pkg_install() {
|
|
for i in texlua53 $(vopt_if luajit texluajit); do
|
|
vmove "usr/include/${i}"
|
|
vmove "usr/lib/lib${i}.a"
|
|
vmove "usr/lib/lib${i}.so"
|
|
vmove "usr/lib/pkgconfig/${i}.pc"
|
|
done
|
|
}
|
|
}
|
|
|
|
texlive-Xdvi_package() {
|
|
depends="${sourcepkg}>=${version}_${revision}"
|
|
short_desc+=" - displaying DVI files on the X window system"
|
|
pkg_install() {
|
|
for i in xdvi xdvi-xaw xdvipdfmx ; do
|
|
vmove "usr/bin/${i}"
|
|
done
|
|
for i in xdvi xdvipdfmx ; do
|
|
vmove "usr/share/man/man1/${i}.1"
|
|
done
|
|
vmove usr/share/applications/xdvi.desktop
|
|
}
|
|
}
|
|
|
|
libsynctex_package() {
|
|
short_desc+=" - libsynctex"
|
|
pkg_install() {
|
|
vmove "usr/lib/libsynctex.so.*"
|
|
}
|
|
}
|
|
|
|
texlive-devel_package() {
|
|
depends="${sourcepkg}>=${version}_${revision}"
|
|
short_desc+=" - development files"
|
|
pkg_install() {
|
|
for i in kpathsea ptexenc synctex; do
|
|
vmove "usr/include/${i}"
|
|
vmove "usr/lib/lib${i}.a"
|
|
vmove "usr/lib/lib${i}.so"
|
|
vmove "usr/lib/pkgconfig/${i}.pc"
|
|
done
|
|
}
|
|
}
|
|
|
|
texlive-BibTeX_package() {
|
|
depends="${sourcepkg}>=${version}_${revision} bash"
|
|
replaces="texlive-bibtexextra<=2024_1"
|
|
short_desc+=" - reference management software"
|
|
pkg_install() {
|
|
for i in bbl2bib ctanbib ; do
|
|
vmove "usr/bin/${i}"
|
|
done
|
|
vmove usr/bin/bib*
|
|
vmove usr/share/man/man1/bibtex.1
|
|
}
|
|
}
|
|
|
|
texlive-ConTeXt_package() {
|
|
metapackage=yes
|
|
short_desc+=" (transitional package)"
|
|
depends="texlive>=${version}_${revision}"
|
|
}
|
|
|
|
texlive-PythonTeX_package() {
|
|
depends="${sourcepkg}>=${version}_${revision} python3"
|
|
short_desc+=" - executing Python in LaTeX"
|
|
pkg_install() {
|
|
vmove usr/bin/*pythontex
|
|
}
|
|
}
|
|
|
|
texlive-latexmk_package() {
|
|
depends="perl"
|
|
short_desc+=" - script for compiling the correct number of times"
|
|
pkg_install() {
|
|
vmove usr/bin/latexmk
|
|
}
|
|
}
|
|
|
|
latexindent_package() {
|
|
depends="perl perl-File-HomeDir perl-Tk perl-Unicode-LineBreak perl-YAML-Tiny"
|
|
short_desc="Script to add indentation to LaTeX files"
|
|
pkg_install() {
|
|
vmove usr/bin/latexindent
|
|
}
|
|
}
|