blob: 5624476eea21a90724213a6fb9f596da4f61770b [file] [log] [blame]
# Maintainer: @naveen521kk on Github, Naveen M K <naveen@syrusdark.website>
pkgbase=mingw-w64-texlive-bin
pkgname=("${MINGW_PACKAGE_PREFIX}-texlive-bin" "${MINGW_PACKAGE_PREFIX}-libsynctex")
pkgver=2021.20210424
pkgdesc="TeX Live binaries (mingw-w64)"
pkgrel=5
license=('GPL')
arch=('any')
url='https://tug.org/texlive/'
makedepends=(
"${MINGW_PACKAGE_PREFIX}-perl"
"${MINGW_PACKAGE_PREFIX}-cairo"
"${MINGW_PACKAGE_PREFIX}-pixman"
"${MINGW_PACKAGE_PREFIX}-graphite2"
"${MINGW_PACKAGE_PREFIX}-libsigsegv"
"${MINGW_PACKAGE_PREFIX}-zziplib"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
"${MINGW_PACKAGE_PREFIX}-freetype"
"${MINGW_PACKAGE_PREFIX}-icu"
"${MINGW_PACKAGE_PREFIX}-harfbuzz"
"${MINGW_PACKAGE_PREFIX}-gmp"
"${MINGW_PACKAGE_PREFIX}-mpfr"
"${MINGW_PACKAGE_PREFIX}-potrace"
"${MINGW_PACKAGE_PREFIX}-libpaper"
"${MINGW_PACKAGE_PREFIX}-ffcall"
"${MINGW_PACKAGE_PREFIX}-libgd"
"${MINGW_PACKAGE_PREFIX}-lua"
"${MINGW_PACKAGE_PREFIX}-luajit"
"${MINGW_PACKAGE_PREFIX}-ghostscript"
# perl dependencies
"${MINGW_PACKAGE_PREFIX}-perl-win32-api"
"${MINGW_PACKAGE_PREFIX}-perl-win32-console"
"${MINGW_PACKAGE_PREFIX}-perl-win32-shortcut"
"${MINGW_PACKAGE_PREFIX}-perl-win32-tieregistry"
"${MINGW_PACKAGE_PREFIX}-perl-win32-winerror"
"${MINGW_PACKAGE_PREFIX}-perl-win32api-registry"
"${MINGW_PACKAGE_PREFIX}-perl-file-which"
"${MINGW_PACKAGE_PREFIX}-perl-io-string"
)
_commit=ccb6338507149edf2772bfccb9933b72761f4cc4 # svn://tug.org/texlive/trunk/Build/source@58686
source=(
"texlive-source-${_commit}.tar.gz::https://github.com/Tex-Live/texlive-source/archive/${_commit}.tar.gz"
"0001-Remove-DLUASOCKET_INET_PTON-from-Makefile.patch"
"0002-fix-lauchers-mingw32.patch"
"0003-runscript-always-quote-args.patch")
sha256sums=('f17bdf0fba64790151b39bcb1d6d4f0ee97da6bcf15b4c9282ff9056bb8da5ee'
'e4b8238de5906b16cc8aeae6512fae4975d85c0c636225ab2031961bb77c32ac'
'decff8db61302c2a1760cfd4b42aaf0e25fcb7d2b9621cea3ec3f4c2557976a1'
'0c75e5f0bc001a51942f2e12196929452a2b40faae35b6b71fe55d5b370bae54')
apply_patch_with_msg() {
for _patch in "$@"
do
msg2 "Applying ${_patch}"
patch -Nbp1 -i "${srcdir}/${_patch}"
done
}
prepare() {
mv -f "$srcdir/texlive-source-${_commit}" "$srcdir/texlive-source"
cd "$srcdir/texlive-source"
apply_patch_with_msg 0001-Remove-DLUASOCKET_INET_PTON-from-Makefile.patch
apply_patch_with_msg 0003-runscript-always-quote-args.patch
# 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
../configure --prefix="${MINGW_PREFIX}" -C \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--target=${MINGW_CHOST} \
--disable-static \
--enable-shared \
--disable-missing \
--disable-native-texlive-build \
--with-banner-add="/Built by MSYS2 project" \
--disable-multiplatform \
--disable-t1utils \
--disable-bibtexu \
--with-system-zlib \
--with-system-zziplib \
--with-system-libpng \
--with-system-ncurses \
--with-system-gd \
--with-system-freetype2 \
--with-system-pixman \
--with-system-cairo \
--with-system-harfbuzz \
--with-system-graphite2 \
--with-system-icu \
--with-system-gmp \
--with-system-mpfr \
--with-system-potrace \
--with-system-libpaper \
--with-xdvi-x-toolkit=xaw \
--disable-dump-share \
--disable-aleph \
--disable-xpdfopen
#############################################################
### make
echo "-------------------------------------------------------"
echo "--> Building the whole beast ..."
echo "-------------------------------------------------------"
make
msg "Building Lauchers"
# let's build lauchers first
# it is present in texk/texlive/w32_wrapper/ (for mingw32)
# and ../texk/texlive/w64_mingw_wrapper (for mingw64) wrapper
# first delete *.exe and *.dll from the locations
rm ../texk/texlive/w64_mingw_wrapper/*.exe ../texk/texlive/w64_mingw_wrapper/*.dll \
../texk/texlive/w64_mingw_wrapper/context/*.exe ../texk/texlive/w64_mingw_wrapper/context/*.dll
case ${MINGW_CHOST} in
i686-w64-mingw32)
rm -rf ../texk/texlive/w32_wrapper
cp -r ../texk/texlive/w64_mingw_wrapper ../texk/texlive/w32_wrapper
cp "libs/lua53/.libs/texlua.dll" ../texk/texlive/w32_wrapper
cd ../texk/texlive/w32_wrapper
patch -i "${srcdir}/0002-fix-lauchers-mingw32.patch"
;;
*)
cp "libs/lua53/.libs/texlua.dll" ../texk/texlive/w64_mingw_wrapper
cd ../texk/texlive/w64_mingw_wrapper
;;
esac
echo '1 ICON "tlmgr.ico"'>texlive.rc
windres texlive.rc texlive.o
gcc -Os -s -shared -o runscript.dll runscript_dll.c -L./ -ltexlua
gcc -Os -s -o runscript.exe runscript_exe.c texlive.o -L./ -lrunscript
gcc -mwindows -Os -s -o wrunscript.exe wrunscript_exe.c texlive.o -L./ -lrunscript
cd context
gcc -Os -s -shared -o mtxrun.dll mtxrun_dll.c
gcc -Os -s -o mtxrun.exe mtxrun_exe.c -L./ -lmtxrun
cd ..
#cleanup
rm texlive.rc texlive.o texlua.dll
}
package_libsynctex() {
pkgdesc='Library for synchronization between TeX files and resulting file (mingw-w64)'
depends=("${MINGW_PACKAGE_PREFIX}-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=(
"${MINGW_PACKAGE_PREFIX}-cairo"
"${MINGW_PACKAGE_PREFIX}-pixman"
"${MINGW_PACKAGE_PREFIX}-graphite2"
"${MINGW_PACKAGE_PREFIX}-libsigsegv"
"${MINGW_PACKAGE_PREFIX}-zziplib"
"${MINGW_PACKAGE_PREFIX}-libpng"
"${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
"${MINGW_PACKAGE_PREFIX}-freetype"
"${MINGW_PACKAGE_PREFIX}-icu"
"${MINGW_PACKAGE_PREFIX}-harfbuzz"
"${MINGW_PACKAGE_PREFIX}-gmp"
"${MINGW_PACKAGE_PREFIX}-mpfr"
"${MINGW_PACKAGE_PREFIX}-potrace"
"${MINGW_PACKAGE_PREFIX}-libpaper"
"${MINGW_PACKAGE_PREFIX}-libgd"
"${MINGW_PACKAGE_PREFIX}-libsynctex"
"${MINGW_PACKAGE_PREFIX}-lua"
"${MINGW_PACKAGE_PREFIX}-luajit"
"${MINGW_PACKAGE_PREFIX}-ghostscript"
# perl dependencies
"${MINGW_PACKAGE_PREFIX}-perl-win32-api"
"${MINGW_PACKAGE_PREFIX}-perl-win32-console"
"${MINGW_PACKAGE_PREFIX}-perl-win32-shortcut"
"${MINGW_PACKAGE_PREFIX}-perl-win32-tieregistry"
"${MINGW_PACKAGE_PREFIX}-perl-win32-winerror"
"${MINGW_PACKAGE_PREFIX}-perl-win32api-registry"
"${MINGW_PACKAGE_PREFIX}-perl-file-which"
"${MINGW_PACKAGE_PREFIX}-perl-io-string")
provides=(
"${MINGW_PACKAGE_PREFIX}-lcdf-typetools"
"${MINGW_PACKAGE_PREFIX}-kpathsea"
#"${MINGW_PACKAGE_PREFIX}-xindy" #once clisp is build this needs to be enabled
)
#optdepends=('ed: for texconfig'
# 'biber: for bibliography processing')
options=('!strip')
cd "$srcdir/texlive-source"
#############################################################
### install
echo "-------------------------------------------------------"
echo "--> Proceeding with make install ..."
echo "-------------------------------------------------------"
cd Work
make DESTDIR="${pkgdir}" texmf="${pkgdir}${MINGW_PREFIX}"/share/texmf install
rm -rf "${pkgdir}${MINGW_PREFIX}"/{texmf,share/texmf-dist}
# should be updated with what arch does.
## symlink engines by hand. texlinks has moved to texlive-core...
cd "${pkgdir}${MINGW_PREFIX}"/bin
mkdir -p "${pkgdir}${MINGW_PREFIX}"/bin
install -D -m755 eptex.exe ${pkgdir}${MINGW_PREFIX}/bin/platex.exe
install -D -m755 euptex.exe ${pkgdir}${MINGW_PREFIX}/bin/uplatex.exe
install -D -m755 luatex.exe ${pkgdir}${MINGW_PREFIX}/bin/dvilualatex.exe
install -D -m755 luatex.exe ${pkgdir}${MINGW_PREFIX}/bin/dviluatex.exe
install -D -m755 luahbtex.exe ${pkgdir}${MINGW_PREFIX}/bin/lualatex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/amstex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/cslatex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/csplain.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/eplain.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/etex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/jadetex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/latex.exe
install -D -m755 tex.exe ${pkgdir}${MINGW_PREFIX}/bin/lollipop.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/mex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/mllatex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/mltex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/pdfetex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/pdfcslatex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/pdfcsplain.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/pdfjadetex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/pdflatex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/pdfmex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/pdfxmltex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/texsis.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/utf8mex.exe
install -D -m755 pdftex.exe ${pkgdir}${MINGW_PREFIX}/bin/xmltex.exe
install -D -m755 xetex.exe ${pkgdir}${MINGW_PREFIX}/bin/xelatex.exe
# remove dangling executables, they are available in seperate pacakges
_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
texindy
texlinks
texliveonfly
texloganalyser
texmfstart
texosquery
texosquery-jre5
texosquery-jre8
texplate
thumbpdf
tlcockpit
tlshell
typeoutfileinfo
updmap
updmap-sys
updmap-user
vpl2ovp
vpl2vpl
xhlatex
xindex
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
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
rm -f "${pkgdir}${MINGW_PREFIX}"/bin/$s.exe
done
###################################################################
# remove libsynctex
rm -f "${pkgdir}${MINGW_PREFIX}"/include/synctex/*
rm -f "${pkgdir}${MINGW_PREFIX}"/lib/libsynctex.*
rm -f "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig/synctex.pc
rm -f "${pkgdir}${MINGW_PREFIX}"/share/man/man*/synctex.*
rm -f "${pkgdir}${MINGW_PREFIX}"/bin/libsynctex-2.dll
}
# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :
# generate wrappers
for _name in "${pkgname[@]}"; do
_short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
_func="$(declare -f "${_short}")"
eval "${_func/#${_short}/package_${_name}}"
done
# template end;