Files
haikuports/app-text/texlive/texlive-2014.recipe
Michael Lotz a43c394c4d Explicitly reference all additional files.
Not referencing them caused them to be missing from the source packages.

This also moves all files that were in different dirs under the common
additional-files dir.
2015-12-20 20:05:05 +01:00

706 lines
16 KiB
Bash

SUMMARY="A comprehensive TeX system"
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"
SOURCE_URI="ftp://tug.org/historic/systems/texlive/2014/texlive-20140525-source.tar.xz"
SOURCE_URI_2="ftp://tug.org/historic/systems/texlive/2014/texlive-20140525-texmf.tar.xz"
CHECKSUM_SHA256="08bb4eb02923ac65ce1183612c6b64da185904f26a1660f5ca4f902d055795be"
CHECKSUM_SHA256_2="e0227251c5aa23f8b88973c298cc80b03bd238c645f7f82a6ce888a06b295963"
SOURCE_DIR="texlive-20140525-source"
SOURCE_DIR_2="texlive-20140525-texmf"
PATCHES="texlive-2014.patchset"
ADDITIONAL_FILES="tlutils.pm.patch"
ARCHITECTURES="x86 !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
texlive$secondaryArchSuffix = $portVersion compat >= 2014
cmd:a2ping
cmd:a5toa4
cmd:adhocfilelist
cmd:afm2afm
cmd:afm2pl
cmd:afm2tfm
cmd:aleph
cmd:allcm
cmd:allec
cmd:allneeded
cmd:amstex
cmd:arara
cmd:arlatex
cmd:authorindex
cmd:autoinst
cmd:bbox
cmd:bg5+latex
cmd:bg5+pdflatex
cmd:bg5conv
cmd:bg5latex
cmd:bg5pdflatex
cmd:bibexport
cmd:bibtex
cmd:bibtex8
cmd:bibtexu
cmd:bundledoc
cmd:cachepic
cmd:cef5conv
cmd:cef5latex
cmd:cef5pdflatex
cmd:cefconv
cmd:ceflatex
cmd:cefpdflatex
cmd:cefsconv
cmd:cefslatex
cmd:cefspdflatex
cmd:cfftot1
cmd:checkcites
cmd:chktex
cmd:chkweb
cmd:context
cmd:contextjit
cmd:convbkmk
cmd:cslatex
cmd:csplain
cmd:ctangle
cmd:ctanify
cmd:ctanupload
cmd:ctie
cmd:cweave
cmd:de_macro
cmd:depythontex
cmd:detex
cmd:devnag
cmd:deweb
cmd:disdvi
cmd:dosepsbin
cmd:dt2dv
cmd:dtxgen
cmd:dv2dt
cmd:dvi2fax
cmd:dvi2tty
cmd:dviasm
cmd:dvibook
cmd:dviconcat
cmd:dvicopy
cmd:dvidvi
cmd:dvigif
cmd:dvihp
cmd:dvilj
cmd:dvilj2p
cmd:dvilj4
cmd:dvilj4l
cmd:dvilj6
cmd:dvilualatex
cmd:dviluatex
cmd:dvipdfm
cmd:dvipdfmx
cmd:dvipdft
cmd:dvipng
cmd:dvipos
cmd:dvips
cmd:dvired
cmd:dviselect
cmd:dvisvgm
cmd:dvitodvi
cmd:dvitomp
cmd:dvitype
cmd:e2pall
cmd:ebb
cmd:ebong
cmd:eplain
cmd:epsffit
cmd:epspdf
cmd:epspdftk
cmd:epstopdf
cmd:eptex
cmd:etex
cmd:euptex
cmd:exceltex
cmd:extconv
cmd:extractbb
cmd:extractres
cmd:fig4latex
cmd:findhyph
cmd:fmtutil_sys
cmd:fmtutil
cmd:fontinst
cmd:fragmaster
cmd:gbklatex
cmd:gbkpdflatex
cmd:gftodvi
cmd:gftopk
cmd:gftype
cmd:gsftopk
cmd:hbf2gf
cmd:ht
cmd:htcontext
cmd:htlatex
cmd:htmex
cmd:httex
cmd:httexi
cmd:htxelatex
cmd:htxetex
cmd:includeres
cmd:inimf
cmd:initex
cmd:installfont_tl
cmd:jadetex
cmd:jamo_normalize
cmd:kanji_config_updmap_sys
cmd:kanji_config_updmap
cmd:kanji_fontmap_creator
cmd:komkindex
cmd:kpseaccess
cmd:kpsepath
cmd:kpsereadlink
cmd:kpsestat
cmd:kpsetool
cmd:kpsewhere
cmd:kpsewhich
cmd:kpsexpand
cmd:lacheck
cmd:lamed
cmd:latex_git_log
cmd:latex
cmd:latex2man
cmd:latexdiff_vc
cmd:latexdiff
cmd:latexfileversion
cmd:latexindent
cmd:latexmk
cmd:latexpand
cmd:latexrevise
cmd:lily_glyph_commands
cmd:lily_image_commands
cmd:lily_rebuild_pdfs
cmd:listbib
cmd:listings_ext.sh
cmd:lollipop
cmd:ltxfileinfo
cmd:ltximg
cmd:lua2dox_filter
cmd:luajittex
cmd:lualatex
cmd:lualollipop
cmd:luaotfload_tool
cmd:luatex
cmd:luatools
cmd:m_tx
cmd:mag
cmd:makeglossaries
cmd:makeindex
cmd:makejvf
cmd:match_parens
cmd:mathspic
cmd:mendex
cmd:mex
cmd:mf_nowin
cmd:mf
cmd:mf2pt1
cmd:mfplain
cmd:mft
cmd:mk4ht
cmd:mkgrkindex
cmd:mkindex
cmd:mkjobtexmf
cmd:mkluatexfontdb
cmd:mkocp
cmd:mkofm
cmd:mkpic
cmd:mkt1font
cmd:mktexfmt
cmd:mktexlsr
cmd:mktexmf
cmd:mktexpk
cmd:mktextfm
cmd:mllatex
cmd:mltex
cmd:mmafm
cmd:mmpfb
cmd:mpost
cmd:mptopdf
cmd:mtxrun
cmd:mtxrunjit
cmd:multibibliography
cmd:musixflx
cmd:musixtex
cmd:odvicopy
cmd:odvitype
cmd:ofm2opl
cmd:omfonts
cmd:opl2ofm
cmd:ot2kpx
cmd:otangle
cmd:otfinfo
cmd:otftotfm
cmd:otp2ocp
cmd:outocp
cmd:ovf2ovp
cmd:ovp2ovf
cmd:patgen
cmd:pbibtex
cmd:pdf180
cmd:pdf270
cmd:pdf90
cmd:pdfannotextractor
cmd:pdfatfi
cmd:pdfbook
cmd:pdfcrop
cmd:pdfcslatex
cmd:pdfcsplain
cmd:pdfetex
cmd:pdfflip
cmd:pdfjadetex
cmd:pdfjam_pocketmod
cmd:pdfjam_slides3up
cmd:pdfjam_slides6up
cmd:pdfjam
cmd:pdfjoin
cmd:pdflatex
cmd:pdfmex
cmd:pdfnup
cmd:pdfpun
cmd:pdftex
cmd:pdftosrc
cmd:pdfxmltex
cmd:pdvitype
cmd:pedigree
cmd:perltex
cmd:pfarrei
cmd:pfb2pfa
cmd:pk2bm
cmd:pkfix_helper
cmd:pkfix
cmd:pktogf
cmd:pktype
cmd:platex
cmd:pltotf
cmd:pmx2pdf
cmd:pmxab
cmd:pmxchords
cmd:pooltype
cmd:ppltotf
cmd:prepmx
cmd:ps2eps
cmd:ps2frag
cmd:ps2pk
cmd:ps4pdf
cmd:psbook
cmd:psjoin
cmd:pslatex
cmd:psnup
cmd:psresize
cmd:psselect
cmd:pst2pdf
cmd:pstops
cmd:ptex
cmd:ptex2pdf
cmd:ptftopl
cmd:purifyeps
cmd:pythontex
cmd:repstopdf
cmd:rpdfcrop
cmd:rubibtex
cmd:rubikrotation
cmd:rumakeindex
cmd:rungs
cmd:scor2prt
cmd:simpdftex
cmd:sjisconv
cmd:sjislatex
cmd:sjispdflatex
cmd:splitindex
cmd:sty2dtx
cmd:svn_multi
cmd:synctex
cmd:t1ascii
cmd:t1asm
cmd:t1binary
cmd:t1disasm
cmd:t1dotlessj
cmd:t1lint
cmd:t1mac
cmd:t1rawafm
cmd:t1reencode
cmd:t1testpage
cmd:t1unmac
cmd:t4ht
cmd:tangle
cmd:teckit_compile
cmd:tex
cmd:tex4ht
cmd:texconfig_dialog
cmd:texconfig_sys
cmd:texconfig
cmd:texcount
cmd:texdef
cmd:texdiff
cmd:texdirflatten
cmd:texdoc
cmd:texdoctk
cmd:texexec
cmd:texfot
cmd:texhash
cmd:texlinks
cmd:texliveonfly
cmd:texloganalyser
cmd:texlua
cmd:texluac
cmd:texluajit
cmd:texluajitc
cmd:texmfstart
cmd:texsis
cmd:tftopl
cmd:thumbpdf
cmd:tie
cmd:tlmgr
cmd:tpic2pdftex
cmd:ttf2afm
cmd:ttf2kotexfont
cmd:ttf2pk
cmd:ttf2tfm
cmd:ttfdump
cmd:ttftotype42
cmd:typeoutfileinfo
cmd:ulqda
cmd:upbibtex
cmd:updmap_sys
cmd:updmap
cmd:updvitype
cmd:uplatex
cmd:uppltotf
cmd:uptex
cmd:uptftopl
cmd:urlbst
cmd:utf8mex
cmd:vftovp
cmd:vlna
cmd:vpe
cmd:vpl2ovp
cmd:vpl2vpl
cmd:vptovf
cmd:weave
cmd:wofm2opl
cmd:wopl2ofm
cmd:wovf2ovp
cmd:wovp2ovf
cmd:xdvipdfmx
cmd:xelatex
cmd:xelollipop
cmd:xetex
cmd:xmltex
lib:libkpathsea$secondaryArchSuffix
lib:libptexenc$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libpng$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libbz2$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libicudata$secondaryArchSuffix
lib:libicuuc$secondaryArchSuffix
lib:libicui18n$secondaryArchSuffix
"
PROVIDES_devel="
texlive${secondaryArchSuffix}_devel = $portVersion
devel:libkpathsea$secondaryArchSuffix = $portVersion
devel:libptexenc$secondaryArchSuffix = $portVersion
"
REQUIRES_devel="
texlive$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
haiku_devel
icu${secondaryArchSuffix}_devel
devel:libpng$secondaryArchSuffix
devel:libz$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libbz2$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:pkg_config$secondaryArchSuffix
cmd:icu_config$secondaryArchSuffix
cmd:freetype_config$secondaryArchSuffix
cmd:gcc$secondaryArchSuffix
cmd:g++$secondaryArchSuffix
cmd:make
cmd:m4
cmd:bison
cmd:yacc
cmd:perl
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:libtoolize
cmd:sed
cmd:grep
cmd:awk
cmd:makeinfo
cmd:flex
cmd:svn
cmd:wget
cmd:xz
cmd:xzdec
cmd:patch
gettext${secondaryArchSuffix}
gettext${secondaryArchSuffix}_libintl
"
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/fmtutil.cnf auto-merge
"
fetchTexLiveInstaller()
{
if [ ! -e Master ] ; then
# Does a sparse checkout, grabbing only the files necessary to run tl-installer, that we don't already have available
svn checkout svn://tug.org/texlive/tags/texlive-2014.0/Master Master --depth immediates
cd Master
rm -rf texmf-dist
svn update --set-depth infinity readme-html.dir readme-txt.dir tlpkg
else
cd Master
fi
# Put the texmf-dist into the correct location
if [ ! -e texmf-dist ] ; then
ln -s $sourceDir2/texmf-dist/ texmf-dist
fi
# Link our binaries to bin/i386-haiku
if [ ! -e bin/i386-haiku ] ; then
mkdir -p bin
ln -s $prefix/bin bin/i386-haiku
fi
}
### Variables that TeX Live uses to control where files go
# This is the parent directory of our several trees, i.e.,
# /usr/local/texlive/YYYY in the original TeX Live distribution.
#
# All trees must be organized according to the TeX Directory Structure
# (http://tug.org/tds), or files may not be found.
#
# Redistributors will probably want $SELFAUTODIR/share, i.e., /usr/share.
# Kpathsea sets SELFAUTOLOC (the directory with the binary),
# SELFAUTODIR (its parent), and SELFAUTOPARENT (its grandparent).
#
### TEXMFROOT = $SELFAUTOPARENT
#
# 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 = $SELFAUTOGRANDPARENT/texmf-local
#
# TEXMFSYSVAR, where *-sys store cached runtime data.
#
### TEXMFSYSVAR = $TEXMFROOT/texmf-var
#
# TEXMFSYSCONFIG, where *-sys store configuration data.
#
### TEXMFSYSCONFIG = $TEXMFROOT/texmf-config
#
# 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 = ~/.texlive2014/texmf-var
#
# TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data.
#
### TEXMFCONFIG = ~/.texlive2014/texmf-config
#
# 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 all 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.
#
### TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFDIST}
#
# Where to look for ls-R files. There need not be an ls-R in the
# directories in this path, but if there is one, Kpathsea will use it.
# By default, this is 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 be searched.
# This is arguably a bug in kpathsea.
#
### TEXMFDBS = {!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$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).
fixKSearchPaths()
{
TEXMFCNF=$sourceDir/texk/kpathsea/texmf.cnf
sed -i -e "s@TEXMFROOT =.*@TEXMFROOT = $dataDir/texlive@" $TEXMFCNF
sed -i -e "s@TEXMFDIST =.*@TEXMFDIST = $dataDir/texlive/texmf-dist@" $TEXMFCNF
sed -i -e "s@TEXMFMAIN =.*@TEXMFMAIN = $dataDir/texlive/texmf-dist@" $TEXMFCNF
sed -i -e "s@TEXMFLOCAL =.*@TEXMFLOCAL = /boot/system/non-packaged/data/texmf-dist@" $TEXMFCNF
sed -i -e "s@TEXMFSYSVAR =.*@TEXMFSYSVAR = $sharedStateDir/texlive@" $TEXMFCNF
sed -i -e "s@TEXMFSYSCONFIG =.*@TEXMFSYSCONFIG = $sysconfDir/texlive@" $TEXMFCNF
sed -i -e "s@TEXMFHOME =.*@TEXMFHOME = /boot/home/config/settings/texmf-dist@" $TEXMFCNF
sed -i -e "s@TEXMFVAR =.*@TEXMFVAR = /boot/home/config/var/texmf@" $TEXMFCNF
sed -i -e "s@TEXMFCONFIG =.*@TEXMFCONFIG = /boot/home/config/settings/texmf/config@" $TEXMFCNF
sed -i -e "s@VARTEXFONTS =.*@VARTEXFONTS = /boot/home/config/settings/texmf/fonts@" $TEXMFCNF
# rename current TEXMFCNF; easier than writing a more complex sed script!
sed -i -e "s@^TEXMFCNF@IGNOREDTEXMFCNF@" $TEXMFCNF
# redefine TEXMFCNF: {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c}
sed -i -e "s@%TEXMFCNF.*@TEXMFCNF={$dataDir/texlive/texmf-dist/web2c,/boot/system/non-packaged/data/texmf-dist/web2c,/boot/home/config/settings/texmf-dist/web2c}@" $TEXMFCNF
}
BUILD()
{
# disable the install-bin-links target
sed -i -e 's/!WIN32/WIN32/g' am/bin_links.am
libtoolize --force --copy --install
autoreconf
mkdir -p ../build && cd ../build
# may need to run this super early to ensure everything gets the right value...
fixKSearchPaths
# don't use secondary arch bindir
runConfigure --omit-buildspec --omit-dirs "binDir sbinDir" $sourceDir/configure \
--bindir=$prefix/bin --sbindir=$prefix/bin --disable-native-texlive-build --disable-cxx-runtime-hack \
--enable-shared --disable-static --with-banner-add="/Haiku" --with-editor='lpe +%d "%s"' --with-system-icu \
--without-cairo --with-system-freetype2 --with-system-libpng --with-system-zlib --without-x -C \
--build=i586-pc-haiku --host=i586-pc-haiku
# and make the damn thing!
make all $jobArgs
}
INSTALL()
{
cd ../build
make install-strip
# make texlinks creates broken symlinks :( see comment in BUILD()
make texlinks
# and install the actual distribution...
cd ..
fetchTexLiveInstaller
# we should now be in "Master"
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
if [ ! -e flag.patched ] ; then
patch -Np2 < $portDir/additional-files/tlutils.pm.patch
touch flag.patched
fi
# hmm, need to work-around /boot/system/non-packaged not existing....
# the texfm 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:$prefix/bin:$PATH
install-tl <<< $"D
1
$dataDir/texlive
2
/boot/system/non-packaged/data/texlive/texmf-dist
3
$sharedStateDir/texlive
4
$sysconfDir/texlive
5
/boot/home/config/var/texmf
6
/boot/home/config/settings/texmf/config
7
/boot/home/config/settings/texmf-dist
R
I
"
# somewhere along the way, a texmf.cnf gets created with ALL the wrong paths...
# replace it with the known working version
cp -f $dataDir/texmf-dist/web2c/texmf.cnf $dataDir/texlive/texmf-dist/web2c/texmf.cnf
# some reason, this doesn't get created, which we need
if [ ! -e $prefix/bin/mktexfmt ] ; then
ln -s $prefix/bin/fmtutil $prefix/bin/mktexfmt
fi
# remove the documents directory; it's too big for package create to handle!
# see https://dev.haiku-os.org/ticket/12116
#rm -rf $dataDir/texlive/texmf-dist/doc
# remove useless libtool files
rm -f $libDir/*.la
prepareInstalledDevelLibs libkpathsea libptexenc
# devel package
packageEntries devel \
$developDir
exit 1
}
TEST()
{
make check
}