mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-08 21:00:05 +02:00
* In texlive_update.sh, run mktexlsr at the end to hopefully not rebuild the format database all the time. * Add some patches to the lua config files to fix the paths for ConTeXt (SELFAUTO* variables in mtxrun.lua similar to kpathsea and texmfcnf.lua).
290 lines
11 KiB
Bash
290 lines
11 KiB
Bash
SUMMARY="A comprehensive TeX system - texmf tree"
|
|
DESCRIPTION="TeX Live is an easy way to get up and running with the TeX \
|
|
document production system. It provides a comprehensive TeX system. It \
|
|
includes all the major TeX-related programs, macro packages, and fonts that \
|
|
are free software, including support for many languages around the world."
|
|
HOMEPAGE="http://tug.org/texlive/"
|
|
COPYRIGHT="1996 by collaboration between the TeX user groups."
|
|
LICENSE="GNU GPL v2"
|
|
REVISION="2"
|
|
fullVersion=20250308
|
|
SOURCE_URI="ftp://tug.org/historic/systems/texlive/$portVersion/install-tl-unx.tar.gz"
|
|
SOURCE_URI_2="ftp://tug.org/historic/systems/texlive/$portVersion/texlive-$fullVersion-texmf.tar.xz"
|
|
SOURCE_URI_3="ftp://tug.org/historic/systems/texlive/$portVersion/texlive-$fullVersion-extra.tar.xz"
|
|
CHECKSUM_SHA256="9938f192af75f792e84282580cce6eedac32969e0e07b33cb39ca1b699e948b6"
|
|
CHECKSUM_SHA256_2="08dcda7430bf0d2f6ebb326f1e197e1473d3f7cc0984a2adb7236df45316c7cf"
|
|
CHECKSUM_SHA256_3="ea69cfecbc9b138acbc45476e8cb4d9357f5e4e45fd12b3bf9ceabbebd7669d2"
|
|
SOURCE_DIR="install-tl-$fullVersion"
|
|
SOURCE_DIR_2="texlive-$fullVersion-texmf"
|
|
SOURCE_DIR_3="texlive-$fullVersion-extra"
|
|
SOURCE_FILENAME="install-tl-unx-$portVersion.tar.gz"
|
|
PATCHES_2="texlive-$portVersion-source2.patchset"
|
|
ADDITIONAL_FILES="
|
|
createSubpackageInfos.pl
|
|
getPackageEntries.pl
|
|
subpackageInfos.sh
|
|
texlive.profile
|
|
texlive_postinstall.sh
|
|
texlive_update.sh
|
|
"
|
|
|
|
ARCHITECTURES="any"
|
|
DISABLE_SOURCE_PACKAGE="yes"
|
|
|
|
libkpathseaVersion="6.4.1" # this is to make sure that the same version of texlive_core is used
|
|
|
|
PROVIDES="
|
|
texlive = $portVersion
|
|
cmd:texlive_update.sh
|
|
"
|
|
REQUIRES="
|
|
haiku
|
|
# this is a placeholder for the main texlive_core package
|
|
cmd:kpsewhich >= $libkpathseaVersion
|
|
"
|
|
|
|
SUMMARY_full="Metapackage for all TeXLive collections"
|
|
PROVIDES_full="
|
|
texlive_full = $portVersion
|
|
"
|
|
|
|
SUMMARY_full_doc="Metapackage for all TeXLive collections (documentation)"
|
|
PROVIDES_full_doc="
|
|
texlive_full_doc = $portVersion
|
|
"
|
|
|
|
SUMMARY_full_source="Metapackage for all TeXLive collections (source files)"
|
|
PROVIDES_full_source="
|
|
texlive_full_source = $portVersion
|
|
"
|
|
|
|
declare -a subpackages
|
|
|
|
# workaround for $portDir not being set correctly (or being empty)
|
|
# $workDir is not set when parsing recipes or during the PATCH function (outside the chroot), so use $portBaseDir instead.
|
|
# $portBaseDir can't be used when building the recipe because it points outside the chroot.
|
|
# In this case the (empty) $portDir is okay though.
|
|
if [ "${workDir-unset}" = unset -o "$recipeAction" = PATCH ]; then
|
|
portDir=$portBaseDir
|
|
fi
|
|
|
|
# note: this doesn't work (would need extracted and prepared sources already, after the BUILD function)
|
|
# $(perl -I $sourceDir/tlpkg $portDir/additional-files/createSubpackageInfos.pl $sourceDir)
|
|
# source the pregenerated subpackage infos instead
|
|
source $portDir/additional-files/subpackageInfos.sh
|
|
|
|
BUILD_REQUIRES="
|
|
haiku_devel
|
|
cmd:kpsewhich >= $libkpathseaVersion
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:perl
|
|
"
|
|
|
|
GLOBAL_WRITABLE_FILES="
|
|
settings/texlive/ls-R auto-merge
|
|
var/texlive/ls-R auto-merge
|
|
var/texlive/tex/generic/config/language.dat auto-merge
|
|
var/texlive/tex/generic/config/language.dat.lua auto-merge
|
|
var/texlive/tex/generic/config/language.def auto-merge
|
|
var/texlive/web2c/aleph/aleph.fmt
|
|
var/texlive/web2c/aleph/aleph.log
|
|
var/texlive/web2c/eptex/eptex.fmt
|
|
var/texlive/web2c/eptex/eptex.log
|
|
var/texlive/web2c/eptex/platex-dev.fmt
|
|
var/texlive/web2c/eptex/platex-dev.log
|
|
var/texlive/web2c/eptex/platex.fmt
|
|
var/texlive/web2c/eptex/platex.log
|
|
var/texlive/web2c/euptex/euptex.fmt
|
|
var/texlive/web2c/euptex/euptex.log
|
|
var/texlive/web2c/euptex/uplatex-dev.fmt
|
|
var/texlive/web2c/euptex/uplatex-dev.log
|
|
var/texlive/web2c/euptex/uplatex.fmt
|
|
var/texlive/web2c/euptex/uplatex.log
|
|
var/texlive/web2c/luahbtex/luahbtex.fmt
|
|
var/texlive/web2c/luahbtex/luahbtex.log
|
|
var/texlive/web2c/luahbtex/lualatex-dev.fmt
|
|
var/texlive/web2c/luahbtex/lualatex-dev.log
|
|
var/texlive/web2c/luahbtex/lualatex.fmt
|
|
var/texlive/web2c/luahbtex/lualatex.log
|
|
var/texlive/web2c/luajithbtex/luajithbtex.fmt
|
|
var/texlive/web2c/luajithbtex/luajithbtex.log
|
|
var/texlive/web2c/luajittex/luajittex.fmt
|
|
var/texlive/web2c/luajittex/luajittex.log
|
|
var/texlive/web2c/luatex/dvilualatex-dev.fmt
|
|
var/texlive/web2c/luatex/dvilualatex-dev.log
|
|
var/texlive/web2c/luatex/dvilualatex.fmt
|
|
var/texlive/web2c/luatex/dvilualatex.log
|
|
var/texlive/web2c/luatex/dviluatex.fmt
|
|
var/texlive/web2c/luatex/dviluatex.log
|
|
var/texlive/web2c/luatex/luacsplain.fmt
|
|
var/texlive/web2c/luatex/luacsplain.log
|
|
var/texlive/web2c/luatex/luatex.fmt
|
|
var/texlive/web2c/luatex/luatex.log
|
|
var/texlive/web2c/luatex/optex.fmt
|
|
var/texlive/web2c/luatex/optex.log
|
|
var/texlive/web2c/luatex/pdfcsplain.fmt
|
|
var/texlive/web2c/luatex/pdfcsplain.log
|
|
var/texlive/web2c/metafont/mf.base
|
|
var/texlive/web2c/metafont/mf.log
|
|
var/texlive/web2c/pdftex/amstex.fmt
|
|
var/texlive/web2c/pdftex/amstex.log
|
|
var/texlive/web2c/pdftex/cont-en.fmt
|
|
var/texlive/web2c/pdftex/cont-en.log
|
|
var/texlive/web2c/pdftex/cslatex.fmt
|
|
var/texlive/web2c/pdftex/cslatex.log
|
|
var/texlive/web2c/pdftex/csplain.fmt
|
|
var/texlive/web2c/pdftex/csplain.log
|
|
var/texlive/web2c/pdftex/eplain.fmt
|
|
var/texlive/web2c/pdftex/eplain.log
|
|
var/texlive/web2c/pdftex/etex.fmt
|
|
var/texlive/web2c/pdftex/etex.log
|
|
var/texlive/web2c/pdftex/jadetex.fmt
|
|
var/texlive/web2c/pdftex/jadetex.log
|
|
var/texlive/web2c/pdftex/latex-dev.fmt
|
|
var/texlive/web2c/pdftex/latex-dev.log
|
|
var/texlive/web2c/pdftex/latex.fmt
|
|
var/texlive/web2c/pdftex/latex.log
|
|
var/texlive/web2c/pdftex/mex.fmt
|
|
var/texlive/web2c/pdftex/mex.log
|
|
var/texlive/web2c/pdftex/mllatex.fmt
|
|
var/texlive/web2c/pdftex/mllatex.log
|
|
var/texlive/web2c/pdftex/mltex.fmt
|
|
var/texlive/web2c/pdftex/mltex.log
|
|
var/texlive/web2c/pdftex/mptopdf.fmt
|
|
var/texlive/web2c/pdftex/mptopdf.log
|
|
var/texlive/web2c/pdftex/pdfcslatex.fmt
|
|
var/texlive/web2c/pdftex/pdfcslatex.log
|
|
var/texlive/web2c/pdftex/pdfcsplain.fmt
|
|
var/texlive/web2c/pdftex/pdfcsplain.log
|
|
var/texlive/web2c/pdftex/pdfetex.fmt
|
|
var/texlive/web2c/pdftex/pdfetex.log
|
|
var/texlive/web2c/pdftex/pdfjadetex.fmt
|
|
var/texlive/web2c/pdftex/pdfjadetex.log
|
|
var/texlive/web2c/pdftex/pdflatex-dev.fmt
|
|
var/texlive/web2c/pdftex/pdflatex-dev.log
|
|
var/texlive/web2c/pdftex/pdflatex.fmt
|
|
var/texlive/web2c/pdftex/pdflatex.log
|
|
var/texlive/web2c/pdftex/pdfmex.fmt
|
|
var/texlive/web2c/pdftex/pdfmex.log
|
|
var/texlive/web2c/pdftex/pdftex.fmt
|
|
var/texlive/web2c/pdftex/pdftex.log
|
|
var/texlive/web2c/pdftex/pdfxmltex.fmt
|
|
var/texlive/web2c/pdftex/pdfxmltex.log
|
|
var/texlive/web2c/pdftex/texsis.fmt
|
|
var/texlive/web2c/pdftex/texsis.log
|
|
var/texlive/web2c/pdftex/utf8mex.fmt
|
|
var/texlive/web2c/pdftex/utf8mex.log
|
|
var/texlive/web2c/pdftex/xmltex.fmt
|
|
var/texlive/web2c/pdftex/xmltex.log
|
|
var/texlive/web2c/ptex/ptex.fmt
|
|
var/texlive/web2c/ptex/ptex.log
|
|
var/texlive/web2c/tex/lollipop.fmt
|
|
var/texlive/web2c/tex/lollipop.log
|
|
var/texlive/web2c/tex/tex.fmt
|
|
var/texlive/web2c/tex/tex.log
|
|
var/texlive/web2c/uptex/uptex.fmt
|
|
var/texlive/web2c/uptex/uptex.log
|
|
var/texlive/web2c/xetex/cont-en.fmt
|
|
var/texlive/web2c/xetex/cont-en.log
|
|
var/texlive/web2c/xetex/pdfcsplain.fmt
|
|
var/texlive/web2c/xetex/pdfcsplain.log
|
|
var/texlive/web2c/xetex/xelatex-dev.fmt
|
|
var/texlive/web2c/xetex/xelatex-dev.log
|
|
var/texlive/web2c/xetex/xelatex.fmt
|
|
var/texlive/web2c/xetex/xelatex.log
|
|
var/texlive/web2c/xetex/xetex.fmt
|
|
var/texlive/web2c/xetex/xetex.log
|
|
"
|
|
|
|
PATCH() {
|
|
sed -i "s|\`kpsewhich -var-value=TEXMFROOT\`|\"$dataDir/texlive\"|" $sourceDir/tlpkg/TeXLive/TLUtils.pm
|
|
|
|
# update texmfcnf.lua for ConTeXt:
|
|
TEXMFCNF=$sourceDir2/texmf-dist/web2c/texmfcnf.lua
|
|
sed -i -e "s@TEXMFLOCAL\s*=.*@TEXMFLOCAL = /boot/system/non-packaged/data/texmf-dist@" $TEXMFCNF
|
|
sed -i -e "s@TEXMFSYSVAR\s*=.*@TEXMFSYSVAR = $sharedStateDir/texlive@" $TEXMFCNF
|
|
sed -i -e "s@TEXMFSYSCONFIG\s*=.*@TEXMFSYSCONFIG = $sysconfDir/texlive@" $TEXMFCNF
|
|
sed -i -e "s@TEXMFHOME\s*=.*@TEXMFHOME = /boot/home/config/settings/texmf-dist@" $TEXMFCNF
|
|
sed -i -e "s@TEXMFVAR\s*=.*@TEXMFVAR = /boot/home/config/var/texmf@" $TEXMFCNF
|
|
sed -i -e "s@TEXMFCONFIG\s*=.*@TEXMFCONFIG = /boot/home/config/settings/texmf/config@" $TEXMFCNF
|
|
}
|
|
|
|
BUILD()
|
|
{
|
|
# Put the texmf-dist into the correct location
|
|
rm -rv texmf-dist || true
|
|
ln -sv $sourceDir2/texmf-dist/ texmf-dist
|
|
|
|
# Link our binaries to bin/{i386,x86_64}-haiku
|
|
|
|
if [ $targetArchitecture = x86_gcc2 ] || [ $targetArchitecture = x86 ]; then
|
|
if [ ! -e bin/i386-haiku ] ; then
|
|
mkdir -pv bin
|
|
ln -sv /boot/system/bin bin/i386-haiku
|
|
fi
|
|
|
|
else
|
|
if [ ! -e bin/${targetArchitecture}-haiku ] ; then
|
|
mkdir -pv bin
|
|
ln -sv /boot/system/bin bin/${targetArchitecture}-haiku
|
|
fi
|
|
fi
|
|
|
|
# link or copy the needed files from the "extra" sources
|
|
rm -v tlpkg/{texlive.tlpdb,tlpostcode} readme-{html,txt}.dir README{,.usergroups} {index,doc}.html || true
|
|
ln -sv $sourceDir3/tlpkg/{texlive.tlpdb,tlpostcode} tlpkg
|
|
ln -sv $sourceDir3/readme-{html,txt}.dir .
|
|
cp -v $sourceDir3/{README{,.usergroups},{index,doc}.html} .
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
export TEXLIVE_INSTALL_PREFIX=$dataDir/texlive
|
|
export TEXLIVE_INSTALL_TEXMFSYSVAR=$sharedStateDir/texlive
|
|
export TEXLIVE_INSTALL_TEXMFSYSCONFIG=$sysconfDir/texlive
|
|
export TEXLIVE_INSTALL_TEXMFLOCAL=/boot/system/non-packaged/data/texmf-dist
|
|
export TEXLIVE_INSTALL_TEXMFVAR=/boot/home/config/var/texmf
|
|
export TEXLIVE_INSTALL_TEXMFCONFIG=/boot/home/config/settings/texmf/config
|
|
export TEXLIVE_INSTALL_TEXMFHOME=/boot/home/config/settings
|
|
# disable the disk space check, it returns 0 free space
|
|
export TEXLIVE_INSTALL_NO_DISKCHECK=1
|
|
# hmm, need to work-around /boot/system/non-packaged not existing....
|
|
# the texmf local tree should probably be done with a post-install script, perhaps
|
|
sed -i -e 's/make_local_skeleton \".*//' install-tl
|
|
# run the TeX Live installer, and specify all our paths, once more, to be sure... ;-)
|
|
export PATH=bin/i386-haiku:bin/${targetArchitecture}-haiku:$binDir:$PATH
|
|
if [ $targetArchitecture = x86_gcc2 ] || [ $targetArchitecture = x86 ]; then
|
|
customBinDir=bin/i386-haiku/
|
|
else
|
|
customBinDir=bin/${targetArchitecture}-haiku/
|
|
fi
|
|
sed -e "s@dataDir@$dataDir@g" \
|
|
-e "s@sharedStateDir@$sharedStateDir@g" \
|
|
-e "s@sysconfDir@$sysconfDir@g" \
|
|
$portDir/additional-files/texlive.profile > texlive.profile
|
|
install-tl --custom-bin=$customBinDir --profile=texlive.profile
|
|
|
|
# somewhere along the way, a texmf.cnf gets created with ALL the wrong paths...
|
|
# replace it with the known working version from the main texlive_core package,
|
|
# but replace package links with our own ones
|
|
sed -e "s@/packages/texlive_core.*/\.self@$prefix@g" \
|
|
-e "s@/packages/texlive_core.*/\.settings@$sysconfDir@g" \
|
|
/boot/system/data/texmf-dist/web2c/texmf.cnf > $dataDir/texlive/texmf-dist/web2c/texmf.cnf
|
|
|
|
rm -rf $dataDir/texlive/bin
|
|
|
|
mkdir -p $binDir
|
|
install -t $binDir -m 755 $portDir/additional-files/texlive_update.sh
|
|
|
|
for subpackage in ${subpackages[@]}; do
|
|
packageEntries $subpackage \
|
|
$(perl -I $sourceDir/tlpkg $portDir/additional-files/getPackageEntries.pl $dataDir/texlive/ $subpackage)
|
|
if [[ $subpackage != *_* ]]; then # ignore subpackages with a suffix (doc or source)
|
|
mkdir -p $(getPackagePrefix $subpackage)/$relativePostInstallDir
|
|
install -t $(getPackagePrefix $subpackage)/$relativePostInstallDir \
|
|
-m 755 $portDir/additional-files/texlive_postinstall.sh
|
|
fi
|
|
done
|
|
}
|