diff --git a/mingw-w64-texlive-bin/0001-Remove-DLUASOCKET_INET_PTON-from-Makefile.patch b/mingw-w64-texlive-bin/0001-Remove-DLUASOCKET_INET_PTON-from-Makefile.patch new file mode 100644 index 0000000000..e3d8fda15c --- /dev/null +++ b/mingw-w64-texlive-bin/0001-Remove-DLUASOCKET_INET_PTON-from-Makefile.patch @@ -0,0 +1,44 @@ +From 0edd2c6c69da4d825b4e8f833f020796aba960d2 Mon Sep 17 00:00:00 2001 +From: Naveen M K +Date: Sat, 3 Apr 2021 17:46:48 +0530 +Subject: [PATCH] Remove -DLUASOCKET_INET_PTON from Makefile Also, remove + definition of LUASOCKET_INET_PTON it's already defined in ws2tcpip.h so don't + redeclare it causes problems while compiling see + https://github.com/diegonehab/luasocket/pull/300 + +Signed-off-by: Naveen M K +--- + texk/web2c/luatexdir/luasocket/src/inet.h | 3 --- + texk/web2c/luatexdir/luasocket/src/makefile | 2 +- + 2 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/texk/web2c/luatexdir/luasocket/src/inet.h b/texk/web2c/luatexdir/luasocket/src/inet.h +index 928c7eb4..b286e6ec 100644 +--- a/texk/web2c/luatexdir/luasocket/src/inet.h ++++ b/texk/web2c/luatexdir/luasocket/src/inet.h +@@ -22,9 +22,6 @@ + #define LUASOCKET_INET_ATON + #endif + +-#if defined( __MINGW32__ ) || defined( __MINGW64__ ) +-#define LUASOCKET_INET_PTON +-#endif + + int inet_open(lua_State *L); + +diff --git a/texk/web2c/luatexdir/luasocket/src/makefile b/texk/web2c/luatexdir/luasocket/src/makefile +index 494baab0..19008c04 100644 +--- a/texk/web2c/luatexdir/luasocket/src/makefile ++++ b/texk/web2c/luatexdir/luasocket/src/makefile +@@ -213,7 +213,7 @@ SOCKET_solaris=usocket.o + SO_mingw=dll + O_mingw=o + CC_mingw=gcc +-DEF_mingw= -DLUASOCKET_INET_PTON -DLUASOCKET_$(DEBUG) \ ++DEF_mingw= -DLUASOCKET_$(DEBUG) \ + -DWINVER=0x0501 -DLUASOCKET_API='__declspec(dllexport)' \ + -DMIME_API='__declspec(dllexport)' + CFLAGS_mingw= -I$(LUAINC) $(DEF) -Wall -O2 -fno-common \ +-- +2.31.1.windows.1 + diff --git a/mingw-w64-texlive-bin/0002-fix-lauchers-mingw32.patch b/mingw-w64-texlive-bin/0002-fix-lauchers-mingw32.patch new file mode 100644 index 0000000000..7b680ad7cb --- /dev/null +++ b/mingw-w64-texlive-bin/0002-fix-lauchers-mingw32.patch @@ -0,0 +1,20 @@ +--- runscript_dll.c.old 2021-04-24 16:51:41.647049300 +0530 ++++ runscript_dll.c 2021-04-24 16:51:41.571045000 +0530 +@@ -17,7 +17,7 @@ + + char module_name[] = "runscript.dll"; + char script_name[] = "runscript.tlu"; +-char texlua_name[] = "texlua"; // just a bare name, luatex strips the rest anyway ++char texlua_name[] = "texluajit"; // just a bare name, luatex strips the rest anyway + char subsys_mode[] = "CUI_MODE\n"; + char err_env_var[] = "RUNSCRIPT_ERROR_MESSAGE"; + char msg_buf[MAX_MSG]; +@@ -78,7 +78,7 @@ + + // call texlua interpreter + // for(int j=0; j + +pkgname=("${MINGW_PACKAGE_PREFIX}-texlive-bin" "${MINGW_PACKAGE_PREFIX}-libsynctex") +pkgver=2021.20210424 +pkgdesc="TeX Live binaries (mingw-w64)" +pkgrel=1 +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") +sha256sums=('f17bdf0fba64790151b39bcb1d6d4f0ee97da6bcf15b4c9282ff9056bb8da5ee' + 'e4b8238de5906b16cc8aeae6512fae4975d85c0c636225ab2031961bb77c32ac' + 'decff8db61302c2a1760cfd4b42aaf0e25fcb7d2b9621cea3ec3f4c2557976a1') + +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 + + # 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; diff --git a/mingw-w64-texlive-core/.gitignore b/mingw-w64-texlive-core/.gitignore new file mode 100644 index 0000000000..76066b28b0 --- /dev/null +++ b/mingw-w64-texlive-core/.gitignore @@ -0,0 +1,8 @@ +*.fmts +*.maps +src/ +pkg/ +*.tar.* +*.def +*.dat +*.dat.lua diff --git a/mingw-w64-texlive-core/09-texlive-fonts.conf.in b/mingw-w64-texlive-core/09-texlive-fonts.conf.in new file mode 100644 index 0000000000..78edd63fec --- /dev/null +++ b/mingw-w64-texlive-core/09-texlive-fonts.conf.in @@ -0,0 +1,8 @@ + + + + @MINGW_PREFIX@/share/texmf-dist/fonts/opentype + @MINGW_PREFIX@/share/texmf-dist/fonts/truetype + @MINGW_PREFIX@/etc/texmf/fonts/opentype + @MINGW_PREFIX@/etc/texmf/fonts/truetype + diff --git a/mingw-w64-texlive-core/PKGBUILD b/mingw-w64-texlive-core/PKGBUILD new file mode 100644 index 0000000000..c6f3ae99f9 --- /dev/null +++ b/mingw-w64-texlive-core/PKGBUILD @@ -0,0 +1,423 @@ +# Maintainer: @naveen521kk on Github, Naveen M K + +_realname=texlive-core +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=2021.20210424 +_revnr=${pkgver#2021.} +pkgrel=1 +pkgdesc="TeX Live core distribution (mingw-w64)" +license=('GPL') +arch=('any') +depends=( + "${MINGW_PACKAGE_PREFIX}-texlive-bin" + "${MINGW_PACKAGE_PREFIX}-perl" +) +optdepends=( + #'dialog: for texconfig' + "${MINGW_PACKAGE_PREFIX}-ghostscript: for epstopdf, epspdf and other ConTeXt tools" + #'java-runtime: for utilities like arara, texplate' + #'perl-tk: for texdoctk' + #'psutils: to manipulate the output of dvips' + "${MINGW_PACKAGE_PREFIX}-python: for de-macro, dviasm, pythontex" + "${MINGW_PACKAGE_PREFIX}-ruby: for old ConTeXT MkII and epspdf" + #"t1utils: can be useful when installing Type1 fonts" +) +groups=('texlive-most') +conflicts=( + "${MINGW_PACKAGE_PREFIX}-tetex" + "${MINGW_PACKAGE_PREFIX}-texlive-latex3" + "${MINGW_PACKAGE_PREFIX}-pdfjam" + "${MINGW_PACKAGE_PREFIX}-texlive-genericextra" + "${MINGW_PACKAGE_PREFIX}-texlive-plainextra" +) +provides=( + "${MINGW_PACKAGE_PREFIX}-tetex" + "${MINGW_PACKAGE_PREFIX}-texlive-latex3" + "${MINGW_PACKAGE_PREFIX}-pdfjam" + "${MINGW_PACKAGE_PREFIX}-texlive-genericextra" + "${MINGW_PACKAGE_PREFIX}-texlive-plainextra" +) +replaces=( + "${MINGW_PACKAGE_PREFIX}-tetex" + "${MINGW_PACKAGE_PREFIX}-texlive-latex3" + "${MINGW_PACKAGE_PREFIX}-pdfjam" + "${MINGW_PACKAGE_PREFIX}-texlive-genericextra" + "${MINGW_PACKAGE_PREFIX}-texlive-plainextra" +) +url='http://tug.org/texlive/' +source=("https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/texlive-core-${_revnr}.tar.xz" + "$_realname.maps::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}.maps" + "$_realname.fmts::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}.fmts" + "$_realname.dat::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}.dat" + "$_realname.dat.lua::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}.dat.lua" + "$_realname.def::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}.def" + "mktexlsr.hook.in" + "mktexlsr.script.in" + "texlive-updmap.hook.in" + "texlive-updmap.script.in" + "texlive-fmtutil.hook.in" + "texlive-fmtutil.script.in" + "texmf.cnf.in" + "texmfcnf.lua.in" + "09-texlive-fonts.conf.in") +install=${_realname}-${MSYSTEM}.install +backup=("${MINGW_PREFIX:1}/etc/texmf/web2c/texmf.cnf" + "${MINGW_PREFIX:1}/etc/texmf/chktex/chktexrc" + "${MINGW_PREFIX:1}/etc/texmf/dvipdfmx/dvipdfmx.cfg" + "${MINGW_PREFIX:1}/etc/texmf/dvips/config/config.ps" + "${MINGW_PREFIX:1}/etc/texmf/tex/generic/config/language.dat" + "${MINGW_PREFIX:1}/etc/texmf/tex/generic/config/language.def" + "${MINGW_PREFIX:1}/etc/texmf/tex/generic/tex-ini-files/pdftexconfig.tex" + "${MINGW_PREFIX:1}/etc/texmf/ttf2pk/ttf2pk.cfg" + "${MINGW_PREFIX:1}/etc/texmf/web2c/fmtutil.cnf" + "${MINGW_PREFIX:1}/etc/texmf/web2c/mktex.cnf" + "${MINGW_PREFIX:1}/etc/texmf/xdvi/XDvi") +sha256sums=('b51d381e3eafc3ab228fa6334873c103890774ed1696b0372243d72b87a4f057' + '92cde6a5f11c4d1709d61a278d3f7e315654b62d8cf41dffc4157fd264d0094d' + 'ac365205a0d57fac5ee1d898e8aa22957f937865b7a11bff0c01231927e840ec' + 'c1b678210bd2ce220d0866b0b0b2a59d11616ffe356e8cb74525bc2fb8c40d9f' + 'a0e9859ccbfc51b21660af389557a4343ce61cb77e6161f1b00d80277da87724' + '849f0f5388b9bc4e4982b1c95a26924a14e1c3d942af125df0d7b7de53cd50ff' + '542f68cd8e1a00f1598db8532e70e1bb77adc0516daee84e5aa92707f58fdf04' + 'e928c013251f578f6a6cf88feef11027516c715313ef0a93e4ce246ed3cf2ee3' + 'bffaa8a7f5d78aed138a760dfa1073ad7c419a61a9739cafbc28dce330aae911' + 'db908b689902148236db85c5756e33026f5a8baa413d762d036a7389cb1b9ced' + 'd615d040d1943bcdf7b1c7a649644a7bd47703317b79963062a058e1300602f3' + 'eea03a5acda0f31093f3bf709676d471e518de95c0d95b1e7d09eae65422ffdd' + '3bc32f119b672015d75d136a3a506efefac6f7b8e01a9a6c95c10c4336931b26' + '8ededf35132ffbe26434c0c778b3d4a159ce428452abe6ebc8d94161f02bd7e9' + '87eddde958848d041ded1625e14009e89b3bd5953e7ae39b6aac2f65d3856485') + +build() { + cd "$srcdir" + echo -n " --> extracting all packages... " + for p in *.tar.xz; do + bsdtar -xf $p + done + echo "done" + rm -rf source doc +} + +copy_file_message() { + local from="$1" + local to="$2" + msg2 "Copying $from to $to" + cp $from $to +} + +package() { + cd "$srcdir" + + msg "Installing Pacman hooks" + # First lets sed all files for prefix changes. + for hook in 'mktexlsr' 'texlive-fmtutil' 'texlive-updmap'; do + local hook_path="${srcdir}/${MINGW_PACKAGE_PREFIX}-${hook}.hook" + cp "${srcdir}/${hook}.hook.in" "${hook_path}" + sed -s "s|@MINGW_HOOK_TARGET_PREFIX@|${MINGW_PREFIX:1}|g" -i "${hook_path}" + sed -s "s|@MINGW_PREFIX@|${MINGW_PREFIX}|g" -i "${hook_path}" + sed -s "s|@MINGW_PACKAGE_PREFIX@|${MINGW_PACKAGE_PREFIX}|g" -i "${hook_path}" + sed -s "s|@TEMP@|$(cygpath -w $TMP)|g" -i "${hook_path}" + install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 "${hook_path}" + done + + for script in 'mktexlsr' 'texlive-fmtutil' 'texlive-updmap'; do + local script_path="${srcdir}/${MINGW_PACKAGE_PREFIX}-${script}.script" + cp "${srcdir}/${script}.script.in" "${script_path}" + sed -s "s|@MINGW_PREFIX@|${MINGW_PREFIX}|g" -i "${script_path}" + sed -s "s|@MINGW_HOOK_TARGET_PREFIX@|${MINGW_PREFIX:1}|g" -i "${script_path}" + install -Dt "$pkgdir/usr/share/libalpm/scripts" -m644 "${script_path}" + done + + for file_conf in '09-texlive-fonts.conf' 'texmfcnf.lua' 'texmf.cnf'; do + local conf_path="${srcdir}/${file_conf}" + cp "${srcdir}/${file_conf}.in" "${conf_path}" + sed -s "s|@MINGW_HOOK_TARGET_PREFIX@|${MINGW_PREFIX:1}|g" -i "${conf_path}" + sed -s "s|@MINGW_PREFIX@|${MINGW_PREFIX}|g" -i "${conf_path}" + sed -s "s|@MINGW_PACKAGE_PREFIX@|${MINGW_PACKAGE_PREFIX}|g" -i "${conf_path}" + sed -s "s|@TEMP@|$(cygpath -u $TMP)|g" -i "${conf_path}" + done + + msg "Installing Package" + # Install packages. + install -m755 -d "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs" + sed -i '/^#/d' CONTENTS + install -m644 CONTENTS "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/${pkgname}_${_revnr}.pkgs" + install -m644 $_realname.maps "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/" + install -m644 $_realname.fmts "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/" + + # language files for hooks + sed -i 's/\% test//' $_realname.dat + install -m644 $_realname.dat "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/" + + sed -i 's/-- test//' $_realname.dat.lua + install -m644 $_realname.dat.lua "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/" + + sed -i 's/\% test//' $_realname.def + install -m644 $_realname.def "${pkgdir}${MINGW_PREFIX}/var/lib/texmf/msys2/installedpkgs/" + + install -m755 -d "${pkgdir}${MINGW_PREFIX}/share" + wanteddirs=$(for d in *; do test -d $d && [[ $d != texmf* ]] && echo $d; done) || true + for dir in $wanteddirs; do + find $dir -type d -exec install -d -m755 "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/'{}' \; + find $dir -type f -exec install -m644 '{}' "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/'{}' \; + done + find texmf-dist -type d -exec install -d -m755 "${pkgdir}${MINGW_PREFIX}"/share/'{}' \; + find texmf-dist -type f -exec install -m644 '{}' "${pkgdir}${MINGW_PREFIX}"/share/'{}' \; + find texmf-dist -type f -executable -exec chmod 755 "${pkgdir}${MINGW_PREFIX}"/share/'{}' \; + + ############################################################# + ### install texmf tree + msg "Installing the /etc/texmf tree" + install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/web2c/" + install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/chktex/" + install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/dvips/config/" + install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/dvipdfmx/" + install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/config/" + install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/tex-ini-files/" + install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/ttf2pk/" + install -d -m755 "${pkgdir}${MINGW_PREFIX}/etc/texmf/xdvi/" + + install -d -m755 "${pkgdir}${MINGW_PREFIX}/share/fontconfig/conf.avail" + install -m644 "$srcdir"/09-texlive-fonts.conf \ + "${pkgdir}${MINGW_PREFIX}/share/fontconfig/conf.avail/" + + # Remove manpages (already in texlive-bin). + rm -rf "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/doc/man" + + msg "Copying config files to TEXMFCONFIG tree" + # copy config files to $TEXMFCONFIG tree + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/chktex/chktexrc" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/chktex/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/mktex.cnf" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/web2c/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/updmap-hdr.cfg" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/web2c/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/fmtutil-hdr.cnf" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/web2c/fmtutil.cnf" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/dvips/config/config.ps" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/dvips/config/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/dvipdfmx/dvipdfmx.cfg" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/dvipdfmx/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/tex-ini-files/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/tex/generic/config/language.us" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/config/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/tex/generic/config/language.us.def" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/config/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/tex/generic/config/language.us.lua" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/tex/generic/config/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/ttf2pk/ttf2pk.cfg" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/ttf2pk/" + + copy_file_message "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/xdvi/XDvi" \ + "${pkgdir}${MINGW_PREFIX}/etc/texmf/xdvi/" + + msg 'remove TL specific warnings in the language.{dat,def} files' + # remove TL specific warnings in the language.{dat,def} files: + sed -i -e '/DO NOT EDIT/,+3 d' "${pkgdir}${MINGW_PREFIX}"/etc/texmf/tex/generic/config/language.* + + msg "Replace upstream texmf.cnf with ours" + # replace upstream texmf.cnf with ours + rm -f "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/web2c/texmf.cnf + install -m644 "$srcdir"/texmf.cnf "${pkgdir}${MINGW_PREFIX}"/etc/texmf/web2c/texmf.cnf + install -m644 "${pkgdir}${MINGW_PREFIX}"/etc/texmf/web2c/texmf.cnf "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/web2c/texmf.cnf + # replace upstream texmfcnf.lua with ours + install -m644 "$srcdir"/texmfcnf.lua "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/web2c/texmfcnf.lua + + msg "Configure Languages Hypens" + # remove upstream's language.* + rm -f "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/tex/generic/config/language.dat + rm -f "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/tex/generic/config/language.def + rm -f "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/tex/generic/config/language.dat.lua + + msg "Install Perl libraries" + # install Perl libraries + mv "${pkgdir}${MINGW_PREFIX}"/share/texmf-dist/tlpkg "${pkgdir}${MINGW_PREFIX}"/share + rm -rf "${pkgdir}${MINGW_PREFIX}"/share/tlpkg/tlpobj + + msg "remove Upstream updmap.cfg and fmtutil.cnf" + # remove upstream updmap.cfg: it contains too many maps. + rm "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/updmap.cfg" + # remove upstream fmtutil.cnf: it will be autogenerated + rm "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/web2c/fmtutil.cnf" + + # Create lauchers for all these Scripts. + # There is a `runscript.exe` which can be copied + # with these script names and things should work + # automatically. It is from texlive-bin + msg "Creating Launchers." + # get the list from + # https://github.com/TeX-Live/texlive-source/blob//texk/texlive/linked_scripts/scripts.lst + _linked_scripts=" +a2ping/a2ping.pl +accfonts/mkt1font +accfonts/vpl2ovp +accfonts/vpl2vpl +adhocfilelist/adhocfilelist.sh +albatross/albatross.sh +arara/arara.sh +attachfile2/pdfatfi.pl +bundledoc/arlatex +bundledoc/bundledoc +checkcites/checkcites.lua +checklistings/checklistings.sh +chklref/chklref.pl +chktex/chkweb.sh +chktex/deweb.pl +cjk-gs-integrate/cjk-gs-integrate.pl +clojure-pamphlet/pamphletangler +cluttex/cluttex.lua +context/perl/mptopdf.pl +context/stubs/unix/context +context/stubs/unix/contextjit +context/stubs/unix/luatools +context/stubs/unix/mtxrun +context/stubs/unix/mtxrunjit +context/stubs/unix/texexec +context/stubs/unix/texmfstart +ctan-o-mat/ctan-o-mat.pl +ctanbib/ctanbib +ctanify/ctanify +ctanupload/ctanupload.pl +de-macro/de-macro +dosepsbin/dosepsbin.pl +dtxgen/dtxgen +dviasm/dviasm.py +dviinfox/dviinfox.pl +epstopdf/epstopdf.pl +findhyph/findhyph +fontools/afm2afm +fontools/autoinst +fontools/ot2kpx +fragmaster/fragmaster.pl +git-latexdiff/git-latexdiff +installfont/installfont-tl +jfmutil/jfmutil.pl +ketcindy/ketcindy.sh +latex-git-log/latex-git-log +latex-papersize/latex-papersize.py +latex2man/latex2man +latex2nemeth/latex2nemeth +latexdiff/latexdiff-vc.pl +latexdiff/latexdiff.pl +latexdiff/latexrevise.pl +latexfileversion/latexfileversion +latexindent/latexindent.pl +latexmk/latexmk.pl +latexpand/latexpand +light-latex-make/llmk.lua +ltxfileinfo/ltxfileinfo +ltximg/ltximg.pl +luaotfload/luaotfload-tool.lua +lwarp/lwarpmk.lua +make4ht/make4ht +match_parens/match_parens +mf2pt1/mf2pt1.pl +mkjobtexmf/mkjobtexmf.pl +pdfbook2/pdfbook2 +pdfcrop/pdfcrop.pl +pdfjam/pdfjam +pdflatexpicscale/pdflatexpicscale.pl +pdftex-quiet/pdftex-quiet +pdfxup/pdfxup +pfarrei/a5toa4.tlu +pfarrei/pfarrei.tlu +pkfix-helper/pkfix-helper +pkfix/pkfix.pl +ps2eps/ps2eps.pl +purifyeps/purifyeps +pythontex/depythontex.py +pythontex/pythontex.py +simpdftex/simpdftex +spix/spix.py +srcredact/srcredact.pl +sty2dtx/sty2dtx.pl +tex4ebook/tex4ebook +tex4ht/ht.sh +tex4ht/htcontext.sh +tex4ht/htlatex.sh +tex4ht/htmex.sh +tex4ht/httex.sh +tex4ht/httexi.sh +tex4ht/htxelatex.sh +tex4ht/htxetex.sh +tex4ht/mk4ht.pl +tex4ht/xhlatex.sh +texcount/texcount.pl +texdef/texdef.pl +texdiff/texdiff +texdirflatten/texdirflatten +texdoc/texdoc.tlu +texdoctk/texdoctk.pl +texfot/texfot.pl +texlive-extra/allcm.sh +texlive-extra/allneeded.sh +texlive-extra/dvi2fax.sh +texlive-extra/dvired.sh +texlive-extra/e2pall.pl +texlive-extra/fontinst.sh +texlive-extra/kpsetool.sh +texlive-extra/kpsewhere.sh +texlive-extra/ps2frag.sh +texlive-extra/pslatex.sh +texlive-extra/texconfig-dialog.sh +texlive-extra/texconfig-sys.sh +texlive-extra/texconfig.sh +texlive-extra/texlinks.sh +texlive/fmtutil-sys.sh +texlive/fmtutil-user.sh +texlive/fmtutil.pl +texlive/mktexmf +texlive/mktexpk +texlive/mktextfm +texlive/rungs.tlu +texlive/updmap-sys.sh +texlive/updmap-user.sh +texlive/updmap.pl +texliveonfly/texliveonfly.py +texloganalyser/texloganalyser +texplate/texplate.sh +thumbpdf/thumbpdf.pl +typeoutfileinfo/typeoutfileinfo.sh +xindex/xindex.lua +xindy/texindy.pl +xindy/xindy.pl +listings-ext/listings-ext.sh +" + install -m755 -d "${pkgdir}${MINGW_PREFIX}"/bin + for _script in ${_linked_scripts}; do + _scriptbase=$(basename $_script) + _scriptbase=${_scriptbase%.*} + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/${_scriptbase}.exe" + done + + # now copy mktexlsr + install -D -m755 "${pkgdir}${MINGW_PREFIX}/share/texmf-dist/scripts/texlive/mktexlsr.pl" \ + "${pkgdir}${MINGW_PREFIX}/bin/mktexlsr" + + msg "Creating additional symlinks." + + # additional installs links + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/allec.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/cllualatex.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/clxelatex.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/repstopdf.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/mktexfmt.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/kpsepath.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/kpsexpand.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/mkluatexfontdb.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/texhash.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/rpdfcrop.exe" + install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/latexdef.exe" +} diff --git a/mingw-w64-texlive-core/mktexlsr.hook.in b/mingw-w64-texlive-core/mktexlsr.hook.in new file mode 100644 index 0000000000..ea068fd905 --- /dev/null +++ b/mingw-w64-texlive-core/mktexlsr.hook.in @@ -0,0 +1,16 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Operation = Remove +Target = @MINGW_HOOK_TARGET_PREFIX@/bin/mktexlsr +Target = @MINGW_HOOK_TARGET_PREFIX@/etc/texmf/* +Target = @MINGW_HOOK_TARGET_PREFIX@/share/texmf/* +Target = @MINGW_HOOK_TARGET_PREFIX@/share/texmf-dist/* +Target = @MINGW_HOOK_TARGET_PREFIX@/var/lib/texmf/* + +[Action] +Description = Updating TeXLive filename database... +When = PostTransaction +Depends = @MINGW_PACKAGE_PREFIX@-texlive-bin +Exec = /usr/share/libalpm/scripts/@MINGW_PACKAGE_PREFIX@-mktexlsr.script diff --git a/mingw-w64-texlive-core/mktexlsr.script.in b/mingw-w64-texlive-core/mktexlsr.script.in new file mode 100644 index 0000000000..084a9debef --- /dev/null +++ b/mingw-w64-texlive-core/mktexlsr.script.in @@ -0,0 +1,16 @@ +#!/usr/bin/bash + +export PATH=@MINGW_PREFIX@/bin:$PATH +echo ">>> Running mktexlsr" +@MINGW_PREFIX@/bin/mktexlsr +echo ">>> Running mtxrun" +cd @MINGW_PREFIX@/etc/texmf +@MINGW_PREFIX@/bin/mtxrun --generate >/dev/null +cd - +# We need to remove directory "." from luatex cache to avoid absurd +# behaviour. +for item in @MINGW_PREFIX@/var/lib/texmf/luatex-cache/context/*/trees/*.lua; do + if grep -F '["root"]="."' "$item" >/dev/null; then + rm -f "$item" "${item%.lua}.luc" + fi +done diff --git a/mingw-w64-texlive-core/texlive-core-MINGW32.install b/mingw-w64-texlive-core/texlive-core-MINGW32.install new file mode 100644 index 0000000000..79339e1fb9 --- /dev/null +++ b/mingw-w64-texlive-core/texlive-core-MINGW32.install @@ -0,0 +1,29 @@ +MINGW_INSTALL=mingw32 + +post_install() { + cd ${MINGW_INSTALL} + local _prefix=$(cygpath -m "$(pwd)") + cd - + #fix 'texmf.cnf' + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/etc/texmf/web2c/texmf.cnf + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/texmf-dist/web2c/texmf.cnf + + # fix'texmfcnf.lua' + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/texmf-dist/web2c/texmfcnf.lua + + # fix 09-texlive-fonts.conf + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/fontconfig/conf.avail/09-texlive-fonts.conf + + echo ">>> updmap custom entries should go into /$_prefix/etc/texmf/web2c/updmap-local.cfg" + echo ">>> fmtutil custom entries should go into /$_prefix/etc/texmf/web2c/fmtutil-local.cnf" + #echo "NB: To setup ConTeXt and the lua(la)tex font db," + #echo " see http://wiki.archlinux.org/index.php/TeX_Live" +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-texlive-core/texlive-core-MINGW64.install b/mingw-w64-texlive-core/texlive-core-MINGW64.install new file mode 100644 index 0000000000..4c4279bc81 --- /dev/null +++ b/mingw-w64-texlive-core/texlive-core-MINGW64.install @@ -0,0 +1,29 @@ +MINGW_INSTALL=mingw64 + +post_install() { + cd ${MINGW_INSTALL} + local _prefix=$(cygpath -m "$(pwd)") + cd - + #fix 'texmf.cnf' + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/etc/texmf/web2c/texmf.cnf + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/texmf-dist/web2c/texmf.cnf + + # fix'texmfcnf.lua' + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/texmf-dist/web2c/texmfcnf.lua + + # fix 09-texlive-fonts.conf + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/fontconfig/conf.avail/09-texlive-fonts.conf + + echo ">>> updmap custom entries should go into /$_prefix/etc/texmf/web2c/updmap-local.cfg" + echo ">>> fmtutil custom entries should go into /$_prefix/etc/texmf/web2c/fmtutil-local.cnf" + #echo "NB: To setup ConTeXt and the lua(la)tex font db," + #echo " see http://wiki.archlinux.org/index.php/TeX_Live" +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-texlive-core/texlive-core-UCRT64.install b/mingw-w64-texlive-core/texlive-core-UCRT64.install new file mode 100644 index 0000000000..b5766efd63 --- /dev/null +++ b/mingw-w64-texlive-core/texlive-core-UCRT64.install @@ -0,0 +1,29 @@ +MINGW_INSTALL=ucrt64 + +post_install() { + cd ${MINGW_INSTALL} + local _prefix=$(cygpath -m "$(pwd)") + cd - + #fix 'texmf.cnf' + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/etc/texmf/web2c/texmf.cnf + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/texmf-dist/web2c/texmf.cnf + + # fix'texmfcnf.lua' + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/texmf-dist/web2c/texmfcnf.lua + + # fix 09-texlive-fonts.conf + sed -e "s|/${MINGW_INSTALL}|${_prefix}|g" \ + -i ${_prefix}/share/fontconfig/conf.avail/09-texlive-fonts.conf + + echo ">>> updmap custom entries should go into /$_prefix/etc/texmf/web2c/updmap-local.cfg" + echo ">>> fmtutil custom entries should go into /$_prefix/etc/texmf/web2c/fmtutil-local.cnf" + #echo "NB: To setup ConTeXt and the lua(la)tex font db," + #echo " see http://wiki.archlinux.org/index.php/TeX_Live" +} + +post_upgrade() { + post_install +} diff --git a/mingw-w64-texlive-core/texlive-fmtutil.hook.in b/mingw-w64-texlive-core/texlive-fmtutil.hook.in new file mode 100644 index 0000000000..c495779720 --- /dev/null +++ b/mingw-w64-texlive-core/texlive-fmtutil.hook.in @@ -0,0 +1,18 @@ +[Trigger] +Type = Package +Operation = Install +Operation = Upgrade +Target = texlive-bin + +[Trigger] +Type = File +Operation = Install +Operation = Upgrade +Operation = Remove +Target = @MINGW_HOOK_TARGET_PREFIX@/var/lib/texmf/msys2/installedpkgs/*.fmts + +[Action] +Description = Updating TeXLive format files... +When = PostTransaction +Depends = @MINGW_PACKAGE_PREFIX@-texlive-bin +Exec = /usr/share/libalpm/scripts/@MINGW_PACKAGE_PREFIX@-texlive-fmtutil.script diff --git a/mingw-w64-texlive-core/texlive-fmtutil.script.in b/mingw-w64-texlive-core/texlive-fmtutil.script.in new file mode 100644 index 0000000000..a79ed06fe9 --- /dev/null +++ b/mingw-w64-texlive-core/texlive-fmtutil.script.in @@ -0,0 +1,54 @@ +#!/usr/bin/bash +export PATH=@MINGW_PREFIX@/bin:$PATH +FMTUTIL="@MINGW_HOOK_TARGET_PREFIX@/etc/texmf/web2c/fmtutil.cnf" +FMTUTILLOCAL="@MINGW_HOOK_TARGET_PREFIX@/etc/texmf/web2c/fmtutil-local.cnf" + +LANGUAGE_DEF="@MINGW_HOOK_TARGET_PREFIX@/etc/texmf/tex/generic/config/language.def" +LANGUAGE_DAT="@MINGW_HOOK_TARGET_PREFIX@/etc/texmf/tex/generic/config/language.dat" +LANGUAGE_DAT_LUA="@MINGW_HOOK_TARGET_PREFIX@/etc/texmf/tex/generic/config/language.dat.lua" + +cp @MINGW_HOOK_TARGET_PREFIX@/share/texmf-dist/web2c/fmtutil-hdr.cnf $FMTUTIL +for file in @MINGW_HOOK_TARGET_PREFIX@/var/lib/texmf/msys2/installedpkgs/*.fmts; do + echo >> $FMTUTIL + echo "# $file" >> $FMTUTIL + cat $file >> $FMTUTIL +done +if [[ -f "$FMTUTILLOCAL" ]]; then + echo >> $FMTUTIL + echo "# $FMTUTILLOCAL" >> $FMTUTIL + cat "$FMTUTILLOCAL" >> $FMTUTIL +fi + +cp @MINGW_HOOK_TARGET_PREFIX@/etc/texmf/tex/generic/config/language.us.def $LANGUAGE_DEF +for file in @MINGW_HOOK_TARGET_PREFIX@/var/lib/texmf/msys2/installedpkgs/*.def; do + echo >> $LANGUAGE_DEF + echo "% $file" >> $LANGUAGE_DEF + cat $file >> $LANGUAGE_DEF +done +echo -e "%%% No changes may be made beyond this point.\n" >> $LANGUAGE_DEF +echo "\uselanguage {USenglish} %%% This MUST be the last line of the file." >> $LANGUAGE_DEF +echo >> $LANGUAGE_DEF # new line + +cp @MINGW_HOOK_TARGET_PREFIX@/etc/texmf/tex/generic/config/language.us $LANGUAGE_DAT +for file in @MINGW_HOOK_TARGET_PREFIX@/var/lib/texmf/msys2/installedpkgs/*.dat; do + echo >> $LANGUAGE_DAT + echo "% $file" >> $LANGUAGE_DAT + cat $file >> $LANGUAGE_DAT +done +echo >> $LANGUAGE_DAT # new line + +cp @MINGW_HOOK_TARGET_PREFIX@/etc/texmf/tex/generic/config/language.us.lua $LANGUAGE_DAT_LUA +for file in @MINGW_HOOK_TARGET_PREFIX@/var/lib/texmf/msys2/installedpkgs/*.dat.lua; do + echo >> $LANGUAGE_DAT_LUA + echo "-- $file" >> $LANGUAGE_DAT_LUA + cat $file >> $LANGUAGE_DAT_LUA +done +echo '}' >> $LANGUAGE_DAT_LUA +echo >> $LANGUAGE_DAT_LUA # new line + +# remove mflua-nowin it fails +sed -i 's/mflua mflua-nowin - mf.ini//' $FMTUTIL + +# Run mktexlsr since /etc/texmf/tex/generic/config/language.* can be a new files +@MINGW_PREFIX@/bin/mktexlsr +@MINGW_PREFIX@/bin/fmtutil-sys --all --cnffile $FMTUTIL > /dev/null diff --git a/mingw-w64-texlive-core/texlive-updmap.hook.in b/mingw-w64-texlive-core/texlive-updmap.hook.in new file mode 100644 index 0000000000..ebcb85069d --- /dev/null +++ b/mingw-w64-texlive-core/texlive-updmap.hook.in @@ -0,0 +1,13 @@ +[Trigger] +Type = Path +Operation = Install +Operation = Upgrade +Operation = Remove +Target = @MINGW_HOOK_TARGET_PREFIX@/bin/tex +Target = @MINGW_HOOK_TARGET_PREFIX@/var/lib/texmf/msys2/installedpkgs/*.maps + +[Action] +Description = Updating TeXLive font maps... +When = PostTransaction +Depends = @MINGW_PACKAGE_PREFIX@-texlive-bin +Exec = /usr/share/libalpm/scripts/@MINGW_PACKAGE_PREFIX@-texlive-updmap.script diff --git a/mingw-w64-texlive-core/texlive-updmap.script.in b/mingw-w64-texlive-core/texlive-updmap.script.in new file mode 100644 index 0000000000..ab4bc7351b --- /dev/null +++ b/mingw-w64-texlive-core/texlive-updmap.script.in @@ -0,0 +1,14 @@ +#!/usr/bin/bash +export PATH=@MINGW_PREFIX@/bin:$PATH +UPDMAP="@MINGW_HOOK_TARGET_PREFIX@/etc/texmf/web2c/updmap.cfg" +UPDMAPLOCAL="@MINGW_HOOK_TARGET_PREFIX@/etc/texmf/web2c/updmap-local.cfg" + +cp @MINGW_HOOK_TARGET_PREFIX@/share/texmf-dist/web2c/updmap-hdr.cfg $UPDMAP +cat @MINGW_HOOK_TARGET_PREFIX@/var/lib/texmf/msys2/installedpkgs/*.maps >> $UPDMAP +if [[ -f "$UPDMAPLOCAL" ]]; then + cat "$UPDMAPLOCAL" >> $UPDMAP +fi + +# Run mktexlsr since /etc/texmf/web2c/updmap.cfg can be a new file +@MINGW_PREFIX@/bin/mktexlsr +@MINGW_PREFIX@/bin/updmap-sys --quiet --nohash diff --git a/mingw-w64-texlive-core/texmf.cnf.in b/mingw-w64-texlive-core/texmf.cnf.in new file mode 100644 index 0000000000..f73265e7e7 --- /dev/null +++ b/mingw-w64-texlive-core/texmf.cnf.in @@ -0,0 +1,908 @@ +% texmf.cnf for TeXLive/MSYS2 MINGW -- runtime path configuration file for kpathsea. +% Public domain. +% +% If you modify this original file, YOUR CHANGES WILL BE LOST when it is +% updated. Instead, put your changes -- and only your changes, not an +% entire copy! -- in ../../texmf.cnf. That is, if this file is +% installed in /some/path/to/texlive/2021/texmf-dist/web2c/texmf.cnf, +% put your custom settings in /some/path/to/texlive/2021/texmf.cnf. +% (Below, we use YYYY in place of the specific year.) +% +% What follows is a super-summary of what this .cnf file can +% contain. Please read the Kpathsea manual for more information. +% +% Each statement in this file boils down to: +% [.] [=] +% +% Neither the nor the may be empty. +% Any identifier (sticking to A-Za-z_ for names is safest) can be assigned. +% The `=' (and surrounding spaces) is optional. +% $foo (or ${foo}) in a value expands to the envvar or cnf value of foo. +% Lines can be continued with a \; no whitespace removal is done. +% +% Earlier entries (in the same or another file) override later ones, and +% an environment variable foo overrides any texmf.cnf definition of foo. +% +% All definitions are read before anything is expanded, so you can use +% variables before they are defined. +% +% If a variable assignment is qualified with `.PROGRAM', it is ignored +% unless the current executable (last filename component of argv[0]) is +% named PROGRAM. This foo.PROGRAM construct is not recognized on the +% right-hand side. For environment variables, use FOO_PROGRAM. +% +% Which file formats use which paths for searches is described in the +% various programs' and the Kpathsea documentation (http://tug.org/kpathsea). +% +% // means to search subdirectories (recursively). +% A leading !! means to look only in the ls-R db, never on the disk. +% In this file, either ; or : can be used to separate path components. +% A leading/trailing/doubled path separator in the paths will be +% expanded into the compile-time default. Probably not what you want. +% +% Brace notation is supported, for example: /usr/local/{mytex,othertex} +% expands to /usr/local/mytex:/usr/local/othertex. + + +% Part 1: Search paths and directories. + +% This is the parent directory of our several trees, i.e., +% /usr/local/texlive/YYYY in the original TeX Live distribution. +% +% The path definitions here assume the directories are organized +% according to the TeX Directory Structure (http://tug.org/tds). +% +% Redistributors will probably want $SELFAUTODIR/share, i.e., /usr/share. +% Kpathsea sets (in kpathsea/progname.c): +% SELFAUTOLOC (directory of the binary=/usr/local/texlive/YYYY/bin/i386-linux), +% SELFAUTODIR (its parent = /usr/local/texlive/YYYY/bin), +% SELFAUTOPARENT (its grandparent = /usr/local/texlive/YYYY), and +% SELFAUTOGRANDPARENT (its great-grandparent = /usr/local/texlive). +% Sorry for the off-by-one-generation names. +TEXMFROOT = @MINGW_PREFIX@/share + +% The main tree of distributed packages and programs: +TEXMFDIST = $TEXMFROOT/texmf-dist + +% We used to have a separate /texmf tree with some core programs and files. +% Keep the variable name. +TEXMFMAIN = $TEXMFDIST + +% Local additions to the distribution trees. +TEXMFLOCAL = @MINGW_PREFIX@/local/share/texmf;@MINGW_PREFIX@/share/texmf + +% TEXMFSYSVAR, where *-sys store cached runtime data. +TEXMFSYSVAR = @MINGW_PREFIX@/var/lib/texmf + +% TEXMFSYSCONFIG, where *-sys store configuration data. +TEXMFSYSCONFIG = @MINGW_PREFIX@/etc/texmf + +% Per-user texmf tree(s) -- organized per the TDS, as usual. To define +% more than one per-user tree, set this to a list of directories in +% braces, as described above. (This used to be HOMETEXMF.) ~ expands +% to %USERPROFILE% on Windows, $HOME otherwise. +TEXMFHOME = ~/texmf + +% TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data. +TEXMFVAR = ~/.texlive/texmf-var + +% TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data. +TEXMFCONFIG = ~/.texlive/texmf-config + +% This is the value manipulated by tlmgr's auxtrees subcommand in the +% root texmf.cnf. Kpathsea warns about a literally empty string for a +% value, hence the empty braces. +TEXMFAUXTREES = {} + +% List all the texmf trees. For an explanation of what they are, see the +% TeX Live manual. +% +% For texconfig to work properly, TEXMFCONFIG and TEXMFVAR should be named +% explicitly and before other trees. +% +% TEXMFLOCAL precedes TEXMFDIST because locally-installed versions +% should take precedence over distribution files -- although it is +% generally a source of confusion to have different versions of a +% package installed, whatever the trees, so try to avoid it. +% +% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is +% ever defined (the 99% common case), no extra elements will be added to +% the search paths. tlmgr takes care to end any value with a trailing comma. +TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFDIST} + +% Where to look for, and where mktexlsr creates, ls-R files. By default, +% this is all and only the !! elements of TEXMF, so that mktexlsr does not +% create ls-R files in the non-!! elements -- because if an ls-R is +% present, it will be used, and the disk will not (usually) be searched, +% regardless of !!. Although in principle a directory listed here need +% not contain an ls-R file, in practice they all should. +TEXMFDBS = {!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST} + +% The system trees. These are the trees that are shared by all users. +% If a tree appears in this list, the mktex* scripts will use +% VARTEXFONTS for generated files, if the original tree isn't writable; +% otherwise the current working directory is used. +SYSTEXMF = $TEXMFSYSVAR;$TEXMFLOCAL;$TEXMFDIST + +% First writable tree here is used by Lua(La)TeX for the font cache. +% LuaLaTeX uses the value here, while ConTeXt uses the same variable but +% from texmfcnf.lua; therefore the two values should be kept in sync. +% (As should everything else in texmf.cnf <-> texmfcnf.lua.) +TEXMFCACHE = $TEXMFSYSVAR;$TEXMFVAR + +% Where generated fonts may be written. This tree is used when the sources +% were found in a system tree and either that tree wasn't writable, or the +% varfonts feature was enabled in MT_FEATURES in mktex.cnf. +VARTEXFONTS = $TEXMFVAR/fonts + +% On some systems, there will be a system tree which contains all the font +% files that may be created as well as the formats. For example +% TEXMFVAR = /var/lib/texmf +% is used in many distros. In this case, set VARTEXFONTS like this +%VARTEXFONTS = $TEXMFVAR/fonts +% and do not mention it in TEXMFDBS (but _do_ mention TEXMFVAR). +% +% Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below +% one of the TEXMF directories (avoids overlapping ls-R files). + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Usually you will not need to edit any of the following variables. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% WEB2C is for Web2C specific files. The current directory may not be +% a good place to look for them. +WEB2C = $TEXMF/web2c + +% This variable exists only to be redefined; it is used in nearly all +% search paths. If a document has source files not only in the current +% directory but also in subdirectories, it is convenient to set +% TEXMFDOTDIR=.// so that everything will be searched automatically. +% On the other hand, if you never want the current directory to be +% searched at all, setting TEXMFDOTDIR=/nonesuch should come close. +% +TEXMFDOTDIR = . + +% TEXINPUTS is for TeX input files -- i.e., anything to be found by \input +% or \openin, including .sty, .eps, etc. We specify paths for all known +% formats, past or present. Not all of them are built these days. + +% Plain TeX. Have the command tex check all directories as a last +% resort, we may have plain-compatible stuff anywhere. Prefer +% latex/ to latex-dev/, implying that we have to add a latex, element to +% every TEXINPUTS tree that recursively searches $TEXMF/tex//, which is +% all of them except ConTeXt. +TEXINPUTS.tex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}// + +% Fontinst needs to read afm files. +TEXINPUTS.fontinst = $TEXMFDOTDIR;$TEXMF/{tex,fonts/afm}// + +% Other plain-based formats. +TEXINPUTS.amstex = $TEXMFDOTDIR;$TEXMF/tex/{amstex,plain,generic,latex,}// +TEXINPUTS.csplain = $TEXMFDOTDIR;$TEXMF/tex/{csplain,plain,generic,latex,}// +TEXINPUTS.eplain = $TEXMFDOTDIR;$TEXMF/tex/{eplain,plain,generic,latex,}// +TEXINPUTS.ftex = $TEXMFDOTDIR;$TEXMF/tex/{formate,plain,generic,latex,}// +TEXINPUTS.mex = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,latex,}// +TEXINPUTS.texinfo = $TEXMFDOTDIR;$TEXMF/tex/{texinfo,plain,generic,latex,}// + +% LaTeX2e specific macros are stored in latex/, macros that can only be +% used with 2.09 in latex209/. In addition, we look in the directory +% latex209, useful for macros that were written for 2.09 and do not +% mention 2e at all, but can be used with 2e. The latex-dev/ subtree +% may contain release candidates for testing. +TEXINPUTS.cslatex = $TEXMFDOTDIR;$TEXMF/tex/{cslatex,csplain,latex,generic,}// +TEXINPUTS.latex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.latex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,latex,generic,}// +TEXINPUTS.latex209 = $TEXMFDOTDIR;$TEXMF/tex/{latex209,generic,latex,}// +TEXINPUTS.olatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// + +% MLTeX. +TEXINPUTS.frlatex = $TEXMFDOTDIR;$TEXMF/tex/{french,latex,generic,}// +TEXINPUTS.frtex = $TEXMFDOTDIR;$TEXMF/tex/{french,plain,generic,latex,}// +TEXINPUTS.mllatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.mltex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}// + +% e-TeX. +TEXINPUTS.elatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.etex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}// + +% pdfTeX. +TEXINPUTS.pdfcslatex = $TEXMFDOTDIR;$TEXMF/tex/{cslatex,csplain,latex,generic,}// +TEXINPUTS.pdfcsplain = $TEXMFDOTDIR;$TEXMF/tex/{csplain,plain,generic,latex,}// +TEXINPUTS.pdflatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.pdflatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,latex,generic,}// +TEXINPUTS.pdfmex = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,latex,}// +TEXINPUTS.utf8mex = $TEXMFDOTDIR;$TEXMF/tex/{mex,plain,generic,latex,}// +TEXINPUTS.pdftex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}// +TEXINPUTS.pdftexinfo = $TEXMFDOTDIR;$TEXMF/tex/{texinfo,plain,generic,latex,}// +TEXINPUTS.pdfamstex = $TEXMFDOTDIR;$TEXMF/tex/{amstex,plain,generic,latex,}// + +% pdfeTeX. +TEXINPUTS.pdfelatex = $TEXMFDOTDIR;$TEXMF/tex/{latex,generic,}// +TEXINPUTS.pdfetex = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}// + +% LuaTeX. +TEXINPUTS.luatex = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}// +TEXINPUTS.luajittex = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}// +TEXINPUTS.luahbtex = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}// +TEXINPUTS.luajithbtex = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}// +TEXINPUTS.dviluatex = $TEXMFDOTDIR;$TEXMF/tex/{luatex,plain,generic,latex,}// +TEXINPUTS.lualatex = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.lualatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}// +TEXINPUTS.luajitlatex = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.luahblatex = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.luahblatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}// +TEXINPUTS.luajithblatex = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.dvilualatex = $TEXMFDOTDIR;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +TEXINPUTS.dvilualatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}// + +% HarfTeX. +TEXINPUTS.harftex = $TEXMFDOTDIR;$TEXMF/tex/{harftex,luatex,plain,generic,latex,}// +TEXINPUTS.harflatex = $TEXMFDOTDIR;$TEXMF/tex/{harflatex,harftex,lualatex,latex,luatex,generic,}// +TEXINPUTS.harflatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,harflatex,harftex,lualatex,latex,luatex,generic,}// + +% XeTeX. +TEXINPUTS.xelatex = $TEXMFDOTDIR;$TEXMF/tex/{xelatex,latex,xetex,generic,}// +TEXINPUTS.xelatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,xelatex,latex,xetex,generic,}// +TEXINPUTS.xeplain = $TEXMFDOTDIR;$TEXMF/tex/{xeplain,eplain,plain,xetex,generic,latex,}// +TEXINPUTS.xetex = $TEXMFDOTDIR;$TEXMF/tex/{xetex,plain,generic,latex,}// + +% Omega / Aleph. +TEXINPUTS.aleph = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}// +TEXINPUTS.elambda = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}// +TEXINPUTS.eomega = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}// +TEXINPUTS.lambda = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}// +TEXINPUTS.lamed = $TEXMFDOTDIR;$TEXMF/tex/{lambda,latex,generic,}// +TEXINPUTS.omega = $TEXMFDOTDIR;$TEXMF/tex/{plain,generic,latex,}// + +% p(La)TeX. +TEXINPUTS.ptex = $TEXMFDOTDIR;$TEXMF/tex/{ptex,plain,generic,latex,}// +TEXINPUTS.platex = $TEXMFDOTDIR;$TEXMF/tex/{platex,latex,generic,}// +TEXINPUTS.platex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,platex,latex,generic,}// + +% epTeX, and use that engine for pmpost. +TEXINPUTS.eptex = $TEXMFDOTDIR;$TEXMF/tex/{ptex,plain,generic,latex,}// +TEX.pmpost = eptex + +% p(La)TeX-ng +TEXINPUTS.ptex-ng = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}// +TEXINPUTS.platex-ng = $TEXMFDOTDIR;$TEXMF/tex/{uplatex,platex,latex,generic,}// + +% (e)up(La)TeX, and for upmpost +TEXINPUTS.uplatex = $TEXMFDOTDIR;$TEXMF/tex/{uplatex,platex,latex,generic,}// +TEXINPUTS.uplatex-dev = $TEXMFDOTDIR;$TEXMF/tex/{latex-dev,uplatex,platex,latex,generic,}// +TEXINPUTS.uptex = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}// +TEXINPUTS.euptex = $TEXMFDOTDIR;$TEXMF/tex/{uptex,ptex,plain,generic,latex,}// +TEX.upmpost = euptex + +% pBibTeX bibliographies and style files. +BIBINPUTS.pbibtex = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bib// +BSTINPUTS.pbibtex = $TEXMFDOTDIR;$TEXMF/{pbibtex,bibtex}/bst// + +% upBibTeX bibliographies and style files. +BIBINPUTS.upbibtex = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bib// +BSTINPUTS.upbibtex = $TEXMFDOTDIR;$TEXMF/{upbibtex,pbibtex,bibtex}/bst// + +% ConTeXt. +TEXINPUTS.context = $TEXMFDOTDIR;$TEXMF/tex/{context,plain,generic,}// + +% jadetex. +TEXINPUTS.jadetex = $TEXMFDOTDIR;$TEXMF/tex/{jadetex,latex,generic,latex,}// +TEXINPUTS.pdfjadetex = $TEXMFDOTDIR;$TEXMF/tex/{jadetex,latex,generic,latex,}// + +% XMLTeX. +TEXINPUTS.xmltex = $TEXMFDOTDIR;$TEXMF/tex/{xmltex,latex,generic,}// +TEXINPUTS.pdfxmltex = $TEXMFDOTDIR;$TEXMF/tex/{xmltex,latex,generic,}// + +% Miscellany, no longer built. +TEXINPUTS.lamstex = $TEXMFDOTDIR;$TEXMF/tex/{lamstex,plain,generic,latex,}// +TEXINPUTS.lollipop = $TEXMFDOTDIR;$TEXMF/tex/{lollipop,plain,generic,latex,}// +TEXINPUTS.frpdflatex = $TEXMFDOTDIR;$TEXMF/tex/{french,latex,generic,}// +TEXINPUTS.frpdftex = $TEXMFDOTDIR;$TEXMF/tex/{french,plain,generic,latex,}// + +% Earlier entries override later ones, so put this generic one last. +TEXINPUTS = $TEXMFDOTDIR;$TEXMF/tex/{$progname,generic,latex,}// + +% ttf2tfm. +TTF2TFMINPUTS = $TEXMFDOTDIR;$TEXMF/ttf2pk// + +% Metafont, MetaPost inputs. +MFINPUTS = $TEXMFDOTDIR;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source// +MPINPUTS = $TEXMFDOTDIR;$TEXMF/metapost// + +% Dump files (fmt/base/mem) for vir{tex,mf,mp} to read. +% We want to find the engine-specific file, e.g., cont-en.fmt can +% exist under both pdftex/ and xetex/. But just in case some formats +% end up without an engine directory, look directly in web2c/ too. +% We repeat the same definition three times because of the way fmtutil +% is implemented; if we use ${TEXFORMATS}, the mpost/mf/etc. formats +% will not be found. +TEXFORMATS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} +MFBASES = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} +MPMEMS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} +% +% As of 2008, pool files don't exist any more (the strings are compiled +% into the binaries), but just in case something expects to find these: +TEXPOOL = $TEXMFDOTDIR;$TEXMF/web2c +MFPOOL = ${TEXPOOL} +MPPOOL = ${TEXPOOL} + +% support the original xdvi. Must come before the generic settings. +PKFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}// +VFFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s +PSHEADERS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,fonts/type1}// +TEXPICTS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,tex}// + +% Device-independent font metric files. +VFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/vf// +TFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/tfm// + +% The $MAKETEX_MODE below means the drivers will not use a cx font when +% the mode is ricoh. If no mode is explicitly specified, kpse_prog_init +% sets MAKETEX_MODE to /, so all subdirectories are searched. See the manual. +% The modeless part guarantees that bitmaps for PostScript fonts are found. +FONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}// + +% Similarly for the GF format, which only remains in existence because +% Metafont outputs it (and MF isn't going to change). +GFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/gf/$MAKETEX_MODE// + +% A backup for PKFONTS and GFFONTS. Not used for anything. +GLYPHFONTS = $TEXMFDOTDIR;$TEXMF/fonts + +% A place to puth everything that doesn't fit the other font categories. +MISCFONTS = $TEXMFDOTDIR;$TEXMF/fonts/misc// + +% font name map files. This isn't just fonts/map// because ConTeXt +% wants support for having files with the same name in the different +% subdirs. Maybe if the programs ever get unified to accepting the same +% map file syntax the definition can be simplified again. +TEXFONTMAPS = $TEXMFDOTDIR;$TEXMF/fonts/map/{$progname,pdftex,dvips,}// + +% BibTeX bibliographies and style files. bibtex8 also uses these. +BIBINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/bib// +BSTINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/{bst,csf}// + +% MlBibTeX. +MLBIBINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/bib/{mlbib,}// +MLBSTINPUTS = $TEXMFDOTDIR;$TEXMF/bibtex/{mlbst,bst}// + +% .ris and .bltxml bibliography formats. +RISINPUTS = $TEXMFDOTDIR;$TEXMF/biber/ris// +BLTXMLINPUTS = $TEXMFDOTDIR;$TEXMF/biber/bltxml// + +% MFT style files. +MFTINPUTS = $TEXMFDOTDIR;$TEXMF/mft// + +% PostScript headers and prologues (.pro); unfortunately, some programs +% also use this for acessing font files (enc, type1, truetype) +TEXPSHEADERS = $TEXMFDOTDIR;$TEXMF/{dvips,fonts/{enc,type1,type42,type3}}// +TEXPSHEADERS.gsftopk = $TEXMFDOTDIR;$TEXMF/{dvips,fonts/{enc,type1,type42,type3,truetype}}// + +% OSFONTDIR is to provide a convenient hook for allowing TeX to find +% fonts installed on the system (outside of TeX). An empty default +% value would add "//" to the search paths, so we give it a dummy value. +% OSFONTDIR = /usr/share/fonts +OSFONTDIR = @MINGW_PREFIX@/share/fonts + + +% PostScript Type 1 outline fonts. +T1FONTS = $TEXMFDOTDIR;$TEXMF/fonts/type1//;$OSFONTDIR// + +% PostScript AFM metric files. +AFMFONTS = $TEXMFDOTDIR;$TEXMF/fonts/afm//;$OSFONTDIR// + +% TrueType outline fonts. +TTFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR// + +% OpenType outline fonts. +OPENTYPEFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR// + +% Type 42 outline fonts. +T42FONTS = $TEXMFDOTDIR;$TEXMF/fonts/type42// + +% Ligature definition files. +LIGFONTS = $TEXMFDOTDIR;$TEXMF/fonts/lig// + +% Dvips' config.* files (this name should not start with `TEX'!). +TEXCONFIG = $TEXMF/dvips// + +% Makeindex style (.ist) files. +INDEXSTYLE = $TEXMFDOTDIR;$TEXMF/makeindex// + +% mendex dictionary files. Used internally by mendex and upmendex. +% It is not necessary to introduce a new format in Kpathsea. +INDEXDICTIONARY = $TEXMFDOTDIR;$TEXMF/makeindex// + +% Font encoding files (.enc). +ENCFONTS = $TEXMFDOTDIR;$TEXMF/fonts/enc// + +% CMap files. +CMAPFONTS = $TEXMFDOTDIR;$TEXMF/fonts/cmap// + +% Subfont definition files. +SFDFONTS = $TEXMFDOTDIR;$TEXMF/fonts/sfd// + +% OpenType feature files (.fea). +FONTFEATURES=$TEXMFDOTDIR;$TEXMF/fonts/fea// + +% .cid and .cidmap +FONTCIDMAPS=$TEXMFDOTDIR;$TEXMF/fonts/cid// + +% pdftex config files: +PDFTEXCONFIG = $TEXMFDOTDIR;$TEXMF/pdftex/{$progname,}// + +% Used by DMP (ditroff-to-mpx), called by makempx -troff. +TRFONTS = @MINGW_PREFIX@/share/groff/{current/font,site-font}/devps +MPSUPPORT = $TEXMFDOTDIR;$TEXMF/metapost/support + +% For xdvi to find mime.types and .mailcap, if they do not exist in +% ~. These are single directories, not paths. +% (But the default mime.types, at least, may well suffice.) +MIMELIBDIR = @MINGW_PREFIX@/etc +MAILCAPLIBDIR = @MINGW_PREFIX@/etc + +% Default settings for the fontconfig library as used by the Windows +% versions of xetex/xdvipdfmx. Not used by xetex on Unixish systems. +% ConTeXT MkIV (all platforms) also use these values. +% +FONTCONFIG_FILE = fonts.conf +FONTCONFIG_PATH = $TEXMFSYSVAR/fonts/conf +FC_CACHEDIR = $TEXMFSYSVAR/fonts/cache + +% TeX documentation and source files, for use with texdoc and kpsewhich. +TEXDOCS = $TEXMF/doc// +TEXSOURCES = $TEXMFDOTDIR;$TEXMF/source// + +% Top-level directory for any string translations for the binaries, in +% the same structure as the usual system locale/ directories. This is a +% single directory, not a path. +TEXMFLOCALEDIR = $TEXMFMAIN/locale + +% Web and CWeb input paths. +WEBINPUTS = $TEXMFDOTDIR;$TEXMF/web// +CWEBINPUTS = $TEXMFDOTDIR;$TEXMF/cweb// + +% Omega-related fonts and other files. +OFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}// +OPLFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/opl// +OVFFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}// +OVPFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/ovp// +OTPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/otp// +OCPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/ocp// + +% Some additional input variables for several programs. If you add +% a program that uses the `other text files' or `other binary files' +% search formats, you'll want to add their variables here as well. +T4HTINPUTS = $TEXMFDOTDIR;$TEXMF/tex4ht// + +%% t4ht utility, sharing files with TeX4ht +TEX4HTFONTSET=alias,iso8859,unicode +TEX4HTINPUTS = $TEXMFDOTDIR;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// + +% TeXworks editor configuration and settings +TW_LIBPATH = $TEXMFCONFIG/texworks +TW_INIPATH = $TW_LIBPATH + +% For security, do not look in . for dvipdfmx.cfg, since the D option +% would allow command execution. +DVIPDFMXINPUTS = $TEXMF/dvipdfmx + +% Lua needs to look in TEXINPUTS for lua scripts distributed with packages. +% +% But we can't simply use $TEXINPUTS, since then if TEXINPUTS is set in +% the environment with a colon, say, TEXINPUTS=/some/dir:, the intended +% default expansion of TEXINPUTS will not happen and .lua files under +% the /tex/ tree will not be found. +% +% So, duplicate the TEXINPUTS.*lualatex values as LUAINPUTS.*lualatex. +% The default LUAINPUTS suffices for luatex and dviluatex. +% +LUAINPUTS.lualatex = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +LUAINPUTS.lualatex-dev = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}// +% +LUAINPUTS.luahblatex = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{luahblatex,luahbtex,lualatex,latex,luatex,generic,}// +LUAINPUTS.luahblatex-dev = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{latex-dev,luahblatex,luahbtex,lualatex,latex,luatex,generic,}// +% +LUAINPUTS.dvilualatex = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{lualatex,latex,luatex,generic,}// +LUAINPUTS.dvilualatex-dev = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{latex-dev,lualatex,latex,luatex,generic,}// +% +LUAINPUTS.harflatex = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{harflatex,harftex,lualatex,latex,luatex,generic,}// +LUAINPUTS.harflatex-dev = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{latex-dev,harflatex,harftex,lualatex,latex,luatex,generic,}// +% +LUAINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXMF/tex/{luatex,plain,generic,latex,}// + +% Lua needs to look for binary lua libraries distributed with packages. +CLUAINPUTS = $TEXMFDOTDIR;@MINGW_PREFIX@/lib/{$progname,$engine,}/lua// + +% Architecture independent executables. +TEXMFSCRIPTS = $TEXMF/scripts/{$progname,$engine,}// + +% Other languages. +JAVAINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/java// +PERLINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/perl// +PYTHONINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/python// +RUBYINPUTS = $TEXMFDOTDIR;$TEXMF/scripts/{$progname,$engine,}/ruby// + + +%% The mktex* scripts rely on KPSE_DOT. Do not set it in the environment. +% KPSE_DOT = . + +% This definition isn't used from this .cnf file itself (that would be +% paradoxical), but the compile-time default in paths.h is built from it. +% The SELFAUTO* variables are set automatically from the location of +% argv[0], in kpse_set_program_name. +% +% This main texmf.cnf file is installed, for a release YYYY, in a +% directory such as /usr/local/texlive/YYYY/texmf-dist/web2c/texmf.cnf. +% Since this file is subject to future updates, the TeX Live installer +% or human administrator may also create a file +% /usr/local/texlive/YYYY/texmf.cnf; any settings in this latter file +% will take precedence over the distributed one. +% +% For security reasons, it is best not to include . in this path. +% +% The idea behind this lengthy definition: for each of +% SELFAUTO{LOC,DIR,PARENT}, look in the directory, +% then the subdirectories share/texmf-local, share/texmf-dist, share/texmf, +% then the subdirectories ./texmf-local, texmf-dist, ./texmf. +% At any given installation, most of these directories will not exist, +% but they all turn out to be useful somewhere. +% +% Special addition -- we want to include one more directory: the +% great-grandparent's texmf-local, because that is how TL is installed +% by default. That is, given a binary +% /usr/local/texlive/YYYY/bin/PLATFORM/kpsewhich, it should find +% /usr/local/texlive/texmf-local/web2c/texmf.cnf. I.e., not under YYYY. +% +% As a result, we cannot use actual brace expansion in the definition, +% since we don't want to scatter ../'s throughout the value. Hence we +% explicitly list every directory. Arguably more understandable anyway. +% +TEXMFCNF = {\ +$SELFAUTOLOC,\ +$SELFAUTOLOC/share/texmf-local/web2c,\ +$SELFAUTOLOC/share/texmf-dist/web2c,\ +$SELFAUTOLOC/share/texmf/web2c,\ +$SELFAUTOLOC/texmf-local/web2c,\ +$SELFAUTOLOC/texmf-dist/web2c,\ +$SELFAUTOLOC/texmf/web2c,\ +\ +$SELFAUTODIR,\ +$SELFAUTODIR/share/texmf-local/web2c,\ +$SELFAUTODIR/share/texmf-dist/web2c,\ +$SELFAUTODIR/share/texmf/web2c,\ +$SELFAUTODIR/texmf-local/web2c,\ +$SELFAUTODIR/texmf-dist/web2c,\ +$SELFAUTODIR/texmf/web2c,\ +\ +$SELFAUTOPARENT/../texmf-local/web2c,\ +$SELFAUTOPARENT,\ +\ +$SELFAUTOPARENT/share/texmf-local/web2c,\ +$SELFAUTOPARENT/share/texmf-dist/web2c,\ +$SELFAUTOPARENT/share/texmf/web2c,\ +$SELFAUTOPARENT/texmf-local/web2c,\ +$SELFAUTOPARENT/texmf-dist/web2c,\ +$SELFAUTOPARENT/texmf/web2c\ +} +% +% For reference, here is the old brace-using definition: +%TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c} + +% kpathsea 3.5.3 and later sets these at runtime. To avoid empty +% expansions from binaries linked against an earlier version of the +% library, we set $progname and $engine to something non-empty: +progname = unsetprogname +engine = unsetengine + + +% Part 2: Options. + +% If this option is set to true, `tex a.b' will look first for a.b.tex +% (within each path element), and then for a.b, i.e., we try standard +% extensions first. If this is false, we first look for a.b and then +% a.b.tex, i.e., we try the name as-is first. +% +% Both names are always tried; the difference is the order in which they +% are tried. The setting applies to all searches, not just .tex. +% +% This setting only affects names being looked up which *already* have +% an extension. A name without an extension (e.g., `tex story') will +% always have an extension added first. +% +% The default is true, because we already avoid adding the standard +% extension(s) in the usual cases. E.g., babel.sty will only look for +% babel.sty, not babel.sty.tex, regardless of this setting. +try_std_extension_first = t + +% Enable system commands via \write18{...}. When enabled fully (set to +% t), obviously insecure. When enabled partially (set to p), only the +% commands listed in shell_escape_commands are allowed. Although this +% is not fully secure either, it is much better, and so useful that we +% enable it for everything but bare tex. +shell_escape = p + +% No spaces in this command list. +% +% The programs listed here are as safe as any we know: they either do +% not write any output files, respect openout_any, or have hard-coded +% restrictions similar to or higher than openout_any=p. They also have +% no features to invoke arbitrary other programs, and no known +% exploitable bugs. All to the best of our knowledge. They also have +% practical use for being called from TeX. +% +shell_escape_commands = \ +bibtex,bibtex8,\ +extractbb,\ +gregorio,\ +kpsewhich,\ +makeindex,\ +repstopdf,\ +r-mpost,\ +texosquery-jre8,\ + +% we'd like to allow: +% dvips - but external commands can be executed, need at least -R1. +% epspdf, ps2pdf, pstopdf - need to respect openout_any, +% and gs -dSAFER must be used and check for shell injection with filenames. +% pygmentize - but is the filter feature insecure? +% ps4pdf - but it calls an unrestricted latex. +% rpdfcrop - maybe ok, but let's get experience with repstopdf first. +% texindy,xindy - but is the module feature insecure? +% ulqda - but requires optional SHA1.pm, so why bother. +% tex, latex, etc. - need to forbid --shell-escape, and inherit openout_any. + +% plain "tex" should remain unenhanced. +shell_escape.tex = f +shell_escape.initex = f + +% This is used by the Windows script wrapper for restricting searching +% for the purportedly safe shell_escape_commands above to system +% directories. +TEXMF_RESTRICTED_SCRIPTS = \ + {!!$TEXMFLOCAL,!!$TEXMFDIST}/scripts/{$progname,$engine,}// + +% Do we allow TeX \input or \openin (openin_any), or \openout +% (openout_any) on filenames starting with `.' (e.g., .rhosts) or +% outside the current tree (e.g., /etc/passwd)? +% a (any) : any file can be opened. +% r (restricted) : disallow opening dot files +% p (paranoid) : as `r' and disallow going to parent directories, and +% restrict absolute paths to be under $TEXMFOUTPUT. +openin_any = a +openout_any = p + +% Write .log/.dvi/.aux/etc. files here, if the current directory is unwritable. +%TEXMFOUTPUT = @TEMP@ + +% If a dynamic file creation fails, log the command to this file, in +% either the current directory or TEXMFOUTPUT. Set to the +% empty string or 0 to avoid logging. +MISSFONT_LOG = missfont.log + +% Set to a colon-separated list of words specifying warnings to suppress. +% To suppress everything, use TEX_HUSH = all; this is currently equivalent to +% TEX_HUSH = checksum:lostchar:readable:special +% To suppress nothing, use TEX_HUSH = none or do not set the variable at all. +TEX_HUSH = none + +% Allow TeX and MF to parse the first line of an input file for +% the %&format construct. +parse_first_line = t + +% But don't parse the first line if invoked as "tex", since we want that +% to remain Knuth-compatible. The src_specials and +% file_line_error_style settings, as well as the options -enctex, +% -mltex, -8bit, etc., also affect this, but they are all off by default. +parse_first_line.tex = f +parse_first_line.initex = f + +% Normally we mention files created by \openout in the log file, +% but again, trip-compatibility forbids this for (ini)tex. +log_openout = t +log_openout.tex = f +log_openout.initex = f + +% Control file:line:error style messages. +file_line_error_style = f + +% Enable the mktex... scripts by default? These must be set to 0 or 1. +% Particular programs can and do override these settings, for example +% dvips's -M option. Your first chance to specify whether the scripts +% are invoked by default is at configure time. +% +% These values are ignored if the script names are changed; e.g., if you +% set DVIPSMAKEPK to `foo', what counts is the value of the environment +% variable/config value `FOO', not the `MKTEXPK' value. +% +%MKTEXTEX = 0 +%MKTEXPK = 0 +%MKTEXMF = 0 +%MKTEXTFM = 0 +%MKTEXFMT = 0 +%MKOCP = 0 +%MKOFM = 0 + +% Used by makempx to run TeX. We use "etex" because MetaPost is +% expecting DVI, and not "tex" because we want first line parsing. +TEX = etex + +% Use Japanese eptex for Japanese pmpost. +TEX.pmpost = eptex + +% These variables specify the external program called for the +% interactive `e' option. %d is replaced by the line number and %s by +% the current filename. The default is specified at compile-time, and +% we let that stay in place since different platforms like different values. +%TEXEDIT = vi +%d '%s' % default for Unix +%TEXEDIT = texworks --position=+%d "%s" % default for Windows +%MFEDIT = ${TEXEDIT} +%MPEDIT = ${TEXEDIT} + +% The default `codepage and sort order' file for BibTeX8, when none is +% given as command line option or environment variable. +BIBTEX_CSFILE = 88591lat.csf + +% This variable is specific to Unix, to fall back to case-insensitive +% search in non-system directories if there is no exact match. It is +% enabled by default in texmf.cnf, but not enabled by default at +% compile-time. +% +texmf_casefold_search = 1 + +% This variable is specific to Windows. It must be set to 0 or 1. The +% default is 0. Setting it to 1 tells the Windows script wrappers to +% use an already installed Perl interpreter if one is found on the +% search path, in preference to the Perl shipped with TeX Live. Thus, +% it may be useful if you both (a) installed a full Perl distribution +% for general use, and (b) need to run Perl programs from TL that use +% additional modules we don't provide. The TL Perl does provide all the +% standard Perl modules. +% +TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL = 1 + + +% Part 3: Array and other sizes for TeX, Metafont, etc. +% +% If you want to change some of these sizes only for a certain TeX +% variant, the usual dot notation works, as shown below for ConTeXt. +% If a change here appears to be ignored, try redumping the format file. + +% Memory. Must be less than 8,000,000 total. +% +% main_memory is relevant only to initex, extra_mem_* only to non-ini. +% Thus, have to redump the .fmt file after changing main_memory; to add +% to existing fmt files, increase extra_mem_*. (To get an idea of how +% much, try \tracingstats=2 in your TeX source file; +% web2c/tests/memtest.tex might also be interesting.) +% +% To increase space for boxes (as might be needed by, e.g., PiCTeX), +% increase extra_mem_bot. +% +% For some xy-pic samples, you may need as much as 700000 words of memory. +% For the vast majority of documents, 60000 or less will do. +% +main_memory = 5000000 % words of inimemory available; also applies to inimf&mp +extra_mem_top = 0 % extra high memory for chars, tokens, etc. +extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc. + +% ConTeXt needs lots of memory. +extra_mem_top.context = 2000000 +extra_mem_bot.context = 4000000 + +% Words of font info for TeX (total size of all TFM files, approximately). +% Must be >= 20000 and <= 147483647 (without tex.ch changes). +font_mem_size = 8000000 + +% Total number of fonts. Must be >= 50 and <= 9000 (without tex.ch changes). +font_max = 9000 + +% Extra space for the hash table of control sequences. +hash_extra = 600000 + +% Max number of characters in all strings, including all error messages, +% help texts, font names, control sequences. These values apply to TeX. +pool_size = 6250000 +% Minimum pool space after TeX's own strings; must be at least +% 25000 less than pool_size, but doesn't need to be nearly that large. +string_vacancies = 90000 +% Maximum number of strings. +max_strings = 500000 +% Min pool space left after loading .fmt. +pool_free = 47500 +% Ensure at least this many strings are free after loading .fmt. +strings_free = 100 + +% Buffer size. TeX uses the buffer to contain input lines, but macro +% expansion works by writing material into the buffer and reparsing the +% line. As a consequence, certain constructs require the buffer to be +% very large, even though most documents can be handled with a small value. +buf_size = 200000 + +% Hyphenation trie. The maximum possible is 4194303 (ssup_trie_size in +% the sources), but we don't need that much. The value here suffices +% for all known free hyphenation patterns to be loaded simultaneously +% (as TeX Live does). +% +trie_size = 1100000 + +hyph_size = 8191 % prime number of hyphenation exceptions, >610, <65535 + % http://primes.utm.edu/curios/page.php/8191.html + % dynamically increased as necessary, so not important. +nest_size = 500 % simultaneous semantic levels (e.g., groups) +max_in_open = 15 % simultaneous input files and error insertions, + % also applies to MetaPost +param_size = 10000 % simultaneous macro parameters, also applies to MP +save_size = 80000 % for saving values outside current group +stack_size = 5000 % simultaneous input sources + +% Limit on recursive expansion calls so TeX has a chance to quit nicely +% before stack space runs out. The default is 10000. Normally there is no +% reason to change it. The web2c manual has a bit more about this. +%expand_depth = 10000 + +% These are Omega-specific. +ocp_buf_size = 500000 % character buffers for ocp filters. +ocp_stack_size = 10000 % stacks for ocp computations. +ocp_list_size = 1000 % control for multiple ocps. + +% For pdftex and luatex: default resolution for bitmaps; +% commonly set via \pdfpkresolution when needed to be changed. +%pk_dpi = 72 + +% These work best if they are the same as the I/O buffer size, but it +% doesn't matter much. Must be a multiple of 8. +dvi_buf_size = 16384 % TeX +gf_buf_size = 16384 % MF + +% It's probably inadvisable to change these. At any rate, we must have: +% 45 < error_line < 255; +% 30 < half_error_line < error_line - 15; +% 60 <= max_print_line; +% These apply to TeX, Metafont, and MetaPost. +error_line = 79 +half_error_line = 50 +max_print_line = 79 + +% Metafont only. +screen_width.mf = 1664 +screen_depth.mf = 1200 + +% BibTeX only (max_strings also determines hash_size and hash_prime). +ent_str_size = 500 +glob_str_size = 200000 +max_strings.bibtex = 200000 +max_strings.bibtex8 = 200000 +max_strings.bibtexu = 200000 +max_strings.pbibtex = 200000 +max_strings.upbibtex= 200000 + +% GFtype only. +line_length.gftype = 500 +max_rows.gftype = 8191 +max_cols.gftype = 8191 + +% Guess input encoding (SJIS vs. Unicode, etc.) in pTeX and friends? +% Default is 1, to guess. Used on Windows only. +guess_input_kanji_encoding = 1 + +% command_line_encoding +% +% This variable is used on Windows only, and affects 4 TeX engines: +% uptex, euptex, pdftex, xetex, and 2 drivers: dvips, [x]dvipdfmx. +% Several applications also are affected by the variable: +% dvi2tty.exe, disdvi.exe, dvibook.exe, dviconcat.exe, dviselect.exe, +% dvitodvi.exe, and dvidvi.exe. +% Only values utf8 or utf-8 are meaningful. Other values are simply +% ignored. If file names in sources and DVI or XDV files are ASCII +% only, the value of command_line_encoding is irrelevant. +% If command_line_encoding = utf8 or command_line_encoding = utf-8, +% file names in sources and DVI or XDV files are assumed to be UTF-8. +% Default is utf-8, from 2019-07-24, to assume UTF-8 file names. +% In order to switch off the function, define an environment variable: +% set command_line_encoding=none +% or write a line: +% command_line_encoding = none +% in a texmf.cnf prefered, for example $TEXMFLOCAL/web2c/texmf.cnf. +command_line_encoding = utf-8 diff --git a/mingw-w64-texlive-core/texmfcnf.lua.in b/mingw-w64-texlive-core/texmfcnf.lua.in new file mode 100644 index 0000000000..e6dffbdf5a --- /dev/null +++ b/mingw-w64-texlive-core/texmfcnf.lua.in @@ -0,0 +1,190 @@ +-- public domain + +-- ConTeXt needs a properly expanded TEXMFLOCAL, so here is a +-- bit of lua code to make that happen + +local texmflocal = resolvers.prefixes.selfautoparent(); +texmflocal = string.gsub(texmflocal, "20%d%d$", "texmf-local"); + +return { + + type = "configuration", + version = "1.1.0", + date = "2012-05-24", + time = "12:12:12", + comment = "ConTeXt MkIV configuration file", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + + content = { + + -- Originally there was support for engines and progname but I don't expect + -- other engines to use this file, so first engines were removed. After that + -- if made sense also to get rid of progname. At some point specific formats + -- will be supported but then as a subtable with fallbacks, which sounds more + -- natural. Also, at some point the paths will become tables. For the moment + -- I don't care too much about it as extending is easy. + + variables = { + + -- The following variable is predefined (but can be overloaded) and in + -- most cases you can leve this one untouched. The built-in definition + -- permits relocation of the tree. + -- + -- TEXMFCNF = "{selfautodir:,selfautoparent:}{,{/share,}/texmf{-local,}/web2c}" + -- + -- more readable than "selfautoparent:{/texmf{-local,}{,/web2c},}}" is: + -- + -- TEXMFCNF = { + -- "selfautoparent:/texmf-local", + -- "selfautoparent:/texmf-local/web2c", + -- "selfautoparent:/texmf-dist", + -- "selfautoparent:/texmf/web2c", + -- "selfautoparent:", + -- } + + -- only used for FONTCONFIG_PATH & TEXMFCACHE in TeX Live + + TEXMFSYSVAR = "@MINGW_PREFIX@/var/lib/texmf", + TEXMFVAR = "home:.texlive/texmf-var", + + -- We have only one cache path but there can be more. The first writable one + -- will be chosen but there can be more readable paths. + + TEXMFCACHE = "$TEXMFSYSVAR;$TEXMFVAR", + TEXMFCONFIG = "home:.texlive/texmf-config", + + -- I don't like this texmf under home and texmf-home would make more + -- sense. One never knows what installers put under texmf anywhere and + -- sorting out problems will be a pain. But on the other hand ... home + -- mess is normally under the users own responsibility. + -- + -- By using prefixes we don't get expanded paths in the cache __path__ + -- entry. This makes the tex root relocatable. + + TEXMFOS = "selfautodir:share", + TEXMFDIST = "selfautodir:share/texmf-dist", + + TEXMFLOCAL = texmflocal, + TEXMFSYSCONFIG = "@MINGW_PREFIX@/etc/texmf", + TEXMFFONTS = "selfautoparent:texmf-fonts", + TEXMFPROJECT = "selfautoparent:texmf-project", + + TEXMFHOME = "home:texmf", + -- TEXMFHOME = os.name == "macosx" and "home:Library/texmf" or "home:texmf", + + -- We need texmfos for a few rare files but as I have a few more bin trees + -- a hack is needed. Maybe other users also have texmf-platform-new trees. + + TEXMF = "{$TEXMFCONFIG,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFPROJECT,!!$TEXMFFONTS,!!$TEXMFLOCAL,!!$TEXMFDIST}", + + TEXFONTMAPS = ".;$TEXMF/fonts/data//;$TEXMF/fonts/map/{pdftex,dvips}//", + ENCFONTS = ".;$TEXMF/fonts/data//;$TEXMF/fonts/enc/{dvips,pdftex}//", + VFFONTS = ".;$TEXMF/fonts/{data,vf}//", + TFMFONTS = ".;$TEXMF/fonts/{data,tfm}//", + T1FONTS = ".;$TEXMF/fonts/{data,type1}//;$OSFONTDIR", + AFMFONTS = ".;$TEXMF/fonts/{data,afm}//;$OSFONTDIR", + TTFONTS = ".;$TEXMF/fonts/{data,truetype}//;$OSFONTDIR", + OPENTYPEFONTS = ".;$TEXMF/fonts/{data,opentype}//;$OSFONTDIR", + CMAPFONTS = ".;$TEXMF/fonts/cmap//", + FONTFEATURES = ".;$TEXMF/fonts/{data,fea}//;$OPENTYPEFONTS;$TTFONTS;$T1FONTS;$AFMFONTS", + FONTCIDMAPS = ".;$TEXMF/fonts/{data,cid}//", + OFMFONTS = ".;$TEXMF/fonts/{data,ofm,tfm}//", + OVFFONTS = ".;$TEXMF/fonts/{data,ovf,vf}//", + + TEXINPUTS = ".;$TEXMF/tex/{context,plain/base,generic}//", + MPINPUTS = ".;$TEXMF/metapost/{context,base,}//", + + -- In the next variable the inputs path will go away. + + TEXMFSCRIPTS = ".;$TEXMF/scripts/context/{lua,ruby,python,perl}//;$TEXINPUTS", + PERLINPUTS = ".;$TEXMF/scripts/context/perl", + PYTHONINPUTS = ".;$TEXMF/scripts/context/python", + RUBYINPUTS = ".;$TEXMF/scripts/context/ruby", + LUAINPUTS = ".;$TEXINPUTS;$TEXMF/scripts/context/lua//", + CLUAINPUTS = ".;$SELFAUTOLOC/lib/{context,luatex,}/lua//", + + -- Not really used by MkIV so they might go away. + + BIBINPUTS = ".;$TEXMF/bibtex/bib//", + BSTINPUTS = ".;$TEXMF/bibtex/bst//", + + -- Experimental + + ICCPROFILES = ".;$TEXMF/tex/context/colors/{icc,profiles}//;$OSCOLORDIR", + + -- A few special ones that will change some day. + + FONTCONFIG_FILE = "fonts.conf", + FONTCONFIG_PATH = "$TEXMFSYSVAR/fonts/conf", + + }, + + -- We have a few reserved subtables. These control runtime behaviour. The + -- keys have names like 'foo.bar' which means that you have to use keys + -- like ['foo.bar'] so for convenience we also support 'foo_bar'. + + directives = { + + -- There are a few variables that determine the engines + -- limits. Most will fade away when we close in on version 1. + + ["luatex.expanddepth"] = "10000", -- 10000 + ["luatex.hashextra"] = "100000", -- 0 + ["luatex.nestsize"] = "1000", -- 50 + ["luatex.maxinopen"] = "500", -- 15 + ["luatex.maxprintline"] = " 10000", -- 79 + ["luatex.maxstrings"] = "500000", -- 15000 -- obsolete + ["luatex.paramsize"] = "25000", -- 60 + ["luatex.savesize"] = "50000", -- 4000 + ["luatex.stacksize"] = "10000", -- 300 + + -- A few process related variables come next. + + -- ["system.checkglobals"] = "10", + -- ["system.nostatistics"] = "yes", + ["system.errorcontext"] = "10", + ["system.compile.cleanup"] = "no", -- remove tma files + ["system.compile.strip"] = "yes", -- strip tmc files + + -- The io modes are similar to the traditional ones. Possible values + -- are all, paranoid and restricted. + + ["system.outputmode"] = "restricted", + ["system.inputmode"] = "any", + + -- The following variable is under consideration. We do have protection + -- mechanims but it's not enabled by default. + + ["system.commandmode"] = "any", -- any none list + ["system.commandlist"] = "mtxrun, convert, inkscape, gs, imagemagick, curl, bibtex, pstoedit", + + -- The mplib library support mechanisms have their own + -- configuration. Normally these variables can be left as + -- they are. + + ["mplib.texerrors"] = "yes", + + -- Normally you can leave the font related directives untouched + -- as they only make sense when testing. + + -- ["fonts.autoreload"] = "no", + -- ["fonts.otf.loader.method"] = "table", -- table mixed sparse + -- ["fonts.otf.loader.cleanup"] = "0", -- 0 1 2 3 + + -- In an edit cycle it can be handy to launch an editor. The + -- preferred one can be set here. + + -- ["pdfview.method"] = "okular", -- default (often acrobat) xpdf okular + + }, + + experiments = { + ["fonts.autorscale"] = "yes", + }, + + trackers = { + }, + + }, + +}