diff --git a/app-text/texlive/patches/texlive-2014.patchset b/app-text/texlive/patches/texlive-2014.patchset new file mode 100644 index 000000000..dd0a8e831 --- /dev/null +++ b/app-text/texlive/patches/texlive-2014.patchset @@ -0,0 +1,237 @@ +From bd95a285e81b9fd3ff852810bacfb4c751ae7aec Mon Sep 17 00:00:00 2001 +From: Jessica Hamilton +Date: Sun, 24 May 2015 20:20:28 +1200 +Subject: Haiku support + + +diff --git a/libs/lua52/lua-5.2.3/src/luaconf.h b/libs/lua52/lua-5.2.3/src/luaconf.h +index 18be9a9..cf06f9a 100644 +--- a/libs/lua52/lua-5.2.3/src/luaconf.h ++++ b/libs/lua52/lua-5.2.3/src/luaconf.h +@@ -69,7 +69,9 @@ + #define LUA_USE_MKSTEMP + #define LUA_USE_ISATTY + #define LUA_USE_POPEN ++#ifndef __HAIKU__ + #define LUA_USE_ULONGJMP ++#endif + #define LUA_USE_GMTIME_R + #endif + +diff --git a/m4/kpse-socket-libs.m4 b/m4/kpse-socket-libs.m4 +index c768b95..c291884 100644 +--- a/m4/kpse-socket-libs.m4 ++++ b/m4/kpse-socket-libs.m4 +@@ -20,7 +20,7 @@ AC_DEFUN([KPSE_CHECK_SOCKET_LIBS], + [AC_REQUIRE([KPSE_CHECK_WIN32]) + AS_IF([test "x$kpse_cv_have_win32" = xno], + [kpse_save_LIBS=$LIBS +- AC_SEARCH_LIBS([connect], [socket nsl]) ++ AC_SEARCH_LIBS([connect], [socket nsl network]) + LIBS=$kpse_save_LIBS], + [AC_CHECK_LIB([wsock32], [main], + [ac_cv_search_connect=-lwsock32], +diff --git a/texk/dviljk/config.h b/texk/dviljk/config.h +index a92d247..3d9bd99 100644 +--- a/texk/dviljk/config.h ++++ b/texk/dviljk/config.h +@@ -10,6 +10,8 @@ + #define unix + #elif defined (__NetBSD__) + #define unix ++#elif defined (__HAIKU__) ++#define unix + #endif + #endif + +diff --git a/texk/dvipdfm-x/configure.ac b/texk/dvipdfm-x/configure.ac +index 60d9987..4a8b00e 100644 +--- a/texk/dvipdfm-x/configure.ac ++++ b/texk/dvipdfm-x/configure.ac +@@ -49,6 +49,7 @@ AC_CHECK_SIZEOF([int]) + AC_CHECK_SIZEOF([long]) + + AC_SEARCH_LIBS([pow], [m]) ++AC_SEARCH_LIBS([getpass], [bsd]) + + KPSE_KPATHSEA_FLAGS + KPSE_ZLIB_FLAGS +diff --git a/texk/dvipdfm-x/pdfencrypt.c b/texk/dvipdfm-x/pdfencrypt.c +index 480823c..c0a206f 100644 +--- a/texk/dvipdfm-x/pdfencrypt.c ++++ b/texk/dvipdfm-x/pdfencrypt.c +@@ -31,6 +31,9 @@ + #include + #define getch _getch + #else /* !WIN32 */ ++#ifdef __HAIKU__ ++#define _BSD_SOURCE ++#endif + #include + #endif /* WIN32 */ + +diff --git a/texk/web2c/configure.ac b/texk/web2c/configure.ac +index 87e2ad5..61e79ef 100644 +--- a/texk/web2c/configure.ac ++++ b/texk/web2c/configure.ac +@@ -22,7 +22,7 @@ dnl + m4_include([../../version.ac])[] dnl define tex_live_version + AC_INIT([Web2C], tex_live_version(), [tex-k@tug.org]) + AC_PREREQ([2.65]) +-dnl ++dnl + dnl We don't use (for example) tex/tex.web because people who only want + dnl to build part of the distribution may not have any given program. + dnl Even cpascal.h isn't guaranteed, but then nothing is, really ... +@@ -107,9 +107,9 @@ KPSE_LUA52_DEFINES + KPSE_LUAJIT_DEFINES + LIBS=$kpse_save_LIBS + if test "x$kpse_cv_have_win32" = xno; then +- AC_SEARCH_LIBS([gethostbyname], [nsl]) +- AC_SEARCH_LIBS([hstrerror], [resolv]) +- AC_SEARCH_LIBS([inet_aton], [resolv]) ++ AC_SEARCH_LIBS([gethostbyname], [nsl network]) ++ AC_SEARCH_LIBS([hstrerror], [resolv bind]) ++ AC_SEARCH_LIBS([inet_aton], [resolv bind]) + LIBS=$kpse_save_LIBS + AC_SEARCH_LIBS([nanosleep], [rt]) + LIBS=$kpse_save_LIBS +-- +2.2.2 + + +From 080a1c28447c5abae634ef1848ddc60a504b050a Mon Sep 17 00:00:00 2001 +From: Jessica Hamilton +Date: Tue, 2 Jun 2015 09:30:45 +1200 +Subject: Don't use the /nonesuch idiom on Haiku. + + +diff --git a/texk/kpathsea/cnf-to-paths.awk b/texk/kpathsea/cnf-to-paths.awk +index 939f54d..431062f 100644 +--- a/texk/kpathsea/cnf-to-paths.awk ++++ b/texk/kpathsea/cnf-to-paths.awk +@@ -43,12 +43,9 @@ + # Replace all semicolons with colons in the SELFAUTO paths we're keeping. + # (The path-splitting code should be changed to understand both.) + gsub(/;/, ":", val); +- } else if (val ~ /^\//) { +- # If the value starts with /, presume we're compiling with changes +- # made for a distro, and keep it. Likewise switch to :. +- gsub(/;/, ":", val); + } else { +- val = "/nonesuch"; ++ # Just hard-code it on Haiku; it never does the right thing otherwise ++ gsub(/;/, ":", val); + } + + print "#ifndef DEFAULT_" ident; +-- +2.2.2 + + +From ee7a3fb96fb2be78a1b7b7721adde56a5514fc9e Mon Sep 17 00:00:00 2001 +From: Jessica Hamilton +Date: Tue, 2 Jun 2015 10:16:26 +1200 +Subject: Don't allow SELFAUTO* magic on Haiku. + + +diff --git a/texk/kpathsea/progname.c b/texk/kpathsea/progname.c +index c4fe781..0d032b4 100644 +--- a/texk/kpathsea/progname.c ++++ b/texk/kpathsea/progname.c +@@ -667,6 +667,15 @@ kpathsea_set_program_name (kpathsea kpse, const_string argv0, + #endif + /* SELFAUTODIR is actually the parent of the invocation directory, + and SELFAUTOPARENT the grandparent. This is how teTeX did it. */ ++#ifdef __HAIKU__ ++ /* The SELFAUTO* variables don't work under a packaged TeX Live installation ++ on Haiku; normally SELFAUTOLOC would be a path like texlive/texmf-dist/bin/platform. ++ Have no idea how this is going to play out... */ ++ kpathsea_xputenv (kpse, "SELFAUTOLOC", "/boot/system/bin"); ++ kpathsea_xputenv (kpse, "SELFAUTODIR", "/boot/system/data/texlive/texmf-dist"); ++ kpathsea_xputenv (kpse, "SELFAUTOPARENT", "/boot/system/data/texlive"); ++ kpathsea_xputenv (kpse, "SELFAUTOGRANDPARENT", "/boot/system/data"); ++#else + kpathsea_xputenv (kpse, "SELFAUTOLOC", fix_selfdir (sdir)); + sdir_parent = xdirname (sdir); + kpathsea_xputenv (kpse, "SELFAUTODIR", fix_selfdir (sdir_parent)); +@@ -674,6 +683,7 @@ kpathsea_set_program_name (kpathsea kpse, const_string argv0, + kpathsea_xputenv (kpse, "SELFAUTOPARENT", fix_selfdir (sdir_grandparent)); + sdir_greatgrandparent = xdirname (sdir_grandparent); + kpathsea_xputenv (kpse, "SELFAUTOGRANDPARENT", fix_selfdir (sdir_greatgrandparent)); ++#endif + + #if defined(WIN32) || defined(__CYGWIN__) + mk_suffixlist(kpse); +-- +2.2.2 + + +From 1b8868ceaac76a98ae55619475734ecc794940f7 Mon Sep 17 00:00:00 2001 +From: Jessica Hamilton +Date: Wed, 3 Jun 2015 15:07:56 +1200 +Subject: Try and fix up more weirdness with install-tl + + +diff --git a/texk/texlive/tl_scripts/texlinks.sh b/texk/texlive/tl_scripts/texlinks.sh +index 028b50b..0e848c8 100755 +--- a/texk/texlive/tl_scripts/texlinks.sh ++++ b/texk/texlive/tl_scripts/texlinks.sh +@@ -162,26 +162,36 @@ install_link() + # context includes wrapper scripts that create/run these. + verbose_echo "skipped ConTeXtish symlink $src -> $dest (special case)" + ;; ++ /boot/system/bin/*) ++ # Trying to symlink to ourself ++ verbose_echo "skipped symlinking to self: $src -> $dest (haiku case)" ++ ;; + *) +- test "x$src" != "x`(ls -ld $src | awk '{print $NF}') 2>/dev/null`" && +- rm -f "$src" +- +- if test -f "$src"; then +- if $silent; then :; else +- # i.e., the rm failed. +- errmsg "install_link $src -> $dest failed: file already exists." +- fi +- else +- if echo "$src" | grep '/pdfcsplain$' >/dev/null; then +- # at p.olsak insistence: we have three pdfcsplain entries in +- # fmtutil.cnf with different engines, but the executable link +- # must point to pdftex. +- verbose_echo "forcing pdfcsplain destination to be pdftex" +- dest=pdftex ++ case $dest in ++ /boot/system/bin/*) ++ verbose_echo "skipped symlink to bin dir: $src -> $dest (haiku case)" ++ ;; ++ *) ++ test "x$src" != "x`(ls -ld $src | awk '{print $NF}') 2>/dev/null`" && ++ rm -f "$src" ++ ++ if test -f "$src"; then ++ if $silent; then :; else ++ # i.e., the rm failed. ++ errmsg "install_link $src -> $dest failed: file already exists." ++ fi ++ else ++ if echo "$src" | grep '/pdfcsplain$' >/dev/null; then ++ # at p.olsak insistence: we have three pdfcsplain entries in ++ # fmtutil.cnf with different engines, but the executable link ++ # must point to pdftex. ++ verbose_echo "forcing pdfcsplain destination to be pdftex" ++ dest=pdftex ++ fi ++ verbose_do ln -s "$dest" "$src" + fi +- verbose_do ln -s "$dest" "$src" +- fi +- ;; ++ ;; ++ esac + esac + } + +-- +2.2.2 + diff --git a/app-text/texlive/patches/tlutils.pm.patch b/app-text/texlive/patches/tlutils.pm.patch new file mode 100644 index 000000000..a1424b657 --- /dev/null +++ b/app-text/texlive/patches/tlutils.pm.patch @@ -0,0 +1,36 @@ +diff --git a/Master/tlpkg/TeXLive/TLUtils.pm b/Master/tlpkg/TeXLive/TLUtils.pm +index afcd157..b8bcc4a 100644 +--- a/Master/tlpkg/TeXLive/TLUtils.pm ++++ b/Master/tlpkg/TeXLive/TLUtils.pm +@@ -282,7 +282,7 @@ sub platform_name { + $CPU = $guessed_platform =~ /hf$/ ? "armhf" : "armel"; + } + +- my @OSs = qw(aix cygwin darwin freebsd hpux irix ++ my @OSs = qw(aix cygwin darwin freebsd haiku hpux irix + kfreebsd linux netbsd openbsd solaris); + for my $os (@OSs) { + # Match word boundary at the beginning of the os name so that +@@ -336,6 +336,7 @@ sub platform_desc { + 'hppa-hpux' => 'HP-UX', + 'i386-cygwin' => 'Intel x86 with Cygwin', + 'i386-darwin' => 'Intel x86 with MacOSX/Darwin', ++ 'i386-haiku' => 'Intel x86 with Haiku', + 'i386-freebsd' => 'Intel x86 with FreeBSD', + 'i386-kfreebsd' => 'Intel x86 with GNU/kFreeBSD', + 'i386-openbsd' => 'Intel x86 with OpenBSD', +diff --git a/Master/tlpkg/texlive.tlpdb b/Master/tlpkg/texlive.tlpdb +index f917900..42f1100 100644 +--- a/Master/tlpkg/texlive.tlpdb ++++ b/Master/tlpkg/texlive.tlpdb +@@ -2941,7 +2941,7 @@ depend opt_path:0 + depend opt_adjustrepo:1 + depend opt_write18_restricted:1 + depend opt_frozen:0 +-depend setting_available_architectures:x86_64-linux x86_64-darwin amd64-kfreebsd x86_64-solaris x86_64-cygwin mipsel-linux i386-kfreebsd i386-netbsd win32 i386-solaris universal-darwin i386-freebsd amd64-freebsd i386-linux amd64-netbsd armel-linux alpha-linux sparc-solaris powerpc-linux i386-cygwin armhf-linux ++depend setting_available_architectures:x86_64-linux x86_64-darwin amd64-kfreebsd x86_64-solaris x86_64-cygwin mipsel-linux i386-kfreebsd i386-netbsd win32 i386-solaris universal-darwin i386-freebsd i386-haiku amd64-freebsd i386-linux amd64-netbsd armel-linux alpha-linux sparc-solaris powerpc-linux i386-cygwin armhf-linux + depend opt_autobackup:1 + depend opt_backupdir:tlpkg/backups + depend opt_create_formats:1 +-- +2.2.2 diff --git a/app-text/texlive/texlive-2014.recipe b/app-text/texlive/texlive-2014.recipe new file mode 100644 index 000000000..2119114a8 --- /dev/null +++ b/app-text/texlive/texlive-2014.recipe @@ -0,0 +1,715 @@ +SUMMARY="TeX Live" +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="Copyright 1996 by collaboration between the TeX user groups." +LICENSE="GNU GPL v2" +SRC_URI="ftp://tug.org/historic/systems/texlive/2014/texlive-20140525-source.tar.xz" +SRC_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" + +REVISION="1" + +ARCHITECTURES="x86" +SECONDARY_ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PATCHES="texlive-2014.patchset" + +PROVIDES=" + texlive = $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 + lib:libstdc++$secondaryArchSuffix + " +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 +} + +# ----- devel package ------------------------------------------------------- + +PROVIDES_devel=" + texlive${secondaryArchSuffix}_devel = $portVersion + devel:libkpathsea$secondaryArchSuffix = $portVersion + devel:libptexenc$secondaryArchSuffix = $portVersion + " +REQUIRES_devel=" + texlive$secondaryArchSuffix == $portVersion base + "