# 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;
