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 }