مهدي شينون (Mehdi Chinoune) 175dde699f [NFC] Replace tabs with spaces in PKGBUILDs.
2025-02-07 08:14:43 +01:00

298 lines
14 KiB
Bash

# Maintainer: @naveen521kk on Github, Naveen M K <naveen521kk@gmail.com>
_realname=texlive-core
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2023.20230404
_revnr=${pkgver#2023.}
pkgrel=1
pkgdesc="TeX Live core distribution (mingw-w64)"
license=('GPL')
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
depends=(
"${MINGW_PACKAGE_PREFIX}-texlive-bin"
"${MINGW_PACKAGE_PREFIX}-perl"
)
makedepends=("${MINGW_PACKAGE_PREFIX}-cc")
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=(
"${MINGW_PACKAGE_PREFIX}-texlive-full"
"${MINGW_PACKAGE_PREFIX}-texlive-scheme-basic"
"${MINGW_PACKAGE_PREFIX}-texlive-scheme-bookpub"
"${MINGW_PACKAGE_PREFIX}-texlive-scheme-full"
"${MINGW_PACKAGE_PREFIX}-texlive-scheme-gust"
"${MINGW_PACKAGE_PREFIX}-texlive-scheme-medium"
"${MINGW_PACKAGE_PREFIX}-texlive-scheme-small"
"${MINGW_PACKAGE_PREFIX}-texlive-scheme-tetex"
"${MINGW_PACKAGE_PREFIX}-texlive-scheme-context"
)
conflicts=(
"${MINGW_PACKAGE_PREFIX}-texlive-xetex"
"${MINGW_PACKAGE_PREFIX}-texlive-context"
"${MINGW_PACKAGE_PREFIX}-texlive-base"
"${MINGW_PACKAGE_PREFIX}-texlive-latex-base"
)
provides=(
"${MINGW_PACKAGE_PREFIX}-texlive-xetex"
"${MINGW_PACKAGE_PREFIX}-texlive-context"
"${MINGW_PACKAGE_PREFIX}-texlive-base"
"${MINGW_PACKAGE_PREFIX}-texlive-latex-base"
)
replaces=(
"${MINGW_PACKAGE_PREFIX}-texlive-xetex"
"${MINGW_PACKAGE_PREFIX}-texlive-context"
"${MINGW_PACKAGE_PREFIX}-texlive-base"
"${MINGW_PACKAGE_PREFIX}-texlive-latex-base"
)
url='https://tug.org/texlive/'
msys2_references=(
"cpe: cpe:/a:tug:texlive"
)
source=("${_realname}-${_revnr}.tar.xz::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/texlive-core-${_revnr}.tar.xz"
"${_realname}-extra-files.tar.xz::https://github.com/msys2/msys2-texlive/releases/download/${_revnr}/${_realname}-extra-files.tar.xz"
"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/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=('46637e1e2ad574b3ca518b9c01b9a85f670e24c2ddf3c2eb7b31610c7c17f06e'
'f6945ee9fd006af0d909edfc06d45c2daea07ea753fb7bdc4fa29c76fd0f45d6'
'542f68cd8e1a00f1598db8532e70e1bb77adc0516daee84e5aa92707f58fdf04'
'773e9c8f60c4241a57adafda8abac765c53f7e6e24c86b87366b037ade29077b'
'bffaa8a7f5d78aed138a760dfa1073ad7c419a61a9739cafbc28dce330aae911'
'e154d58543dc8d9957f502b3d162023f0be4a650860d3be5289ff2ac880ccca2'
'd615d040d1943bcdf7b1c7a649644a7bd47703317b79963062a058e1300602f3'
'dd286733d0b596708ee049aa22d641129d20f61113298c6f11ad37500bf9f1fb'
'3d65f3babd5306d85e32ff427a86f94004f10270dd00f11694ea4699abf10d40'
'8ededf35132ffbe26434c0c778b3d4a159ce428452abe6ebc8d94161f02bd7e9'
'87eddde958848d041ded1625e14009e89b3bd5953e7ae39b6aac2f65d3856485')
build() {
cd "$srcdir"
msg " --> extracting all packages... "
for p in *.tar.xz; do
bsdtar -xf $p
echo $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/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/"
# collection fontutils
# 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
# this should be in source.
# remove comment
sed -i 's/# This file contains linked scripts list for the package.//' "${srcdir}/${_realname}.scripts"
# remove useless files
sed -i /.*NEWS/d "${srcdir}/${_realname}.scripts"
. "${srcdir}/${_realname}.scripts"
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"
# copy mtxrun.lua, this is required for some scripts
install -D -m755 "${srcdir}/texmf-dist/scripts/context/lua/mtxrun.lua" \
"${pkgdir}${MINGW_PREFIX}/bin/mtxrun.lua"
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/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/rpdfcrop.exe"
install -D -m755 ${MINGW_PREFIX}/bin/runscript.exe "${pkgdir}${MINGW_PREFIX}/bin/latexdef.exe"
}