From 1f5d9401c7c024d2173fdf6dad6910c8e64ff95d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joachim=20Mairb=C3=B6ck?= Date: Sun, 18 Jul 2021 08:06:42 +0200 Subject: [PATCH] Texlive: bump to 2021 (#5963) * add texlive 2020 changes in addition to bump and required changes: - uses system libraries where feasible instead of bundled ones - uses install-tl and tlpdb from a source tarball instead of an SVN checkout (removes the dependency on svn) * first attempt at splitting up the package add a texmf and texmf_doc subpackage containing $dataDir/texlive/texmf-dist{,/doc} this is both to work around Haiku ticket #12116 (and still have docs) as well as making the package more managable in general. Ideally the package should be split up according to texlive collections, but that would require parsing of texlive.tlpdb of some sort. * replace envsubst with sed replacements envsubst doesn't work because haikuporter's variables are not exported and are only available in the recipe itself * replace the tlpdb tarball with the extra tarball which contains some of the yet missing files also, change the SELFAUTO patch dynamically in the recipe to use $dataDir (i.e. a /packages based path) instead of hard-coding /boot/system/data. This way the installed tools can also be used during the INSTALL phase in the haikuports recipe itself. * files that are copied directly by install-tl need to be copied and not linked (otherwise it copies the symlink which doesn't work in the installed system) --- .../texlive/additional-files/texlive.profile | 26 + .../texlive/additional-files/tlutils.pm.patch | 36 -- .../texlive/patches/texlive-2014.patchset | 309 ----------- .../texlive/patches/texlive-2021.patchset | 224 ++++++++ ...exlive-2014.recipe => texlive-2021.recipe} | 511 +++++++++++++----- 5 files changed, 625 insertions(+), 481 deletions(-) create mode 100644 app-text/texlive/additional-files/texlive.profile delete mode 100644 app-text/texlive/additional-files/tlutils.pm.patch delete mode 100644 app-text/texlive/patches/texlive-2014.patchset create mode 100644 app-text/texlive/patches/texlive-2021.patchset rename app-text/texlive/{texlive-2014.recipe => texlive-2021.recipe} (51%) diff --git a/app-text/texlive/additional-files/texlive.profile b/app-text/texlive/additional-files/texlive.profile new file mode 100644 index 000000000..25c11148a --- /dev/null +++ b/app-text/texlive/additional-files/texlive.profile @@ -0,0 +1,26 @@ +selected_scheme scheme-full +TEXDIR dataDir/texlive +TEXMFCONFIG /boot/home/config/settings/texmf/config +TEXMFHOME /boot/home/config/settings/texmf-dist +TEXMFLOCAL /boot/system/non-packaged/data/texlive/texmf-dist +TEXMFSYSCONFIG sysconfDir/texlive +TEXMFSYSVAR sharedStateDir/texlive +TEXMFVAR /boot/home/config/var/texmf +instopt_adjustpath 0 +instopt_adjustrepo 1 +instopt_letter 0 +instopt_portable 0 +instopt_write18_restricted 1 +tlpdbopt_autobackup 1 +tlpdbopt_backupdir tlpkg/backups +tlpdbopt_create_formats 1 +tlpdbopt_desktop_integration 1 +tlpdbopt_file_assocs 1 +tlpdbopt_generate_updmap 0 +tlpdbopt_install_docfiles 1 +tlpdbopt_install_srcfiles 1 +tlpdbopt_post_code 1 +tlpdbopt_sys_bin /boot/system/bin +tlpdbopt_sys_info /boot/system/documentation/info +tlpdbopt_sys_man /boot/system/documentation/man +tlpdbopt_w32_multi_user 1 diff --git a/app-text/texlive/additional-files/tlutils.pm.patch b/app-text/texlive/additional-files/tlutils.pm.patch deleted file mode 100644 index a1424b657..000000000 --- a/app-text/texlive/additional-files/tlutils.pm.patch +++ /dev/null @@ -1,36 +0,0 @@ -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/patches/texlive-2014.patchset b/app-text/texlive/patches/texlive-2014.patchset deleted file mode 100644 index 20389678b..000000000 --- a/app-text/texlive/patches/texlive-2014.patchset +++ /dev/null @@ -1,309 +0,0 @@ -From 9e27fba3c8f813d5e5fd38c08ad4c6ea0e17a04d 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.19.1 - - -From a44382c99b305b1b7b51ef309ec3229ad4ee01ab 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.19.1 - - -From 0285476adf12cc898269a7571cd6c9e9745e5d55 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.19.1 - - -From 685c41b414d9c72dfa96c19d688360cf638392dd 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.19.1 - - -From 31f1525b912d9d83d6524e5fa2409dd4d3be9cdc Mon Sep 17 00:00:00 2001 -From: Sergei Reznikov -Date: Thu, 7 Feb 2019 17:32:53 +0300 -Subject: Define Haiku as POSIX OS - - -diff --git a/libs/luajit/LuaJIT-2.0.3/src/lj_alloc.c b/libs/luajit/LuaJIT-2.0.3/src/lj_alloc.c -index f856a7a..50a35d4 100644 ---- a/libs/luajit/LuaJIT-2.0.3/src/lj_alloc.c -+++ b/libs/luajit/LuaJIT-2.0.3/src/lj_alloc.c -@@ -188,7 +188,7 @@ static LJ_AINLINE void *CALL_MMAP(size_t size) - return ptr; - } - --#elif LJ_TARGET_OSX || LJ_TARGET_PS4 || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__sun__) -+#elif LJ_TARGET_OSX || LJ_TARGET_PS4 || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__sun__) || defined(__HAIKU__) - - /* OSX and FreeBSD mmap() use a naive first-fit linear search. - ** That's perfect for us. Except that -pagezero_size must be set for OSX, -diff --git a/libs/luajit/LuaJIT-2.0.3/src/lj_arch.h b/libs/luajit/LuaJIT-2.0.3/src/lj_arch.h -index 0196eed..a9072e1 100644 ---- a/libs/luajit/LuaJIT-2.0.3/src/lj_arch.h -+++ b/libs/luajit/LuaJIT-2.0.3/src/lj_arch.h -@@ -69,6 +69,8 @@ - #elif (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ - defined(__NetBSD__) || defined(__OpenBSD__)) && !defined(__ORBIS__) - #define LUAJIT_OS LUAJIT_OS_BSD -+#elif defined(__HAIKU__) -+#define LUAJIT_OS LUAJIT_OS_POSIX - #elif (defined(__sun__) && defined(__svr4__)) || defined(__CYGWIN__) - #define LUAJIT_OS LUAJIT_OS_POSIX - #else --- -2.19.1 - - -From ba7e845739a7725f658996dcefc1f234159f8f00 Mon Sep 17 00:00:00 2001 -From: Sergei Reznikov -Date: Thu, 7 Feb 2019 17:49:20 +0300 -Subject: Fix data-narrowing bug - - -diff --git a/libs/teckit/TECkit-2.5.3/source/MakeNormData.pl b/libs/teckit/TECkit-2.5.3/source/MakeNormData.pl -index bc1a856..0a69beb 100644 ---- a/libs/teckit/TECkit-2.5.3/source/MakeNormData.pl -+++ b/libs/teckit/TECkit-2.5.3/source/MakeNormData.pl -@@ -234,7 +234,7 @@ foreach (@rights) { - } - print "};\n\n"; - --print "const UInt16 cComposites[" . (1 + scalar keys %lIndex) . "][" . (1 + scalar keys %rIndex) . "] = {\n"; -+print "const UInt32 cComposites[" . (1 + scalar keys %lIndex) . "][" . (1 + scalar keys %rIndex) . "] = {\n"; - for $l (0 .. scalar keys %lIndex) { - print "\t{"; - print join(',', map { sprintf("0x%04X", $cmp{$l}{$_}) } (0 .. scalar keys %rIndex)); -diff --git a/libs/teckit/TECkit-2.5.3/source/NormalizationData.c b/libs/teckit/TECkit-2.5.3/source/NormalizationData.c -index e39685b..1d0f760 100644 ---- a/libs/teckit/TECkit-2.5.3/source/NormalizationData.c -+++ b/libs/teckit/TECkit-2.5.3/source/NormalizationData.c -@@ -2198,7 +2198,7 @@ const UInt8 cRCharIndex[][256] = { - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - }; - --const UInt16 cComposites[373][59] = { -+const UInt32 cComposites[373][59] = { - {0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}, - {0x0000,0x1109A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}, - {0x0000,0x1109C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000}, --- -2.19.1 - diff --git a/app-text/texlive/patches/texlive-2021.patchset b/app-text/texlive/patches/texlive-2021.patchset new file mode 100644 index 000000000..ee246fa6b --- /dev/null +++ b/app-text/texlive/patches/texlive-2021.patchset @@ -0,0 +1,224 @@ +From 8a78b705e7ce64fac04334f7d1aaaf14760d970d Mon Sep 17 00:00:00 2001 +From: Jessica Hamilton +Date: Sun, 18 Apr 2021 12:16:13 +0200 +Subject: Haiku support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +changes for version 2021 by jmairboeck + +Signed-off-by: Joachim Mairböck + +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 40afd7c..054611e 100644 +--- a/texk/dvipdfm-x/configure.ac ++++ b/texk/dvipdfm-x/configure.ac +@@ -50,6 +50,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/dvipdfmx.c b/texk/dvipdfm-x/dvipdfmx.c +index ec4499c..afe3f31 100644 +--- a/texk/dvipdfm-x/dvipdfmx.c ++++ b/texk/dvipdfm-x/dvipdfmx.c +@@ -365,6 +365,9 @@ getpass (const char *prompt) + return pwd_buf; + } + #else /* !WIN32 */ ++#ifdef __HAIKU__ ++#define _BSD_SOURCE ++#endif + #include + #endif /* WIN32 */ + +diff --git a/texk/web2c/configure.ac b/texk/web2c/configure.ac +index e90ca38..ca7f8f5 100644 +--- a/texk/web2c/configure.ac ++++ b/texk/web2c/configure.ac +@@ -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.30.2 + + +From 4d9bca6d325d71456f1903cc80b3877abe41fcd8 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 894f352..a98c5cb 100644 +--- a/texk/kpathsea/cnf-to-paths.awk ++++ b/texk/kpathsea/cnf-to-paths.awk +@@ -46,12 +46,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.30.2 + + +From 77986a30c780f2073650d98c95025963220fda96 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 a984eab..4792dea 100644 +--- a/texk/kpathsea/progname.c ++++ b/texk/kpathsea/progname.c +@@ -661,6 +661,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)); +@@ -668,6 +677,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.30.2 + + +From 9c6e3297f09142844ed305e4e79265aea77f9b00 Mon Sep 17 00:00:00 2001 +From: Jessica Hamilton +Date: Sat, 12 Jun 2021 14:05:19 +0200 +Subject: Try and fix up more weirdness with install-tl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +changes for version 2021 by jmairboeck + +Signed-off-by: Joachim Mairböck + +diff --git a/texk/texlive/linked_scripts/texlive-extra/texlinks.sh b/texk/texlive/linked_scripts/texlive-extra/texlinks.sh +index 1f0e3c1..e9ec416 100755 +--- a/texk/texlive/linked_scripts/texlive-extra/texlinks.sh ++++ b/texk/texlive/linked_scripts/texlive-extra/texlinks.sh +@@ -156,25 +156,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" ++ 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$exeext ++ 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$exeext ++ fi ++ verbose_do ln -s "$dest" "$src" + fi +- verbose_do ln -s "$dest" "$src" +- fi ++ ;; ++ esac + ;; + esac + } +-- +2.30.2 + diff --git a/app-text/texlive/texlive-2014.recipe b/app-text/texlive/texlive-2021.recipe similarity index 51% rename from app-text/texlive/texlive-2014.recipe rename to app-text/texlive/texlive-2021.recipe index 17ed65e4b..672171135 100644 --- a/app-text/texlive/texlive-2014.recipe +++ b/app-text/texlive/texlive-2021.recipe @@ -6,27 +6,46 @@ 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="3" -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" +REVISION="1" +fullVersion=20210325 +SOURCE_URI="ftp://tug.org/historic/systems/texlive/$portVersion/texlive-$fullVersion-source.tar.xz" +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/install-tl-unx.tar.gz" +SOURCE_URI_4="ftp://tug.org/historic/systems/texlive/$portVersion/texlive-$fullVersion-extra.tar.xz" +CHECKSUM_SHA256="7aefd96608d72061970f2d73f275be5648ea8ae815af073016d3106acc0d584b" +CHECKSUM_SHA256_2="ff12d436c23e99fb30aad55924266104356847eb0238c193e839c150d9670f1c" +CHECKSUM_SHA256_3="74eac0855e1e40c8db4f28b24ef354bd7263c1f76031bdc02b52156b572b7a1d" +CHECKSUM_SHA256_4="46a3f385d0b30893eec6b39352135d2929ee19a0a81df2441bfcaa9f6c78339c" +SOURCE_DIR="texlive-$fullVersion-source" +SOURCE_DIR_2="texlive-$fullVersion-texmf" +SOURCE_DIR_3="install-tl-20210324" +SOURCE_DIR_4="texlive-$fullVersion-extra" +PATCHES="texlive-$portVersion.patchset" +ADDITIONAL_FILES="texlive.profile" -ARCHITECTURES="x86 !x86_gcc2 x86_64" -SECONDARY_ARCHITECTURES="x86" +ARCHITECTURES="!x86_gcc2 ?x86_64" +SECONDARY_ARCHITECTURES="?x86" + +libkpathseaVersion="6.3.3" +libptexencVersion="1.3.9" +libsynctexVersion="2.0.0" +libtexluaVersion="5.3.6" +libtexluajitVersion="2.1.0" +libkpathseaVersionCompat="$libkpathseaVersion compat >= ${libkpathseaVersion%%.*}" +libptexencVersionCompat="$libptexencVersion compat >= ${libptexencVersion%%.*}" +libsynctexVersionCompat="$libsynctexVersion compat >= ${libsynctexVersion%%.*}" +libtexluaVersionCompat="$libtexluaVersion compat >= ${libtexluaVersion%%.*}" +libtexluajitVersionCompat="$libtexluajitVersion compat >= ${libtexluajitVersion%%.*}" PROVIDES=" - texlive$secondaryArchSuffix = $portVersion compat >= 2014 + texlive$secondaryArchSuffix = $portVersion compat >= $portVersion cmd:a2ping cmd:a5toa4 cmd:adhocfilelist cmd:afm2afm cmd:afm2pl cmd:afm2tfm + cmd:albatross cmd:aleph cmd:allcm cmd:allec @@ -36,16 +55,24 @@ PROVIDES=" cmd:arlatex cmd:authorindex cmd:autoinst + cmd:autosp + cmd:axohelp + cmd:bbl2bib cmd:bbox cmd:bg5+latex cmd:bg5+pdflatex cmd:bg5conv cmd:bg5latex cmd:bg5pdflatex + cmd:bib2gls + cmd:bibdoiadd cmd:bibexport + cmd:bibmradd cmd:bibtex cmd:bibtex8 cmd:bibtexu + cmd:biburl2doi + cmd:bibzbladd cmd:bundledoc cmd:cachepic cmd:cef5conv @@ -59,23 +86,37 @@ PROVIDES=" cmd:cefspdflatex cmd:cfftot1 cmd:checkcites + cmd:checklistings + cmd:chkdvifont + cmd:chklref cmd:chktex cmd:chkweb + cmd:cjk_gs_integrate + cmd:cllualatex + cmd:cluttex + cmd:clxelatex cmd:context cmd:contextjit cmd:convbkmk + cmd:convertgls2bib cmd:cslatex cmd:csplain + cmd:ctan_o_mat + cmd:ctanbib cmd:ctangle cmd:ctanify cmd:ctanupload cmd:ctie + cmd:ctwill + cmd:ctwill_refsort + cmd:ctwill_twinx cmd:cweave cmd:de_macro cmd:depythontex cmd:detex cmd:devnag cmd:deweb + cmd:diadia cmd:disdvi cmd:dosepsbin cmd:dt2dv @@ -90,12 +131,14 @@ PROVIDES=" cmd:dvidvi cmd:dvigif cmd:dvihp + cmd:dviinfox cmd:dvilj cmd:dvilj2p cmd:dvilj4 cmd:dvilj4l cmd:dvilj6 cmd:dvilualatex + cmd:dvilualatex_dev cmd:dviluatex cmd:dvipdfm cmd:dvipdfmx @@ -105,6 +148,7 @@ PROVIDES=" cmd:dvips cmd:dvired cmd:dviselect + cmd:dvispc cmd:dvisvgm cmd:dvitodvi cmd:dvitomp @@ -127,14 +171,18 @@ PROVIDES=" cmd:fig4latex cmd:findhyph cmd:fmtutil_sys + cmd:fmtutil_user cmd:fmtutil cmd:fontinst cmd:fragmaster cmd:gbklatex cmd:gbkpdflatex + cmd:getmapdl cmd:gftodvi cmd:gftopk cmd:gftype + cmd:git_latexdiff + cmd:gregorio cmd:gsftopk cmd:hbf2gf cmd:ht @@ -145,15 +193,19 @@ PROVIDES=" cmd:httexi cmd:htxelatex cmd:htxetex + cmd:hyperxmp_add_bytecount cmd:includeres cmd:inimf cmd:initex cmd:installfont_tl cmd:jadetex cmd:jamo_normalize + cmd:jfmutil cmd:kanji_config_updmap_sys + cmd:kanji_config_updmap_user cmd:kanji_config_updmap cmd:kanji_fontmap_creator + cmd:ketcindy cmd:komkindex cmd:kpseaccess cmd:kpsepath @@ -163,11 +215,15 @@ PROVIDES=" cmd:kpsewhere cmd:kpsewhich cmd:kpsexpand + cmd:l3build cmd:lacheck - cmd:lamed - cmd:latex_git_log cmd:latex + cmd:latex_dev + cmd:latex_git_log + cmd:latex_papersize cmd:latex2man + cmd:latex2nemeth + cmd:latexdef cmd:latexdiff_vc cmd:latexdiff cmd:latexfileversion @@ -180,18 +236,26 @@ PROVIDES=" cmd:lily_rebuild_pdfs cmd:listbib cmd:listings_ext.sh + cmd:llmk cmd:lollipop + cmd:ltx2crossrefxml cmd:ltxfileinfo cmd:ltximg - cmd:lua2dox_filter + cmd:luacsplain + cmd:luahbtex + cmd:luajithbtex cmd:luajittex cmd:lualatex - cmd:lualollipop + cmd:lualatex_dev cmd:luaotfload_tool cmd:luatex cmd:luatools + cmd:lwarpmk cmd:m_tx cmd:mag + cmd:make4ht + cmd:makedtx + cmd:makeglossaries_lite cmd:makeglossaries cmd:makeindex cmd:makejvf @@ -202,13 +266,16 @@ PROVIDES=" cmd:mf_nowin cmd:mf cmd:mf2pt1 + cmd:mflua_nowin + cmd:mflua + cmd:mfluajit_nowin + cmd:mfluajit cmd:mfplain cmd:mft cmd:mk4ht cmd:mkgrkindex cmd:mkindex cmd:mkjobtexmf - cmd:mkluatexfontdb cmd:mkocp cmd:mkofm cmd:mkpic @@ -224,6 +291,7 @@ PROVIDES=" cmd:mmpfb cmd:mpost cmd:mptopdf + cmd:msxlint cmd:mtxrun cmd:mtxrunjit cmd:multibibliography @@ -234,6 +302,7 @@ PROVIDES=" cmd:ofm2opl cmd:omfonts cmd:opl2ofm + cmd:optex cmd:ot2kpx cmd:otangle cmd:otfinfo @@ -242,32 +311,28 @@ PROVIDES=" cmd:outocp cmd:ovf2ovp cmd:ovp2ovf + cmd:pamphletangler cmd:patgen cmd:pbibtex - cmd:pdf180 - cmd:pdf270 - cmd:pdf90 cmd:pdfannotextractor cmd:pdfatfi - cmd:pdfbook + cmd:pdfbook2 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:pdflatex_dev + cmd:pdflatexpicscale cmd:pdfmex - cmd:pdfnup - cmd:pdfpun cmd:pdftex + cmd:pdftex_quiet cmd:pdftosrc cmd:pdfxmltex + cmd:pdfxup + cmd:pdvitomp cmd:pdvitype cmd:pedigree cmd:perltex @@ -279,10 +344,12 @@ PROVIDES=" cmd:pktogf cmd:pktype cmd:platex + cmd:platex_dev cmd:pltotf - cmd:pmx2pdf + cmd:pmpost cmd:pmxab cmd:pmxchords + cmd:pn2pdf cmd:pooltype cmd:ppltotf cmd:prepmx @@ -302,7 +369,11 @@ PROVIDES=" cmd:ptex2pdf cmd:ptftopl cmd:purifyeps + cmd:pygmentex cmd:pythontex + cmd:r_mpost + cmd:r_pmpost + cmd:r_upmpost cmd:repstopdf cmd:rpdfcrop cmd:rubibtex @@ -314,25 +385,22 @@ PROVIDES=" cmd:sjisconv cmd:sjislatex cmd:sjispdflatex + cmd:spix cmd:splitindex + cmd:srcredact 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:tex2aspc + cmd:tex4ebook cmd:tex4ht cmd:texconfig_dialog cmd:texconfig_sys @@ -354,11 +422,18 @@ PROVIDES=" cmd:texluajit cmd:texluajitc cmd:texmfstart + cmd:texosquery_jre5 + cmd:texosquery_jre8 + cmd:texosquery + cmd:texplate cmd:texsis cmd:tftopl cmd:thumbpdf cmd:tie + cmd:tikztosvg + cmd:tlcockpit cmd:tlmgr + cmd:tlshell cmd:tpic2pdftex cmd:ttf2afm cmd:ttf2kotexfont @@ -370,9 +445,14 @@ PROVIDES=" cmd:ulqda cmd:upbibtex cmd:updmap_sys + cmd:updmap_user cmd:updmap + cmd:updvitomp cmd:updvitype cmd:uplatex + cmd:uplatex_dev + cmd:upmendex + cmd:upmpost cmd:uppltotf cmd:uptex cmd:uptftopl @@ -384,77 +464,112 @@ PROVIDES=" cmd:vpl2ovp cmd:vpl2vpl cmd:vptovf + cmd:webquiz cmd:weave cmd:wofm2opl cmd:wopl2ofm + cmd:wordcount cmd:wovf2ovp cmd:wovp2ovf cmd:xdvipdfmx cmd:xelatex - cmd:xelollipop + cmd:xelatex_dev cmd:xetex + cmd:xhlatex + cmd:xindex + cmd:xml2pmx cmd:xmltex - lib:libkpathsea$secondaryArchSuffix - lib:libptexenc$secondaryArchSuffix + cmd:yplan + lib:libkpathsea$secondaryArchSuffix = $libkpathseaVersionCompat + lib:libptexenc$secondaryArchSuffix = $libptexencVersionCompat + lib:libsynctex$secondaryArchSuffix = $libsynctexVersionCompat + lib:libtexlua53$secondaryArchSuffix = $libtexluaVersionCompat + lib:libtexluajit$secondaryArchSuffix = $libtexluajitVersionCompat " REQUIRES=" haiku$secondaryArchSuffix - lib:libpng$secondaryArchSuffix - lib:libz$secondaryArchSuffix - lib:libbz2$secondaryArchSuffix - lib:libfreetype$secondaryArchSuffix + lib:libTECkit$secondaryArchSuffix + lib:libcairo$secondaryArchSuffix lib:libfontconfig$secondaryArchSuffix - lib:libicudata$secondaryArchSuffix >= 66 - lib:libicuuc$secondaryArchSuffix >= 66 - lib:libicui18n$secondaryArchSuffix >= 66 + lib:libfreetype$secondaryArchSuffix + lib:libgd$secondaryArchSuffix + lib:libgmp$secondaryArchSuffix + lib:libgobject_2.0$secondaryArchSuffix + lib:libgraphite2$secondaryArchSuffix + lib:libharfbuzz$secondaryArchSuffix + lib:libicudata$secondaryArchSuffix + lib:libicui18n$secondaryArchSuffix + lib:libicuio$secondaryArchSuffix + lib:libicuuc$secondaryArchSuffix + lib:libmpfr$secondaryArchSuffix + lib:libpaper$secondaryArchSuffix + lib:libpixman_1$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libzzip_0$secondaryArchSuffix " PROVIDES_devel=" texlive${secondaryArchSuffix}_devel = $portVersion - devel:libkpathsea$secondaryArchSuffix = $portVersion - devel:libptexenc$secondaryArchSuffix = $portVersion + devel:libkpathsea$secondaryArchSuffix = $libkpathseaVersionCompat + devel:libptexenc$secondaryArchSuffix = $libptexencVersionCompat + devel:libsynctex$secondaryArchSuffix = $libsynctexVersionCompat + devel:libtexlua53$secondaryArchSuffix = $libtexluaVersionCompat + devel:libtexluajit$secondaryArchSuffix = $libtexluajitVersionCompat " REQUIRES_devel=" texlive$secondaryArchSuffix == $portVersion base " +ARCHITECTURES_texmf="?any" +PROVIDES_texmf=" + texlive${secondaryArchSuffix}_texmf = $portVersion + " +REQUIRES_texmf=" + texlive$secondaryArchSuffix == $portVersion base + " + +ARCHITECTURES_texmf_doc="?any" +PROVIDES_texmf_doc=" + texlive${secondaryArchSuffix}_texmf_doc = $portVersion + " +REQUIRES_texmf_doc=" + texlive$secondaryArchSuffix == $portVersion base + " + BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel - haiku_devel - icu${secondaryArchSuffix}_devel - devel:libpng$secondaryArchSuffix - devel:libz$secondaryArchSuffix + devel:libTECkit$secondaryArchSuffix + devel:libcairo$secondaryArchSuffix devel:libfreetype$secondaryArchSuffix - devel:libfontconfig$secondaryArchSuffix - devel:libbz2$secondaryArchSuffix + devel:libgd$secondaryArchSuffix + devel:libgmp$secondaryArchSuffix + devel:libgobject_2.0$secondaryArchSuffix + devel:libgraphite2$secondaryArchSuffix + devel:libharfbuzz$secondaryArchSuffix + devel:libicudata$secondaryArchSuffix + devel:libicui18n$secondaryArchSuffix + devel:libicuio$secondaryArchSuffix + devel:libicuuc$secondaryArchSuffix + devel:libmpfr$secondaryArchSuffix + devel:libpaper$secondaryArchSuffix + devel:libpixman_1$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libzzip$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:makeinfo + cmd:gawk cmd:autoconf cmd:automake - cmd:libtoolize - cmd:sed - cmd:grep - cmd:awk - cmd:makeinfo + cmd:find cmd:flex - cmd:svn - cmd:wget - cmd:xz - cmd:xzdec - cmd:patch - gettext${secondaryArchSuffix} - gettext${secondaryArchSuffix}_libintl + cmd:freetype_config$secondaryArchSuffix " GLOBAL_WRITABLE_FILES=" @@ -463,26 +578,123 @@ GLOBAL_WRITABLE_FILES=" 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 + var/texlive/web2c/aleph/aleph.fmt auto-merge + var/texlive/web2c/aleph/aleph.log auto-merge + var/texlive/web2c/eptex/eptex.fmt auto-merge + var/texlive/web2c/eptex/eptex.log auto-merge + var/texlive/web2c/eptex/platex-dev.fmt auto-merge + var/texlive/web2c/eptex/platex-dev.log auto-merge + var/texlive/web2c/eptex/platex.fmt auto-merge + var/texlive/web2c/eptex/platex.log auto-merge + var/texlive/web2c/euptex/euptex.fmt auto-merge + var/texlive/web2c/euptex/euptex.log auto-merge + var/texlive/web2c/euptex/uplatex-dev.fmt auto-merge + var/texlive/web2c/euptex/uplatex-dev.log auto-merge + var/texlive/web2c/euptex/uplatex.fmt auto-merge + var/texlive/web2c/euptex/uplatex.log auto-merge + var/texlive/web2c/luahbtex/luahbtex.fmt auto-merge + var/texlive/web2c/luahbtex/luahbtex.log auto-merge + var/texlive/web2c/luahbtex/lualatex-dev.fmt auto-merge + var/texlive/web2c/luahbtex/lualatex-dev.log auto-merge + var/texlive/web2c/luahbtex/lualatex.fmt auto-merge + var/texlive/web2c/luahbtex/lualatex.log auto-merge + var/texlive/web2c/luajithbtex/luajithbtex.fmt auto-merge + var/texlive/web2c/luajithbtex/luajithbtex.log auto-merge + var/texlive/web2c/luajittex/luajittex.fmt auto-merge + var/texlive/web2c/luajittex/luajittex.log auto-merge + var/texlive/web2c/luatex/dvilualatex-dev.fmt auto-merge + var/texlive/web2c/luatex/dvilualatex-dev.log auto-merge + var/texlive/web2c/luatex/dvilualatex.fmt auto-merge + var/texlive/web2c/luatex/dvilualatex.log auto-merge + var/texlive/web2c/luatex/dviluatex.fmt auto-merge + var/texlive/web2c/luatex/dviluatex.log auto-merge + var/texlive/web2c/luatex/luacsplain.fmt auto-merge + var/texlive/web2c/luatex/luacsplain.log auto-merge + var/texlive/web2c/luatex/luatex.fmt auto-merge + var/texlive/web2c/luatex/luatex.log auto-merge + var/texlive/web2c/luatex/optex.fmt auto-merge + var/texlive/web2c/luatex/optex.log auto-merge + var/texlive/web2c/luatex/pdfcsplain.fmt auto-merge + var/texlive/web2c/luatex/pdfcsplain.log auto-merge + var/texlive/web2c/metafont/mf.base auto-merge + var/texlive/web2c/metafont/mf.log auto-merge + var/texlive/web2c/pdftex/amstex.fmt auto-merge + var/texlive/web2c/pdftex/amstex.log auto-merge + var/texlive/web2c/pdftex/cont-en.fmt auto-merge + var/texlive/web2c/pdftex/cont-en.log auto-merge + var/texlive/web2c/pdftex/cslatex.fmt auto-merge + var/texlive/web2c/pdftex/cslatex.log auto-merge + var/texlive/web2c/pdftex/csplain.fmt auto-merge + var/texlive/web2c/pdftex/csplain.log auto-merge + var/texlive/web2c/pdftex/eplain.fmt auto-merge + var/texlive/web2c/pdftex/eplain.log auto-merge + var/texlive/web2c/pdftex/etex.fmt auto-merge + var/texlive/web2c/pdftex/etex.log auto-merge + var/texlive/web2c/pdftex/jadetex.fmt auto-merge + var/texlive/web2c/pdftex/jadetex.log auto-merge + var/texlive/web2c/pdftex/latex-dev.fmt auto-merge + var/texlive/web2c/pdftex/latex-dev.log auto-merge + var/texlive/web2c/pdftex/latex.fmt auto-merge + var/texlive/web2c/pdftex/latex.log auto-merge + var/texlive/web2c/pdftex/mex.fmt auto-merge + var/texlive/web2c/pdftex/mex.log auto-merge + var/texlive/web2c/pdftex/mllatex.fmt auto-merge + var/texlive/web2c/pdftex/mllatex.log auto-merge + var/texlive/web2c/pdftex/mltex.fmt auto-merge + var/texlive/web2c/pdftex/mltex.log auto-merge + var/texlive/web2c/pdftex/mptopdf.fmt auto-merge + var/texlive/web2c/pdftex/mptopdf.log auto-merge + var/texlive/web2c/pdftex/pdfcslatex.fmt auto-merge + var/texlive/web2c/pdftex/pdfcslatex.log auto-merge + var/texlive/web2c/pdftex/pdfcsplain.fmt auto-merge + var/texlive/web2c/pdftex/pdfcsplain.log auto-merge + var/texlive/web2c/pdftex/pdfetex.fmt auto-merge + var/texlive/web2c/pdftex/pdfetex.log auto-merge + var/texlive/web2c/pdftex/pdfjadetex.fmt auto-merge + var/texlive/web2c/pdftex/pdfjadetex.log auto-merge + var/texlive/web2c/pdftex/pdflatex-dev.fmt auto-merge + var/texlive/web2c/pdftex/pdflatex-dev.log auto-merge + var/texlive/web2c/pdftex/pdflatex.fmt auto-merge + var/texlive/web2c/pdftex/pdflatex.log auto-merge + var/texlive/web2c/pdftex/pdfmex.fmt auto-merge + var/texlive/web2c/pdftex/pdfmex.log auto-merge + var/texlive/web2c/pdftex/pdftex.fmt auto-merge + var/texlive/web2c/pdftex/pdftex.log auto-merge + var/texlive/web2c/pdftex/pdfxmltex.fmt auto-merge + var/texlive/web2c/pdftex/pdfxmltex.log auto-merge + var/texlive/web2c/pdftex/texsis.fmt auto-merge + var/texlive/web2c/pdftex/texsis.log auto-merge + var/texlive/web2c/pdftex/utf8mex.fmt auto-merge + var/texlive/web2c/pdftex/utf8mex.log auto-merge + var/texlive/web2c/pdftex/xmltex.fmt auto-merge + var/texlive/web2c/pdftex/xmltex.log auto-merge + var/texlive/web2c/ptex/ptex.fmt auto-merge + var/texlive/web2c/ptex/ptex.log auto-merge + var/texlive/web2c/tex/lollipop.fmt auto-merge + var/texlive/web2c/tex/lollipop.log auto-merge + var/texlive/web2c/tex/tex.fmt auto-merge + var/texlive/web2c/tex/tex.log auto-merge + var/texlive/web2c/uptex/uptex.fmt auto-merge + var/texlive/web2c/uptex/uptex.log auto-merge + var/texlive/web2c/xetex/cont-en.fmt auto-merge + var/texlive/web2c/xetex/cont-en.log auto-merge + var/texlive/web2c/xetex/pdfcsplain.fmt auto-merge + var/texlive/web2c/xetex/pdfcsplain.log auto-merge + var/texlive/web2c/xetex/xelatex-dev.fmt auto-merge + var/texlive/web2c/xetex/xelatex-dev.log auto-merge + var/texlive/web2c/xetex/xelatex.fmt auto-merge + var/texlive/web2c/xetex/xelatex.log auto-merge + var/texlive/web2c/xetex/xetex.fmt auto-merge + var/texlive/web2c/xetex/xetex.log 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 + rm -rv texmf-dist + ln -sv $sourceDir2/texmf-dist/ texmf-dist - # Link our binaries to bin/{i386,x86_64}-haiku + # Link our binaries to bin/{i386,x86_64}-haiku if [ $targetArchitecture = x86_gcc2 ] || [ $targetArchitecture = x86 ]; then if [ ! -e bin/i386-haiku ] ; then @@ -496,6 +708,13 @@ fetchTexLiveInstaller() ln -s $prefix/bin bin/x86_64-haiku fi fi + + # link or copy the needed files from the "extra" sources + rm -v tlpkg/{texlive.tlpdb,tlpostcode,README} readme-{html,txt}.dir README{,.usergroups} {index,doc}.html || true + ln -sv $sourceDir4/tlpkg/{texlive.tlpdb,tlpostcode} tlpkg + ln -sv $sourceDir4/readme-{html,txt}.dir . + cp -v $sourceDir4/tlpkg/README tlpkg + cp -v $sourceDir4/{README{,.usergroups},{index,doc}.html} . } ### Variables that TeX Live uses to control where files go @@ -615,38 +834,59 @@ fixKSearchPaths() 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 + + PROGNAMEC=$sourceDir/texk/kpathsea/progname.c + sed -i -e "s@/boot/system/bin@$prefix/bin@" $PROGNAMEC + sed -i -e "s@/boot/system/data@$dataDir@" $PROGNAMEC } -BUILD() +PATCH() { # disable the install-bin-links target sed -i -e 's/!WIN32/WIN32/g' am/bin_links.am - libtoolize --force --copy --install - - cd texk/ptexenc - aclocal - automake --add-missing - cd - - - autoreconf - mkdir -p ../build && cd ../build + ./reautoconf # may need to run this super early to ensure everything gets the right value... fixKSearchPaths +} + +BUILD() +{ + mkdir -p ../build && cd ../build if [ $targetArchitecture = x86_gcc2 ] || [ $targetArchitecture = x86 ]; then HOST=i586-pc-haiku - elif [ $targetArchitecture = x86_64 ]; then - HOST=x86_64-unknown-haiku + else + HOST=${targetArchitecture}-unknown-haiku fi - # 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 \ + runConfigure --omit-buildspec --omit-dirs "binDir sbinDir" \ + $sourceDir/configure \ + --bindir=$prefix/bin --sbindir=$prefix/bin \ + --disable-native-texlive-build \ + --enable-shared --disable-static \ + --with-banner-add="/Haiku" --with-editor='lpe +%d "%s"' \ + --with-system-harfbauzz \ + --with-system-icu \ + --with-system-graphite2 \ + --with-system-zziplib \ + --with-system-mpfr \ + --with-system-gmp \ + --with-system-cairo \ + --with-system-pixman \ + --with-system-gd \ + --with-system-freetype2 \ + --with-system-libpng \ + --with-system-libpaper \ + --with-system-zlib \ + --with-system-libgs \ + --with-system-harfbuzz \ + --with-system-teckit \ + --without-x \ + --disable-t1utils \ --build=$HOST --host=$HOST + # and make the damn thing! make all $jobArgs } @@ -659,9 +899,8 @@ INSTALL() make texlinks # and install the actual distribution... - cd .. + cd $sourceDir3 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 @@ -669,56 +908,56 @@ INSTALL() 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:bin/x86_64-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 -" + 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 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 + ln -s 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 + # needed post-install steps apparently not done by install-tl + $prefix/bin/fmtutil-sys --all + #$prefix/bin/mtxrun --generate - # remove useless libtool files + # remove useless libtool files and other unneeded files rm -f $libDir/*.la - prepareInstalledDevelLibs libkpathsea libptexenc + rm -rf $dataDir/texlive/bin + rm -f $dataDir/texlive/install-tl* + + prepareInstalledDevelLibs libkpathsea libptexenc libsynctex libtexlua53 libtexluajit # devel package packageEntries devel \ $developDir - exit 1 + # texmf_doc package + packageEntries texmf_doc \ + $dataDir/texlive/texmf-dist/doc + + # texmf package + packageEntries texmf \ + $dataDir/texlive/texmf-dist + + # exit 1 } TEST()