From ac61a204d408c57ddbc4672f399c54cf0120282b4c07cea401fb0810719c6d40 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Wed, 2 May 2018 13:10:44 +0000 Subject: [PATCH] Update to TeXLive 2018 OBS-URL: https://build.opensuse.org/package/show/Publishing:TeXLive/texlive?expand=0&rev=290 --- biber-certs.dif | 16 +- biber-perl-5.30.dif | 17 - biblatex-biber-2.11.tar.xz | 3 + biblatex-biber-2.7.tar.xz | 3 - source-64.dif | 8 +- source-a2ping.dif | 10 +- source-configure.dif | 22 +- source-dviutils.dif | 82 +- source-fix-synctex-missing-header-install.dif | 14 + source-lcdf-typetools.dif | 20 - source-lua-poppler0640.dif | 35 + source-luatex.dif | 842 ------------ source-m-tx-0.63a-buffer-overflow.dif | 25 + source-maxpath.dif | 10 - source-overflow.dif | 4 +- source-poppler-0.59.1.dif | 294 ----- source-synctex-bump-soname.dif | 21 + source-warns.dif | 23 +- source.dif | 139 +- texlive-20170520-source.tar.xz | 3 - texlive-20170524-source-poppler059-1.patch | 1139 ----------------- texlive-20180414-source.tar.xz | 3 + texlive-rpmlintrc | 2 + texlive.changes | 37 +- texlive.spec | 475 +++++-- 25 files changed, 637 insertions(+), 2610 deletions(-) delete mode 100644 biber-perl-5.30.dif create mode 100644 biblatex-biber-2.11.tar.xz delete mode 100644 biblatex-biber-2.7.tar.xz create mode 100644 source-fix-synctex-missing-header-install.dif delete mode 100644 source-lcdf-typetools.dif create mode 100644 source-lua-poppler0640.dif delete mode 100644 source-luatex.dif create mode 100644 source-m-tx-0.63a-buffer-overflow.dif delete mode 100644 source-maxpath.dif delete mode 100644 source-poppler-0.59.1.dif create mode 100644 source-synctex-bump-soname.dif delete mode 100644 texlive-20170520-source.tar.xz delete mode 100644 texlive-20170524-source-poppler059-1.patch create mode 100644 texlive-20180414-source.tar.xz diff --git a/biber-certs.dif b/biber-certs.dif index efa9b9b..187a828 100644 --- a/biber-certs.dif +++ b/biber-certs.dif @@ -6,7 +6,7 @@ 4 files changed, 2 insertions(+), 3 deletions(-) --- Build.PL -+++ Build.PL 2017-05-30 13:22:55.692794072 +0000 ++++ Build.PL 2018-04-12 12:07:59.531719830 +0000 @@ -54,7 +54,6 @@ my $builder = $class->new( 'List::AllUtils' => 0, 'List::MoreUtils' => 0, @@ -14,30 +14,30 @@ - 'Mozilla::CA' => '20160104', 'Regexp::Common' => 0, 'Log::Log4perl' => 0, - 'Unicode::Collate' => '1.18', + 'Unicode::Collate' => '1.25', --- META.json -+++ META.json 2017-05-30 13:23:19.305046965 +0000 ++++ META.json 2018-04-12 12:08:19.691347923 +0000 @@ -49,7 +49,6 @@ "List::MoreUtils" : "0", "List::MoreUtils::XS" : "0", "Log::Log4perl" : "0", - "Mozilla::CA" : "20160104", + "PerlIO::utf8_strict" : "0", "Regexp::Common" : "0", "Sort::Key" : "0", - "Text::BibTeX" : "0.76", --- META.yml -+++ META.yml 2017-05-30 13:23:28.101141166 +0000 ++++ META.yml 2018-04-12 12:08:45.330874919 +0000 @@ -94,7 +94,6 @@ requires: List::MoreUtils: '0' List::MoreUtils::XS: '0' Log::Log4perl: '0' - Mozilla::CA: '20160104' + PerlIO::utf8_strict: '0' Regexp::Common: '0' Sort::Key: '0' - Text::BibTeX: '0.76' --- bin/biber -+++ bin/biber 2017-05-30 13:22:13.032337114 +0000 -@@ -112,6 +112,8 @@ GetOptions( ++++ bin/biber 2018-04-12 12:06:39.913188617 +0000 +@@ -114,6 +114,8 @@ GetOptions( ) or pod2usage(-verbose => 0, -exitval => EXIT_ERROR); diff --git a/biber-perl-5.30.dif b/biber-perl-5.30.dif deleted file mode 100644 index 5022469..0000000 --- a/biber-perl-5.30.dif +++ /dev/null @@ -1,17 +0,0 @@ -Fun with Perl 5.30 - ---- - lib/Biber/LaTeX/Recode.pm | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- lib/Biber/LaTeX/Recode.pm -+++ lib/Biber/LaTeX/Recode.pm 2018-03-15 08:49:32.341586613 +0000 -@@ -313,7 +313,7 @@ sub latex_decode { - # Workaround perl's lack of variable-width negative look-behind - - # Reverse string (and therefore some of the Re) and use variable width negative look-ahead - $text = reverse $text; -- $text =~ s/}(\pM+\pL){(?!\pL+\\)/$1/g; -+ $text =~ s/}(\pM+\pL)\{(?!\pL+\\)/$1/g; - $text = reverse $text; - - # Replace verbatim field markers diff --git a/biblatex-biber-2.11.tar.xz b/biblatex-biber-2.11.tar.xz new file mode 100644 index 0000000..e4f4c38 --- /dev/null +++ b/biblatex-biber-2.11.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac6816c9c73195855feb24ae707fdaf60670d24850ea5942a1f7fedc7de714f0 +size 802944 diff --git a/biblatex-biber-2.7.tar.xz b/biblatex-biber-2.7.tar.xz deleted file mode 100644 index 43e9522..0000000 --- a/biblatex-biber-2.7.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7994abc44fc6cc87d894d175afb4c056572793018a7f701c897c0a4aa103663 -size 286024 diff --git a/source-64.dif b/source-64.dif index f11813c..16e7032 100644 --- a/source-64.dif +++ b/source-64.dif @@ -4,8 +4,8 @@ 2 files changed, 8 insertions(+) --- configure -+++ configure 2009-08-28 15:44:30.000000000 +0000 -@@ -19830,6 +19830,10 @@ fi ++++ configure 2018-04-10 08:58:00.463820598 +0000 +@@ -20730,6 +20730,10 @@ fi # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. @@ -17,8 +17,8 @@ ;; --- m4/libtool.m4 -+++ m4/libtool.m4 2009-08-28 15:46:57.000000000 +0000 -@@ -2681,6 +2681,10 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) ++++ m4/libtool.m4 2018-04-10 08:58:00.463820598 +0000 +@@ -2884,6 +2884,10 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. diff --git a/source-a2ping.dif b/source-a2ping.dif index 189a5b2..b536ed1 100644 --- a/source-a2ping.dif +++ b/source-a2ping.dif @@ -1,6 +1,10 @@ +--- + texk/texlive/linked_scripts/a2ping/a2ping.pl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + --- texk/texlive/linked_scripts/a2ping/a2ping.pl -+++ texk/texlive/linked_scripts/a2ping/a2ping.pl 2011-10-29 22:06:11.000000000 -0500 -@@ -1677,7 +1677,7 @@ showpage quit ++++ texk/texlive/linked_scripts/a2ping/a2ping.pl 2018-04-10 09:00:52.856579965 +0000 +@@ -1676,7 +1676,7 @@ showpage quit ## print STDERR $res; error $?==11 ? "segmentation fault in $GS" : "not a GS output from $GS ($?)" if !defined $res # BUGFIX at Sun Mar 7 18:51:34 CET 2004 @@ -8,4 +12,4 @@ + or $res!~s/\A(?:\w+ Ghostscript +\d|Copyright .* artofcode ).*\n// # AFPL Ghostscript 6.50 (2000-12-02) or $res!~s/.*?^bbox-begin\n//m; if ($res!~s/\nbbox-success\n\Z(?!\n)/\n/) { - warning # not `error', mpost(1) `prologues:=0; ... btex fonts' output won't compile + warning # not `error', mpost(1) `prologues:=0; ... btex fonts' output won't compile diff --git a/source-configure.dif b/source-configure.dif index 2d442ac..58a08e7 100644 --- a/source-configure.dif +++ b/source-configure.dif @@ -6,7 +6,7 @@ 4 files changed, 5 insertions(+), 11 deletions(-) --- configure.ac -+++ configure.ac 2017-05-30 12:46:15.933298946 +0000 ++++ configure.ac 2018-04-10 08:18:33.592283965 +0000 @@ -126,9 +126,6 @@ KPSE_FOR_PKGS([sys_libs], [m4_sinclude([ if test "x$syslib_status" = xno; then AC_MSG_ERROR([some requested system libraries failed]) @@ -18,8 +18,8 @@ AM_CONDITIONAL([cross], [test "x$cross_compiling" = xyes]) --- configure -+++ configure 2017-05-30 12:46:15.981299457 +0000 -@@ -22124,9 +22124,6 @@ fi ++++ configure 2018-04-10 08:18:33.596283890 +0000 +@@ -22265,9 +22265,6 @@ fi if test "x$syslib_status" = xno; then as_fn_error $? "some requested system libraries failed" "$LINENO" 5 fi @@ -30,18 +30,18 @@ LIBS=$kpse_save_LIBS --- texk/dvipdfm-x/configure.ac -+++ texk/dvipdfm-x/configure.ac 2017-05-30 12:50:20.711904998 +0000 ++++ texk/dvipdfm-x/configure.ac 2018-04-10 08:22:36.759724038 +0000 @@ -7,7 +7,7 @@ dnl This file is free software; the co dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl --AC_INIT([dvipdfm-x (TeX Live)], [20170318], [tex-k@tug.org]) -+AC_INIT([dvipdfmx (TeX Live)], [20170318], [tex-k@tug.org]) +-AC_INIT([dvipdfm-x (TeX Live)], [20180217], [tex-k@tug.org]) ++AC_INIT([dvipdfmx (TeX Live)], [20180217], [tex-k@tug.org]) AC_PREREQ([2.65]) AC_CONFIG_SRCDIR([agl.c]) AC_CONFIG_AUX_DIR([../../build-aux]) --- texk/dvipdfm-x/configure -+++ texk/dvipdfm-x/configure 2017-05-30 12:52:21.189194983 +0000 ++++ texk/dvipdfm-x/configure 2018-04-10 08:24:05.082067815 +0000 @@ -588,10 +588,10 @@ MFLAGS= MAKEFLAGS= @@ -50,9 +50,9 @@ -PACKAGE_TARNAME='dvipdfm-x--tex-live-' +PACKAGE_NAME='dvipdfmx (TeX Live)' +PACKAGE_TARNAME='dvipdfmx' - PACKAGE_VERSION='20170318' --PACKAGE_STRING='dvipdfm-x (TeX Live) 20170318' -+PACKAGE_STRING='dvipdfmx (TeX Live) 20170318' + PACKAGE_VERSION='20180217' +-PACKAGE_STRING='dvipdfm-x (TeX Live) 20180217' ++PACKAGE_STRING='dvipdfmx (TeX Live) 20180217' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -62,6 +62,6 @@ # Define the identity of the package. - PACKAGE='dvipdfm-x--tex-live-' + PACKAGE='dvipdfmx' - VERSION='20170318' + VERSION='20180217' diff --git a/source-dviutils.dif b/source-dviutils.dif index e3d4eba..f8d6f04 100644 --- a/source-dviutils.dif +++ b/source-dviutils.dif @@ -4,7 +4,7 @@ texk/seetexk/configure | 2 +- texk/seetexk/dvibook.c | 6 +++--- texk/seetexk/dviconcat.c | 6 ++---- - texk/seetexk/dviselect.c | 9 ++++----- + texk/seetexk/dviselect.c | 8 +++----- texk/seetexk/dvitodvi.c | 40 ++++++++++++++++++++++++++++++++-------- texk/seetexk/error.c | 14 +++++--------- texk/seetexk/gripes.h | 21 +++++++++++---------- @@ -16,10 +16,10 @@ texk/seetexk/seek.c | 11 +++++------ texk/seetexk/tempfile.c | 5 ++--- texk/seetexk/types.h | 2 +- - 17 files changed, 142 insertions(+), 70 deletions(-) + 17 files changed, 141 insertions(+), 70 deletions(-) --- m4/kpse-kpathsea-flags.m4 -+++ m4/kpse-kpathsea-flags.m4 2016-06-07 13:37:06.329142840 +0000 ++++ m4/kpse-kpathsea-flags.m4 2018-04-10 08:25:10.644838384 +0000 @@ -16,7 +16,7 @@ AC_DEFUN([KPSE_KPATHSEA_FLAGS], [dnl AC_REQUIRE([KPSE_SAVE_FLAGS])[]dnl @@ -30,7 +30,7 @@ [${top_builddir}/../kpathsea/paths.h]) m4_if(m4_index([ $1 ], [ no-debug ]), [-1], --- texk/seetexk/a4toa5 -+++ texk/seetexk/a4toa5 2016-06-07 13:37:06.329142840 +0000 ++++ texk/seetexk/a4toa5 2018-04-10 08:25:10.644838384 +0000 @@ -0,0 +1,26 @@ +#!/bin/csh -f +# 1993 (c) Werner Fink @@ -59,7 +59,7 @@ +# +exec dvitodvi -q '2:707@0(-5.5mm,-10mm)+1(190mm,-10mm)' $1 $2 --- texk/seetexk/configure -+++ texk/seetexk/configure 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/configure 2018-04-10 08:25:10.644838384 +0000 @@ -14939,7 +14939,7 @@ elif test "x$need_kpathsea:$with_system_ as_fn_error $? "did not find kpathsea" "$LINENO" 5 fi @@ -70,8 +70,8 @@ KPATHSEA_DEPEND='${top_builddir}/../kpathsea/libkpathsea.la' KPATHSEA_RULE='# Rebuild libkpathsea --- texk/seetexk/dvibook.c -+++ texk/seetexk/dvibook.c 2016-06-07 13:37:06.333142765 +0000 -@@ -43,6 +43,7 @@ extern char *optarg; ++++ texk/seetexk/dvibook.c 2018-04-10 08:25:10.644838384 +0000 +@@ -46,6 +46,7 @@ extern char *optarg; extern int optind; #endif @@ -79,7 +79,7 @@ #include "types.h" #include "dviclass.h" #include "dvicodes.h" -@@ -51,6 +52,8 @@ extern int optind; +@@ -54,6 +55,8 @@ extern int optind; #include "gripes.h" #include "search.h" #include @@ -88,7 +88,7 @@ #include #include "seek.h" -@@ -117,9 +120,6 @@ i32 Count[10]; /* the 10 \count variabl +@@ -129,9 +132,6 @@ i32 Count[10]; /* the 10 \count variabl /* save some string space: we use this a lot */ char writeerr[] = "error writing DVI file"; @@ -99,8 +99,8 @@ * You may get lint warnings about sprintf's return value. * Older versions of 4BSD have `char *sprintf()'. ANSI and --- texk/seetexk/dviconcat.c -+++ texk/seetexk/dviconcat.c 2016-06-07 13:37:06.333142765 +0000 -@@ -40,6 +40,8 @@ extern char *optarg; ++++ texk/seetexk/dviconcat.c 2018-04-10 08:25:10.644838384 +0000 +@@ -43,6 +43,8 @@ extern char *optarg; extern int optind; #endif @@ -109,7 +109,7 @@ #include "types.h" #include "dviclass.h" #include "dvicodes.h" -@@ -103,10 +105,6 @@ char writeerr[] = "error writing DVI fil +@@ -114,10 +116,6 @@ char writeerr[] = "error writing DVI fil static void HandleDVIFile(void); @@ -121,19 +121,17 @@ /* --- texk/seetexk/dviselect.c -+++ texk/seetexk/dviselect.c 2016-06-07 13:37:06.333142765 +0000 -@@ -54,7 +54,10 @@ extern int optind; ++++ texk/seetexk/dviselect.c 2018-04-10 08:49:25.661500063 +0000 +@@ -57,6 +57,8 @@ extern int optind; #include "gripes.h" #include "search.h" #include -+#include - #include +#include +#include + #include - #define white(x) ((x) == ' ' || (x) == '\t' || (x) == ',') - -@@ -166,10 +169,6 @@ static void HandleDVIFile(void); + #if defined(WIN32) && defined(KPATHSEA) +@@ -177,10 +179,6 @@ static void HandleDVIFile(void); static void PutFontSelector(i32); static void WritePreAmble(void); @@ -144,7 +142,7 @@ /* * You may get lint warnings about sprintf's return value. * Older versions of 4BSD have `char *sprintf()'. ANSI and -@@ -601,7 +600,7 @@ Usage: %s [-s] [-i infile] [-o outfile] +@@ -633,7 +631,7 @@ Usage: %s [-s] [-i infile] [-o outfile] static struct pagelist * InstallPL(struct pagesel *ps, int n, int absolute) { @@ -154,8 +152,8 @@ pl = (struct pagelist *)malloc(sizeof *pl); if (pl == NULL) --- texk/seetexk/dvitodvi.c -+++ texk/seetexk/dvitodvi.c 2016-06-07 13:37:06.333142765 +0000 -@@ -43,6 +43,7 @@ extern char *optarg; ++++ texk/seetexk/dvitodvi.c 2018-04-10 08:49:00.045981786 +0000 +@@ -46,6 +46,7 @@ extern char *optarg; extern int optind; #endif @@ -163,16 +161,16 @@ #include "types.h" #include "dviclass.h" #include "dvicodes.h" -@@ -51,6 +52,8 @@ extern int optind; +@@ -54,6 +55,8 @@ extern int optind; #include "gripes.h" #include "search.h" #include +#include +#include #include + #include "seek.h" - #define white(x) ((x) == ' ' || (x) == '\t' || (x) == ',') -@@ -87,6 +90,7 @@ struct fontinfo { +@@ -95,6 +98,7 @@ struct fontinfo { i32 Width; /* width of page */ i32 Height; /* height of page */ i32 Magnification; /* Magnification of pages */ @@ -180,7 +178,7 @@ int Modulo; /* page spec modulo */ struct pagespec *PageSpecs; /* page specification list */ -@@ -123,9 +127,6 @@ i32 Count[10]; /* the 10 \count variabl +@@ -134,9 +138,6 @@ i32 Count[10]; /* the 10 \count variabl /* save some string space: we use this a lot */ char writeerr[] = "error writing DVI file"; @@ -190,7 +188,7 @@ static void WriteFont(struct fontinfo *fi); static void PutFontSelector(i32 index); -@@ -186,6 +187,15 @@ scale(i32 whole, int num, int den, i32 s +@@ -197,6 +198,15 @@ scale(i32 whole, int num, int den, i32 s return (v) ; } @@ -206,7 +204,7 @@ struct pagespec { int reversed, pageno, add; i32 xoff, yoff; -@@ -293,6 +303,8 @@ parsedimen(char **sp) +@@ -304,6 +314,8 @@ parsedimen(char **sp) fac = Height; s++; } @@ -215,7 +213,7 @@ whole = scale(whole, num, den, fac) ; *sp = s; return (neg ? -whole : whole); -@@ -495,9 +507,15 @@ HandlePostAmble(void) +@@ -506,9 +518,15 @@ HandlePostAmble(void) PutLong(outf, Denominator); PutLong(outf, DVIMag); c = GetLong(inf); @@ -233,7 +231,7 @@ c = GetWord(inf)+1; PutWord(outf, c); /* DVI stack size */ PutWord(outf, NumberOfOutputPages); -@@ -590,7 +608,8 @@ HandlePreAmble(void) +@@ -606,7 +624,8 @@ HandlePreAmble(void) DVIFileName, DVI_VERSION); Numerator = GetLong(inf); Denominator = GetLong(inf); @@ -243,7 +241,7 @@ putbyte(outf, DVI_PRE); putbyte(outf, DVI_VERSION); PutLong(outf, Numerator); -@@ -617,6 +636,7 @@ main(int argc, char **argv) +@@ -644,6 +663,7 @@ main(int argc, char **argv) Width = 0; Height = 0; Magnification = 1000; @@ -251,7 +249,7 @@ Modulo = 1; ProgName = *argv; -@@ -713,12 +733,16 @@ Usage: %s [-q] [-i infile] [-o outfile] +@@ -745,12 +765,16 @@ Usage: %s [-q] [-i infile] [-o outfile] if (fseek(inf, 16L, 1) == -1) error(1, -1, "can't seek postamble"); if (Height == 0) /* get height from postamble */ @@ -271,7 +269,7 @@ HandleDVIFile(); if (WritingPage) --- texk/seetexk/error.c -+++ texk/seetexk/error.c 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/error.c 2018-04-10 08:25:10.644838384 +0000 @@ -29,7 +29,12 @@ #include #endif @@ -307,7 +305,7 @@ static char * strerror (int errnum) --- texk/seetexk/gripes.h -+++ texk/seetexk/gripes.h 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/gripes.h 2018-04-10 08:25:10.644838384 +0000 @@ -28,16 +28,17 @@ extern const char *DVIFileName; * Declarations for the various gripes. */ @@ -337,7 +335,7 @@ +void GripeUndefinedOp(int n) __NR__; void GripeBadGlyph(i32 c, struct font *f); --- texk/seetexk/gripes0.c -+++ texk/seetexk/gripes0.c 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/gripes0.c 2018-04-10 08:25:10.644838384 +0000 @@ -28,10 +28,8 @@ #include "error.h" #include "gripes.h" @@ -377,7 +375,7 @@ + exit(0); /* NOTREACHED */ } --- texk/seetexk/gripes1.c -+++ texk/seetexk/gripes1.c 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/gripes1.c 2018-04-10 08:25:10.644838384 +0000 @@ -29,6 +29,7 @@ #include "font.h" #include "gripes.h" @@ -459,7 +457,7 @@ /* --- texk/seetexk/mydvichk -+++ texk/seetexk/mydvichk 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/mydvichk 2018-04-10 08:25:10.648838309 +0000 @@ -0,0 +1,12 @@ +#!/bin/csh -f +# 1993 (c) Werner Fink @@ -474,7 +472,7 @@ + +exit(0) --- texk/seetexk/odd2even -+++ texk/seetexk/odd2even 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/odd2even 2018-04-10 08:25:10.648838309 +0000 @@ -0,0 +1,22 @@ +#!/bin/csh -f +# 1993 (c) Werner Fink @@ -499,7 +497,7 @@ + +exit 0 --- texk/seetexk/search.c -+++ texk/seetexk/search.c 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/search.c 2018-04-10 08:25:10.648838309 +0000 @@ -34,6 +34,7 @@ * it runs in increasing-key-value sequence). */ @@ -520,7 +518,7 @@ SCreate(unsigned int dsize) { --- texk/seetexk/seek.c -+++ texk/seetexk/seek.c 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/seek.c 2018-04-10 08:25:10.648838309 +0000 @@ -43,6 +43,10 @@ #endif @@ -547,7 +545,7 @@ /* * Make and return a version of `f' on which fseek works (unconditionally). --- texk/seetexk/tempfile.c -+++ texk/seetexk/tempfile.c 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/tempfile.c 2018-04-10 08:25:10.648838309 +0000 @@ -25,6 +25,7 @@ #endif @@ -568,7 +566,7 @@ #include "tempfile.h" --- texk/seetexk/types.h -+++ texk/seetexk/types.h 2016-06-07 13:37:06.333142765 +0000 ++++ texk/seetexk/types.h 2018-04-10 08:25:10.648838309 +0000 @@ -58,7 +58,7 @@ * * (The bcopy provided in lib/bcopy.c does handle overlap.) diff --git a/source-fix-synctex-missing-header-install.dif b/source-fix-synctex-missing-header-install.dif new file mode 100644 index 0000000..9b69b23 --- /dev/null +++ b/source-fix-synctex-missing-header-install.dif @@ -0,0 +1,14 @@ +--- + texk/web2c/synctexdir/am/synctex.am | 1 + + 1 file changed, 1 insertion(+) + +--- texk/web2c/synctexdir/am/synctex.am ++++ texk/web2c/synctexdir/am/synctex.am +@@ -55,6 +55,7 @@ + if SYNCTEX + syncinclude_HEADERS = \ + synctexdir/synctex_parser.h \ ++ synctexdir/synctex_version.h \ + synctexdir/synctex_parser_utils.h + + pkgconfig_DATA = synctexdir/synctex.pc diff --git a/source-lcdf-typetools.dif b/source-lcdf-typetools.dif deleted file mode 100644 index 1383c22..0000000 --- a/source-lcdf-typetools.dif +++ /dev/null @@ -1,20 +0,0 @@ ---- texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc -+++ texk/lcdf-typetools/lcdf-typetools-src/libefont/t1rw.cc 2018-02-22 22:32:26.288398000 +0000 -@@ -117,7 +117,7 @@ inline int - Type1Reader::eexec(int c) - { - unsigned char answer = (unsigned char)(c ^ (_r >> 8)); -- _r = (((unsigned char)c + _r) * t1C1 + t1C2) & 0xFFFF; -+ _r = (((unsigned char)c + _r) * (uint32_t) t1C1 + t1C2) & 0xFFFF; - return answer; - } - -@@ -439,7 +439,7 @@ inline unsigned char - Type1Writer::eexec(int p) - { - unsigned char c = ((unsigned char)p ^ (_r >> 8)) & 0xFF; -- _r = ((c + _r) * t1C1 + t1C2) & 0xFFFF; -+ _r = ((c + _r) * (uint32_t) t1C1 + t1C2) & 0xFFFF; - return c; - } - diff --git a/source-lua-poppler0640.dif b/source-lua-poppler0640.dif new file mode 100644 index 0000000..2b955da --- /dev/null +++ b/source-lua-poppler0640.dif @@ -0,0 +1,35 @@ +--- texk/web2c/luatexdir/image/pdftoepdf.w ++++ texk/web2c/luatexdir/image/pdftoepdf.w Mon Apr 23 17:29:28 2018 +@@ -472,10 +472,10 @@ + break; + */ + case objString: +- copyString(pdf, obj->getString()); ++ copyString(pdf, (GooString *)obj->getString()); + break; + case objName: +- copyName(pdf, obj->getName()); ++ copyName(pdf, (char *)obj->getName()); + break; + case objNull: + pdf_add_null(pdf); +--- texk/web2c/luatexdir/lua/lepdflib.cc ++++ texk/web2c/luatexdir/lua/lepdflib.cc Mon Apr 23 17:29:12 2018 +@@ -674,7 +674,7 @@ + uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \ + if (uin->pd != NULL && uin->pd->pc != uin->pc) \ + pdfdoc_changed_error(L); \ +- gs = ((in *) uin->d)->function(); \ ++ gs = (GooString *)((in *) uin->d)->function(); \ + if (gs != NULL) \ + lua_pushlstring(L, gs->getCString(), gs->getLength()); \ + else \ +@@ -1813,7 +1813,7 @@ + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); + if (((Object *) uin->d)->isString()) { +- gs = ((Object *) uin->d)->getString(); ++ gs = (GooString *)((Object *) uin->d)->getString(); + lua_pushlstring(L, gs->getCString(), gs->getLength()); + } else + lua_pushnil(L); diff --git a/source-luatex.dif b/source-luatex.dif deleted file mode 100644 index cbb4f72..0000000 --- a/source-luatex.dif +++ /dev/null @@ -1,842 +0,0 @@ ---- - texk/web2c/luatexdir/lua/liolibext.c | 6 - texk/web2c/luatexdir/lua/luatex-core.c | 324 ++++++++++++----------- - texk/web2c/luatexdir/lua/luatex-core.lua | 423 +++++++++++++++---------------- - texk/web2c/luatexdir/luaffi/ctype.c | 4 - texk/web2c/luatexdir/luaffi/ffi.h | 2 - texk/web2c/luatexdir/luatex.c | 4 - 6 files changed, 387 insertions(+), 376 deletions(-) - ---- texk/web2c/luatexdir/luaffi/ctype.c -+++ texk/web2c/luatexdir/luaffi/ctype.c 2017-05-31 13:08:25.421741873 +0000 -@@ -245,6 +245,10 @@ void* to_cdata(lua_State* L, int idx, st - - lua_pop(L, 1); /* mt */ - cd = (struct cdata*) lua_touserdata(L, idx); -+ if (!cd) { -+ lua_pushnil(L); -+ return NULL; -+ } - *ct = cd->type; - lua_getuservalue(L, idx); - ---- texk/web2c/luatexdir/luaffi/ffi.h -+++ texk/web2c/luatexdir/luaffi/ffi.h 2017-06-01 09:12:45.128442092 +0000 -@@ -370,7 +370,7 @@ __declspec(align(16)) - #endif - struct cdata { - const struct ctype type --#ifdef __GNUC__ -+#if 0 /* def __GNUC__ */ - __attribute__ ((aligned(16))) - #endif - ; ---- texk/web2c/luatexdir/lua/liolibext.c 2017/06/13 21:01:34 44589 -+++ texk/web2c/luatexdir/lua/liolibext.c 2017/06/13 22:07:40 44590 -@@ -365,7 +365,7 @@ - lua_pushliteral(L,"all command execution is disabled"); - } else if (restrictedshell == 0) { - lua_pushboolean(L,1); -- lua_pushliteral(L,"all commands are permitted"); -+ lua_pushstring(L,filename); - } else { - char *safecmd = NULL; - char *cmdname = NULL; -@@ -374,10 +374,6 @@ - lua_pushboolean(L,0); - lua_pushliteral(L, "specific command execution disabled"); - break; -- case 1: -- lua_pushboolean(L,1); -- lua_pushstring(L,filename); -- break; - case 2: - lua_pushboolean(L,1); - lua_pushstring(L,safecmd); ---- texk/web2c/luatexdir/lua/luatex-core.c 2017/06/13 21:01:34 44589 -+++ texk/web2c/luatexdir/lua/luatex-core.c 2017/06/13 22:07:40 44590 -@@ -52,7 +52,7 @@ - 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, - 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x6c, 0x6f, 0x63, 0x61, -- 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, - 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, - 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x69, -@@ -84,169 +84,175 @@ - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x2d, 0x2d, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, -- 0x0a, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, -- 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, -- 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, -- 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, -- 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, -- 0x79, 0x0a, 0x6d, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74, -- 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, -- 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, -- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, -- 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, -- 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x6f, -- 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, -- 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, -+ 0x0a, 0x2d, 0x2d, 0x20, 0x28, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, -+ 0x20, 0x74, 0x6c, 0x31, 0x37, 0x20, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x29, 0x20, 0x69, -+ 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f, -+ 0x70, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, -+ 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x0a, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, -+ 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20, -+ 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, -+ 0x6d, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74, 0x5f, 0x6c, -+ 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, -+ 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, -+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, - 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x68, -- 0x6f, 0x77, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x27, 0x20, -- 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x77, 0x27, -- 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, -- 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, -- 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, -- 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, -- 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, -- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, -- 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, -- 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, -- 0x6c, 0x79, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x67, 0x73, 0x75, 0x62, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, -- 0x5b, 0x5e, 0x72, 0x62, 0x5d, 0x27, 0x2c, 0x27, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, -- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, -+ 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, -+ 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, -- 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, -- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, -- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, -- 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, -- 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, -- 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, -- 0x6b, 0x61, 0x79, 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, -- 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, -- 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6b, -- 0x61, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, -- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, -- 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, -- 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, -- 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, -- 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, -- 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, -- 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, -- 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, -- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -- 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x68, 0x6f, 0x77, -+ 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x27, 0x20, 0x61, 0x6e, -+ 0x64, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x20, -+ 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x6e, -+ 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, -+ 0x64, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, -+ 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, -+ 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, -+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, -+ 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, -+ 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, -+ 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, -+ 0x77, 0x20, 0x3d, 0x20, 0x67, 0x73, 0x75, 0x62, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x5b, 0x5e, -+ 0x72, 0x62, 0x5d, 0x27, 0x2c, 0x27, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x74, 0x68, -+ 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, -+ 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, -+ 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, -+ 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, -+ 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, -+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, -+ 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x2e, 0x2e, -+ 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x6b, 0x61, -+ 0x79, 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x63, -+ 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x6e, -+ 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6b, 0x61, 0x79, -+ 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, -+ 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x2e, 0x2e, -+ 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, -+ 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, -+ 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x6e, -+ 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, -+ 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, -+ 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, -+ 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, -+ 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -+ 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, -+ 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, -+ 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -+ 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, -+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, -+ 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, -+ 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, -- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, -- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, -- 0x5f, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, -- 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, -- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, -- 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, -- 0x0a, 0x0a, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, -- 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x6d, 0x74, 0x2e, -- 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, -- 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x57, -- 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, -- 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, -- 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, -- 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x20, 0x54, -- 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x61, -- 0x73, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x54, 0x65, 0x58, 0x74, 0x2e, 0x0a, 0x0a, -- 0x69, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x31, -- 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, -- 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, -- 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, -- 0x6e, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, -- 0x70, 0x65, 0x6e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, -- 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, -- 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, -- 0x74, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, -- 0x73, 0x70, 0x61, 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, -- 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, -- 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x74, -- 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, -- 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, -- 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, -- 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6e, -- 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, -- 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, -- 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, -- 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, -- 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, -- 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x6e, -- 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, -- 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, -- 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6e, 0x69, -- 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6f, -- 0x70, 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, -- 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, -- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x68, 0x65, 0x6c, -- 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x7e, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, -- 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71, -- 0x75, 0x69, 0x72, 0x65, 0x28, 0x27, 0x66, 0x66, 0x69, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x66, 0x6f, 0x72, 0x20, 0x6b, 0x2c, 0x20, 0x76, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x65, 0x78, 0x74, -- 0x2c, 0x20, 0x66, 0x66, 0x69, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x69, 0x66, 0x20, 0x6b, 0x20, 0x7e, 0x3d, 0x20, 0x27, 0x67, 0x63, 0x27, 0x20, 0x74, 0x68, -- 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, -- 0x66, 0x69, 0x5b, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x65, -- 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6f, 0x73, 0x2e, 0x5b, 0x65, 0x78, 0x65, 0x63, 0x75, -- 0x74, 0x65, 0x7c, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x7c, 0x6f, 0x73, 0x2e, 0x65, -- 0x78, 0x65, 0x63, 0x5d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x61, 0x72, 0x65, -- 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x61, 0x77, 0x61, -- 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6d, 0x64, 0x35, 0x20, 0x74, 0x68, 0x65, -- 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x75, 0x6d, -- 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, 0x62, 0x20, 0x20, 0x20, 0x3d, -- 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, 0x62, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, -- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x79, 0x74, 0x65, 0x20, 0x20, 0x20, 0x3d, -- 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x0a, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, -- 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, -- 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, -- 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, -- 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x78, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, -- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, -- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x48, 0x45, 0x58, -- 0x41, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -- 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, -- 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, -- 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, -- 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, -- 0x32, 0x58, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -- 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x00 -+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, -+ 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, -+ 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x6d, 0x74, 0x2e, 0x6c, 0x69, 0x6e, -+ 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x72, -+ 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x57, 0x65, 0x20, 0x61, -+ 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, -+ 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, -+ 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, -+ 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, -+ 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x61, 0x73, 0x65, 0x20, -+ 0x69, 0x6e, 0x20, 0x43, 0x6f, 0x6e, 0x54, 0x65, 0x58, 0x74, 0x2e, 0x0a, 0x0a, 0x69, 0x66, 0x20, -+ 0x6b, 0x70, 0x73, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, -+ 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, -+ 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, -+ 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, -+ 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, -+ 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, -+ 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, -+ 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, -+ 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x20, 0x3d, -+ 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, -+ 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, -+ 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x3d, -+ 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, -+ 0x61, 0x6d, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, -+ 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x20, -+ 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, -+ 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x20, 0x20, -+ 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f, -+ 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, -+ 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, -+ 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, -+ 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, -+ 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, -+ 0x6c, 0x79, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, -+ 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x6f, 0x72, 0x20, -+ 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x7e, 0x3d, 0x20, 0x31, -+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, -+ 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x27, 0x66, 0x66, 0x69, 0x27, 0x29, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6b, 0x2c, 0x20, 0x76, 0x20, 0x69, 0x6e, 0x20, -+ 0x6e, 0x65, 0x78, 0x74, 0x2c, 0x20, 0x66, 0x66, 0x69, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6b, 0x20, 0x7e, 0x3d, 0x20, 0x27, 0x67, 0x63, -+ 0x27, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x5b, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, -+ 0x6c, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6f, 0x73, 0x2e, 0x5b, 0x65, -+ 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x7c, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x7c, -+ 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x5d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, -+ 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, -+ 0x20, 0x61, 0x77, 0x61, 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6d, 0x64, 0x35, -+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, -+ 0x20, 0x73, 0x75, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, -+ 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, 0x62, -+ 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, 0x62, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, -+ 0x74, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, -+ 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x79, 0x74, 0x65, -+ 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, -+ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, -+ 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, -+ 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, -+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, -+ 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x78, 0x22, 0x2c, 0x62, 0x79, 0x74, -+ 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, -+ 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, -+ 0x6d, 0x48, 0x45, 0x58, 0x41, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75, -+ 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, -+ 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, -+ 0x28, 0x22, 0x25, 0x30, 0x32, 0x58, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x00 - }; - return luaL_dostring(L, (const char*) luatex_core_lua); - } -\ No newline at end of file ---- texk/web2c/luatexdir/lua/luatex-core.lua 2017/06/13 21:01:34 44589 -+++ texk/web2c/luatexdir/lua/luatex-core.lua 2017/06/13 22:07:40 44590 -@@ -1,210 +1,213 @@ ---- if not modules then modules = { } end modules ['luatex-core'] = { ---- version = 1.001, ---- comment = 'companion to luatex', ---- author = 'Hans Hagen & Luigi Scarso', ---- copyright = 'LuaTeX Development Team', ---- } -- --LUATEXCOREVERSION = 1.002 -- ---- This file overloads some Lua functions. The readline variants provide the same ---- functionality as LuaTeX <= 1.04 and doing it this way permits us to keep the ---- original io libraries clean. Performance is probably even a bit better now. -- --local type, next, getmetatable, require = type, next, getmetatable, require --local find, gsub = string.find, string.gsub -- --local io_open = io.open --local io_popen = io.popen --local io_line = io.lines -- --local fio_readline = fio.readline --local fio_checkpermission = fio.checkpermission --local fio_recordfilename = fio.recordfilename -- --local mt = getmetatable(io.stderr) --local mt_lines = mt.lines --local saferoption = status.safer_option --local shellescape = status.shell_escape -- 0 (disabled) 1 (anything) 2 (restricted) --local kpseused = status.kpse_used -- 0 1 -- --io.saved_open = io_open -- can be protected --io.saved_popen = io_popen -- can be protected --io.saved_lines = io_lines -- always readonly --mt.saved_lines = mt_lines -- always readonly -- --local function luatex_io_open(name,how) -- if not how then -- how = 'r' -- end -- local f = io_open(name,how) -- if f then -- if type(how) == 'string' and find(how,'w') then -- fio_recordfilename(name,'w') -- else -- fio_recordfilename(name,'r') -- end -- end -- return f --end -- --local function luatex_io_open_readonly(name,how) -- if how then -- how = 'r' -- else -- how = gsub(how,'[^rb]','') -- if how == '' then -- how = 'r' -- end -- end -- local f = io_open(name,how) -- if f then -- fio_recordfilename(name,'r') -- end -- return f --end -- --local function luatex_io_popen(name,...) -- local okay, found = fio_checkpermission(name) -- if okay and found then -- return io_popen(found,...) -- end --end -- --local function luatex_io_lines(name) -- local f = io_open(name,'r') -- if f then -- return function() -- return fio_readline(f) -- end -- end --end -- --local function luatex_io_readline(f) -- return function() -- return fio_readline(f) -- end --end -- --io.lines = luatex_io_lines --mt.lines = luatex_io_readline -- ---- We assume management to be provided by the replacement of kpse. This is the ---- case in ConTeXt. -- --if kpseused == 1 then -- -- io.open = luatex_io_open -- io.popen = luatex_io_popen -- --end -- --if saferoption == 1 then -- -- os.execute = nil -- os.spawn = nil -- os.exec = nil -- os.setenv = nil -- os.tempdir = nil -- -- io.popen = nil -- io.open = nil -- -- os.rename = nil -- os.remove = nil -- -- io.tmpfile = nil -- io.output = nil -- -- lfs.chdir = nil -- lfs.lock = nil -- lfs.touch = nil -- lfs.rmdir = nil -- lfs.mkdir = nil -- -- io.saved_popen = nil -- io.saved_open = luatex_io_open_readonly -- --end -- --if saferoption == 1 or shellescape ~= 1 then -- -- ffi = require('ffi') -- for k, v in next, ffi do -- if k ~= 'gc' then -- ffi[k] = nil -- end -- end -- ffi = nil -- --end -- ---- os.[execute|os.spawn|os.exec] already are shellescape aware) -- -- --if md5 then -- -- local sum = md5.sum -- local gsub = string.gsub -- local format = string.format -- local byte = string.byte -- -- function md5.sumhexa(k) -- return (gsub(sum(k), ".", function(c) -- return format("%02x",byte(c)) -- end)) -- end -- -- function md5.sumHEXA(k) -- return (gsub(sum(k), ".", function(c) -- return format("%02X",byte(c)) -- end)) -- end -- --end -- --if utilities and utilities.merger and utilities.merger.compact then -- -- local byte, format, gmatch = string.byte, string.format, string.gmatch -- local concat = table.concat -- -- local data = gsub(io.loaddata('luatex-core.lua'),'if%s+utilities.*','') -- local t = { } -- local r = { } -- local n = 0 -- local d = gsub(data,'\r\n','\n') -- be nice for unix -- local s = utilities.merger.compact(d) -- no comments and less spaces -- -- t[#t+1] = '/* generated from and by luatex-core.lua */' -- t[#t+1] = '' -- -- t[#t+1] = format('/*\n\n%s\n\n*/',d) -- -- t[#t+1] = '' -- t[#t+1] = '#include "lua.h"' -- t[#t+1] = '#include "lauxlib.h"' -- t[#t+1] = '' -- t[#t+1] = 'int load_luatex_core_lua (lua_State * L);' -- t[#t+1] = '' -- t[#t+1] = 'int load_luatex_core_lua (lua_State * L)' -- t[#t+1] = '{' -- t[#t+1] = ' static unsigned char luatex_core_lua[] = {' -- for c in gmatch(d,'.') do -- if n == 16 then -- n = 1 -- t[#t+1] = ' ' .. concat(r,', ') .. ',' -- else -- n = n + 1 -- end -- r[n] = format('0x%02x',byte(c)) -- end -- n = n + 1 -- r[n] = '0x00' -- t[#t+1] = ' ' .. concat(r,', ',1,n) -- t[#t+1] = ' };' -- -- t[#t+1] = format('unsigned int luatex_core_lua_len = 0x%x;',#d+1) -- t[#t+1] = ' return luaL_dostring(L, (const char*) luatex_core_lua);' -- t[#t+1] = '}' -- -- io.savedata('luatex-core.c',concat(t,'\n')) -- io.savedata('luatex-core-stripped.lua',s) -- --end -+-- if not modules then modules = { } end modules ['luatex-core'] = { -+-- version = 1.001, -+-- comment = 'companion to luatex', -+-- author = 'Hans Hagen & Luigi Scarso', -+-- copyright = 'LuaTeX Development Team', -+-- } -+ -+LUATEXCOREVERSION = 1.002 -+ -+-- This file overloads some Lua functions. The readline variants provide the same -+-- functionality as LuaTeX <= 1.04 and doing it this way permits us to keep the -+-- original io libraries clean. Performance is probably even a bit better now. -+ -+local type, next, getmetatable, require = type, next, getmetatable, require -+local find, gsub = string.find, string.gsub -+ -+local io_open = io.open -+local io_popen = io.popen -+local io_lines = io.lines -+ -+local fio_readline = fio.readline -+local fio_checkpermission = fio.checkpermission -+local fio_recordfilename = fio.recordfilename -+ -+local mt = getmetatable(io.stderr) -+local mt_lines = mt.lines -+local saferoption = status.safer_option -+local shellescape = status.shell_escape -- 0 (disabled) 1 (anything) 2 (restricted) -+local kpseused = status.kpse_used -- 0 1 -+ -+io.saved_open = io_open -- can be protected -+-- (deleted for tl17 rebuild) io.saved_popen = io_popen -- can be protected -+io.saved_lines = io_lines -- always readonly -+mt.saved_lines = mt_lines -- always readonly -+ -+local function luatex_io_open(name,how) -+ if not how then -+ how = 'r' -+ end -+ local f = io_open(name,how) -+ if f then -+ if type(how) == 'string' and find(how,'w') then -+ fio_recordfilename(name,'w') -+ else -+ fio_recordfilename(name,'r') -+ end -+ end -+ return f -+end -+ -+local function luatex_io_open_readonly(name,how) -+ if how then -+ how = 'r' -+ else -+ how = gsub(how,'[^rb]','') -+ if how == '' then -+ how = 'r' -+ end -+ end -+ local f = io_open(name,how) -+ if f then -+ fio_recordfilename(name,'r') -+ end -+ return f -+end -+ -+local function luatex_io_popen(name,...) -+ local okay, found = fio_checkpermission(name) -+ if okay and found then -+ return io_popen(found,...) -+ end -+end -+ -+local function luatex_io_lines(name,how) -+ if name then -+ local f = io_open(name,how or 'r') -+ if f then -+ return function() -+ return fio_readline(f) -+ end -+ end -+ else -+ return io_lines() -+ end -+end -+ -+local function luatex_io_readline(f) -+ return function() -+ return fio_readline(f) -+ end -+end -+ -+io.lines = luatex_io_lines -+mt.lines = luatex_io_readline -+ -+-- We assume management to be provided by the replacement of kpse. This is the -+-- case in ConTeXt. -+ -+if kpseused == 1 then -+ -+ io.open = luatex_io_open -+ io.popen = luatex_io_popen -+ -+end -+ -+if saferoption == 1 then -+ -+ os.execute = nil -+ os.spawn = nil -+ os.exec = nil -+ os.setenv = nil -+ os.tempdir = nil -+ -+ io.popen = nil -+ io.open = nil -+ -+ os.rename = nil -+ os.remove = nil -+ -+ io.tmpfile = nil -+ io.output = nil -+ -+ lfs.chdir = nil -+ lfs.lock = nil -+ lfs.touch = nil -+ lfs.rmdir = nil -+ lfs.mkdir = nil -+ -+ io.saved_open = luatex_io_open_readonly -+ -+end -+ -+if saferoption == 1 or shellescape ~= 1 then -+ -+ ffi = require('ffi') -+ for k, v in next, ffi do -+ if k ~= 'gc' then -+ ffi[k] = nil -+ end -+ end -+ ffi = nil -+ -+end -+ -+-- os.[execute|os.spawn|os.exec] already are shellescape aware) -+ -+ -+if md5 then -+ -+ local sum = md5.sum -+ local gsub = string.gsub -+ local format = string.format -+ local byte = string.byte -+ -+ function md5.sumhexa(k) -+ return (gsub(sum(k), ".", function(c) -+ return format("%02x",byte(c)) -+ end)) -+ end -+ -+ function md5.sumHEXA(k) -+ return (gsub(sum(k), ".", function(c) -+ return format("%02X",byte(c)) -+ end)) -+ end -+ -+end -+ -+if utilities and utilities.merger and utilities.merger.compact then -+ -+ local byte, format, gmatch = string.byte, string.format, string.gmatch -+ local concat = table.concat -+ -+ local data = gsub(io.loaddata('luatex-core.lua'),'if%s+utilities.*','') -+ local t = { } -+ local r = { } -+ local n = 0 -+ local d = gsub(data,'\r\n','\n') -- be nice for unix -+ local s = utilities.merger.compact(d) -- no comments and less spaces -+ -+ t[#t+1] = '/* generated from and by luatex-core.lua */' -+ t[#t+1] = '' -+ -- t[#t+1] = format('/*\n\n%s\n\n*/',d) -+ -- t[#t+1] = '' -+ t[#t+1] = '#include "lua.h"' -+ t[#t+1] = '#include "lauxlib.h"' -+ t[#t+1] = '' -+ t[#t+1] = 'int load_luatex_core_lua (lua_State * L);' -+ t[#t+1] = '' -+ t[#t+1] = 'int load_luatex_core_lua (lua_State * L)' -+ t[#t+1] = '{' -+ t[#t+1] = ' static unsigned char luatex_core_lua[] = {' -+ for c in gmatch(d,'.') do -+ if n == 16 then -+ n = 1 -+ t[#t+1] = ' ' .. concat(r,', ') .. ',' -+ else -+ n = n + 1 -+ end -+ r[n] = format('0x%02x',byte(c)) -+ end -+ n = n + 1 -+ r[n] = '0x00' -+ t[#t+1] = ' ' .. concat(r,', ',1,n) -+ t[#t+1] = ' };' -+ -- t[#t+1] = format('unsigned int luatex_core_lua_len = 0x%x;',#d+1) -+ t[#t+1] = ' return luaL_dostring(L, (const char*) luatex_core_lua);' -+ t[#t+1] = '}' -+ -+ io.savedata('luatex-core.c',concat(t,'\n')) -+ io.savedata('luatex-core-stripped.lua',s) -+ -+end ---- texk/web2c/luatexdir/luatex.c 2017/06/13 21:01:34 44589 -+++ texk/web2c/luatexdir/luatex.c 2017/06/13 22:07:40 44590 -@@ -28,9 +28,11 @@ - - #define TeX - -+/* for tl17 update, change luatex_date_info but nothing else, -+ as context depends on the numeric version number. */ - int luatex_version = 100; /* \.{\\luatexversion} */ - int luatex_revision = '4'; /* \.{\\luatexrevision} */ --int luatex_date_info = 2017033109; /* the compile date is now hardwired :YEAR MONTH DAY HOUR*/ -+int luatex_date_info = 2017060901; /* the compile date is now hardwired :YEAR MONTH DAY HOUR*/ - const char *luatex_version_string = "1.0.4"; - const char *engine_name = my_name; /* the name of this engine */ - diff --git a/source-m-tx-0.63a-buffer-overflow.dif b/source-m-tx-0.63a-buffer-overflow.dif new file mode 100644 index 0000000..6caf44a --- /dev/null +++ b/source-m-tx-0.63a-buffer-overflow.dif @@ -0,0 +1,25 @@ +--- utils/m-tx/mtx-src/preamble.c 2018-01-09 14:14:43.000000000 +0000 ++++ utils/m-tx/mtx-src/preamble.c 2018-04-08 12:23:37.000000000 +0100 +@@ -801,8 +801,8 @@ + stave_size[i] = unspec; + for (i = 0; i <= maxstaves; i++) + nspace[i] = unspec; +- nspace[i] = unspec; +- stave_size[i-1] = unspec; ++ /* next line seems to be spurious. 0.63a RDT */ ++ /* begin nspace[i]:=unspec; stave_size[i]:=unspec; end; */ + n_pages = 1; + n_systems = 1; + readStyles(); +--- utils/m-tx/mtx-src/preamble.pas 2018-01-09 14:14:43.000000000 +0000 ++++ utils/m-tx/mtx-src/preamble.pas 2018-04-08 12:21:23.000000000 +0100 +@@ -501,7 +501,8 @@ + for i:=1 to maxvoices do setVocal(i,false); + for i:=1 to maxstaves do stave_size[i]:=unspec; + for i:=0 to maxstaves do nspace[i]:=unspec; +- begin nspace[i]:=unspec; stave_size[i]:=unspec; end; ++ { next line seems to be spurious. 0.63a RDT } ++ { begin nspace[i]:=unspec; stave_size[i]:=unspec; end; } + n_pages:=1; n_systems:=1; + readStyles; old_known_styles := known_styles; + for i:=1 to lines_in_paragraph do omit_line[i]:=false; diff --git a/source-maxpath.dif b/source-maxpath.dif deleted file mode 100644 index 3a3ade4..0000000 --- a/source-maxpath.dif +++ /dev/null @@ -1,10 +0,0 @@ ---- texk/ptexenc/ptexenc.c -+++ texk/ptexenc/ptexenc.c 2012-11-25 06:22:00.000000000 +0000 -@@ -7,6 +7,7 @@ - #include - #include - #include -+#include - - #include - #include diff --git a/source-overflow.dif b/source-overflow.dif index 3337c0f..5d78943 100644 --- a/source-overflow.dif +++ b/source-overflow.dif @@ -3,8 +3,8 @@ 1 file changed, 2 insertions(+), 1 deletion(-) --- utils/lacheck/lacheck.test -+++ utils/lacheck/lacheck.test 2016-01-28 12:25:40.958687909 +0000 -@@ -6,5 +6,6 @@ ++++ utils/lacheck/lacheck.test 2018-04-10 08:57:17.672625041 +0000 +@@ -7,5 +7,6 @@ ./lacheck $srcdir/test.tex | \ sed -e "s!$srcdir/test.tex!./test.tex!g" >test.out || exit 1 diff --git a/source-poppler-0.59.1.dif b/source-poppler-0.59.1.dif deleted file mode 100644 index 52fafeb..0000000 --- a/source-poppler-0.59.1.dif +++ /dev/null @@ -1,294 +0,0 @@ -Dear Werner, - -> See attachment for figure_fsteps.pdf ... - -Please test attached pdftoepdf.cc and pdftosrc.cc on SUSE. -They are working fine on windows for your example with -the poppler 0.60.1. -Simply replace pdftoepdf.cc and pdftosrc.cc in web2c/pdftexdir -by the attached files. - -Thanks, -Akira - ---- - texk/web2c/pdftexdir/pdftoepdf.cc | 113 +++++++++++++++++++++++--------------- - texk/web2c/pdftexdir/pdftosrc.cc | 19 ++++-- - 2 files changed, 83 insertions(+), 49 deletions(-) - ---- texk/web2c/pdftexdir/pdftoepdf.cc -+++ texk/web2c/pdftexdir/pdftoepdf.cc 2017-11-07 15:57:03.960327000 +0000 -@@ -1,5 +1,5 @@ - /* --Copyright 1996-2016 Han The Thanh, -+Copyright 1996-2017 Han The Thanh, - - This file is part of pdfTeX. - -@@ -17,6 +17,15 @@ You should have received a copy of the G - with this program. If not, see . - */ - -+/* -+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at -+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk -+by Arch Linux. A little modifications are made to avoid a crash for -+some kind of pdf images, such as figure_missing.pdf in gnuplot. -+The poppler should be 0.59.0 or newer versions. -+POPPLER_VERSION should be defined. -+*/ -+ - /* Do this early in order to avoid a conflict between - MINGW32 defining 'boolean' as 'unsigned char' and - defining Pascal's boolean as 'int'. -@@ -39,10 +48,7 @@ with this program. If not, see - #define GString GooString - #else --#include --#include --#include --#include -+#error POPPLER_VERSION should be defined. - #endif - #include - -@@ -357,10 +363,29 @@ static void copyProcSet(Object * obj) - - #define REPLACE_TYPE1C true - -+static bool embeddableFont(Object * fontdesc) -+{ -+ Object fontfile, ffsubtype; -+ -+ if (!fontdesc->isDict()) -+ return false; -+ fontfile = fontdesc->dictLookup("FontFile"); -+ if (fontfile.isStream()) -+ return true; -+ if (REPLACE_TYPE1C) { -+ fontfile = fontdesc->dictLookup("FontFile3"); -+ if (!fontfile.isStream()) -+ return false; -+ ffsubtype = fontfile.streamGetDict()->lookup("Subtype"); -+ return ffsubtype.isName() && !strcmp(ffsubtype.getName(), "Type1C"); -+ } -+ return false; -+} -+ - static void copyFont(char *tag, Object * fontRef) - { - Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset, -- fontfile, ffsubtype, stemV; -+ stemV; - GfxFont *gfont; - fd_entry *fd; - fm_entry *fontmap; -@@ -377,23 +402,13 @@ static void copyFont(char *tag, Object * - // Only handle included Type1 (and Type1C) fonts; anything else will be copied. - // Type1C fonts are replaced by Type1 fonts, if REPLACE_TYPE1C is true. - fontdict = fontRef->fetch(xref); -+ fontdesc = Object(objNull); - if (fontdict.isDict()) { - subtype = fontdict.dictLookup("Subtype"); - basefont = fontdict.dictLookup("BaseFont"); - fontdescRef = fontdict.dictLookupNF("FontDescriptor"); - if (fontdescRef.isRef()) { - fontdesc = fontdescRef.fetch(xref); -- if (fontdesc.isDict()) { -- fontfile = fontdesc.dictLookup("FontFile"); -- if (!fontfile.isStream() && REPLACE_TYPE1C) { -- fontfile = fontdesc.dictLookup("FontFile3"); -- ffsubtype = fontfile.streamGetDict()->lookup("Subtype"); -- if (!(ffsubtype.isName() && !strcmp(ffsubtype.getName(), "Type1C"))) { -- // not a Type1-C font. -- fontfile = Object(objNull); -- } -- } -- } - } - } - if (!fixedinclusioncopyfont && fontdict.isDict() -@@ -402,7 +417,7 @@ static void copyFont(char *tag, Object * - && basefont.isName() - && fontdescRef.isRef() - && fontdesc.isDict() -- && fontfile.isStream() -+ && embeddableFont(&fontdesc) - && (fontmap = lookup_fontmap(basefont.getName())) != NULL) { - // round /StemV value, since the PDF input is a float - // (see Font Descriptors in PDF reference), but we only store an -@@ -591,9 +606,8 @@ static void copyObject(Object * obj) - copyDict(obj); - pdf_puts(">>"); - } else if (obj->isStream()) { -- obj1 = Object(obj->streamGetDict()); - pdf_puts("<<\n"); -- copyDict(&obj1); -+ copyDict(obj->getStream()->getDictObject()); - pdf_puts(">>\n"); - pdf_puts("stream\n"); - copyStream(obj->getStream()->getUndecodedStream()); -@@ -662,7 +676,7 @@ static void writeEncodings() - #ifdef POPPLER_VERSION - r->font->decRefCnt(); - #else -- delete r->font; -+#error POPPLER_VERSION should be defined. - #endif - delete r; - } -@@ -705,7 +719,7 @@ read_pdf_info(char *image_name, char *pa - #ifdef POPPLER_VERSION - int pdf_major_version_found, pdf_minor_version_found; - #else -- float pdf_version_found, pdf_version_wanted; -+#error POPPLER_VERSION should be defined. - #endif - // initialize - if (!isInit) { -@@ -737,19 +751,7 @@ read_pdf_info(char *image_name, char *pa - } - } - #else -- pdf_version_found = pdf_doc->doc->getPDFVersion(); -- pdf_version_wanted = 1 + (minor_pdf_version_wanted * 0.1); -- if (pdf_version_found > pdf_version_wanted + 0.01) { -- char msg[] = -- "PDF inclusion: found PDF version <%.1f>, but at most version <%.1f> allowed"; -- if (pdf_inclusion_errorlevel > 0) { -- pdftex_fail(msg, pdf_version_found, pdf_version_wanted); -- } else if (pdf_inclusion_errorlevel < 0) { -- ; /* do nothing */ -- } else { /* = 0, give warning */ -- pdftex_warn(msg, pdf_version_found, pdf_version_wanted); -- } -- } -+#error POPPLER_VERSION should be defined. - #endif - epdf_num_pages = pdf_doc->doc->getCatalog()->getNumPages(); - if (page_name) { -@@ -931,12 +933,12 @@ void write_epdf(void) - pdf_printf("/%s ", pageDictKeys[i]); - copyObject(&dictObj); // preserves indirection - } -- } -+ } - - // handle page group - dictObj = pageDict->lookupNF("Group"); - if (!dictObj.isNull()) { -- if (pdfpagegroupval == 0) { -+ if (pdfpagegroupval == 0) { - // another pdf with page group was included earlier on the - // same page; copy the Group entry as is. See manual for - // info on why this is a warning. -@@ -953,7 +955,32 @@ void write_epdf(void) - if (!dictObj.isDict()) - pdftex_fail("PDF inclusion: /Group dict missing"); - writeSepGroup = true; -+/* -+This part is only a single line - groupDict = Object(page->getGroup()); -+in the original patch. In this case, however, pdftex crashes at -+"delete pdf_doc->doc" in "delete_document()" for inclusion of some -+kind of pdf images, for example, figure_missing.pdf in gnuplot. -+A change -+ groupDict = Object(page->getGroup()).copy(); -+does not improve the situation. -+The changes below seem to work fine. -+*/ -+// begin modification -+ groupDict = pageDict->lookup("Group"); -+ const Dict& dic1 = page->getGroup(); -+ const Dict& dic2 = groupDict.getDict(); -+ // replace dic2 in groupDict with dic1 -+ l = dic2.getLength(); -+ for (i = 0; i < l; i++) { -+ groupDict.dictRemove(dic2.getKey(i)); -+ } -+ l = dic1.getLength(); -+ for (i = 0; i < l; i++) { -+ groupDict.dictAdd(copyString(dic1.getKey(i)), -+ dic1.getValNF(i)); -+ } -+// end modification - pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval); - } - } -@@ -966,15 +993,15 @@ void write_epdf(void) - pdftex_warn - ("PDF inclusion: /Resources missing. 'This practice is not recommended' (PDF Ref)"); - } else { -- obj1 = Object(page->getResourceDict()); -- if (!obj1.isDict()) -+ Object *obj1 = page->getResourceDictObject(); -+ if (!obj1->isDict()) - pdftex_fail("PDF inclusion: invalid resources dict type <%s>", -- obj1.getTypeName()); -+ obj1->getTypeName()); - pdf_newline(); - pdf_puts("/Resources <<\n"); -- for (i = 0, l = obj1.dictGetLength(); i < l; ++i) { -- obj2 = obj1.dictGetVal(i); -- key = obj1.dictGetKey(i); -+ for (i = 0, l = obj1->dictGetLength(); i < l; ++i) { -+ obj2 = obj1->dictGetVal(i); -+ key = obj1->dictGetKey(i); - if (strcmp("Font", key) == 0) - copyFontResources(&obj2); - else if (strcmp("ProcSet", key) == 0) ---- texk/web2c/pdftexdir/pdftosrc.cc -+++ texk/web2c/pdftexdir/pdftosrc.cc 2017-11-07 15:57:11.068340000 +0000 -@@ -1,5 +1,5 @@ - /* --Copyright 1996-2014 Han The Thanh, -+Copyright 1996-2017 Han The Thanh, - - This file is part of pdfTeX. - -@@ -16,6 +16,14 @@ GNU General Public License for more deta - You should have received a copy of the GNU General Public License along - with this program. If not, see . - */ -+ -+/* -+This is based on the patch texlive-poppler-0.59.patch <2017-09-19> at -+https://git.archlinux.org/svntogit/packages.git/plain/texlive-bin/trunk -+by Arch Linux. The poppler should be 0.59.0 or newer versions. -+POPPLER_VERSION should be defined. -+*/ -+ - #include - - #include -@@ -32,10 +40,7 @@ with this program. If not, see - #include - #else --#include --#include --#include --#include -+#error POPPLER_VERSION should be defined. - #endif - #include - -@@ -151,6 +156,7 @@ int main(int argc, char *argv[]) - (e->type == xrefEntryFree ? "f" : "n")); - else { // e->offset is the object number of the object stream - Stream *str; -+ Lexer *lexer; - Parser *parser; - Object objStr, obj1, obj2; - int nObjects, first, n; -@@ -168,7 +174,8 @@ int main(int argc, char *argv[]) - // parse the header: object numbers and offsets - objStr.streamReset(); - str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first); -- parser = new Parser(xref, new Lexer(xref, str), gFalse); -+ lexer = new Lexer(xref, str); -+ parser = new Parser(xref, lexer, gFalse); - for (n = 0; n < nObjects; ++n) { - obj1 = parser->getObj(); - obj2 = parser->getObj(); diff --git a/source-synctex-bump-soname.dif b/source-synctex-bump-soname.dif new file mode 100644 index 0000000..1ddd5a1 --- /dev/null +++ b/source-synctex-bump-soname.dif @@ -0,0 +1,21 @@ +--- + texk/web2c/synctexdir/ac/synctex.ac | 2 +- + texk/web2c/synctexdir/synctex_parser_api_level | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + + +--- texk/web2c/synctexdir/ac/synctex.ac ++++ texk/web2c/synctexdir/ac/synctex.ac 2018-04-23 11:57:26.371746955 +0000 +@@ -5,7 +5,7 @@ dnl You may freely use, modify and/or di + dnl + dnl Additional code for synctex + dnl +-m4_define([synctex_version], m4_chomp(m4_include([synctexdir/synctex_parser_version.txt]))[.0]) ++m4_define([synctex_version], m4_chomp(m4_include([synctexdir/synctex_parser_api_level]))[.0]) + AC_SUBST([SYNCTEXVERSION], [synctex_version]) + KPSE_LT_VERSION([synctex]) + +--- texk/web2c/synctexdir/synctex_parser_api_level ++++ texk/web2c/synctexdir/synctex_parser_api_level 2018-04-23 11:57:26.371746955 +0000 +@@ -0,0 +1 @@ ++2.0 diff --git a/source-warns.dif b/source-warns.dif index fa5b2fa..c63bf17 100644 --- a/source-warns.dif +++ b/source-warns.dif @@ -2,17 +2,18 @@ libs/gmp/Makefile.in | 2 +- libs/icu/icu-src/source/i18n/decNumber.h | 22 +++++++++++++--------- libs/lua52/Makefile.in | 4 ++-- + libs/lua53/Makefile.in | 4 ++-- libs/mpfr/Makefile.in | 2 +- libs/teckit/TECkit-src/source/Compiler.cpp | 17 ++++++++++------- texk/makeindexk/genind.h | 16 +++++++++++++++- texk/makeindexk/mkind.h | 20 +++++++++++++++++--- texk/makeindexk/scanid.h | 16 +++++++++++++++- texk/makeindexk/scanst.h | 16 +++++++++++++++- - 9 files changed, 89 insertions(+), 26 deletions(-) + 10 files changed, 93 insertions(+), 32 deletions(-) --- libs/gmp/Makefile.in +++ libs/gmp/Makefile.in 2016-06-07 13:29:33.925651292 +0000 -@@ -298,7 +298,7 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +@@ -306,7 +306,7 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -75,13 +76,29 @@ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) ++ $(AM_CFLAGS) $(CFLAGS) $(XCFLAGS) + AM_V_CC = $(am__v_CC_@AM_V@) + am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) + am__v_CC_0 = @echo " CC " $@; +--- libs/lua53/Makefile.in ++++ libs/lua53/Makefile.in 2016-06-07 13:29:33.925651292 +0000 +@@ -202,11 +202,11 @@ depcomp = $(SHELL) $(top_srcdir)/../../b + am__depfiles_maybe = depfiles + am__mv = mv -f + COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ +- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(XCFLAGS) + LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ +- $(AM_CFLAGS) $(CFLAGS) + $(AM_CFLAGS) $(CFLAGS) $(XCFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; --- libs/mpfr/Makefile.in +++ libs/mpfr/Makefile.in 2016-06-07 13:29:33.925651292 +0000 -@@ -232,7 +232,7 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +@@ -234,7 +234,7 @@ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ diff --git a/source.dif b/source.dif index 31fb4b2..38ce525 100644 --- a/source.dif +++ b/source.dif @@ -7,7 +7,7 @@ texk/kpathsea/cnf-to-paths.awk | 2 texk/kpathsea/db.c | 13 texk/kpathsea/mktex.opt | 39 ++ - texk/kpathsea/mktexlsr | 43 ++ + texk/kpathsea/mktexlsr | 52 +++ texk/kpathsea/progname.c | 4 texk/kpathsea/texmf.cnf | 174 +++++++----- texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc | 3 @@ -27,10 +27,10 @@ texk/web2c/window/x11-Xt.c | 4 texk/xdvik/psgs.c | 22 + texk/xdvik/xdvi-sh.in | 19 + - 28 files changed, 374 insertions(+), 194 deletions(-) + 28 files changed, 383 insertions(+), 194 deletions(-) --- libs/icu/icu-src/source/common/Makefile.in -+++ libs/icu/icu-src/source/common/Makefile.in 2017-05-30 12:59:40.801914534 +0000 ++++ libs/icu/icu-src/source/common/Makefile.in 2018-04-10 09:02:17.774983801 +0000 @@ -69,7 +69,7 @@ DEFS += -DU_COMMON_IMPLEMENTATION LDFLAGS += $(LDFLAGSICUUC) @@ -41,7 +41,7 @@ # for icu data location ifeq ($(PKGDATA_MODE),common) --- reautoconf -+++ reautoconf 2017-05-30 12:59:40.801914534 +0000 ++++ reautoconf 2018-04-10 09:02:17.774983801 +0000 @@ -83,7 +83,7 @@ echo "$0: TL_AUTOHEADER, T # Give users a chance to quit here @@ -52,7 +52,7 @@ AUTOCONF=$TL_AUTOCONF AUTOHEADER=$TL_AUTOHEADER --- texk/dviljk/dvi2xx.c -+++ texk/dviljk/dvi2xx.c 2017-05-30 12:59:40.809914620 +0000 ++++ texk/dviljk/dvi2xx.c 2018-04-10 09:02:17.858982223 +0000 @@ -168,7 +168,18 @@ main(int argc, char *argv[]) setbuf(ERR_STREAM, NULL); @@ -73,7 +73,7 @@ G_progname = kpse_program_name; #else --- texk/kpathsea/c-fopen.h -+++ texk/kpathsea/c-fopen.h 2017-05-30 12:59:40.809914620 +0000 ++++ texk/kpathsea/c-fopen.h 2018-04-10 09:02:17.858982223 +0000 @@ -38,17 +38,17 @@ /* How to open a binary file for reading: */ @@ -96,7 +96,7 @@ /* How to switch an already open file handle to binary mode. --- texk/kpathsea/c-memstr.h -+++ texk/kpathsea/c-memstr.h 2017-05-30 12:59:40.817914706 +0000 ++++ texk/kpathsea/c-memstr.h 2018-04-10 09:02:17.858982223 +0000 @@ -37,6 +37,7 @@ /* For ancient systems that lack the system V/ANSI version of the @@ -113,8 +113,8 @@ + #endif /* not KPATHSEA_C_MEMSTR_H */ --- texk/kpathsea/cnf-to-paths.awk -+++ texk/kpathsea/cnf-to-paths.awk 2017-05-30 12:59:40.817914706 +0000 -@@ -37,7 +37,7 @@ ++++ texk/kpathsea/cnf-to-paths.awk 2018-04-10 09:02:17.858982223 +0000 +@@ -40,7 +40,7 @@ val = $0; sub(/^.*=[ \t]*/, "", val); sub(/[ \t]*$/, "", val); @@ -124,18 +124,18 @@ if (val ~ /\$SELFAUTO/) { # Replace all semicolons with colons in the SELFAUTO paths we're keeping. --- texk/kpathsea/db.c -+++ texk/kpathsea/db.c 2017-05-30 12:59:40.817914706 +0000 -@@ -92,7 +92,8 @@ db_build (kpathsea kpse, hash_table_type ++++ texk/kpathsea/db.c 2018-04-10 09:08:03.084494047 +0000 +@@ -93,7 +93,8 @@ db_build (kpathsea kpse, hash_table_type unsigned len = strlen (db_filename) - sizeof (DB_NAME) + 1; /* Keep the /. */ string top_dir = (string)xmalloc (len + 1); string cur_dir = NULL; /* First thing in ls-R might be a filename. */ - FILE *db_file = fopen (db_filename, FOPEN_R_MODE); + struct stat statdb; + FILE *db_file; - #if defined(WIN32) + #if defined(MONOCASE_FILENAMES) string pp; - #endif -@@ -100,7 +101,15 @@ db_build (kpathsea kpse, hash_table_type + #endif /* MONOCASE_FILENAMES */ +@@ -101,7 +102,15 @@ db_build (kpathsea kpse, hash_table_type strncpy (top_dir, db_filename, len); top_dir[len] = 0; @@ -153,7 +153,7 @@ len = strlen (line); --- texk/kpathsea/mktex.opt -+++ texk/kpathsea/mktex.opt 2017-05-30 12:59:40.817914706 +0000 ++++ texk/kpathsea/mktex.opt 2018-04-10 09:02:17.858982223 +0000 @@ -38,10 +38,11 @@ if test "$DOSISH" = "no"; then SEP=':'; # TEMPDIR needs to be unique to each process because of the possibility of two # people running dvips (or whatever) simultaneously. @@ -231,7 +231,7 @@ # Cache values that may be useful for recursive calls. export MT_MKTEX_OPT MT_MKTEX_CNF --- texk/kpathsea/mktexlsr -+++ texk/kpathsea/mktexlsr 2017-05-30 12:59:40.817914706 +0000 ++++ texk/kpathsea/mktexlsr 2018-04-10 09:02:17.858982223 +0000 @@ -58,6 +58,9 @@ if test "$DOSISH" = "no"; then SEP=':'; # be done before kpsewhich can be called, and thus cannot be put into # mktex.opt. @@ -242,7 +242,7 @@ case $dirname in "") # Do nothing ;; -@@ -141,6 +144,16 @@ old_ls_R_magic='% ls-R -- maintained by +@@ -152,6 +155,16 @@ old_ls_R_magic='% ls-R -- maintained by shift } @@ -259,7 +259,7 @@ for TEXMFLS_R in "$@"; do # Prepend cwd if the directory was relative. case "$TEXMFLS_R" in -@@ -170,12 +183,23 @@ for TEXMFLS_R in "$@"; do +@@ -181,12 +194,23 @@ for TEXMFLS_R in "$@"; do # want to be silent if the directory doesn't exist, since the ls-R # path ordinarily contains many nonexistent directories. test -d "$db_dir" || continue @@ -285,7 +285,7 @@ elif test -s "$db_file" \ && test "x`sed '1s/ $//;1q' \"$db_file\"`" != "x$ls_R_magic" \ && test "x`sed '1s/ $//;1q' \"$db_file\"`" != "x$old_ls_R_magic"; then -@@ -186,8 +210,13 @@ for TEXMFLS_R in "$@"; do +@@ -197,8 +221,13 @@ for TEXMFLS_R in "$@"; do # Skip if we cannot write the file: kpseaccess -w "$db_file" || { echo "$progname: $db_file: no write permission, skipping..." >&2; continue; } @@ -301,7 +301,7 @@ || { echo "$progname: $db_dir_tmp: could not create directory, skipping..." >&2; continue; } db_file_tmp="$db_dir_tmp/lsR$$.tmp" rm -f "$db_file_tmp" -@@ -195,7 +224,9 @@ for TEXMFLS_R in "$@"; do +@@ -206,7 +235,9 @@ for TEXMFLS_R in "$@"; do $verbose && echo "$progname: Updating $db_file... " $dry_run && continue @@ -312,7 +312,7 @@ # The main task. We put ./: in the output, so top-level files can be # found via ls-R. Probably irrelevant in practice. The sed command -@@ -209,15 +240,20 @@ for TEXMFLS_R in "$@"; do +@@ -220,15 +251,20 @@ for TEXMFLS_R in "$@"; do vc_dirs='\.\(bzr\|git\|hg\|svn\)\|_darcs' (cd "$TEXMFLS_R" && \ls -LRa 2>/dev/null) \ | sed -e '/^$/{n;s%^\./%%;s%^%./%;}; /^\.$/d; /^\.\.$/d; /^'$vc_dirs'$/d;' \ @@ -337,8 +337,8 @@ done --- texk/kpathsea/progname.c -+++ texk/kpathsea/progname.c 2017-05-30 12:59:40.817914706 +0000 -@@ -668,9 +668,9 @@ kpathsea_set_program_name (kpathsea kpse ++++ texk/kpathsea/progname.c 2018-04-10 09:02:17.862982147 +0000 +@@ -661,9 +661,9 @@ kpathsea_set_program_name (kpathsea kpse /* SELFAUTODIR is actually the parent of the invocation directory, and SELFAUTOPARENT the grandparent. This is how teTeX did it. */ kpathsea_xputenv (kpse, "SELFAUTOLOC", fix_selfdir (sdir)); @@ -351,8 +351,8 @@ sdir_greatgrandparent = xdirname (sdir_grandparent); kpathsea_xputenv (kpse, "SELFAUTOGRANDPARENT", fix_selfdir (sdir_greatgrandparent)); --- texk/kpathsea/texmf.cnf -+++ texk/kpathsea/texmf.cnf 2017-05-30 13:09:02.347900901 +0000 -@@ -57,20 +57,20 @@ ++++ texk/kpathsea/texmf.cnf 2018-04-10 09:11:07.729004411 +0000 +@@ -61,20 +61,20 @@ TEXMFROOT = $SELFAUTOPARENT % The main tree of distributed packages and programs: @@ -377,20 +377,20 @@ % 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 -@@ -79,10 +79,10 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config +@@ -83,10 +83,10 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config TEXMFHOME = ~/texmf % TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data. --TEXMFVAR = ~/.texlive2017/texmf-var +-TEXMFVAR = ~/.texlive2018/texmf-var +TEXMFVAR = ${TEXMFSYSVAR} % TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data. --TEXMFCONFIG = ~/.texlive2017/texmf-config -+TEXMFCONFIG = ${TEXMFSYSCONFIG} +-TEXMFCONFIG = ~/.texlive2018/texmf-config ++TEXMFCONFIG = ${TEXMFSYSVAR} % This is the value manipulated by tlmgr's auxtrees subcommand in the % root texmf.cnf. Kpathsea warns about a literally empty string for a -@@ -103,7 +103,7 @@ TEXMFAUXTREES = {} +@@ -107,7 +107,7 @@ TEXMFAUXTREES = {} % The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is % ever defined (the 99% common case), no extra elements will be added to % the search paths. tlmgr takes care to end any value with a trailing comma. @@ -399,7 +399,7 @@ % 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. -@@ -111,24 +111,23 @@ TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEX +@@ -115,24 +115,23 @@ TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEX % 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. @@ -427,7 +427,7 @@ % 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 -@@ -139,7 +138,8 @@ VARTEXFONTS = $TEXMFVAR/fonts +@@ -143,7 +142,8 @@ VARTEXFONTS = $TEXMFVAR/fonts % % Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below % one of the TEXMF directories (avoids overlapping ls-R files). @@ -437,7 +437,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Usually you will not need to edit any of the following variables. -@@ -147,7 +147,7 @@ VARTEXFONTS = $TEXMFVAR/fonts +@@ -151,7 +151,7 @@ VARTEXFONTS = $TEXMFVAR/fonts % WEB2C is for Web2C specific files. The current directory may not be % a good place to look for them. @@ -446,7 +446,7 @@ % TEXINPUTS is for TeX input files -- i.e., anything to be found by \input % or \openin, including .sty, .eps, etc. We specify paths for all known -@@ -188,18 +188,18 @@ TEXINPUTS.elatex = .;$TEXMF/tex/{ +@@ -192,18 +192,18 @@ TEXINPUTS.elatex = .;$TEXMF/tex/{ TEXINPUTS.etex = .;$TEXMF/tex/{plain,generic,}// % pdfTeX. @@ -475,7 +475,7 @@ % LuaTeX. TEXINPUTS.luatex = .;$TEXMF/tex/{luatex,plain,generic,}// -@@ -248,18 +248,18 @@ BSTINPUTS.pbibtex = .;$TEXMF/{pbib +@@ -256,18 +256,18 @@ BSTINPUTS.upbibtex = .;$TEXMF/{upbi TEXINPUTS.context = .;$TEXMF/tex/{context,plain,generic,}// % jadetex. @@ -500,7 +500,7 @@ % Earlier entries override later ones, so put this generic one last. TEXINPUTS = .;$TEXMF/tex/{$progname,generic,}// -@@ -268,7 +268,7 @@ TEXINPUTS = .;$TEXMF/tex/{ +@@ -276,7 +276,7 @@ TEXINPUTS = .;$TEXMF/tex/{ TTF2TFMINPUTS = .;$TEXMF/ttf2pk// % Metafont, MetaPost inputs. @@ -509,7 +509,7 @@ MPINPUTS = .;$TEXMF/metapost// % Dump files (fmt/base/mem) for vir{tex,mf,mp} to read. -@@ -278,31 +278,31 @@ MPINPUTS = .;$TEXMF/metapost// +@@ -286,31 +286,31 @@ MPINPUTS = .;$TEXMF/metapost// % We repeat the same definition three times because of the way fmtutil % is implemented; if we use ${TEXFORMATS}, the mpost/mf/etc. formats % will not be found. @@ -548,7 +548,7 @@ % Similarly for the GF format, which only remains in existence because % Metafont outputs it (and MF isn't going to change). -@@ -312,7 +312,7 @@ GFFONTS = .;$TEXMF/fonts/gf/$MAKETEX_MOD +@@ -320,7 +320,7 @@ GFFONTS = .;$TEXMF/fonts/gf/$MAKETEX_MOD GLYPHFONTS = .;$TEXMF/fonts % A place to puth everything that doesn't fit the other font categories. @@ -557,7 +557,7 @@ % font name map files. This isn't just fonts/map// because ConTeXt % wants support for having files with the same name in the different -@@ -398,8 +398,8 @@ MPSUPPORT = .;$TEXMF/metapost/support +@@ -406,8 +406,8 @@ MPSUPPORT = .;$TEXMF/metapost/support % For xdvi to find mime.types and .mailcap, if they do not exist in % ~. These are single directories, not paths. % (But the default mime.types, at least, may well suffice.) @@ -568,7 +568,7 @@ % Default settings for the fontconfig library as used by the Windows % versions of xetex/xdvipdfmx. Not used by xetex on Unixish systems. -@@ -418,10 +418,10 @@ WEBINPUTS = .;$TEXMF/web// +@@ -426,10 +426,10 @@ WEBINPUTS = .;$TEXMF/web// CWEBINPUTS = .;$TEXMF/cweb// % Omega-related fonts and other files. @@ -583,7 +583,7 @@ OTPINPUTS = .;$TEXMF/omega/otp// OCPINPUTS = .;$TEXMF/omega/ocp// -@@ -504,32 +504,38 @@ RUBYINPUTS = .;$TEXMF/scripts/{$progna +@@ -512,32 +512,38 @@ RUBYINPUTS = .;$TEXMF/scripts/{$progna % explicitly list every directory. Arguably more understandable anyway. % TEXMFCNF = {\ @@ -647,9 +647,9 @@ % % For reference, here is the old brace-using definition: %TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c} -@@ -805,3 +811,33 @@ max_cols.gftype = 8191 +@@ -821,3 +827,33 @@ max_cols.gftype = 8191 % Guess input encoding (SJIS vs. Unicode, etc.) in pTeX and friends? - % Default is 0, to not guess. + % Default is 1, to guess. Used on Windows only. guess_input_kanji_encoding = 1 + +% These are xmltex specific @@ -682,7 +682,7 @@ +pool_size.jadetex = 500000 +save_size.jadetex = 15000 --- texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc -+++ texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc 2017-05-30 12:59:40.825914791 +0000 ++++ texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc 2018-04-10 09:08:59.687430373 +0000 @@ -67,6 +67,9 @@ # include #endif @@ -692,9 +692,9 @@ + using namespace Efont; - #define VERSION_OPT 301 + #define VERSION_OPT 301 --- texk/ps2pk/pk2bm.c -+++ texk/ps2pk/pk2bm.c 2017-05-30 12:59:40.825914791 +0000 ++++ texk/ps2pk/pk2bm.c 2018-04-10 09:02:17.862982147 +0000 @@ -45,7 +45,6 @@ static quarterword lsbf(quarterword u); @@ -777,8 +777,8 @@ - return octal; -} --- texk/texlive/linked_scripts/musixtex/musixtex.lua -+++ texk/texlive/linked_scripts/musixtex/musixtex.lua 2017-05-30 13:11:42.885612642 +0000 -@@ -183,14 +183,25 @@ end ++++ texk/texlive/linked_scripts/musixtex/musixtex.lua 2018-04-10 09:12:50.395048030 +0000 +@@ -192,15 +192,26 @@ end -- possible by exploiting the the fact that Lua has two false values. -- dvi == nil "do not produce a DVI file" (but maybe PDF) -- dvi == false "do not process the DVI file" (but stop after TeX) @@ -789,6 +789,7 @@ function defaults() prepmx = "prepmx" pmx = "pmxab" + autosp = "autosp" - tex = "etex" + if base == "pdfmusixtex" then + tex = "pdfetex" @@ -808,7 +809,7 @@ index = false latex = false --- texk/texlive/linked_scripts/texlive/fmtutil-sys.sh -+++ texk/texlive/linked_scripts/texlive/fmtutil-sys.sh 2017-05-30 12:59:40.825914791 +0000 ++++ texk/texlive/linked_scripts/texlive/fmtutil-sys.sh 2018-04-10 09:02:17.862982147 +0000 @@ -22,4 +22,5 @@ PATH="$mydir:$PATH"; export PATH # hack around a bug in zsh: test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' @@ -816,7 +817,7 @@ +umask 022 exec fmtutil --sys ${1+"$@"} --- texk/texlive/linked_scripts/texlive/fmtutil.pl -+++ texk/texlive/linked_scripts/texlive/fmtutil.pl 2017-05-30 12:59:40.833914877 +0000 ++++ texk/texlive/linked_scripts/texlive/fmtutil.pl 2018-04-10 09:02:17.862982147 +0000 @@ -10,16 +10,16 @@ # History: # Original shell script (C) 2001 Thomas Esser, public domain @@ -863,7 +864,7 @@ } # set up destination directory $opts{'fmtdir'} ||= "$texmfvar/web2c"; -@@ -576,6 +583,7 @@ sub rebuild_one_format { +@@ -597,6 +604,7 @@ sub rebuild_one_format { # check for existence of ini file before doing anything else if (system("kpsewhich -progname=$fmt -format=$kpsefmt $inifile >$nul 2>&1") != 0) { # we didn't find the ini file, skip @@ -871,7 +872,7 @@ print_deferred_warning("inifile $inifile for $fmt/$eng not found.\n"); # The original script just skipped it but in TeX Live we expect that # all activated formats are also buildable, thus return failure. -@@ -635,11 +643,15 @@ sub rebuild_one_format { +@@ -656,11 +664,15 @@ sub rebuild_one_format { ",$opts{'no-error-if-no-engine'}," =~ m/,$eng,/) { return $FMT_NOTAVAIL; } else { @@ -888,7 +889,7 @@ . "$prgswitch $texargs"; print_verbose("running \`$cmdline' ...\n"); --- texk/texlive/linked_scripts/texlive/updmap-sys.sh -+++ texk/texlive/linked_scripts/texlive/updmap-sys.sh 2017-05-30 12:59:40.833914877 +0000 ++++ texk/texlive/linked_scripts/texlive/updmap-sys.sh 2018-04-10 09:02:17.862982147 +0000 @@ -22,4 +22,5 @@ PATH="$mydir:$PATH"; export PATH # hack around a bug in zsh: test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' @@ -896,7 +897,7 @@ +umask 022 exec updmap --sys ${1+"$@"} --- texk/texlive/tl_scripts/fmtutil.cnf -+++ texk/texlive/tl_scripts/fmtutil.cnf 2017-05-30 12:59:40.833914877 +0000 ++++ texk/texlive/tl_scripts/fmtutil.cnf 2018-04-10 09:02:17.862982147 +0000 @@ -46,10 +46,11 @@ amstex pdftex - -translate-file=cp227.tc # from context: cont-en pdftex cont-usr.tex -8bit *cont-en.mkii @@ -933,7 +934,7 @@ +xmltex pdftex language.dat -translate-file=cp227.tcx *xmltex.ini +pdfxmltex pdftex language.dat -translate-file=cp227.tcx *pdfxmltex.ini --- texk/texlive/tl_scripts/texconfig-dialog.sh -+++ texk/texlive/tl_scripts/texconfig-dialog.sh 2017-05-30 12:59:40.833914877 +0000 ++++ texk/texlive/tl_scripts/texconfig-dialog.sh 2018-04-10 09:02:17.862982147 +0000 @@ -157,7 +157,14 @@ termCtl() ############################################################################### menuMain() @@ -963,7 +964,7 @@ while :; do logMessage='view logfile' --- texk/texlive/tl_scripts/texconfig-sys.sh -+++ texk/texlive/tl_scripts/texconfig-sys.sh 2017-05-30 12:59:40.833914877 +0000 ++++ texk/texlive/tl_scripts/texconfig-sys.sh 2018-04-10 09:02:17.862982147 +0000 @@ -30,4 +30,5 @@ TEXMFVAR="$v" TEXMFCONFIG="$c" export TEXMFVAR TEXMFCONFIG @@ -971,7 +972,7 @@ +umask 022 exec texconfig ${1+"$@"} --- texk/texlive/tl_scripts/texconfig.sh -+++ texk/texlive/tl_scripts/texconfig.sh 2017-05-30 12:59:40.833914877 +0000 ++++ texk/texlive/tl_scripts/texconfig.sh 2018-04-10 09:02:17.862982147 +0000 @@ -40,7 +40,7 @@ envVars=" TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS @@ -981,7 +982,7 @@ needsCleanup=false lastUpdatedFile= -@@ -975,21 +975,6 @@ For more information about these \`featu +@@ -997,21 +997,6 @@ For more information about these \`featu ;; formats) @@ -1003,7 +1004,7 @@ setupTmpDir echo "$progname: analyzing old configuration..." >&2 fmtutil --catcfg > $tmpdir/pre -@@ -1015,22 +1000,6 @@ EOM +@@ -1037,22 +1022,6 @@ EOM # "hyphen FORMAT" hyphen) @@ -1026,7 +1027,7 @@ tcBatchHyphenFormat=$2 formatsForHyphen=`getFormatsForHyphen` formatsForHyphenFmt=`echo "$formatsForHyphen" | myFmt | sed 's@^@ @'` -@@ -1276,7 +1245,7 @@ Valid PAPER settings: +@@ -1301,7 +1270,7 @@ Valid PAPER settings: ;; rehash) @@ -1036,7 +1037,7 @@ # --- texk/texlive/tl_scripts/texlinks.sh -+++ texk/texlive/tl_scripts/texlinks.sh 2017-05-30 12:59:40.841914963 +0000 ++++ texk/texlive/tl_scripts/texlinks.sh 2018-04-10 09:02:17.862982147 +0000 @@ -100,7 +100,7 @@ setupTmpDir() trap 'cleanup 1' 1 2 3 7 13 15 @@ -1135,8 +1136,8 @@ if test -f "$d/$engine$exeext"; then case $unlink in --- texk/web2c/Makefile.in -+++ texk/web2c/Makefile.in 2017-05-30 12:59:40.929915908 +0000 -@@ -3816,7 +3816,7 @@ libmd5_a_SOURCES = libmd5/md5.c libmd5/m ++++ texk/web2c/Makefile.in 2018-04-10 09:02:17.870981997 +0000 +@@ -4117,7 +4117,7 @@ libmd5_a_SOURCES = libmd5/md5.c libmd5/m md5main_CPPFLAGS = -I$(srcdir)/libmd5 md5main_SOURCES = libmd5/md5main.c md5main_LDADD = libmd5.a @@ -1145,7 +1146,7 @@ $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -@@ -3863,6 +3863,11 @@ w2c/c-auto.h: w2c/stamp-h1 +@@ -4164,6 +4164,11 @@ w2c/c-auto.h: w2c/stamp-h1 w2c/stamp-h1: $(srcdir)/c-auto.in $(top_builddir)/config.status @rm -f w2c/stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status w2c/c-auto.h @@ -1158,7 +1159,7 @@ ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f w2c/stamp-h1 --- texk/web2c/window/regis.c -+++ texk/web2c/window/regis.c 2017-05-30 12:59:40.929915908 +0000 ++++ texk/web2c/window/regis.c 2018-04-10 09:02:17.870981997 +0000 @@ -64,12 +64,14 @@ void mf_regis_blankrectangle (screencol screenrow top, screenrow bottom) @@ -1178,7 +1179,7 @@ left,bottom,ESCAPE); } --- texk/web2c/window/x11-Xlib.c -+++ texk/web2c/window/x11-Xlib.c 2017-05-30 12:59:40.929915908 +0000 ++++ texk/web2c/window/x11-Xlib.c 2018-04-10 09:02:18.646967412 +0000 @@ -73,6 +73,8 @@ static XWMHints wm_hints = { #define BORDER_WIDTH 1 /* Should get this from resource. */ #define DEFAULT_X_POSITION 0 @@ -1205,7 +1206,7 @@ /* Look up the geometry for this window. (Section 10.2 Obtaining X --- texk/web2c/window/x11-Xt.c -+++ texk/web2c/window/x11-Xt.c 2017-05-30 12:59:40.929915908 +0000 ++++ texk/web2c/window/x11-Xt.c 2018-04-10 09:02:18.646967412 +0000 @@ -18,8 +18,8 @@ #define PLANE 0 @@ -1218,7 +1219,7 @@ static Display *mf_display; static Window mf_window; --- texk/xdvik/psgs.c -+++ texk/xdvik/psgs.c 2017-05-30 12:59:40.929915908 +0000 ++++ texk/xdvik/psgs.c 2018-04-10 09:02:18.646967412 +0000 @@ -34,6 +34,8 @@ OTHER DEALINGS IN THE SOFTWARE. #include /* for timeval */ @@ -1256,7 +1257,7 @@ GS_pid = vfork(); if (GS_pid == 0) { /* child */ --- texk/xdvik/xdvi-sh.in -+++ texk/xdvik/xdvi-sh.in 2017-05-30 12:59:40.929915908 +0000 ++++ texk/xdvik/xdvi-sh.in 2018-04-10 09:02:18.646967412 +0000 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash diff --git a/texlive-20170520-source.tar.xz b/texlive-20170520-source.tar.xz deleted file mode 100644 index a7effe6..0000000 --- a/texlive-20170520-source.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c0a032aa9fa29e7cb521659779d6415f3b4b062a6a44193fb4e79cfefe7b8954 -size 63497548 diff --git a/texlive-20170524-source-poppler059-1.patch b/texlive-20170524-source-poppler059-1.patch deleted file mode 100644 index 3dd8d6e..0000000 --- a/texlive-20170524-source-poppler059-1.patch +++ /dev/null @@ -1,1139 +0,0 @@ -Submitted By: Ken Moffat -Date: 2017-09-21 -Initial Package Version: 20170524 -Upstream Status: Unknown -Origin: Arch linux -Description: Fixes compilation with the API changes of poppler-0.59. - -diff -ur source.orig/texk/web2c/luatexdir/image/pdftoepdf.w source/texk/web2c/luatexdir/image/pdftoepdf.w ---- source.orig/texk/web2c/luatexdir/image/pdftoepdf.w 2017-05-08 22:39:36.639375783 +0200 -+++ source/texk/web2c/luatexdir/image/pdftoepdf.w 2017-09-19 11:23:36.586768739 +0200 -@@ -224,7 +224,7 @@ - free(checksum); - } - if (pdf_doc->doc == NULL) { -- docmemstream = new MemStream( docstream,0,streamsize, obj.initNull() ); -+ docmemstream = new MemStream( docstream,0,streamsize, Object(objNull) ); - doc = new PDFDoc(docmemstream); /* takes ownership of docmemstream */ - pdf_doc->pc++; - if (!doc->isOk() || !doc->okToPrint()) { -@@ -408,9 +408,8 @@ - Object obj1; - pdf_begin_array(pdf); - for (i = 0, l = array->getLength(); i < l; ++i) { -- array->getNF(i, &obj1); -+ obj1 = array->getNF(i); - copyObject(pdf, pdf_doc, &obj1); -- obj1.free(); - } - pdf_end_array(pdf); - } -@@ -422,9 +421,8 @@ - pdf_begin_dict(pdf); - for (i = 0, l = dict->getLength(); i < l; ++i) { - copyName(pdf, dict->getKey(i)); -- dict->getValNF(i, &obj1); -+ obj1 = dict->getValNF(i); - copyObject(pdf, pdf_doc, &obj1); -- obj1.free(); - } - pdf_end_dict(pdf); - } -@@ -510,13 +508,12 @@ - PDFDoc *doc = pdf_doc->doc; - xref = doc->getXRef(); - for (r = pdf_doc->inObjList; r != NULL;) { -- xref->fetch(r->ref.num, r->ref.gen, &obj1); -+ obj1 = xref->fetch(r->ref.num, r->ref.gen); - if (obj1.isStream()) - pdf_begin_obj(pdf, r->num, OBJSTM_NEVER); - else - pdf_begin_obj(pdf, r->num, 2); - copyObject(pdf, pdf_doc, &obj1); -- obj1.free(); - pdf_end_obj(pdf); - n = r->next; - delete r; -@@ -740,7 +737,7 @@ - catalog = doc->getCatalog(); - page = catalog->getPage(img_pagenum(idict)); - pageref = catalog->getPageRef(img_pagenum(idict)); -- doc->getXRef()->fetch(pageref->num, pageref->gen, &pageobj); -+ pageobj = doc->getXRef()->fetch(pageref->num, pageref->gen); - pageDict = pageobj.getDict(); - /* write the Page header */ - pdf_begin_obj(pdf, img_objnum(idict), OBJSTM_NEVER); -@@ -757,12 +754,11 @@ - pdf_dict_add_int(pdf, "PTEX.PageNumber", (int) img_pagenum(idict)); - } - if ((suppress_optional_info & 8) == 0) { -- doc->getDocInfoNF(&obj1); -+ obj1 = doc->getDocInfoNF(); - if (obj1.isRef()) { - /* the info dict must be indirect (PDF Ref p. 61) */ - pdf_dict_add_ref(pdf, "PTEX.InfoDict", addInObj(pdf, pdf_doc, obj1.getRef())); - } -- obj1.free(); - } - if (img_is_bbox(idict)) { - bbox[0] = sp2bp(img_bbox(idict)[0]); -@@ -788,19 +784,17 @@ - Now all relevant parts of the Page dictionary are copied. Metadata validity - check is needed(as a stream it must be indirect). - */ -- pageDict->lookupNF("Metadata", &obj1); -+ obj1 = pageDict->lookupNF("Metadata"); - if (!obj1.isNull() && !obj1.isRef()) - formatted_warning("pdf inclusion","/Metadata must be indirect object"); -- obj1.free(); - /* copy selected items in Page dictionary */ - for (i = 0; pagedictkeys[i] != NULL; i++) { -- pageDict->lookupNF(pagedictkeys[i], &obj1); -+ obj1 = pageDict->lookupNF(pagedictkeys[i]); - if (!obj1.isNull()) { - pdf_add_name(pdf, pagedictkeys[i]); - /* preserves indirection */ - copyObject(pdf, pdf_doc, &obj1); - } -- obj1.free(); - } - /* - If there are no Resources in the Page dict of the embedded page, -@@ -808,32 +802,28 @@ - PDF file, climbing up the tree until the Resources are found. - (This fixes a problem with Scribus 1.3.3.14.) - */ -- pageDict->lookupNF("Resources", &obj1); -+ obj1 = pageDict->lookupNF("Resources"); - if (obj1.isNull()) { - op1 = &pagesobj1; - op2 = &pagesobj2; -- pageDict->lookup("Parent", op1); -+ *op1 = pageDict->lookup("Parent"); - while (op1->isDict()) { -- obj1.free(); -- op1->dictLookupNF("Resources", &obj1); -+ obj1 = op1->dictLookupNF("Resources"); - if (!obj1.isNull()) { - pdf_add_name(pdf, "Resources"); - copyObject(pdf, pdf_doc, &obj1); - break; - } -- op1->dictLookup("Parent", op2); -+ *op2 = op1->dictLookup("Parent"); - optmp = op1; - op1 = op2; - op2 = optmp; -- op2->free(); - }; - if (!op1->isDict()) - formatted_warning("pdf inclusion","Page /Resources missing"); -- op1->free(); - } -- obj1.free(); - /* Write the Page contents. */ -- page->getContents(&contents); -+ contents = page->getContents(); - if (contents.isStream()) { - /* - Variant A: get stream and recompress under control of \pdfcompresslevel -@@ -844,27 +834,23 @@ - - Variant B: copy stream without recompressing - */ -- contents.streamGetDict()->lookup("F", &obj1); -+ obj1 = contents.streamGetDict()->lookup("F"); - if (!obj1.isNull()) { - normal_error("pdf inclusion","unsupported external stream"); - } -- obj1.free(); -- contents.streamGetDict()->lookup("Length", &obj1); -+ obj1 = contents.streamGetDict()->lookup("Length"); - pdf_add_name(pdf, "Length"); - copyObject(pdf, pdf_doc, &obj1); -- obj1.free(); -- contents.streamGetDict()->lookup("Filter", &obj1); -+ obj1 = contents.streamGetDict()->lookup("Filter"); - if (!obj1.isNull()) { - pdf_add_name(pdf, "Filter"); - copyObject(pdf, pdf_doc, &obj1); -- obj1.free(); -- contents.streamGetDict()->lookup("DecodeParms", &obj1); -+ obj1 = contents.streamGetDict()->lookup("DecodeParms"); - if (!obj1.isNull()) { - pdf_add_name(pdf, "DecodeParms"); - copyObject(pdf, pdf_doc, &obj1); - } - } -- obj1.free(); - pdf_end_dict(pdf); - pdf_begin_stream(pdf); - copyStreamStream(pdf, contents.getStream()->getUndecodedStream()); -@@ -875,8 +861,8 @@ - pdf_end_dict(pdf); - pdf_begin_stream(pdf); - for (i = 0, l = contents.arrayGetLength(); i < l; ++i) { -- copyStreamStream(pdf, (contents.arrayGet(i, &obj1))->getStream()); -- obj1.free(); -+ obj1 = contents.arrayGet(i); -+ copyStreamStream(pdf, obj1.getStream()); - if (i < (l - 1)) { - /* - Put a space between streams to be on the safe side (streams -@@ -897,8 +883,6 @@ - } - /* write out all indirect objects */ - writeRefs(pdf, pdf_doc); -- contents.free(); -- pageobj.free(); - /* - unrefPdfDocument() must come after contents.free() and pageobj.free()! - TH: The next line makes repeated pdf inclusion unacceptably slow -diff -ur source.orig/texk/web2c/luatexdir/lua/lepdflib.cc source/texk/web2c/luatexdir/lua/lepdflib.cc ---- source.orig/texk/web2c/luatexdir/lua/lepdflib.cc 2017-05-08 22:39:36.689375107 +0200 -+++ source/texk/web2c/luatexdir/lua/lepdflib.cc 2017-09-19 09:48:19.658021769 +0200 -@@ -538,7 +538,7 @@ - pdfdoc_changed_error(L); \ - uout = new_Object_userdata(L); \ - uout->d = new Object(); \ -- ((in *) uin->d)->function((Object *) uout->d); \ -+ *((Object *)uout->d) = ((in *) uin->d)->function(); \ - uout->atype = ALLOC_LEPDF; \ - uout->pc = uin->pc; \ - uout->pd = uin->pd; \ -@@ -668,13 +668,11 @@ - - static int m_Array_incRef(lua_State * L) - { -- int i; - udstruct *uin; - uin = (udstruct *) luaL_checkudata(L, 1, M_Array); - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); -- i = ((Array *) uin->d)->incRef(); -- lua_pushinteger(L, i); -+ lua_pushinteger(L, 1); - return 1; - } - -@@ -685,8 +683,7 @@ - uin = (udstruct *) luaL_checkudata(L, 1, M_Array); - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); -- i = ((Array *) uin->d)->decRef(); -- lua_pushinteger(L, i); -+ lua_pushinteger(L, 1); - return 1; - } - -@@ -702,7 +699,7 @@ - if ((uin->pd != NULL && uin->pd->pc != uin->pc) - || (uobj->pd != NULL && uobj->pd->pc != uobj->pc)) - pdfdoc_changed_error(L); -- ((Array *) uin->d)->add(((Object *) uobj->d)); -+ ((Array *) uin->d)->add(std::move(*((Object *) uobj->d))); - return 0; - } - -@@ -718,7 +715,7 @@ - if (i > 0 && i <= len) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Array *) uin->d)->get(i - 1, (Object *) uout->d); -+ *((Object *) uout->d) = ((Array *) uin->d)->get(i - 1); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -739,7 +736,7 @@ - if (i > 0 && i <= len) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Array *) uin->d)->getNF(i - 1, (Object *) uout->d); -+ *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -953,25 +950,21 @@ - - static int m_Dict_incRef(lua_State * L) - { -- int i; - udstruct *uin; - uin = (udstruct *) luaL_checkudata(L, 1, M_Dict); - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); -- i = ((Dict *) uin->d)->incRef(); -- lua_pushinteger(L, i); -+ lua_pushinteger(L, 1); - return 1; - } - - static int m_Dict_decRef(lua_State * L) - { -- int i; - udstruct *uin; - uin = (udstruct *) luaL_checkudata(L, 1, M_Dict); - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); -- i = ((Dict *) uin->d)->decRef(); -- lua_pushinteger(L, i); -+ lua_pushinteger(L, 1); - return 1; - } - -@@ -986,7 +979,7 @@ - pdfdoc_changed_error(L); - s = copyString(luaL_checkstring(L, 2)); - uobj = (udstruct *) luaL_checkudata(L, 3, M_Object); -- ((Dict *) uin->d)->add(s, ((Object *) uobj->d)); -+ ((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d))); - return 0; - } - -@@ -999,7 +992,7 @@ - pdfdoc_changed_error(L); - s = luaL_checkstring(L, 2); - uobj = (udstruct *) luaL_checkudata(L, 3, M_Object); -- ((Dict *) uin->d)->set(s, ((Object *) uobj->d)); -+ ((Dict *) uin->d)->set(s, std::move(*((Object *) uobj->d))); - return 0; - } - -@@ -1027,7 +1020,7 @@ - s = luaL_checkstring(L, 2); - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Dict *) uin->d)->lookup(s, (Object *) uout->d); -+ *((Object *) uout->d) = ((Dict *) uin->d)->lookup(s); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1044,7 +1037,7 @@ - s = luaL_checkstring(L, 2); - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Dict *) uin->d)->lookupNF(s, (Object *) uout->d); -+ *((Object *) uout->d) = ((Dict *) uin->d)->lookupNF(s); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1096,7 +1089,7 @@ - if (i > 0 && i <= len) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Dict *) uin->d)->getVal(i - 1, (Object *) uout->d); -+ *((Object *) uout->d) = ((Dict *) uin->d)->getVal(i - 1); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1117,7 +1110,7 @@ - if (i > 0 && i <= len) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Dict *) uin->d)->getValNF(i - 1, (Object *) uout->d); -+ *((Object *) uout->d) = ((Dict *) uin->d)->getValNF(i - 1); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1381,9 +1374,9 @@ - pdfdoc_changed_error(L); - luaL_checktype(L, 2, LUA_TBOOLEAN); - if (lua_toboolean(L, 2) != 0) -- ((Object *) uin->d)->initBool(gTrue); -+ *((Object *) uin->d) = Object(gTrue); - else -- ((Object *) uin->d)->initBool(gFalse); -+ *((Object *) uin->d) = Object(gFalse); - return 0; - } - -@@ -1395,7 +1388,7 @@ - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); - i = luaL_checkint(L, 2); -- ((Object *) uin->d)->initInt(i); -+ *((Object *) uin->d) = Object(i); - return 0; - } - -@@ -1407,7 +1400,7 @@ - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); - d = luaL_checknumber(L, 2); -- ((Object *) uin->d)->initReal(d); -+ *((Object *) uin->d) = Object(d); - return 0; - } - -@@ -1422,7 +1415,7 @@ - pdfdoc_changed_error(L); - s = luaL_checklstring(L, 2, &len); - gs = new GooString(s, len); -- ((Object *) uin->d)->initString(gs); -+ *((Object *) uin->d) = Object(gs); - return 0; - } - -@@ -1434,7 +1427,7 @@ - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); - s = luaL_checkstring(L, 2); -- ((Object *) uin->d)->initName(s); -+ *((Object *) uin->d) = Object(objName, s); - return 0; - } - -@@ -1444,13 +1437,14 @@ - uin = (udstruct *) luaL_checkudata(L, 1, M_Object); - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); -- ((Object *) uin->d)->initNull(); -+ *((Object *) uin->d) = Object(objNull); - return 0; - } - - static int m_Object_initArray(lua_State * L) - { - udstruct *uin, *uxref; -+ Array *a; - uin = (udstruct *) luaL_checkudata(L, 1, M_Object); - uxref = (udstruct *) luaL_checkudata(L, 2, M_XRef); - if (uin->pd != NULL && uxref->pd != NULL && uin->pd != uxref->pd) -@@ -1458,7 +1452,8 @@ - if ((uin->pd != NULL && uin->pd->pc != uin->pc) - || (uxref->pd != NULL && uxref->pd->pc != uxref->pc)) - pdfdoc_changed_error(L); -- ((Object *) uin->d)->initArray((XRef *) uxref->d); -+ a = new Array((XRef *) uxref->d); -+ *((Object *) uin->d) = Object(a); - return 0; - } - -@@ -1469,6 +1464,7 @@ - static int m_Object_initDict(lua_State * L) - { - udstruct *uin, *uxref; -+ Dict *d; - uin = (udstruct *) luaL_checkudata(L, 1, M_Object); - uxref = (udstruct *) luaL_checkudata(L, 2, M_XRef); - if (uin->pd != NULL && uxref->pd != NULL && uin->pd != uxref->pd) -@@ -1476,7 +1472,8 @@ - if ((uin->pd != NULL && uin->pd->pc != uin->pc) - || (uxref->pd != NULL && uxref->pd->pc != uxref->pc)) - pdfdoc_changed_error(L); -- ((Object *) uin->d)->initDict((XRef *) uxref->d); -+ d = new Dict((XRef *) uxref->d); -+ *((Object *) uin->d) = Object(d); - return 0; - } - -@@ -1490,7 +1487,7 @@ - if ((uin->pd != NULL && uin->pd->pc != uin->pc) - || (ustream->pd != NULL && ustream->pd->pc != ustream->pc)) - pdfdoc_changed_error(L); -- ((Object *) uin->d)->initStream((Stream *) ustream->d); -+ *((Object *) uin->d) = Object((Stream *) ustream->d); - return 0; - } - -@@ -1503,7 +1500,7 @@ - pdfdoc_changed_error(L); - num = luaL_checkint(L, 2); - gen = luaL_checkint(L, 3); -- ((Object *) uin->d)->initRef(num, gen); -+ *((Object *) uin->d) = Object(num, gen); - return 0; - } - -@@ -1515,7 +1512,7 @@ - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); - s = luaL_checkstring(L, 2); -- ((Object *) uin->d)->initCmd(CHARP_CAST s); -+ *((Object *) uin->d) = Object(objCmd, CHARP_CAST s); - return 0; - } - -@@ -1525,7 +1522,7 @@ - uin = (udstruct *) luaL_checkudata(L, 1, M_Object); - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); -- ((Object *) uin->d)->initError(); -+ *((Object *) uin->d) = Object(objError); - return 0; - } - -@@ -1535,7 +1532,7 @@ - uin = (udstruct *) luaL_checkudata(L, 1, M_Object); - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); -- ((Object *) uin->d)->initEOF(); -+ *((Object *) uin->d) = Object(objEOF); - return 0; - } - -@@ -1551,7 +1548,7 @@ - pdfdoc_changed_error(L); - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Object *) uin->d)->fetch((XRef *) uxref->d, (Object *) uout->d); -+ *((Object *) uout->d) = ((Object *) uin->d)->fetch((XRef *) uxref->d); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1816,7 +1813,7 @@ - pdfdoc_changed_error(L); - if (!((Object *) uin->d)->isArray()) - luaL_error(L, "Object is not an Array"); -- ((Object *) uin->d)->arrayAdd((Object *) uobj->d); -+ ((Object *) uin->d)->arrayAdd(std::move(*((Object *) uobj->d))); - return 0; - } - -@@ -1833,7 +1830,7 @@ - if (i > 0 && i <= len) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Object *) uin->d)->arrayGet(i - 1, (Object *) uout->d); -+ *((Object *) uout->d) = ((Object *) uin->d)->arrayGet(i - 1); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1857,7 +1854,7 @@ - if (i > 0 && i <= len) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Object *) uin->d)->arrayGetNF(i - 1, (Object *) uout->d); -+ *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1897,7 +1894,7 @@ - pdfdoc_changed_error(L); - if (!((Object *) uin->d)->isDict()) - luaL_error(L, "Object is not a Dict"); -- ((Object *) uin->d)->dictAdd(copyString(s), (Object *) uobj->d); -+ ((Object *) uin->d)->dictAdd(copyString(s), std::move(*((Object *) uobj->d))); - return 0; - } - -@@ -1915,7 +1912,7 @@ - pdfdoc_changed_error(L); - if (!((Object *) uin->d)->isDict()) - luaL_error(L, "Object is not a Dict"); -- ((Object *) uin->d)->dictSet(s, (Object *) uobj->d); -+ ((Object *) uin->d)->dictSet(s, std::move(*((Object *) uobj->d))); - return 0; - } - -@@ -1930,7 +1927,7 @@ - if (((Object *) uin->d)->isDict()) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Object *) uin->d)->dictLookup(s, (Object *) uout->d); -+ *((Object *) uout->d) = ((Object *) uin->d)->dictLookup(s); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1950,7 +1947,7 @@ - if (((Object *) uin->d)->isDict()) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Object *) uin->d)->dictLookupNF(s, (Object *) uout->d); -+ *((Object *) uout->d) = ((Object *) uin->d)->dictLookupNF(s); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -1991,7 +1988,7 @@ - if (i > 0 && i <= len) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Object *) uin->d)->dictGetVal(i - 1, (Object *) uout->d); -+ *((Object *) uout->d) = ((Object *) uin->d)->dictGetVal(i - 1); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -2015,7 +2012,7 @@ - if (i > 0 && i <= len) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((Object *) uin->d)->dictGetValNF(i - 1, (Object *) uout->d); -+ *((Object *) uout->d) = ((Object *) uin->d)->dictGetValNF(i - 1); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -2243,7 +2240,7 @@ - m_poppler_get_poppler(Page, Dict, getPieceInfo); - m_poppler_get_poppler(Page, Dict, getSeparationInfo); - m_poppler_get_poppler(Page, Dict, getResourceDict); --m_poppler_get_OBJECT(Page, getAnnots); -+m_poppler_get_OBJECT(Page, getAnnotsObject); - - m_poppler_get_OBJECT(Page, getContents); - -@@ -2270,7 +2267,7 @@ - {"getPieceInfo", m_Page_getPieceInfo}, - {"getSeparationInfo", m_Page_getSeparationInfo}, - {"getResourceDict", m_Page_getResourceDict}, -- {"getAnnots", m_Page_getAnnots}, -+ {"getAnnots", m_Page_getAnnotsObject}, - {"getContents", m_Page_getContents}, - {"__tostring", m_Page__tostring}, - {NULL, NULL} // sentinel -@@ -2520,7 +2517,7 @@ - if (((PdfDocument *) uin->d)->doc->getXRef()->isOk()) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((PdfDocument *) uin->d)->doc->getDocInfo((Object *) uout->d); -+ *((Object *) uout->d) = ((PdfDocument *) uin->d)->doc->getDocInfo(); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -2538,7 +2535,7 @@ - if (((PdfDocument *) uin->d)->doc->getXRef()->isOk()) { - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((PdfDocument *) uin->d)->doc->getDocInfoNF((Object *) uout->d); -+ *((Object *) uout->d) = ((PdfDocument *) uin->d)->doc->getDocInfoNF(); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -2841,7 +2838,7 @@ - uout = new_Object_userdata(L); - uout->d = new Object(); - origin = (Object *) (((Attribute *) uin->d)->getValue()); -- origin->copy ( ((Object *)uout->d) ); -+ *((Object *) uout->d) = origin->copy(); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -3320,7 +3317,7 @@ - parent = root->findParentElement(i-1); - if (parent != NULL) { - uout = new_StructElement_userdata(L); -- uout->d = new StructElement( *parent ); -+ uout->d = (StructElement *) parent; - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -@@ -3370,7 +3367,7 @@ - gen = luaL_checkint(L, 3); - uout = new_Object_userdata(L); - uout->d = new Object(); -- ((XRef *) uin->d)->fetch(num, gen, (Object *) uout->d); -+ *((Object *) uout->d) = ((XRef *) uin->d)->fetch(num, gen); - uout->atype = ALLOC_LEPDF; - uout->pc = uin->pc; - uout->pd = uin->pd; -diff -ur source.orig/texk/web2c/luatexdir/lua/lpdfscannerlib.cc source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc ---- source.orig/texk/web2c/luatexdir/lua/lpdfscannerlib.cc 2017-05-08 22:39:36.692708395 +0200 -+++ source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc 2017-09-19 09:48:19.658021769 +0200 -@@ -634,7 +634,7 @@ - int i; - for (i=0;iget(i, val); -+ *val = arrayref->get(i); - if (val->isStream()) { - ObjectList *rover = self->_streams; - ObjectList *item = (ObjectList *)priv_xmalloc (sizeof(ObjectList)); -diff -ur source.orig/texk/web2c/pdftexdir/pdftoepdf.cc source/texk/web2c/pdftexdir/pdftoepdf.cc ---- source.orig/texk/web2c/pdftexdir/pdftoepdf.cc 2017-06-16 21:49:09.293857387 +0200 -+++ source/texk/web2c/pdftexdir/pdftoepdf.cc 2017-09-19 09:48:19.661355046 +0200 -@@ -84,31 +84,6 @@ - #define MASK_SUPPRESS_PTEX_PAGENUMBER 0x04 - #define MASK_SUPPRESS_PTEX_INFODICT 0x08 - --// PdfObject encapsulates the xpdf Object type, --// and properly frees its resources on destruction. --// Use obj-> to access members of the Object, --// and &obj to get a pointer to the object. --// It is no longer necessary to call Object::free explicitely. -- --class PdfObject { -- public: -- PdfObject() { // nothing -- } ~PdfObject() { -- iObject.free(); -- } -- Object *operator->() { -- return &iObject; -- } -- Object *operator&() { -- return &iObject; -- } -- private: // no copying or assigning -- PdfObject(const PdfObject &); -- void operator=(const PdfObject &); -- public: -- Object iObject; --}; -- - // When copying the Resources of the selected page, all objects are copied - // recusively top-down. Indirect objects however are not fetched during - // copying, but get a new object number from pdfTeX and then will be -@@ -212,18 +187,6 @@ - delete pdf_doc; - } - --// Replacement for --// Object *initDict(Dict *dict1){ initObj(objDict); dict = dict1; return this; } -- --static void initDictFromDict(PdfObject & obj, Dict * dict) --{ -- obj->initDict(xref); -- for (int i = 0, l = dict->getLength(); i < l; i++) { -- Object obj1; -- obj->dictAdd(copyString(dict->getKey(i)), dict->getValNF(i, &obj1)); -- } --} -- - // -------------------------------------------------------------------- - - static int addEncoding(GfxFont * gfont) -@@ -320,10 +283,10 @@ - - static void copyDictEntry(Object * obj, int i) - { -- PdfObject obj1; -+ Object obj1; - copyName(obj->dictGetKey(i)); - pdf_puts(" "); -- obj->dictGetValNF(i, &obj1); -+ obj1 = obj->dictGetValNF(i); - copyObject(&obj1); - pdf_puts("\n"); - } -@@ -376,17 +339,17 @@ - static void copyProcSet(Object * obj) - { - int i, l; -- PdfObject procset; -+ Object procset; - if (!obj->isArray()) - pdftex_fail("PDF inclusion: invalid ProcSet array type <%s>", - obj->getTypeName()); - pdf_puts("/ProcSet [ "); - for (i = 0, l = obj->arrayGetLength(); i < l; ++i) { -- obj->arrayGetNF(i, &procset); -- if (!procset->isName()) -+ procset = obj->arrayGetNF(i); -+ if (!procset.isName()) - pdftex_fail("PDF inclusion: invalid ProcSet entry type <%s>", -- procset->getTypeName()); -- copyName(procset->getName()); -+ procset.getTypeName()); -+ copyName(procset.getName()); - pdf_puts(" "); - } - pdf_puts("]\n"); -@@ -396,7 +359,7 @@ - - static void copyFont(char *tag, Object * fontRef) - { -- PdfObject fontdict, subtype, basefont, fontdescRef, fontdesc, charset, -+ Object fontdict, subtype, basefont, fontdescRef, fontdesc, charset, - fontfile, ffsubtype, stemV; - GfxFont *gfont; - fd_entry *fd; -@@ -413,33 +376,49 @@ - } - // Only handle included Type1 (and Type1C) fonts; anything else will be copied. - // Type1C fonts are replaced by Type1 fonts, if REPLACE_TYPE1C is true. -- if (!fixedinclusioncopyfont && fontRef->fetch(xref, &fontdict)->isDict() -- && fontdict->dictLookup("Subtype", &subtype)->isName() -- && !strcmp(subtype->getName(), "Type1") -- && fontdict->dictLookup("BaseFont", &basefont)->isName() -- && fontdict->dictLookupNF("FontDescriptor", &fontdescRef)->isRef() -- && fontdescRef->fetch(xref, &fontdesc)->isDict() -- && (fontdesc->dictLookup("FontFile", &fontfile)->isStream() -- || (REPLACE_TYPE1C -- && fontdesc->dictLookup("FontFile3", &fontfile)->isStream() -- && fontfile->streamGetDict()->lookup("Subtype", -- &ffsubtype)->isName() -- && !strcmp(ffsubtype->getName(), "Type1C"))) -- && (fontmap = lookup_fontmap(basefont->getName())) != NULL) { -+ fontdict = fontRef->fetch(xref); -+ if (fontdict.isDict()) { -+ subtype = fontdict.dictLookup("Subtype"); -+ basefont = fontdict.dictLookup("BaseFont"); -+ fontdescRef = fontdict.dictLookupNF("FontDescriptor"); -+ if (fontdescRef.isRef()) { -+ fontdesc = fontdescRef.fetch(xref); -+ if (fontdesc.isDict()) { -+ fontfile = fontdesc.dictLookup("FontFile"); -+ if (!fontfile.isStream() && REPLACE_TYPE1C) { -+ fontfile = fontdesc.dictLookup("FontFile3"); -+ ffsubtype = fontfile.streamGetDict()->lookup("Subtype"); -+ if (!(ffsubtype.isName() && !strcmp(ffsubtype.getName(), "Type1C"))) { -+ // not a Type1-C font. -+ fontfile = Object(objNull); -+ } -+ } -+ } -+ } -+ } -+ if (!fixedinclusioncopyfont && fontdict.isDict() -+ && subtype.isName() -+ && !strcmp(subtype.getName(), "Type1") -+ && basefont.isName() -+ && fontdescRef.isRef() -+ && fontdesc.isDict() -+ && fontfile.isStream() -+ && (fontmap = lookup_fontmap(basefont.getName())) != NULL) { - // round /StemV value, since the PDF input is a float - // (see Font Descriptors in PDF reference), but we only store an - // integer, since we don't want to change the struct. -- fontdesc->dictLookup("StemV", &stemV); -- fd = epdf_create_fontdescriptor(fontmap, zround(stemV->getNum())); -- if (fontdesc->dictLookup("CharSet", &charset) && -- charset->isString() && is_subsetable(fontmap)) -- epdf_mark_glyphs(fd, charset->getString()->getCString()); -+ stemV = fontdesc.dictLookup("StemV"); -+ fd = epdf_create_fontdescriptor(fontmap, zround(stemV.getNum())); -+ charset = fontdesc.dictLookup("CharSet"); -+ if (!charset.isNull() && -+ charset.isString() && is_subsetable(fontmap)) -+ epdf_mark_glyphs(fd, charset.getString()->getCString()); - else - embed_whole_font(fd); -- addFontDesc(fontdescRef->getRef(), fd); -+ addFontDesc(fontdescRef.getRef(), fd); - copyName(tag); - gfont = GfxFont::makeFont(xref, tag, fontRef->getRef(), -- fontdict->getDict()); -+ fontdict.getDict()); - pdf_printf(" %d 0 R ", addFont(fontRef->getRef(), fd, - addEncoding(gfont))); - } else { -@@ -451,24 +430,24 @@ - - static void copyFontResources(Object * obj) - { -- PdfObject fontRef; -+ Object fontRef; - int i, l; - if (!obj->isDict()) - pdftex_fail("PDF inclusion: invalid font resources dict type <%s>", - obj->getTypeName()); - pdf_puts("/Font << "); - for (i = 0, l = obj->dictGetLength(); i < l; ++i) { -- obj->dictGetValNF(i, &fontRef); -- if (fontRef->isRef()) -+ fontRef = obj->dictGetValNF(i); -+ if (fontRef.isRef()) - copyFont(obj->dictGetKey(i), &fontRef); -- else if (fontRef->isDict()) { // some programs generate pdf with embedded font object -+ else if (fontRef.isDict()) { // some programs generate pdf with embedded font object - copyName(obj->dictGetKey(i)); - pdf_puts(" "); - copyObject(&fontRef); - } - else - pdftex_fail("PDF inclusion: invalid font in reference type <%s>", -- fontRef->getTypeName()); -+ fontRef.getTypeName()); - } - pdf_puts(">>\n"); - } -@@ -557,7 +536,7 @@ - - static void copyObject(Object * obj) - { -- PdfObject obj1; -+ Object obj1; - int i, l, c; - Ref ref; - char *p; -@@ -601,8 +580,8 @@ - } else if (obj->isArray()) { - pdf_puts("["); - for (i = 0, l = obj->arrayGetLength(); i < l; ++i) { -- obj->arrayGetNF(i, &obj1); -- if (!obj1->isName()) -+ obj1 = obj->arrayGetNF(i); -+ if (!obj1.isName()) - pdf_puts(" "); - copyObject(&obj1); - } -@@ -612,7 +591,7 @@ - copyDict(obj); - pdf_puts(">>"); - } else if (obj->isStream()) { -- initDictFromDict(obj1, obj->streamGetDict()); -+ obj1 = Object(obj->streamGetDict()); - pdf_puts("<<\n"); - copyDict(&obj1); - pdf_puts(">>\n"); -@@ -638,9 +617,8 @@ - InObj *r; - for (r = inObjList; r != 0; r = r->next) { - if (!r->written) { -- Object obj1; - r->written = 1; -- xref->fetch(r->ref.num, r->ref.gen, &obj1); -+ Object obj1 = xref->fetch(r->ref.num, r->ref.gen); - if (r->type == objFont) { - assert(!obj1.isStream()); - pdfbeginobj(r->num, 2); // \pdfobjcompresslevel = 2 is for this -@@ -656,7 +634,6 @@ - pdf_puts("\n"); - pdfendobj(); - } -- obj1.free(); - } - } - } -@@ -839,8 +816,8 @@ - Page *page; - Ref *pageRef; - Dict *pageDict; -- PdfObject contents, obj1, obj2, pageObj, dictObj; -- PdfObject groupDict; -+ Object contents, obj1, obj2, pageObj, dictObj; -+ Object groupDict; - bool writeSepGroup = false; - Object info; - char *key; -@@ -867,8 +844,8 @@ - encodingList = 0; - page = pdf_doc->doc->getCatalog()->getPage(epdf_selected_page); - pageRef = pdf_doc->doc->getCatalog()->getPageRef(epdf_selected_page); -- xref->fetch(pageRef->num, pageRef->gen, &pageObj); -- pageDict = pageObj->getDict(); -+ pageObj = xref->fetch(pageRef->num, pageRef->gen); -+ pageDict = pageObj.getDict(); - rotate = page->getRotate(); - PDFRectangle *pagebox; - // write the Page header -@@ -886,7 +863,7 @@ - pdf_printf("/%s.PageNumber %i\n", pdfkeyprefix, (int) epdf_selected_page); - } - if ((suppress_ptex_info & MASK_SUPPRESS_PTEX_INFODICT) == 0) { -- pdf_doc->doc->getDocInfoNF(&info); -+ info = pdf_doc->doc->getDocInfoNF(); - if (info.isRef()) { - // the info dict must be indirect (PDF Ref p. 61) - pdf_printf("/%s.InfoDict ", pdfkeyprefix); -@@ -942,14 +919,14 @@ - pdf_puts(stripzeros(s)); - - // Metadata validity check (as a stream it must be indirect) -- pageDict->lookupNF("Metadata", &dictObj); -- if (!dictObj->isNull() && !dictObj->isRef()) -+ dictObj = pageDict->lookupNF("Metadata"); -+ if (!dictObj.isNull() && !dictObj.isRef()) - pdftex_warn("PDF inclusion: /Metadata must be indirect object"); - - // copy selected items in Page dictionary except Resources & Group - for (i = 0; pageDictKeys[i] != NULL; i++) { -- pageDict->lookupNF(pageDictKeys[i], &dictObj); -- if (!dictObj->isNull()) { -+ dictObj = pageDict->lookupNF(pageDictKeys[i]); -+ if (!dictObj.isNull()) { - pdf_newline(); - pdf_printf("/%s ", pageDictKeys[i]); - copyObject(&dictObj); // preserves indirection -@@ -957,8 +934,8 @@ - } - - // handle page group -- pageDict->lookupNF("Group", &dictObj); -- if (!dictObj->isNull()) { -+ dictObj = pageDict->lookupNF("Group"); -+ if (!dictObj.isNull()) { - if (pdfpagegroupval == 0) { - // another pdf with page group was included earlier on the - // same page; copy the Group entry as is. See manual for -@@ -972,11 +949,11 @@ - copyObject(&dictObj); - } else { - // write Group dict as a separate object, since the Page dict also refers to it -- pageDict->lookup("Group", &dictObj); -- if (!dictObj->isDict()) -+ dictObj = pageDict->lookup("Group"); -+ if (!dictObj.isDict()) - pdftex_fail("PDF inclusion: /Group dict missing"); - writeSepGroup = true; -- initDictFromDict(groupDict, page->getGroup()); -+ groupDict = Object(page->getGroup()); - pdf_printf("/Group %ld 0 R\n", (long)pdfpagegroupval); - } - } -@@ -989,15 +966,15 @@ - pdftex_warn - ("PDF inclusion: /Resources missing. 'This practice is not recommended' (PDF Ref)"); - } else { -- initDictFromDict(obj1, page->getResourceDict()); -- if (!obj1->isDict()) -+ obj1 = Object(page->getResourceDict()); -+ if (!obj1.isDict()) - pdftex_fail("PDF inclusion: invalid resources dict type <%s>", -- obj1->getTypeName()); -+ obj1.getTypeName()); - pdf_newline(); - pdf_puts("/Resources <<\n"); -- for (i = 0, l = obj1->dictGetLength(); i < l; ++i) { -- obj1->dictGetVal(i, &obj2); -- key = obj1->dictGetKey(i); -+ for (i = 0, l = obj1.dictGetLength(); i < l; ++i) { -+ obj2 = obj1.dictGetVal(i); -+ key = obj1.dictGetKey(i); - if (strcmp("Font", key) == 0) - copyFontResources(&obj2); - else if (strcmp("ProcSet", key) == 0) -@@ -1009,8 +986,8 @@ - } - - // write the page contents -- page->getContents(&contents); -- if (contents->isStream()) { -+ contents = page->getContents(); -+ if (contents.isStream()) { - - // Variant A: get stream and recompress under control - // of \pdfcompresslevel -@@ -1021,36 +998,35 @@ - - // Variant B: copy stream without recompressing - // -- contents->streamGetDict()->lookup("F", &obj1); -- if (!obj1->isNull()) { -+ obj1 = contents.streamGetDict()->lookup("F"); -+ if (!obj1.isNull()) { - pdftex_fail("PDF inclusion: Unsupported external stream"); - } -- contents->streamGetDict()->lookup("Length", &obj1); -- assert(!obj1->isNull()); -+ obj1 = contents.streamGetDict()->lookup("Length"); -+ assert(!obj1.isNull()); - pdf_puts("/Length "); - copyObject(&obj1); - pdf_puts("\n"); -- contents->streamGetDict()->lookup("Filter", &obj1); -- if (!obj1->isNull()) { -+ obj1 = contents.streamGetDict()->lookup("Filter"); -+ if (!obj1.isNull()) { - pdf_puts("/Filter "); - copyObject(&obj1); - pdf_puts("\n"); -- contents->streamGetDict()->lookup("DecodeParms", &obj1); -- if (!obj1->isNull()) { -+ obj1 = contents.streamGetDict()->lookup("DecodeParms"); -+ if (!obj1.isNull()) { - pdf_puts("/DecodeParms "); - copyObject(&obj1); - pdf_puts("\n"); - } - } - pdf_puts(">>\nstream\n"); -- copyStream(contents->getStream()->getUndecodedStream()); -+ copyStream(contents.getStream()->getUndecodedStream()); - pdfendstream(); -- } else if (contents->isArray()) { -+ } else if (contents.isArray()) { - pdfbeginstream(); -- for (i = 0, l = contents->arrayGetLength(); i < l; ++i) { -- Object contentsobj; -- copyStream((contents->arrayGet(i, &contentsobj))->getStream()); -- contentsobj.free(); -+ for (i = 0, l = contents.arrayGetLength(); i < l; ++i) { -+ Object contentsobj = contents.arrayGet(i); -+ copyStream(contentsobj.getStream()); - if (i < l - 1) - pdf_newline(); // add a newline after each stream except the last - } -diff -ur source.orig/texk/web2c/pdftexdir/pdftosrc.cc source/texk/web2c/pdftexdir/pdftosrc.cc ---- source.orig/texk/web2c/pdftexdir/pdftosrc.cc 2017-06-16 21:49:09.297190679 +0200 -+++ source/texk/web2c/pdftexdir/pdftosrc.cc 2017-09-19 09:48:19.661355046 +0200 -@@ -86,22 +86,20 @@ - objgen = atoi(argv[3]); - } - xref = doc->getXRef(); -- catalogDict.initNull(); -- xref->getCatalog(&catalogDict); -+ catalogDict = xref->getCatalog(); - if (!catalogDict.isDict("Catalog")) { - fprintf(stderr, "No Catalog found\n"); - exit(1); - } -- srcStream.initNull(); -+ srcStream = Object(objNull); - if (objnum == 0) { -- catalogDict.dictLookup("SourceObject", &srcStream); -+ srcStream = catalogDict.dictLookup("SourceObject"); - static char const_SourceFile[] = "SourceFile"; - if (!srcStream.isStream(const_SourceFile)) { - fprintf(stderr, "No SourceObject found\n"); - exit(1); - } -- srcName.initNull(); -- srcStream.getStream()->getDict()->lookup("SourceName", &srcName); -+ srcName = srcStream.getStream()->getDict()->lookup("SourceName"); - if (!srcName.isString()) { - fprintf(stderr, "No SourceName found\n"); - exit(1); -@@ -110,7 +108,7 @@ - // We cannot free srcName, as objname shares its string. - // srcName.free(); - } else if (objnum > 0) { -- xref->fetch(objnum, objgen, &srcStream); -+ srcStream = xref->fetch(objnum, objgen); - if (!srcStream.isStream()) { - fprintf(stderr, "Not a Stream object\n"); - exit(1); -@@ -159,29 +157,26 @@ - int localOffset = 0; - Guint firstOffset; - -- assert(xref->fetch(e->offset, 0, &objStr)->isStream()); -- nObjects = objStr.streamGetDict()->lookup("N", &obj1)->getInt(); -- obj1.free(); -- first = objStr.streamGetDict()->lookup("First", &obj1)->getInt(); -- obj1.free(); -+ objStr = xref->fetch(e->offset, 0); -+ assert(objStr.isStream()); -+ obj1 = objStr.streamGetDict()->lookup("N"); -+ nObjects = obj1.getInt(); -+ obj1 = objStr.streamGetDict()->lookup("First"); -+ first = obj1.getInt(); - firstOffset = objStr.getStream()->getBaseStream()->getStart() + first; - - // parse the header: object numbers and offsets - objStr.streamReset(); -- obj1.initNull(); -- str = new EmbedStream(objStr.getStream(), &obj1, gTrue, first); -+ str = new EmbedStream(objStr.getStream(), Object(objNull), gTrue, first); - parser = new Parser(xref, new Lexer(xref, str), gFalse); - for (n = 0; n < nObjects; ++n) { -- parser->getObj(&obj1); -- parser->getObj(&obj2); -+ obj1 = parser->getObj(); -+ obj2 = parser->getObj(); - if (n == e->gen) - localOffset = obj2.getInt(); -- obj1.free(); -- obj2.free(); - } - while (str->getChar() != EOF) ; - delete parser; -- objStr.free(); - - fprintf(outfile, "%.10lu 00000 n\n", - (long unsigned)(firstOffset + localOffset)); -@@ -192,7 +187,6 @@ - s->reset(); - while ((c = s->getChar()) != EOF) - fputc(c, outfile); -- srcStream.free(); - } - if (objnum == 0) - fprintf(stderr, "Source file extracted to %s\n", outname); -@@ -201,7 +195,6 @@ - else - fprintf(stderr, "Cross-reference table extracted to %s\n", outname); - fclose(outfile); -- catalogDict.free(); - delete doc; - delete globalParams; - } diff --git a/texlive-20180414-source.tar.xz b/texlive-20180414-source.tar.xz new file mode 100644 index 0000000..6d89cda --- /dev/null +++ b/texlive-20180414-source.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe0036d5f66708ad973cdc4e413c0bb9ee2385224481f7b0fb229700a0891e4e +size 49770944 diff --git a/texlive-rpmlintrc b/texlive-rpmlintrc index dd63f1d..8a1fc40 100644 --- a/texlive-rpmlintrc +++ b/texlive-rpmlintrc @@ -21,3 +21,5 @@ addFilter(".*zero-length.*") addFilter(".*dangling-symlink.*/usr/lib/mktex/public.*") addFilter(".*devel-dependency.*texlive-lua-visual-debug.*") addFilter(".*obsolete-not-provided.*") +addFilter(".*position-independent-executable-suggested.*") +addFilter(".*shared-lib-calls-exit.*") diff --git a/texlive.changes b/texlive.changes index 4927bbb..ffe7ad8 100644 --- a/texlive.changes +++ b/texlive.changes @@ -1,12 +1,47 @@ +------------------------------------------------------------------- +Wed May 2 10:22:22 UTC 2018 - werner@suse.de + +- Switch over to TeXLive 2018 final 20180414 + ------------------------------------------------------------------- Fri Apr 27 00:54:31 UTC 2018 - stefan.bruens@rwth-aachen.de - Add patch source-dvipdfm-x.dif to fix XeTeX bug #151 +------------------------------------------------------------------- +Mon Apr 23 11:11:21 UTC 2018 - werner@suse.de + +- Add patches + * source-m-tx-0.63a-buffer-overflow.dif + * source-synctex-bump-soname.dif as the API had changed and the + major version 1 does not fix anymore + * source-fix-synctex-missing-header-install.dif + * source-lua-poppler0640.dif + * source-synctex-bump-soname.dif + ------------------------------------------------------------------- Thu Apr 19 09:05:23 UTC 2018 - werner@suse.de -- Add patch source-lcdf-typetools.dif to help gcc8 (boo#1087075) +- Skip patch source-lcdf-typetools.dif as now upstream (boo#1087075) + +------------------------------------------------------------------- +Tue Apr 10 09:25:55 UTC 2018 - werner@suse.de + +- First initial snapshot of TeXLive pre 2018 +- Port patches + * biber-certs.dif + * source-64.dif + * source-a2ping.dif + * source-configure.dif + * source-dviutils.dif + * source-overflow.dif + * source-warns.dif + * source.dif +- Removed patches now upstream + * texlive-20170524-source-poppler059-1.patch + * source-poppler-0.59.1.dif + * source-luatex.dif + * source-maxpath.dif ------------------------------------------------------------------- Mon Apr 9 10:57:54 UTC 2018 - idonmez@suse.com diff --git a/texlive.spec b/texlive.spec index 3cead34..000c63c 100644 --- a/texlive.spec +++ b/texlive.spec @@ -16,11 +16,11 @@ # -%define texlive_version 2017 +%define texlive_version 2018 %define texlive_previous 2016 -%define texlive_release 20170520 +%define texlive_release 20180414 %define texlive_noarch 137 -%define texlive_source texlive-20170520-source +%define texlive_source texlive-20180414-source %define __perl_requires %{nil} %define __os_install_post /usr/lib/rpm/brp-compress \\\ @@ -145,6 +145,7 @@ BuildRequires: libpaper-devel BuildRequires: libpng-devel BuildRequires: libpoppler-devel BuildRequires: libsigsegv-devel +BuildRequires: libtool BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: mpfr-devel @@ -171,7 +172,7 @@ BuildRequires: pkgconfig(xmu) BuildRequires: pkgconfig(xpm) BuildRequires: pkgconfig(xt) %if %{with buildbiber} -BuildRequires: perl-base >= 5.24.1 +BuildRequires: perl-base >= 5.26.1 BuildRequires: perl(autovivification) #BuildRequires: perl(Business::ISBN) BuildRequires: perl-Business-ISBN @@ -194,6 +195,7 @@ BuildRequires: perl(Encode::HanExtra) BuildRequires: perl(Encode::JIS2K) BuildRequires: perl(ExtUtils::LibBuilder) >= 0.02 BuildRequires: perl(File::Slurp::Unicode) +BuildRequires: perl(File::Slurper) BuildRequires: perl(File::Which) BuildRequires: perl(IO::String) BuildRequires: perl(IPC::Cmd) @@ -209,6 +211,7 @@ BuildRequires: perl(Log::Log4perl) BuildRequires: perl(Module::Build) BuildRequires: perl(Package::DeprecationManager) BuildRequires: perl(Params::Util) +BuildRequires: perl(PerlIO::utf8_strict) BuildRequires: perl(Readonly::XS) BuildRequires: perl(Regexp::Common) BuildRequires: perl(Sort::Key) @@ -217,11 +220,11 @@ BuildRequires: perl(Test::Differences) BuildRequires: perl(Test::More) BuildRequires: perl(Test::Pod) >= 1.22 BuildRequires: perl(Test::Pod::Coverage) >= 1.08 -BuildRequires: perl(Text::BibTeX) >= 0.76 +BuildRequires: perl(Text::BibTeX) >= 0.85 BuildRequires: perl(Text::CSV) BuildRequires: perl(Text::CSV_XS) BuildRequires: perl(Text::Roman) -BuildRequires: perl(Unicode::Collate) >= 1.18 +BuildRequires: perl(Unicode::Collate) >= 1.25 BuildRequires: perl(Unicode::GCString) BuildRequires: perl(Unicode::LineBreak) BuildRequires: perl(Unicode::Normalize) >= 1.23 @@ -231,7 +234,7 @@ BuildRequires: perl(XML::Writer::String) %endif # Download at ftp://tug.org/texlive/historic/%{texlive_version}/ Source0: %{texlive_source}.tar.xz -Source3: biblatex-biber-2.7.tar.xz +Source3: biblatex-biber-2.11.tar.xz Source4: cnf-to-paths.awk Source30: texlive-rpmlintrc Source50: public.c @@ -243,32 +246,29 @@ Patch3: source-arraysubs.dif Patch5: source-texdoc.dif Patch6: source-dviutils.dif Patch8: source-psutils.dif -Patch9: source-luatex.dif Patch10: source-poppler.dif Patch11: source-lacheck.dif Patch12: source-warns.dif Patch13: source-x11r7.dif -# PATCH-EXTEND-UPSTREAM source-maxpath.dif -Patch14: source-maxpath.dif Patch15: source-overflow.dif -# PATCH-FIX-UPSTREAM source-lcdf-typetools.dif -Patch16: source-lcdf-typetools.dif Patch17: source-64.dif Patch18: source-a2ping.dif Patch19: source-dvipng.dif Patch20: source-missed-scripts.dif +# PATCH-FIX-TEXLIVE +Patch21: source-m-tx-0.63a-buffer-overflow.dif +# PATCH-FIX-TEXLIVE +Patch22: source-synctex-bump-soname.dif +# PATCH-FIX-TEXLIVE +Patch23: source-fix-synctex-missing-header-install.dif +# PATCH-FIX-TEXLIVE +Patch24: source-lua-poppler0640.dif # PATCH-FIX-SUSE Make biber work with our perl Patch42: biblatex-encoding.dif # PATCH-FIX-SUSE Old problem back: we do not use internal Certs! Patch44: biber-certs.dif -# PATCH-FIX-SUSE Make biber work with perl 5.30 -Patch46: biber-perl-5.30.dif # PATCH-FIX-SUSE Make biber work with perl 5.18.2 Patch47: biber-perl-5.18.2.dif -# PATCH-FIX-UPSTREAM texlive-20170524-source-poppler059-1.patch dimstar@opensuse.org -- Adapt to poppler 0.59 API changes -Patch48: http://www.linuxfromscratch.org/patches/blfs/svn/texlive-20170524-source-poppler059-1.patch -# PATCH-FIX-UPSTREAM source-poppler-0.59.1.dif -- Adapt to poppler 0.59.1+ API changes -Patch49: source-poppler-0.59.1.dif # PATCH-FIX-SUSE https://sourceforge.net/p/xetex/bugs/151/ -- Fix OOB access when generating alpha mask for 1/2/4-bit indexed PNGs Patch50: source-dvipdfm-x.dif Prefix: %{_bindir} @@ -375,7 +375,7 @@ Prefix: %{_bindir} Binary files of adhocfilelist %package afm2pl-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of afm2pl License: LPPL-1.0 @@ -389,7 +389,7 @@ Prefix: %{_bindir} Binary files of afm2pl %package aleph-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of aleph License: LPPL-1.0 @@ -434,7 +434,7 @@ Prefix: %{_bindir} Binary files of arara %package asymptote-bin -Version: %{texlive_version}.%{texlive_release}.svn43843 +Version: %{texlive_version}.%{texlive_release}.svn47391 Release: 0 Summary: Binary files of asymptote License: LPPL-1.0 @@ -462,7 +462,7 @@ Prefix: %{_bindir} Binary files of authorindex %package autosp-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of autosp License: LPPL-1.0 @@ -475,8 +475,36 @@ Prefix: %{_bindir} %description autosp-bin Binary files of autosp +%package axodraw2-bin +Version: %{texlive_version}.%{texlive_release}.svn47245 +Release: 0 +Summary: Binary files of axodraw2 +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-axodraw2 >= %{texlive_version} +#!BuildIgnore: texlive-axodraw2 +Prefix: %{_bindir} + +%description axodraw2-bin +Binary files of axodraw2 + +%package bib2gls-bin +Version: %{texlive_version}.%{texlive_release}.svn45266 +Release: 0 +Summary: Binary files of bib2gls +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-bib2gls >= %{texlive_version} +#!BuildIgnore: texlive-bib2gls +Prefix: %{_bindir} + +%description bib2gls-bin +Binary files of bib2gls + %package biber-bin -Version: %{texlive_version}.%{texlive_release}.svn42679 +Version: %{texlive_version}.%{texlive_release}.svn46862 Release: 0 Summary: Binary files of biber License: LPPL-1.0 @@ -516,7 +544,7 @@ Prefix: %{_bindir} Binary files of bibexport %package bibtex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of bibtex License: LPPL-1.0 @@ -533,7 +561,7 @@ Prefix: %{_bindir} Binary files of bibtex %package bibtex8-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of bibtex8 License: LPPL-1.0 @@ -550,7 +578,7 @@ Prefix: %{_bindir} Binary files of bibtex8 %package bibtexu-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of bibtexu License: LPPL-1.0 @@ -623,7 +651,7 @@ Prefix: %{_bindir} Binary files of checklistings %package chktex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of chktex License: LPPL-1.0 @@ -654,7 +682,7 @@ Prefix: %{_bindir} Binary files of cjk-gs-integrate %package cjkutils-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of cjkutils License: LPPL-1.0 @@ -700,7 +728,7 @@ Prefix: %{_bindir} Binary files of convbkmk %package crossrefware-bin -Version: %{texlive_version}.%{texlive_release}.svn43866 +Version: %{texlive_version}.%{texlive_release}.svn45927 Release: 0 Summary: Binary files of crossrefware License: LPPL-1.0 @@ -744,6 +772,20 @@ Prefix: %{_bindir} %description csplain-bin Binary files of csplain +%package ctan-o-mat-bin +Version: %{texlive_version}.%{texlive_release}.svn46996 +Release: 0 +Summary: Binary files of ctan-o-mat +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-ctan-o-mat >= %{texlive_version} +#!BuildIgnore: texlive-ctan-o-mat +Prefix: %{_bindir} + +%description ctan-o-mat-bin +Binary files of ctan-o-mat + %package ctanify-bin Version: %{texlive_version}.%{texlive_release}.svn24061 Release: 0 @@ -773,7 +815,7 @@ Prefix: %{_bindir} Binary files of ctanupload %package ctie-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of ctie License: LPPL-1.0 @@ -787,7 +829,7 @@ Prefix: %{_bindir} Binary files of ctie %package cweb-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of cweb License: LPPL-1.0 @@ -829,7 +871,7 @@ Prefix: %{_bindir} Binary files of de-macro %package detex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of detex License: LPPL-1.0 @@ -875,7 +917,7 @@ Prefix: %{_bindir} Binary files of dosepsbin %package dtl-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of dtl License: LPPL-1.0 @@ -917,7 +959,7 @@ Prefix: %{_bindir} Binary files of dviasm %package dvicopy-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of dvicopy License: LPPL-1.0 @@ -931,7 +973,7 @@ Prefix: %{_bindir} Binary files of dvicopy %package dvidvi-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of dvidvi License: LPPL-1.0 @@ -959,7 +1001,7 @@ Prefix: %{_bindir} Binary files of dviinfox %package dviljk-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of dviljk License: LPPL-1.0 @@ -992,7 +1034,7 @@ Prefix: %{_bindir} Binary files of dvipdfmx %package dvipng-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of dvipng License: LPPL-1.0 @@ -1006,7 +1048,7 @@ Prefix: %{_bindir} Binary files of dvipng %package dvipos-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of dvipos License: LPPL-1.0 @@ -1020,7 +1062,7 @@ Prefix: %{_bindir} Binary files of dvipos %package dvips-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of dvips License: LPPL-1.0 @@ -1034,7 +1076,7 @@ Prefix: %{_bindir} Binary files of dvips %package dvisvgm-bin -Version: %{texlive_version}.%{texlive_release}.svn40987 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of dvisvgm License: LPPL-1.0 @@ -1180,7 +1222,7 @@ Prefix: %{_bindir} Binary files of fontools %package fontware-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of fontware License: LPPL-1.0 @@ -1236,7 +1278,7 @@ Prefix: %{_bindir} Binary files of glossaries %package gregoriotex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of gregoriotex License: LPPL-1.0 @@ -1253,7 +1295,7 @@ Prefix: %{_bindir} Binary files of gregoriotex %package gsftopk-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of gsftopk License: LPPL-1.0 @@ -1284,6 +1326,34 @@ Prefix: %{_bindir} %description jadetex-bin Binary files of jadetex +%package jfmutil-bin +Version: %{texlive_version}.%{texlive_release}.svn44835 +Release: 0 +Summary: Binary files of jfmutil +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-jfmutil >= %{texlive_version} +#!BuildIgnore: texlive-jfmutil +Prefix: %{_bindir} + +%description jfmutil-bin +Binary files of jfmutil + +%package ketcindy-bin +Version: %{texlive_version}.%{texlive_release}.svn47395 +Release: 0 +Summary: Binary files of ketcindy +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-ketcindy >= %{texlive_version} +#!BuildIgnore: texlive-ketcindy +Prefix: %{_bindir} + +%description ketcindy-bin +Binary files of ketcindy + %package kotex-utils-bin Version: %{texlive_version}.%{texlive_release}.svn32101 Release: 0 @@ -1302,7 +1372,7 @@ Prefix: %{_bindir} Binary files of kotex-utils %package kpathsea-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of kpathsea License: LPPL-1.0 @@ -1327,8 +1397,22 @@ Prefix: %{_bindir} %description kpathsea-bin Binary files of kpathsea +%package l3build-bin +Version: %{texlive_version}.%{texlive_release}.svn46894 +Release: 0 +Summary: Binary files of l3build +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-l3build >= %{texlive_version} +#!BuildIgnore: texlive-l3build +Prefix: %{_bindir} + +%description l3build-bin +Binary files of l3build + %package lacheck-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of lacheck License: LPPL-1.0 @@ -1513,7 +1597,7 @@ Prefix: %{_bindir} Binary files of latexpand %package lcdftypetools-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of lcdftypetools License: LPPL-1.0 @@ -1644,7 +1728,7 @@ Prefix: %{_bindir} Binary files of luaotfload %package luatex-bin -Version: %{texlive_version}.%{texlive_release}.svn44549 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of luatex License: LPPL-1.0 @@ -1675,7 +1759,7 @@ Prefix: %{_bindir} Binary files of lwarp %package m-tx-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of m-tx License: LPPL-1.0 @@ -1717,7 +1801,7 @@ Prefix: %{_bindir} Binary files of makedtx %package makeindex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of makeindex License: LPPL-1.0 @@ -1759,7 +1843,7 @@ Prefix: %{_bindir} Binary files of mathspic %package metafont-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of metafont License: LPPL-1.0 @@ -1773,7 +1857,7 @@ Prefix: %{_bindir} Binary files of metafont %package metapost-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of metapost License: LPPL-1.0 @@ -1816,7 +1900,7 @@ Prefix: %{_bindir} Binary files of mf2pt1 %package mflua-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of mflua License: LPPL-1.0 @@ -1830,7 +1914,7 @@ Prefix: %{_bindir} Binary files of mflua %package mfware-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of mfware License: LPPL-1.0 @@ -1954,7 +2038,7 @@ Prefix: %{_bindir} Binary files of musixtex %package musixtnt-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of musixtnt License: LPPL-1.0 @@ -1968,7 +2052,7 @@ Prefix: %{_bindir} Binary files of musixtnt %package omegaware-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of omegaware License: LPPL-1.0 @@ -1987,7 +2071,7 @@ Prefix: %{_bindir} Binary files of omegaware %package patgen-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of patgen License: LPPL-1.0 @@ -2074,7 +2158,7 @@ Prefix: %{_bindir} Binary files of pdflatexpicscale %package pdftex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of pdftex License: LPPL-1.0 @@ -2091,7 +2175,7 @@ Prefix: %{_bindir} Binary files of pdftex %package pdftools-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of pdftools License: LPPL-1.0 @@ -2223,7 +2307,7 @@ Prefix: %{_bindir} Binary files of platex %package pmx-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of pmx License: LPPL-1.0 @@ -2251,7 +2335,7 @@ Prefix: %{_bindir} Binary files of pmxchords %package ps2pk-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of ps2pk License: LPPL-1.0 @@ -2294,7 +2378,7 @@ Prefix: %{_bindir} Binary files of pst2pdf %package pstools-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of pstools License: LPPL-1.0 @@ -2325,7 +2409,7 @@ Prefix: %{_bindir} Binary files of ptex-fontmaps %package ptex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of ptex License: LPPL-1.0 @@ -2421,7 +2505,7 @@ Prefix: %{_bindir} Binary files of rubik %package seetexk-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of seetexk License: LPPL-1.0 @@ -2494,7 +2578,7 @@ Prefix: %{_bindir} Binary files of svn-multi %package synctex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of synctex License: LPPL-1.0 @@ -2511,7 +2595,7 @@ Prefix: %{_bindir} Binary files of synctex %package tetex-bin -Version: %{texlive_version}.%{texlive_release}.svn43957 +Version: %{texlive_version}.%{texlive_release}.svn45860 Release: 0 Summary: Binary files of tetex License: LPPL-1.0 @@ -2528,7 +2612,7 @@ Prefix: %{_bindir} Binary files of tetex %package tex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of tex License: LPPL-1.0 @@ -2562,7 +2646,7 @@ Prefix: %{_bindir} Binary files of tex4ebook %package tex4ht-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of tex4ht License: LPPL-1.0 @@ -2580,23 +2664,6 @@ Prefix: %{_bindir} %description tex4ht-bin Binary files of tex4ht -%package texconfig-bin -Version: %{texlive_version}.%{texlive_release}.svn29741 -Release: 0 -Summary: Binary files of texconfig -License: LPPL-1.0 -Group: Productivity/Publishing/TeX/Utilities -Url: http://www.tug.org/texlive/ -Requires(pre): texlive-texconfig >= %{texlive_version} -#!BuildIgnore: texlive-texconfig -Recommends: texlive-collection-fontsrecommended >= %{texlive_version} -Recommends: texlive-collection-genericrecommended >= %{texlive_version} -Recommends: texlive-collection-basic >= %{texlive_version} -Prefix: %{_bindir} - -%description texconfig-bin -Binary files of texconfig - %package texcount-bin Version: %{texlive_version}.%{texlive_release}.svn13013 Release: 0 @@ -2615,7 +2682,7 @@ Prefix: %{_bindir} Binary files of texcount %package texdef-bin -Version: %{texlive_version}.%{texlive_release}.svn21802 +Version: %{texlive_version}.%{texlive_release}.svn45011 Release: 0 Summary: Binary files of texdef License: LPPL-1.0 @@ -2768,7 +2835,7 @@ Prefix: %{_bindir} Binary files of texsis %package texware-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of texware License: LPPL-1.0 @@ -2799,7 +2866,7 @@ Prefix: %{_bindir} Binary files of thumbpdf %package tie-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of tie License: LPPL-1.0 @@ -2812,8 +2879,36 @@ Prefix: %{_bindir} %description tie-bin Binary files of tie +%package tlcockpit-bin +Version: %{texlive_version}.%{texlive_release}.svn46798 +Release: 0 +Summary: Binary files of tlcockpit +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-tlcockpit >= %{texlive_version} +#!BuildIgnore: texlive-tlcockpit +Prefix: %{_bindir} + +%description tlcockpit-bin +Binary files of tlcockpit + +%package tlshell-bin +Version: %{texlive_version}.%{texlive_release}.svn45015 +Release: 0 +Summary: Binary files of tlshell +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-tlshell >= %{texlive_version} +#!BuildIgnore: texlive-tlshell +Prefix: %{_bindir} + +%description tlshell-bin +Binary files of tlshell + %package tpic2pdftex-bin -Version: %{texlive_version}.%{texlive_release}.svn29741 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of tpic2pdftex License: LPPL-1.0 @@ -2830,7 +2925,7 @@ Prefix: %{_bindir} Binary files of tpic2pdftex %package ttfutils-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of ttfutils License: LPPL-1.0 @@ -2889,7 +2984,7 @@ Prefix: %{_bindir} Binary files of uplatex %package uptex-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of uptex License: LPPL-1.0 @@ -2920,7 +3015,7 @@ Prefix: %{_bindir} Binary files of urlbst %package velthuis-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of velthuis License: LPPL-1.0 @@ -2934,7 +3029,7 @@ Prefix: %{_bindir} Binary files of velthuis %package vlna-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of vlna License: LPPL-1.0 @@ -2962,7 +3057,7 @@ Prefix: %{_bindir} Binary files of vpe %package web-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of web License: LPPL-1.0 @@ -2975,8 +3070,22 @@ Prefix: %{_bindir} %description web-bin Binary files of web +%package wordcount-bin +Version: %{texlive_version}.%{texlive_release}.svn46165 +Release: 0 +Summary: Binary files of wordcount +License: LPPL-1.0 +Group: Productivity/Publishing/TeX/Utilities +Url: http://www.tug.org/texlive/ +Requires(pre): texlive-wordcount >= %{texlive_version} +#!BuildIgnore: texlive-wordcount +Prefix: %{_bindir} + +%description wordcount-bin +Binary files of wordcount + %package xdvi-bin -Version: %{texlive_version}.%{texlive_release}.svn44143 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of xdvi License: LPPL-1.0 @@ -2990,7 +3099,7 @@ Prefix: %{_bindir} Binary files of xdvi %package xetex-bin -Version: %{texlive_version}.%{texlive_release}.svn44361 +Version: %{texlive_version}.%{texlive_release}.svn47245 Release: 0 Summary: Binary files of xetex License: LPPL-1.0 @@ -3040,7 +3149,7 @@ Prefix: %{_bindir} Binary files of yplan %package -n libkpathsea6 -Version: 6.2.3 +Version: 6.3.0 Release: 0 Summary: Path searching library for TeX-related files License: LGPL-2.1-or-later @@ -3057,13 +3166,13 @@ separately, but rather is released and maintained as part of the TeX-live sources. %package -n %{name}-kpathsea-devel -Version: 6.2.3 +Version: 6.3.0 Release: 0 Summary: Path searching library for TeX-related files License: LGPL-2.1-or-later Group: Development/Libraries/C and C++ Url: http://www.tug.org/texlive/ -Requires: libkpathsea6 = 6.2.3 +Requires: libkpathsea6 = 6.3.0 %description -n %{name}-kpathsea-devel Kpathsea is a library and utility programs which provide path @@ -3074,7 +3183,7 @@ separately, but rather is released and maintained as part of the TeX-live sources. %package -n libptexenc1 -Version: 1.3.5 +Version: 1.3.6 Release: 0 Summary: Libraries of Kanji code convert library for pTeX License: BSD-3-Clause @@ -3088,13 +3197,13 @@ The ptexenc is a useful library for Japanese pTeX TeX by ASCII Co.) and its surrounding tools. %package -n %{name}-ptexenc-devel -Version: 1.3.5 +Version: 1.3.6 Release: 0 Summary: Libraries of Kanji code convert library for pTeX License: BSD-3-Clause Group: Development/Libraries/C and C++ Url: http://www.tug.org/texlive/ -Requires: libptexenc1 = 1.3.5 +Requires: libptexenc1 = 1.3.6 %description -n %{name}-ptexenc-devel This package includes the ptexenc development files. @@ -3102,8 +3211,8 @@ The ptexenc is a useful library for Japanese pTeX (which stands for publishing TeX, and is an extension of TeX by ASCII Co.) and its surrounding tools. -%package -n libsynctex1 -Version: 1.18 +%package -n libsynctex2 +Version: 1.21 Release: 0 Summary: Libraries of The Synchronization TeXnology License: MIT @@ -3111,20 +3220,20 @@ Group: System/Libraries Url: http://www.tug.org/texlive/ Prefix: %{_libdir} -%description -n libsynctex1 +%description -n libsynctex2 The Synchronization TeXnology by Jérôme Laurens is a new feature of recent TeX engines. It allows to synchronize between input and output, which means to navigate from the source document to the typeset material and vice versa. %package -n %{name}-synctex-devel -Version: 1.18 +Version: 1.21 Release: 0 Summary: Libraries of The Synchronization TeXnology License: MIT Group: Development/Libraries/C and C++ Url: http://www.tug.org/texlive/ -Requires: libsynctex1 = 1.18 +Requires: libsynctex2 = 1.21 %description -n %{name}-synctex-devel This package includes the synctex development files. @@ -3146,14 +3255,27 @@ Prefix: %{_libdir} LuaTeX is an extended version of pdfTeX using Lua as an embedded scripting language +%package -n libtexlua53-5 +Version: 5.3.4 +Release: 0 +Summary: Libraries of an extended version of pdfTeX using Lua +License: MIT +Group: System/Libraries +Url: http://www.tug.org/texlive/ +Prefix: %{_libdir} + +%description -n libtexlua53-5 +LuaTeX is an extended version of pdfTeX using Lua as an +embedded scripting language + %package -n %{name}-texlua-devel -Version: 5.2.4 +Version: 5.3.4 Release: 0 Summary: Libraries of an extended version of pdfTeX using Lua License: MIT Group: Development/Libraries/C and C++ Url: http://www.tug.org/texlive/ -Requires: libtexlua52-5 = 5.2.4 +Requires: libtexlua53-5 = 5.3.4 %description -n %{name}-texlua-devel This package includes the luatex development files. @@ -3162,7 +3284,7 @@ embedded scripting language %if %{with LuaJIT} %package -n libtexluajit2 -Version: 2.1.0beta2 +Version: 2.1.0beta3 Release: 0 Summary: Libraries of Just-In-Time compiler for Lua License: MIT @@ -3174,13 +3296,13 @@ Prefix: %{_libdir} LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language %package -n %{name}-texluajit-devel -Version: 2.1.0beta2 +Version: 2.1.0beta3 Release: 0 Summary: Libraries of Just-In-Time compiler for Lua License: MIT Group: Development/Libraries/C and C++ Url: http://www.tug.org/texlive/ -Requires: libtexlua52-5 = 5.2.4 +Requires: libtexlua53-5 = 5.3.4 %description -n %{name}-texluajit-devel This package includes the LuaJIT development files. @@ -3194,12 +3316,12 @@ Summary: Basic development packages for TeXLive License: LGPL-2.1-or-later AND BSD-3-Clause AND SUSE-TeX Group: Development/Languages/Other Url: http://www.tug.org/texlive/ -Requires: libkpathsea6 = 6.2.3 -Requires: libptexenc1 = 1.3.5 -Requires: libsynctex1 = 1.18 -Requires: libtexlua52-5 = 5.2.4 +Requires: libkpathsea6 = 6.3.0 +Requires: libptexenc1 = 1.3.6 +Requires: libsynctex2 = 1.21 +Requires: libtexlua53-5 = 5.3.4 %if %{with LuaJIT} -Requires: libtexluajit2 = 2.1.0beta2 +Requires: libtexluajit2 = 2.1.0beta3 %endif Requires: texlive-cweb-bin >= %{texlive_version} Requires: texlive-web-bin >= %{texlive_version} @@ -3217,7 +3339,7 @@ License: LPPL-1.0 Group: Productivity/Publishing/TeX/Utilities Url: http://biblatex-biber.sourceforge.net/ Recommends: perl(Readonly::XS) -Requires: perl-base >= 5.24.1 +Requires: perl-base >= 5.26.1 Requires: perl(Business::ISBN) Requires: perl(Business::ISMN) Requires: perl(Business::ISSN) @@ -3399,6 +3521,16 @@ This package is required by the package texlive-biber-bin. tar --use-compress-program=xz -xf %{S:3} popd %endif +if pkg-config --atleast-version=0.59 poppler +then + for cc in $(find -name '*newpoppler.cc') + do + test -e "$cc" || continue + old=${cc/-newpoppler/} + test -e "$old" && mv -fv $old $old.oldpoppler || : + mv -fv $cc $old + done +fi %patch1 -p0 -b .configure %patch2 -p0 -b .xdvizilla @@ -3408,27 +3540,25 @@ This package is required by the package texlive-biber-bin. %if %{with psutils} %patch8 -p0 -b .psutils %endif -%patch9 -p0 -b .crash %patch10 -p0 -b .poppler %patch11 -p0 -b .lacheck %patch12 -p0 -b .warns %patch13 -p0 -b .x11r7 -%patch14 -p0 -b .maxpath %patch15 -p0 -b .overflow -%patch16 -p0 -b .lcdf %patch17 -p0 -b .64 %patch18 -p0 -b .a2p %patch19 -p0 -b .dvipng %patch20 -p0 -b .missed +%patch21 -p0 -b .m-tx +%patch22 -p0 -b .synctexAPI +%patch23 -p0 -b .synctexINC +%patch24 -p0 -b .popp064 %patch0 -p0 -b .p0 %if %{with buildbiber} pushd ../biblatex-biber-* /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . %patch42 -p0 -b .en %patch44 -p0 -b .noica -%if 0%{perl_versnum} >= 5260 -%patch46 -p0 -b .530 -%endif %if 0%{perl_versnum} < 5200 %patch47 -p0 -b .518 %endif @@ -3436,10 +3566,6 @@ rm -vf bin/biber.noica rm -vf t/*.fastsort popd %endif -if pkg-config --atleast-version=0.59 poppler; then -%patch48 -p1 -b .poppler59 -%patch49 -p0 -b .poppler591 -fi %patch50 -p0 -b .dvipdfm-x # Correct FHS paths @@ -3482,7 +3608,8 @@ fi export LD_LIBRARY_PATH # We have an other autoconf/automake version - ./reautoconf libs/icu/dummy + # ./reautoconf libs/icu/dummy + ./reautoconf if [[ $VENDOR =~ opensuse ]] ; then banner='for opensuse.org' @@ -3767,6 +3894,8 @@ fi %if %{with buildbiber} pushd ../biblatex-biber-* ./Build install destdir=%{buildroot} + sed -rn '\@^#![[:space:]]*/usr/bin/env[[:space:]]+perl@{s@(/usr/bin/)env[[:space:]]+(perl)@\1\2@p}' \ + %{buildroot}%{_bindir}/biber chmod 0755 %{buildroot}%{_bindir}/biber rm -vf %{buildroot}%{_mandir}/man1/biber.1* chmod 0644 %{buildroot}%{perl_vendorlib}/Biber.pm @@ -3902,6 +4031,10 @@ fi %if 0%{texlive_version} >= 2017 # new dviinfox perl script ln -sf ../share/texmf/scripts/dviinfox/dviinfox.pl dviinfox +%endif +%if 0%{texlive_version} >= 2018 + # new ketcindy wrapper script + ln -sf ../share/texmf/scripts/ketcindy/ketcindy.sh ketcindy %endif popd @@ -3917,6 +4050,8 @@ fi %endif # ... and add rungs texlua script as dvipdfmx/dvipdfm require this pushd ${prefix}/texmf-dist/ + sed -rn '\@^#![[:space:]]*/usr/bin/env[[:space:]]+texlua@{s@(/usr/bin/)env[[:space:]]+(texlua)@\1\2@p}' \ + scripts/texlive/rungs.tlu install -m 0755 scripts/texlive/rungs.tlu %{buildroot}%{_texmfdistdir}/scripts/texlive/ popd @@ -3943,7 +4078,7 @@ fi %endif pushd ${prefix}/lib/pkgconfig/ - for pc in kpathsea ptexenc texlua52 texluajit synctex + for pc in kpathsea ptexenc texlua52 texlua53 texluajit synctex do test -e "$pc.pc" || continue sed -ri "s@([^=]+=)${prefix}@\1/usr@" $pc.pc @@ -3955,6 +4090,23 @@ fi install -m 0644 c-auto.h %{buildroot}%{_includedir}/kpathsea/ popd +%if %{with buildbiber} + for scr in %{_bindir}/biber \ +%else + for scr in \ +%endif + %{_texmfdistdir}/scripts/texlive/rungs.tlu + do + test -e %{buildroot}/$scr || continue + ed %{buildroot}/${scr} <<-'EOF' + 1 + s@/env[[:blank:]]\+@/@ + . + w + q + EOF + done + %if %{defined verify_permissions} %verifyscript kpathsea-bin %verify_permissions -e %{_libexecdir}/mktex/public @@ -3996,12 +4148,15 @@ rm -f /var/run/texlive/run-update %post -n libptexenc1 -p /sbin/ldconfig %postun -n libptexenc1 -p /sbin/ldconfig -%post -n libsynctex1 -p /sbin/ldconfig -%postun -n libsynctex1 -p /sbin/ldconfig +%post -n libsynctex2 -p /sbin/ldconfig +%postun -n libsynctex2 -p /sbin/ldconfig %post -n libtexlua52-5 -p /sbin/ldconfig %postun -n libtexlua52-5 -p /sbin/ldconfig +%post -n libtexlua53-5 -p /sbin/ldconfig +%postun -n libtexlua53-5 -p /sbin/ldconfig + %if %{with LuaJIT} %post -n libtexluajit2 -p /sbin/ldconfig %postun -n libtexluajit2 -p /sbin/ldconfig @@ -4068,6 +4223,16 @@ rm -f /var/run/texlive/run-update %files autosp-bin %defattr(-,root,root,755) %{_bindir}/autosp +%{_bindir}/tex2aspc + +%files axodraw2-bin +%defattr(-,root,root,755) +%{_bindir}/axohelp + +%files bib2gls-bin +%defattr(-,root,root,755) +%{_bindir}/bib2gls +%{_bindir}/convertgls2bib %files biber-bin %defattr(-,root,root,755) @@ -4163,6 +4328,7 @@ rm -f /var/run/texlive/run-update %{_bindir}/bbl2bib %{_bindir}/bibdoiadd %{_bindir}/bibmradd +%{_bindir}/biburl2doi %{_bindir}/bibzbladd %{_bindir}/ltx2crossrefxml @@ -4176,6 +4342,10 @@ rm -f /var/run/texlive/run-update %{_bindir}/csplain %{_bindir}/pdfcsplain +%files ctan-o-mat-bin +%defattr(-,root,root,755) +%{_bindir}/ctan-o-mat + %files ctanify-bin %defattr(-,root,root,755) %{_bindir}/ctanify @@ -4349,6 +4519,14 @@ rm -f /var/run/texlive/run-update %{_bindir}/jadetex %{_bindir}/pdfjadetex +%files jfmutil-bin +%defattr(-,root,root,755) +%{_bindir}/jfmutil + +%files ketcindy-bin +%defattr(-,root,root,755) +%{_bindir}/ketcindy + %files kotex-utils-bin %defattr(-,root,root,755) %{_bindir}/jamo-normalize @@ -4372,6 +4550,10 @@ rm -f /var/run/texlive/run-update %attr(0755,root,%{texgrp}) %{_libexecdir}/mktex/public %{_libexecdir}/mktex/*tex* +%files l3build-bin +%defattr(-,root,root,755) +%{_bindir}/l3build + %files lacheck-bin %defattr(-,root,root,755) %{_bindir}/lacheck @@ -4476,7 +4658,9 @@ rm -f /var/run/texlive/run-update %{_bindir}/dviluatex %{_bindir}/luajittex %{_bindir}/luatex +%{_bindir}/luatex53 %{_bindir}/texlua +%{_bindir}/texlua53 %{_bindir}/texluac %{_bindir}/texluajit %{_bindir}/texluajitc @@ -4738,7 +4922,6 @@ rm -f /var/run/texlive/run-update %{_bindir}/ppltotf %{_bindir}/ptex %{_bindir}/ptftopl -%{_bindir}/upmendex %files ptex2pdf-bin %defattr(-,root,root,755) @@ -4805,6 +4988,7 @@ rm -f /var/run/texlive/run-update %{_bindir}/kpsetool %{_bindir}/kpsewhere %{_bindir}/kpsexpand +%{_bindir}/texconfig %{_bindir}/texconfig-dialog %{_bindir}/texconfig-sys %{_bindir}/texlinks @@ -4836,18 +5020,14 @@ rm -f /var/run/texlive/run-update %{_bindir}/tex4ht %{_bindir}/xhlatex -%files texconfig-bin -%defattr(-,root,root,755) -%{_bindir}/texconfig - %files texcount-bin %defattr(-,root,root,755) %{_bindir}/texcount %files texdef-bin %defattr(-,root,root,755) -%{_bindir}/texdef %{_bindir}/latexdef +%{_bindir}/texdef %files texdiff-bin %defattr(-,root,root,755) @@ -4897,6 +5077,14 @@ rm -f /var/run/texlive/run-update %defattr(-,root,root,755) %{_bindir}/tie +%files tlcockpit-bin +%defattr(-,root,root,755) +%{_bindir}/tlcockpit + +%files tlshell-bin +%defattr(-,root,root,755) +%{_bindir}/tlshell + %files tpic2pdftex-bin %defattr(-,root,root,755) %{_bindir}/tpic2pdftex @@ -4926,6 +5114,7 @@ rm -f /var/run/texlive/run-update %{_bindir}/upbibtex %{_bindir}/updvitomp %{_bindir}/updvitype +%{_bindir}/upmendex %{_bindir}/upmpost %{_bindir}/uppltotf %{_bindir}/uptex @@ -4953,6 +5142,10 @@ rm -f /var/run/texlive/run-update %{_bindir}/tangle %{_bindir}/weave +%files wordcount-bin +%defattr(-,root,root,755) +%{_bindir}/wordcount + %files xdvi-bin %defattr(-,root,root,755) %{_bindir}/xdvi @@ -4996,7 +5189,7 @@ rm -f /var/run/texlive/run-update %{_libdir}/libptexenc.so %{_libdir}/pkgconfig/ptexenc.pc -%files -n libsynctex1 +%files -n libsynctex2 %defattr(-,root,root,755) %{_libdir}/libsynctex.so.* @@ -5009,7 +5202,11 @@ rm -f /var/run/texlive/run-update %files -n libtexlua52-5 %defattr(-,root,root,755) -%{_libdir}/libtexlua[0-9]*so.* +%{_libdir}/libtexlua52*so.* + +%files -n libtexlua53-5 +%defattr(-,root,root,755) +%{_libdir}/libtexlua53*so.* %files -n %{name}-texlua-devel %defattr(-,root,root)