Files
haikuports/app-text/texlive/texlive-2014.recipe
Adrien Destugues d5f2766d4d TexLive: missing secondaryArhcSuffix.
Make it impossible to install from haikudepot.
2015-08-16 13:02:38 +02:00

705 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"
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/patches/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
}