Hello community,

here is the log from the commit of package texlive.12871 for 
openSUSE:Leap:15.1:Update checked in at 2020-06-13 06:17:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.1:Update/texlive.12871 (Old)
 and      /work/SRC/openSUSE:Leap:15.1:Update/.texlive.12871.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "texlive.12871"

Sat Jun 13 06:17:12 2020 rev:1 rq:813058 version:unknown

Changes:
--------
New Changes file:

--- /dev/null   2020-05-28 02:28:09.919761697 +0200
+++ /work/SRC/openSUSE:Leap:15.1:Update/.texlive.12871.new.3606/texlive.changes 
2020-06-13 06:17:15.890071997 +0200
@@ -0,0 +1,824 @@
+-------------------------------------------------------------------
+Thu Feb 20 06:21:10 UTC 2020 - Dr. Werner Fink <wer...@suse.de>
+
+- Switch also to user mktex in fmtutil script (boo#1159740, CVE-2020-8016)
+
+-------------------------------------------------------------------
+Wed Feb  5 06:56:24 UTC 2020 - Dr. Werner Fink <wer...@suse.de>
+
+- Check passwd not group file for user mktex 
+
+-------------------------------------------------------------------
+Fri Jan 31 12:32:25 UTC 2020 - Dr. Werner Fink <wer...@suse.de>
+
+- Introduce a user mktex as replacement for user nobody (boo#1159740, 
CVE-2020-8016)
+
+-------------------------------------------------------------------
+Wed Sep 26 11:54:24 UTC 2018 - Dr. Werner Fink <wer...@suse.de>
+
+- Add patch source-bsc1109673.dif to fix bsc#1109673 for CVE-2018-17407
+  which is about buffer overflow in the handling of Type 1 fonts
+  allowing arbitrary code execution
+
+-------------------------------------------------------------------
+Fri Apr 27 00:54:31 UTC 2018 - stefan.bru...@rwth-aachen.de
+
+- Add patch source-dvipdfm-x.dif to fix XeTeX bug #151 (boo#1099563)
+
+-------------------------------------------------------------------
+Thu Apr 19 09:05:23 UTC 2018 - wer...@suse.de
+
+- Add patch source-lcdf-typetools.dif to help gcc8 (boo#1087075)
+
+-------------------------------------------------------------------
+Mon Apr  9 10:57:54 UTC 2018 - idon...@suse.com
+
+- Update source-poppler-0.59.1.dif to fix compilation with poppler
+  0.63. Dict objects are now uncopyable, make a const reference
+  instead.
+
+-------------------------------------------------------------------
+Thu Mar 15 08:54:09 UTC 2018 - wer...@suse.de
+
+- Add patch biber-perl-5.30.dif to avoid trouble with perl 5.30 and biber 
+
+-------------------------------------------------------------------
+Thu Mar 15 07:29:33 UTC 2018 - wer...@suse.de
+
+- Add missing dependencies for perl-biber (boo#1084900) 
+
+-------------------------------------------------------------------
+Wed Mar 14 18:57:04 UTC 2018 - crrodrig...@opensuse.org
+
+- Remove xorg-x11-devel and Mesa-devel from buildrequires. 
+
+-------------------------------------------------------------------
+Tue Feb  6 15:14:53 UTC 2018 - meiss...@suse.com
+
+- drop freetype-devel buildrequires, we use freetype2 here.
+
+-------------------------------------------------------------------
+Mon Jan 29 14:41:24 UTC 2018 - sndir...@suse.com
+
+- removed unneeded 'BuildRequires: xorg-x11-util-devel' (bsc#1077489)
+
+-------------------------------------------------------------------
+Mon Jan 29 09:20:27 UTC 2018 - wer...@suse.de
+
+- For Leap 42.3 build without biber as the perl version does not fit 
+
+-------------------------------------------------------------------
+Mon Jan  8 12:55:08 UTC 2018 - wer...@suse.de
+
+- If zypper way of posttrans scripts are disabled do use the rpm
+  %posttrans scriptlets (boo#1074128)
+
+-------------------------------------------------------------------
+Tue Dec 12 17:36:08 UTC 2017 - dims...@opensuse.org
+
+- Replace Mesa-libGL-devel and libOSMesa-devel BuildRequires with
+  pkgconfig(gl) and pkgconfig(osmesa).
+- Drop Mesa-libglapi-devel Buildequires: not needed by texlive for
+  a while already.
+
+-------------------------------------------------------------------
+Thu Dec  7 11:20:45 UTC 2017 - dims...@opensuse.org
+
+- Escape the usage of %{VERSION} when calling out to rpm.
+  RPM 4.14 has %{VERSION} defined as 'the main packages version'.
+
+-------------------------------------------------------------------
+Fri Nov 24 12:46:53 UTC 2017 - wer...@suse.de
+
+- Disable by a build conditions using zypper way of posttrans scripts
+  as we already use %posttrans. Nevertheless correct naming scheme
+  (boo#1069445)
+
+-------------------------------------------------------------------
+Tue Nov 14 16:41:11 UTC 2017 - wer...@suse.de
+
+- Sometimes user nobody has its own ~/.cache directory therefore
+  split path at colon if found
+
+-------------------------------------------------------------------
+Wed Nov  8 08:22:20 UTC 2017 - wer...@suse.de
+
+- Add yet an other patch source-poppler-0.59.1.dif for poppler
+  0.59 and up (boo#1060652)
+
+-------------------------------------------------------------------
+Fri Sep 22 14:26:49 UTC 2017 - dims...@opensuse.org
+
+- Add texlive-20170524-source-poppler059-1.patch: Adapt API usage
+  to poppler 0.59.
+
+-------------------------------------------------------------------
+Mon Aug 14 11:36:01 UTC 2017 - wer...@suse.de
+
+- Add missing link from texdef to latexdef 
+
+-------------------------------------------------------------------
+Tue Aug  1 07:53:05 UTC 2017 - sch...@suse.de
+
+- Define _GNU_SOURCE to request GNU extensions
+
+-------------------------------------------------------------------
+Thu Jun 29 12:13:34 UTC 2017 - wer...@suse.de
+
+- Avoid nasty warning about missing batchmode in ENVironment
+
+-------------------------------------------------------------------
+Wed Jun 28 07:56:00 UTC 2017 - nico.kru...@gmail.com
+
+- add missing dependencies for perl-biber
+
+-------------------------------------------------------------------
+Wed Jun 14 12:59:21 UTC 2017 - wer...@suse.de
+
+- Let biber test suite not use 64bit longs on 32bit architectures 
+
+-------------------------------------------------------------------
+Wed Jun 14 08:10:24 UTC 2017 - wer...@suse.de
+
+- Modify patch source-luatex.dif, that is update luatex tree from
+  version 2017033109 (r44589) to version 2017060901 (r44590) 
+
+-------------------------------------------------------------------
+Tue Jun 13 10:38:52 UTC 2017 - wer...@suse.de
+
+- Final TeXLive 2017 20170520
+
+-------------------------------------------------------------------
+Thu Jun  1 12:02:37 UTC 2017 - wer...@suse.de
+
+- Update to TeXLive 2017 20170520 pretest
+- Update to biber 2.7
+  * Add missing bblxml.pm
+- Remove patch biber-perl-pre5.22.0.dif
+- Add patch source-luatex.dif for new gcc-7.1
+- Adopted patches biber-certs.dif, biblatex-encoding.dif,
+  source-configure.dif, source-overflow.dif, source-warns.dif,
+  and source-warns.dif
+
+-------------------------------------------------------------------
+Fri May 26 15:22:17 UTC 2017 - wer...@suse.de
+
+- Switch over from 20160523 source tree to 20160523b
+  as it includes someminor bug fixes
+
+-------------------------------------------------------------------
+Fri May 26 11:07:07 UTC 2017 - wer...@suse.de
+
+- Use lua compatible configuration for TEXMFCNF in texmf.cnf
+
+-------------------------------------------------------------------
+Wed May  3 11:50:38 CEST 2017 - ku...@suse.de
+
+- Require user nobody needed by public in kpathsea-bin
+
+-------------------------------------------------------------------
+Wed Mar  8 12:02:02 UTC 2017 - wer...@suse.de
+
+- Modify patch kpathsea_cnf.dif to remove mpost from the allowed
+  shell escaping commands (bsc#1028271, CVE-2016-10243)
+
+-------------------------------------------------------------------
+Tue Dec  6 16:57:18 UTC 2016 - wer...@suse.de
+
+- We want perl(Unicode::Collate) >= 1.14 for biblatex-biber 2.5 
+
+-------------------------------------------------------------------
+Tue Aug 23 14:14:49 UTC 2016 - bwiedem...@suse.com
+
+- perl-biber requires perl(Class::Accessor) and perl(Data::Uniqid)
+  at runtime (boo#995076)
+
+-------------------------------------------------------------------
+Fri Aug  5 12:30:50 UTC 2016 - wer...@suse.de
++++ 627 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:Leap:15.1:Update/.texlive.12871.new.3606/texlive.changes

New:
----
  biber-certs.dif
  biber-perl-5.18.2.dif
  biber-perl-5.30.dif
  biblatex-biber-2.7.tar.xz
  biblatex-encoding.dif
  cnf-to-paths.awk
  public.8
  public.c
  source-64.dif
  source-a2ping.dif
  source-arraysubs.dif
  source-bsc1109673.dif
  source-configure.dif
  source-dvipdfm-x.dif
  source-dvipng.dif
  source-dviutils.dif
  source-lacheck.dif
  source-lcdf-typetools.dif
  source-luatex.dif
  source-maxpath.dif
  source-missed-scripts.dif
  source-overflow.dif
  source-poppler-0.59.1.dif
  source-poppler.dif
  source-psutils.dif
  source-texdoc.dif
  source-warns.dif
  source-x11r7.dif
  source-xdvizilla.dif
  source.dif
  texlive-20170520-source.tar.xz
  texlive-20170524-source-poppler059-1.patch
  texlive-rpmlintrc
  texlive.changes
  texlive.spec

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ texlive.spec ++++++
++++ 5063 lines (skipped)

++++++ biber-certs.dif ++++++
---
 Build.PL  |    1 -
 META.json |    1 -
 META.yml  |    1 -
 bin/biber |    2 ++
 4 files changed, 2 insertions(+), 3 deletions(-)

--- Build.PL
+++ Build.PL    2017-05-30 13:22:55.692794072 +0000
@@ -54,7 +54,6 @@ my $builder = $class->new(
                  'List::AllUtils' => 0,
                  'List::MoreUtils' => 0,
                  'List::MoreUtils::XS' => 0,
-                 'Mozilla::CA' =>  '20160104',
                  'Regexp::Common' => 0,
                  'Log::Log4perl' => 0,
                  'Unicode::Collate' => '1.18',
--- META.json
+++ META.json   2017-05-30 13:23:19.305046965 +0000
@@ -49,7 +49,6 @@
             "List::MoreUtils" : "0",
             "List::MoreUtils::XS" : "0",
             "Log::Log4perl" : "0",
-            "Mozilla::CA" : "20160104",
             "Regexp::Common" : "0",
             "Sort::Key" : "0",
             "Text::BibTeX" : "0.76",
--- META.yml
+++ META.yml    2017-05-30 13:23:28.101141166 +0000
@@ -94,7 +94,6 @@ requires:
   List::MoreUtils: '0'
   List::MoreUtils::XS: '0'
   Log::Log4perl: '0'
-  Mozilla::CA: '20160104'
   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(
           ) or pod2usage(-verbose => 0,
                          -exitval => EXIT_ERROR);
 
+$opts->{'ssl-nointernalca'} = 1;
+
 # verbose > 1 uses external perldoc, this doesn't work with PAR::Packer 
binaries
 # so use "-noperldoc" to use built-in POD::Text
 if (exists $opts->{'help'}) {
++++++ biber-perl-5.18.2.dif ++++++
With perl-5.18.2 macros like

   {\v S}
   \s S

do not work.

---
 t/tdata/names.bib |    4 ++--
 t/utils.t         |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

--- t/utils.t
+++ t/utils.t   2016-02-03 11:03:21.266959058 +0000
@@ -66,7 +66,7 @@ eq_or_diff(File::Spec->canonpath(locate_
 eq_or_diff(normalise_string('"a, b–c: d" ', 1),  'a bc d', 'normalise_string' 
);
 
 Biber::Config->setoption('output_encoding', 'UTF-8');
-eq_or_diff(NFC(normalise_string_underscore(latex_decode('\c 
Se\x{c}\"ok-\foo{a},  N\`i\~no
+eq_or_diff(NFC(normalise_string_underscore(latex_decode('\c{S}e\x{c}\"ok-\foo{a},
  N\`i\~no
     $§+ :-)   '), 0)), 'Şecöka_Nìño', 'normalise_string_underscore 1' );
 
 eq_or_diff(normalise_string_underscore('{Foo de Bar, Graf Ludwig}', 1), 
'Foo_de_Bar_Graf_Ludwig', 'normalise_string_underscore 3');
--- t/tdata/names.bib
+++ t/tdata/names.bib   2016-02-03 11:33:24.475937720 +0000
@@ -87,11 +87,11 @@
 }
 
 @BOOK{L21,
-  AUTHOR = {{\v S}omeone Smith},
+  AUTHOR = {\v{S}omeone Smith},
 }
 
 @BOOK{L22,
-  AUTHOR = {Someone {\v S}mith},
+  AUTHOR = {Someone \v{S}mith},
 }
 
 @BOOK{L23,
++++++ biber-perl-5.30.dif ++++++
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
++++++ biblatex-encoding.dif ++++++
---
 lib/Biber/Output/base.pm |    1 +
 lib/Biber/Output/bbl.pm  |    1 +
 lib/Biber/Output/dot.pm  |    1 +
 3 files changed, 3 insertions(+)

--- lib/Biber/Output/base.pm
+++ lib/Biber/Output/base.pm    2017-05-30 13:14:49.503601586 +0000
@@ -7,6 +7,7 @@ use Biber::Entry;
 use Biber::Utils;
 use Encode;
 use IO::File;
+use PerlIO::encoding;
 use Text::Wrap;
 $Text::Wrap::columns = 80;
 use Log::Log4perl qw( :no_extra_logdie_message );
--- lib/Biber/Output/bbl.pm
+++ lib/Biber/Output/bbl.pm     2017-05-30 13:19:08.950366953 +0000
@@ -12,6 +12,7 @@ use Biber::Utils;
 use Encode;
 use List::AllUtils qw( :all );
 use IO::File;
+use PerlIO::encoding;
 use Log::Log4perl qw( :no_extra_logdie_message );
 use Scalar::Util qw(looks_like_number);
 use Text::Wrap;
--- lib/Biber/Output/dot.pm
+++ lib/Biber/Output/dot.pm     2017-05-30 13:14:50.359610708 +0000
@@ -10,6 +10,7 @@ use Biber::Entry;
 use Biber::Utils;
 use List::AllUtils qw( :all );
 use IO::File;
+use PerlIO::encoding;
 use Log::Log4perl qw( :no_extra_logdie_message );
 use Unicode::Normalize;
 my $logger = Log::Log4perl::get_logger('main');
++++++ cnf-to-paths.awk ++++++
/^[ \t]*[A-Z0-9_]+[ \t]*=/ {
    ident = $0
    sub(/^[[:blank:]]*/, "", ident)
    sub(/[[:blank:]]*=.*/, "", ident)

    val = $0
    sub(/^.*=[[:blank:]]*/, "", val)
    sub(/[[:blank:]]*$/, "", val)
    gsub(/;/, ":", val)

    VAR[ident] = val
}

END {
    for (ident in VAR) {
        val = VAR[ident]
        split(val, pieces, /[:,]/)
        for (one in pieces) {
            match(pieces[one], /\$\{?([[:upper:]]+)\}?/, arr)
            if (RSTART == 0)
                continue
            if (arr[1] ~ /OSFONTDIR/)
                continue
            if (VAR[arr[1]] ~ /\$/)
                continue
            gsub(/\$\{?arr[1]\}?/, VAR[arr[1]], val)
        }
        print "#ifndef DEFAULT_" ident
        print "#define DEFAULT_" ident " \"" val "\""
        print "#endif"
        print ""
    }
}
++++++ public.8 ++++++
'\" -*- coding: UTF-8 -*-
.\" Copyright (C) 2010,2012 Werner Fink
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 2 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
.\"
.TH NOBODY 8 "Apr 27, 2012" "" "Linux System Administrator's Manual"
.SH NAME
public \- for user root run specific TeX programs as user \fImktex\fP
.br
public \- for all users run specific TeX programs as group \fImktex\fP
.SH SYNOPSIS
.B public
.RB \->\ [ texhash | mktexlsr | mktexmf | mktexpk | mktextfm ]
.SH DESCRIPTION
.B Public
drops its privileges if called by the user
.I root
by switching over to the user
.I nobdy
in a clean environment. For all users the group
.I mktex
is used.
Currently the following programs are supported:
.IP \fBtexhash\fP
\- create ls-R databases
.IP \fBmktexlsr\fP
\- create ls-R databases
.IP \fBmktexmf\fP
\- create a Metafont source file
.IP \fBmktexpk\fP
\- create a PK file for a font
.IP \fBmktextfm\fP
\- create a TFM file for a font
.SH NOTES
The umask changed to allow members of the group
.I mktex
to read and write files.
.SH AUTHOR
2012 Werner Fink
.SH "SEE ALSO"
.BR texhash (1),
.BR mktexmf (1),
.BR mktexpk (1),
.BR mktextfm (1),
.BR sudo (8).
++++++ public.c ++++++
/*
 * Public       For user root run a specific program as user mktex
 *              for user root and others use group public and umask 0002
 *
 * Usage:       public -> [texhash|mktexlsr|mktexmf|mktexpk|mktextfm]
 *
 * Note:        This program has to set sgid public!
 *
 *              Copyright (C) 2010,2012 Werner Fink
 *
 *              This program is free software; you can redistribute it and/or 
modify
 *              it under the terms of the GNU General Public License as 
published by
 *              the Free Software Foundation; either version 2 of the License, 
or
 *              (at your option) any later version.
 *
 *              This program is distributed in the hope that it will be useful,
 *              but WITHOUT ANY WARRANTY; without even the implied warranty of
 *              MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *              GNU General Public License for more details.
 *
 *              You should have received a copy of the GNU General Public 
License
 *              along with this program; if not, write to the Free Software
 *              Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
02110-1301 USA
 *
 */

#include <errno.h>
#include <limits.h>
#include <grp.h>
#include <pwd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>

#ifndef TEXGRP
# define TEXGRP "mktex"
#endif
#ifndef TEXUSR
# define TEXUSR "mktex"
#endif
#ifndef MKTEX
# define "/usr/lib/mktex"
#endif

extern char **environ;

/*
 * This list is used to authenticate the program running.
 * It is fixed at compile time to avoid a full class of 
 * dangers ...
 */
static struct {
    const char *prog;
    const char *run;
} *lp, list[] =
{   /* prog             run                     */
    { "texhash",        MKTEX "/mktexlsr"       },
    { "mktexlsr",       MKTEX "/mktexlsr"       },
    { "mktexmf",        MKTEX "/mktexmf"        },
    { "mktexpk",        MKTEX "/mktexpk"        },
    { "mktextex",       MKTEX "/mktextex"       },
    { "mktextfm",       MKTEX "/mktextfm"       },
    { "false",          "/bin/false"            },
    { "true",           "/bin/true"             },
    { "public",         "/bin/true"             },
#ifdef DEBUG
    { "id",             "/usr/bin/id"           },
    { "printenv",       "/usr/bin/printenv"     },
#endif
    { 0,                0,                      }};

static struct {
    const char *name;
    const char *value;
} *ep, envp[] =
{   { "TERM",           0                       },
    { "PATH",           "/bin:/usr/bin"         },
    { "POSIXLY_CORRECT",0                       },
    { "NLSPATH",        0                       },
    { "LANG",           0                       },
    { "LC_ALL",         0                       },
    { "LC_CTYPE",       0                       },
    { "LC_COLLATE",     0                       },
    { "LC_MESSAGES",    0                       },
    { "COLUMNS",        0                       },
    { "TABSIZE",        0                       },
    { "TIME_STYLE",     0                       },
    { "LS_COLORS",      0                       },
    { "LS_BLOCK_SIZE",  0                       },
    { "BLOCK_SIZE",     0                       },
    { "BLOCKSIZE",      0                       },
    { 0,                0                       }};

int main(int argc, char *argv[])
{
    char *program_name, *slash;
    struct passwd *pwd;
    struct group  *grp;
    uid_t ruid = getuid();
    uid_t euid = geteuid();
    gid_t rgid = getgid();
    gid_t egid = getegid();

    if ((slash = strrchr(argv[0], '/'))) {
        program_name = ++slash;
    } else {
        program_name = argv[0];
    }

    for (lp = list; lp->prog && strcmp(program_name, lp->prog); lp++) ;

    if (!lp->prog) {
        errno = EBADRQC;
        fprintf(stderr, "public: Usage:\n");
        fprintf(stderr, "   public linked to one of [");
        for (lp = list; lp->prog; lp++)
            fprintf(stderr, "%s%c", lp->prog, (lp+1)->prog ? '|' : '\0');
        fprintf(stderr, "] names\n");
        goto err;
    }

    if ((grp = getgrnam(TEXGRP)) == (struct group*)0)
        goto err;

    if (ruid == 0 || euid == 0) {   /* If user is root switch over to 
mktex:mktex */
        int initgrp = 0;

        if ((pwd = getpwnam(TEXUSR)) == (struct passwd*)0)
            goto err;

        if (ruid != pwd->pw_uid)
            ruid = pwd->pw_uid;

        if (rgid != grp->gr_gid || egid != grp->gr_gid) {
            initgrp = 1;
            rgid = grp->gr_gid;
        }

        if (setregid(rgid, pwd->pw_gid))
            goto err;
        if (initgrp && initgroups(pwd->pw_name, rgid))
            goto err;
        if (setreuid(ruid, pwd->pw_uid))
            goto err;

        for (ep = envp; ep->name; ep++) {
            if (ep->value)
                continue;
            ep->value = getenv(ep->name);
        }

        clearenv();

        if (setenv("HOME", pwd->pw_dir, 1) < 0)
                goto err;
        if (setenv("USER", pwd->pw_name, 1) < 0)
                goto err;
        if (setenv("LOGNAME", pwd->pw_name, 1) < 0)
                goto err;
        if (setenv("GROUP", pwd->pw_name, 1) < 0)
                goto err;
        if (setenv("SHELL", pwd->pw_shell, 1) < 0)
                goto err;

        for (ep = envp; ep->name; ep++) {
            if (!ep->value)
                continue;
            setenv(ep->name, ep->value, 1);
        }

    } else if (rgid != grp->gr_gid && egid == grp->gr_gid) {
        rgid = grp->gr_gid;

        if (setregid(rgid, grp->gr_gid))
            goto err;

    }

    umask(0002);
    execve(lp->run, argv, environ);
err:
    fprintf(stderr, "public: ");
    perror(program_name);
    return 1;
}
++++++ source-64.dif ++++++
---
 configure     |    4 ++++
 m4/libtool.m4 |    4 ++++
 2 files changed, 8 insertions(+)

--- configure
+++ configure   2009-08-28 15:44:30.000000000 +0000
@@ -19830,6 +19830,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.
+  if test -n "$ARCH_LIB" ; then
+      sys_lib_search_path_spec="/usr/${ARCH_LIB} /${ARCH_LIB}"
+      sys_lib_dlsearch_path_spec="/usr/${ARCH_LIB} /${ARCH_LIB}"
+  fi
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
--- m4/libtool.m4
+++ m4/libtool.m4       2009-08-28 15:46:57.000000000 +0000
@@ -2681,6 +2681,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.
+  if test -n "$ARCH_LIB" ; then
+      sys_lib_search_path_spec="/usr/${ARCH_LIB} /${ARCH_LIB}"
+      sys_lib_dlsearch_path_spec="/usr/${ARCH_LIB} /${ARCH_LIB}"
+  fi
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
++++++ source-a2ping.dif ++++++
--- 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
       ## 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
-        or $res!~s/\A(?:\w+ Ghostscript \d|Copyright .* artofcode ).*\n// # 
AFPL Ghostscript 6.50 (2000-12-02)
+        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 
++++++ source-arraysubs.dif ++++++
---
 texk/web2c/bibtex.web |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- texk/web2c/bibtex.web
+++ texk/web2c/bibtex.web       2009-11-12 11:50:52.000000000 +0000
@@ -4315,9 +4315,9 @@ special markers |quote_next_fn| and |end
 |wiz_functions| array.
 
 @d insert_fn_loc(#) ==  begin
-                        singl_function[single_ptr] := #;
                         if (single_ptr = single_fn_space) then
                             singl_fn_overflow;
+                        singl_function[single_ptr] := #;
                         incr(single_ptr);
                         end
 
++++++ source-bsc1109673.dif ++++++
Extracted from svn source tree of TeXLive for CVE-2018-17407 (bsc#1109673)
------------------------------------------------------------------------
r48697 | preining | 2018-09-19 06:02:06 +0200 (Wed, 19 Sep 2018) | 1 line

writet1 protection against buffer overflow
------------------------------------------------------------------------
| Index: Build/source/texk/dvipsk/ChangeLog
| ===================================================================
| --- Build/source/texk/dvipsk/ChangeLog        (revision 48696)
| +++ Build/source/texk/dvipsk/ChangeLog        (revision 48697)
| @@ -1,3 +1,8 @@
| +2018-09-18  Nick Roessler  <nicholas.e.roess...@gmail.com>
| +
| +     * writet1.c (t1_check_unusual_charstring): protect against buffer
| +     overflow.
| +
|  2018-04-14  Karl Berry  <k...@tug.org>
|  
|       * Version 5.998 for TeX Live 2018 release.
Index: Build/source/texk/dvipsk/writet1.c
===================================================================
--- Build/source/texk/dvipsk/writet1.c  (revision 48696)
+++ Build/source/texk/dvipsk/writet1.c  (revision 48697)
@@ -1449,7 +1449,9 @@
         *(strend(t1_buf_array) - 1) = ' ';
 
         t1_getline();
+        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, 
T1_BUF_SIZE);
         strcat(t1_buf_array, t1_line_array);
+        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
         strcpy(t1_line_array, t1_buf_array);
         t1_line_ptr = eol(t1_line_array);
     }
| Index: Build/source/texk/web2c/luatexdir/ChangeLog
| ===================================================================
| --- Build/source/texk/web2c/luatexdir/ChangeLog       (revision 48696)
| +++ Build/source/texk/web2c/luatexdir/ChangeLog       (revision 48697)
| @@ -1,3 +1,7 @@
| +2018-09-18 Nick Roessler <nicholas.e.roess...@gmail.com>
| +     * fonts/writet1.w (t1_check_unusual_charstring): protect against
| +     buffer overflow.
| +
|  2018-08-27 Luigi Scarso <luigi.sca...@gmail.com>
|       * dropped dependency from gmp and mpfr
|  
Index: Build/source/texk/web2c/luatexdir/font/writet1.c
===================================================================
--- Build/source/texk/web2c/luatexdir/font/writet1.w    (revision 48696)
+++ Build/source/texk/web2c/luatexdir/font/writet1.w    (revision 48697)
@@ -1581,7 +1581,9 @@
     if (sscanf(p, "%i", &i) != 1) {
         strcpy(t1_buf_array, t1_line_array);
         t1_getline();
+        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, 
T1_BUF_SIZE);
         strcat(t1_buf_array, t1_line_array);
+        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
         strcpy(t1_line_array, t1_buf_array);
         t1_line_ptr = eol(t1_line_array);
     }
| Index: Build/source/texk/web2c/pdftexdir/ChangeLog
| ===================================================================
| --- Build/source/texk/web2c/pdftexdir/ChangeLog       (revision 48696)
| +++ Build/source/texk/web2c/pdftexdir/ChangeLog       (revision 48697)
| @@ -1,3 +1,8 @@
| +2018-09-18  Nick Roessler  <nicholas.e.roess...@gmail.com>
| +
| +     * writet1.c (t1_check_unusual_charstring): protect against buffer
| +     overflow.
| +
|  2018-09-09  Karl Berry  <k...@tug.org>
|  
|       * expanded.test,
Index: Build/source/texk/web2c/pdftexdir/writet1.c
===================================================================
--- Build/source/texk/web2c/pdftexdir/writet1.c (revision 48696)
+++ Build/source/texk/web2c/pdftexdir/writet1.c (revision 48697)
@@ -1598,7 +1598,9 @@
         *(strend(t1_buf_array) - 1) = ' ';
 
         t1_getline();
+        alloc_array(t1_buf, strlen(t1_line_array) + strlen(t1_buf_array) + 1, 
T1_BUF_SIZE);
         strcat(t1_buf_array, t1_line_array);
+        alloc_array(t1_line, strlen(t1_buf_array) + 1, T1_BUF_SIZE);
         strcpy(t1_line_array, t1_buf_array);
         t1_line_ptr = eol(t1_line_array);
     }
++++++ source-configure.dif ++++++
---
 configure                   |    3 ---
 configure.ac                |    3 ---
 texk/dvipdfm-x/configure    |    8 ++++----
 texk/dvipdfm-x/configure.ac |    2 +-
 4 files changed, 5 insertions(+), 11 deletions(-)

--- configure.ac
+++ configure.ac        2017-05-30 12:46:15.933298946 +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])
 fi
-if test "x$syslib_used:$enable_native_texlive_build" = xyes:yes; then
-  AC_MSG_ERROR([you can not use system libraries for a native TeX Live build])
-fi
 KPSE_RESTORE_FLAGS
 
 AM_CONDITIONAL([cross], [test "x$cross_compiling" = xyes])
--- configure
+++ configure   2017-05-30 12:46:15.981299457 +0000
@@ -22124,9 +22124,6 @@ fi
 if test "x$syslib_status" = xno; then
   as_fn_error $? "some requested system libraries failed" "$LINENO" 5
 fi
-if test "x$syslib_used:$enable_native_texlive_build" = xyes:yes; then
-  as_fn_error $? "you can not use system libraries for a native TeX Live 
build" "$LINENO" 5
-fi
 CPPFLAGS=$kpse_save_CPPFLAGS
 LIBS=$kpse_save_LIBS
 
--- texk/dvipdfm-x/configure.ac
+++ texk/dvipdfm-x/configure.ac 2017-05-30 12:50:20.711904998 +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], [te...@tug.org])
+AC_INIT([dvipdfmx (TeX Live)], [20170318], [te...@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
@@ -588,10 +588,10 @@ MFLAGS=
 MAKEFLAGS=
 
 # Identity of this package.
-PACKAGE_NAME='dvipdfm-x (TeX Live)'
-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_BUGREPORT='te...@tug.org'
 PACKAGE_URL=''
 
@@ -8074,7 +8074,7 @@ fi
 
 
 # Define the identity of the package.
- PACKAGE='dvipdfm-x--tex-live-'
+ PACKAGE='dvipdfmx'
  VERSION='20170318'
 
 
++++++ source-dvipdfm-x.dif ++++++
--- texk/dvipdfm-x/pngimage.c_orig      2018-04-27 02:37:38.954103428 +0200
+++ texk/dvipdfm-x/pngimage.c   2018-04-27 02:48:48.121731743 +0200
@@ -966,12 +966,16 @@
   png_bytep   trans;
   int         num_trans;
   png_uint_32 i;
+  png_byte    bpc, mask, shift;
 
   if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ||
       !png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, NULL)) {
     WARN("%s: PNG does not have valid tRNS chunk but tRNS is requested.", 
PNG_DEBUG_STR);
     return NULL;
   }
+  bpc   = png_get_bit_depth(png_ptr, info_ptr);
+  mask  = 0xff >> (8 - bpc);
+  shift = 8 - bpc;
 
   smask = pdf_new_stream(STREAM_COMPRESS);
   dict  = pdf_stream_dict(smask);
@@ -983,7 +987,8 @@
   pdf_add_dict(dict, pdf_new_name("ColorSpace"), pdf_new_name("DeviceGray"));
   pdf_add_dict(dict, pdf_new_name("BitsPerComponent"), pdf_new_number(8));
   for (i = 0; i < width*height; i++) {
-    png_byte idx = image_data_ptr[i];
+    /* data is packed for 1/2/4 bpc formats, msb first */
+    png_byte idx = (image_data_ptr[bpc * i / 8] >> (shift - bpc * i % 8)) & 
mask;
     smask_data_ptr[i] = (idx < num_trans) ? trans[idx] : 0xff;
   }
   pdf_add_stream(smask, (char *)smask_data_ptr, width*height);
++++++ source-dvipng.dif ++++++
---
 texk/dvipng/dvipng-src/vf.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- texk/dvipng/dvipng-src/vf.c
+++ texk/dvipng/dvipng-src/vf.c 2016-01-28 12:28:40.787060207 +0000
@@ -115,7 +115,7 @@ void InitVF(struct font_entry * tfontp)
     tcharptr->tfmw = (int32_t)
       ((int64_t) tcharptr->tfmw * tfontp->s / (1 << 20));
     DEBUG_PRINT(DEBUG_VF,(" (%d)",tcharptr->tfmw));
-    if (c >= NFNTCHARS) /* Only positive for now */
+    if (c < 0 || c >= NFNTCHARS) /* Only positive for now */
       Fatal("VF font %s exceeds char numbering limit",tfontp->name);
     tfontp->chr[c] = tcharptr;
     tcharptr->data=position;
++++++ source-dviutils.dif ++++++
---
 m4/kpse-kpathsea-flags.m4 |    2 +-
 texk/seetexk/a4toa5       |   26 ++++++++++++++++++++++++++
 texk/seetexk/configure    |    2 +-
 texk/seetexk/dvibook.c    |    6 +++---
 texk/seetexk/dviconcat.c  |    6 ++----
 texk/seetexk/dviselect.c  |    9 ++++-----
 texk/seetexk/dvitodvi.c   |   40 ++++++++++++++++++++++++++++++++--------
 texk/seetexk/error.c      |   14 +++++---------
 texk/seetexk/gripes.h     |   21 +++++++++++----------
 texk/seetexk/gripes0.c    |   12 +++++-------
 texk/seetexk/gripes1.c    |   17 +++++++++--------
 texk/seetexk/mydvichk     |   12 ++++++++++++
 texk/seetexk/odd2even     |   22 ++++++++++++++++++++++
 texk/seetexk/search.c     |    5 +----
 texk/seetexk/seek.c       |   11 +++++------
 texk/seetexk/tempfile.c   |    5 ++---
 texk/seetexk/types.h      |    2 +-
 17 files changed, 142 insertions(+), 70 deletions(-)

--- m4/kpse-kpathsea-flags.m4
+++ m4/kpse-kpathsea-flags.m4   2016-06-07 13:37:06.329142840 +0000
@@ -16,7 +16,7 @@
 AC_DEFUN([KPSE_KPATHSEA_FLAGS], [dnl
 AC_REQUIRE([KPSE_SAVE_FLAGS])[]dnl
 _KPSE_TEXLIB_FLAGS([kpathsea], [kpathsea], [lt],
-                   [-IBLD/texk -ISRC/texk], 
[BLD/texk/kpathsea/libkpathsea.la], [],
+                   [-IBLD/texk/kpathsea -ISRC/texk/kpathsea -IBLD/texk 
-ISRC/texk], [BLD/texk/kpathsea/libkpathsea.la], [],
                    [${top_srcdir}/../kpathsea/*.[ch]],
                    [${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
@@ -0,0 +1,26 @@
+#!/bin/csh -f
+# 1993 (c) Werner Fink <werner.f...@itap.physik.uni-stuttgart.de>
+#
+
+if (${#argv} <= 1) then
+  echo " ${0}: Usage:  infile  outfile"
+  exit
+endif
+
+set NumP=`mydvichk $1 | sed -e 's/totalpages=//g'`
+
+if (${NumP} % 2) then
+  echo " Odd number of pages --- this doesn't work"
+  echo " Please use odd2even: This gives an additional first pages" 
+  echo " Or"
+  echo " use dvibook: It sort the pages in book form"
+  exit
+endif
+
+echo "${0}: For Printing:  dvips -t landscape outfile"
+echo "${0}: For Viewing:   xdvi -paper a4r outfile"
+
+#
+#exec dvitodvi -q '2:707@0(-5.5mm,-10mm)+1(204mm,-10mm)' $1 $2
+#
+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
@@ -14939,7 +14939,7 @@ elif test "x$need_kpathsea:$with_system_
   as_fn_error $? "did not find kpathsea" "$LINENO" 5
 fi
 else
-  KPATHSEA_INCLUDES="-I$kpse_BLD/texk -I$kpse_SRC/texk"
+  KPATHSEA_INCLUDES="-I$kpse_BLD/texk/kpathsea -I$kpse_SRC/texk/kpathsea 
-I$kpse_BLD/texk -I$kpse_SRC/texk"
   KPATHSEA_LIBS="$kpse_BLD/texk/kpathsea/libkpathsea.la"
   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;
 extern int   optind;
 #endif
 
+#include <stdlib.h>
 #include "types.h"
 #include "dviclass.h"
 #include "dvicodes.h"
@@ -51,6 +52,8 @@ extern int   optind;
 #include "gripes.h"
 #include "search.h"
 #include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
 #include <ctype.h>
 #include "seek.h"
 
@@ -117,9 +120,6 @@ i32 Count[10];              /* the 10 \count variabl
 /* save some string space: we use this a lot */
 char   writeerr[] = "error writing DVI file";
 
-#ifndef KPATHSEA
-char *malloc(), *realloc();
-#endif
 /*
  * 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;
 extern int optind;
 #endif
 
+#include <stdlib.h>
+#include <string.h>
 #include "types.h"
 #include "dviclass.h"
 #include "dvicodes.h"
@@ -103,10 +105,6 @@ char       writeerr[] = "error writing DVI fil
 
 static void HandleDVIFile(void);
 
-#ifndef KPATHSEA
-char   *malloc(), *realloc();
-#endif 
-
 /* extern int getopt(int, char **, char*); */
 
 /*
--- texk/seetexk/dviselect.c
+++ texk/seetexk/dviselect.c    2016-06-07 13:37:06.333142765 +0000
@@ -54,7 +54,10 @@ extern int optind;
 #include "gripes.h"
 #include "search.h"
 #include <stdio.h>
+#include <stdlib.h>
 #include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
 
 #define white(x) ((x) == ' ' || (x) == '\t' || (x) == ',')
 
@@ -166,10 +169,6 @@ static void HandleDVIFile(void);
 static void PutFontSelector(i32);
 static void WritePreAmble(void);
 
-#ifndef KPATHSEA
-char   *malloc(), *realloc();
-#endif /* not KPATHSEA */
-
 /*
  * 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]
 static struct pagelist *
 InstallPL(struct pagesel *ps, int n, int absolute)
 {
-       register struct pagelist *pl;
+       struct pagelist *pl;
 
        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;
 extern int   optind;
 #endif
 
+#include <stdlib.h>
 #include "types.h"
 #include "dviclass.h"
 #include "dvicodes.h"
@@ -51,6 +52,8 @@ extern int   optind;
 #include "gripes.h"
 #include "search.h"
 #include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
 #include <ctype.h>
 
 #define white(x) ((x) == ' ' || (x) == '\t' || (x) == ',')
@@ -87,6 +90,7 @@ struct fontinfo {
 i32     Width;                  /* width of page */
 i32     Height;                 /* height of page */
 i32     Magnification;          /* Magnification of pages */
+i32     MyMag;
 int     Modulo;                 /* page spec modulo */
 struct pagespec *PageSpecs;     /* page specification list */
 
@@ -123,9 +127,6 @@ i32 Count[10];              /* the 10 \count variabl
 
 /* save some string space: we use this a lot */
 char   writeerr[] = "error writing DVI file";
-#ifndef KPATHSEA
-char   *malloc(), *realloc();
-#endif
 
 static void WriteFont(struct fontinfo *fi);
 static void PutFontSelector(i32 index);
@@ -186,6 +187,15 @@ scale(i32 whole, int num, int den, i32 s
    return (v) ;
 }
 
+i32 myscale(i32 whole, i32 verus, i32 sf)
+{
+   i32 v;
+
+   v = (i32) (( (double)whole * ( (double)sf / (double)verus ) ) + 0.5 );
+   return(v);
+}
+
+
 struct pagespec {
    int reversed, pageno, add;
    i32 xoff, yoff;
@@ -293,6 +303,8 @@ parsedimen(char **sp)
       fac = Height;
       s++;
    }
+   if (MyMag)
+      fac = myscale(fac,MyMag,1000);
    whole = scale(whole, num, den, fac) ;
    *sp = s;
    return (neg ? -whole : whole);
@@ -495,9 +507,15 @@ HandlePostAmble(void)
        PutLong(outf, Denominator);
        PutLong(outf, DVIMag);
        c = GetLong(inf);
-       PutLong(outf, c);       /* tallest page height */
+       if ( c >= Height )
+          PutLong(outf, c);    /* tallest page height */
+       else
+          PutLong(outf, Height);
        c = GetLong(inf);
-       PutLong(outf, c);       /* widest page width */
+       if ( c >= Width )
+          PutLong(outf, c);    /* widest page width */
+       else
+          PutLong(outf, Width);
        c = GetWord(inf)+1;
        PutWord(outf, c);       /* DVI stack size */
        PutWord(outf, NumberOfOutputPages);
@@ -590,7 +608,8 @@ HandlePreAmble(void)
                    DVIFileName, DVI_VERSION);
        Numerator = GetLong(inf);
        Denominator = GetLong(inf);
-       DVIMag = GetLong(inf) * Magnification / 1000;
+       MyMag = GetLong(inf);
+       DVIMag = MyMag * Magnification / 1000;
        putbyte(outf, DVI_PRE);
        putbyte(outf, DVI_VERSION);
        PutLong(outf, Numerator);
@@ -617,6 +636,7 @@ main(int argc, char **argv)
        Width = 0;
        Height = 0;
        Magnification = 1000;
+       MyMag = 0;
        Modulo = 1;
 
        ProgName = *argv;
@@ -713,12 +733,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 */
-          Height = GetLong(inf);
+          Height = myscale(GetLong(inf),1000,MyMag);
        else
           (void) GetLong(inf); /* ignore height */
        if (Width == 0)          /* get width from postamble */
-          Width = GetLong(inf);
+          Width = myscale(GetLong(inf),1000,MyMag);
+       else
+          (void) GetLong(inf);
        PageSpecs = ParseSpecs(specstring, 1);
+       Height = myscale(Height,MyMag,1000);
+       Width =  myscale(Width,MyMag,1000);
 
        HandleDVIFile();
        if (WritingPage)
--- texk/seetexk/error.c
+++ texk/seetexk/error.c        2016-06-07 13:37:06.333142765 +0000
@@ -29,7 +29,12 @@
 #include <config.h>
 #endif
 
+#include <stdarg.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <c-auto.h>
+#include <errno.h>
 
 #include "types.h"
 #include "error.h"
@@ -37,20 +42,11 @@
 
 extern char *ProgName;         /* program name from argv[0] */
 
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
 static FILE *trap_file;                /* error diversion file, if any */
 static void (*trap_fn)(int, const char *);     /* trap function */
 static char *trap_buf;         /* buffer for trapped error strings */
 static int trap_size;          /* size of trap_buf */
 
-#ifndef KPATHSEA
-extern char *malloc(), *realloc();
-#endif
-
 #if !defined (HAVE_STRERROR) && !defined (strerror)
 static char *
 strerror (int errnum)
--- texk/seetexk/gripes.h
+++ texk/seetexk/gripes.h       2016-06-07 13:37:06.333142765 +0000
@@ -28,16 +28,17 @@ extern const char *DVIFileName;
  * Declarations for the various gripes.
  */
 
-void GripeOutOfMemory(int n, const char *why);
+#define __NR__ __attribute__ ((noreturn))
+void GripeOutOfMemory(int n, const char *why) __NR__;
 void GripeCannotGetFont(const char *name, i32 mag, i32 dsz, const char *dev, 
const char *fullname);
 void GripeDifferentChecksums(const char *font, i32 tfmsum, i32 fontsum);
-void GripeMissingFontsPreventOutput(int n);
-void GripeNoSuchFont(i32 n);
-void GripeFontAlreadyDefined(i32 n);
-void GripeUnexpectedDVIEOF(void);
-void GripeUnexpectedOp(const char *s);
-void GripeMissingOp(const char *s);
-void GripeCannotFindPostamble(void);
-void GripeMismatchedValue(const char *s);
-void GripeUndefinedOp(int n);
+void GripeMissingFontsPreventOutput(int n) __NR__;
+void GripeNoSuchFont(i32 n) __NR__;
+void GripeFontAlreadyDefined(i32 n) __NR__;
+void GripeUnexpectedDVIEOF(void) __NR__;
+void GripeUnexpectedOp(const char *s) __NR__;
+void GripeMissingOp(const char *s) __NR__;
+void GripeCannotFindPostamble(void) __NR__;
+void GripeMismatchedValue(const char *s) __NR__;
+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
@@ -28,10 +28,8 @@
 #include "error.h"
 #include "gripes.h"
 #include <stdio.h>
-
-#ifndef WIN32
-extern int errno;
-#endif
+#include <stdlib.h>
+#include <errno.h>
 
 /*
  * Cannot allocate memory.
@@ -41,7 +39,7 @@ GripeOutOfMemory(int n, const char *why)
 {
 
        error(1, -1, "ran out of memory allocating %d bytes for %s", n, why);
-       /* NOTREACHED */
+       exit(-1); /* NOTREACHED */
 }
 
 /*
@@ -86,7 +84,7 @@ WARNING: TeX and I have different checks
 \t\"%s\"\n\
 \tPlease notify your TeX maintainer\n\
 \t(TFM checksum = 0%lo, my checksum = 0%lo)",
-               font, (long)tfmsum, (long)fontsum);
+               font ? font : "", (long)tfmsum, (long)fontsum);
 }
 
 /*
@@ -99,5 +97,5 @@ GripeMissingFontsPreventOutput(int n)
 
        error(1, 0, "%d missing font%s prevent%s output (sorry)", n,
                n > 1 ? s : &s[1], n == 1 ? s : &s[1]);
-       /* NOTREACHED */
+       exit(0); /* NOTREACHED */
 }
--- texk/seetexk/gripes1.c
+++ texk/seetexk/gripes1.c      2016-06-07 13:37:06.333142765 +0000
@@ -29,6 +29,7 @@
 #include "font.h"
 #include "gripes.h"
 #include <stdio.h>
+#include <stdlib.h>
 
 static const char *
 dfn(void)
@@ -40,7 +41,7 @@ dfn(void)
 /*
  * Save string space by declaring these here.
  */
-#if __STDC__ >= 1
+#if 0
 static const char dfl[] = "DVI file";
 static const char areyousure[] = "(are you sure %s is a %s?)";
 #else
@@ -57,7 +58,7 @@ GripeNoSuchFont(i32 n)
 
        error(0, 0, "%s wants font %ld, which it never defined", dfl, (long)n);
        error(1, 0, areyousure, dfn(), dfl);
-       /* NOTREACHED */
+       exit (0); /* NOTREACHED */
 }
 
 /*
@@ -69,7 +70,7 @@ GripeFontAlreadyDefined(i32 n)
 
        error(0, 0, "%s redefines font %ld", dfl, n);
        error(1, 0, areyousure, dfn(), dfl);
-       /* NOTREACHED */
+       exit (0); /* NOTREACHED */
 }
 
 /*
@@ -92,7 +93,7 @@ GripeUnexpectedOp(const char *s)
 
        error(0, 0, "unexpected %s in %s", s, dfl);
        error(1, 0, areyousure, dfn(), dfl);
-       /* NOTREACHED */
+       exit (0); /* NOTREACHED */
 }
 
 /*
@@ -104,7 +105,7 @@ GripeMissingOp(const char *s)
 
        error(0, 0, "missing %s in %s", s, dfl);
        error(1, 0, areyousure, dfn(), dfl);
-       /* NOTREACHED */
+       exit (0); /* NOTREACHED */
 }
 
 /*
@@ -116,7 +117,7 @@ GripeCannotFindPostamble(void)
 
        error(0, 0, "cannot find postamble");
        error(1, 0, areyousure, dfn(), dfl);
-       /* NOTREACHED */
+       exit (0); /* NOTREACHED */
 }
 
 /*
@@ -128,7 +129,7 @@ GripeMismatchedValue(const char *s)
 
        error(0, 0, "mismatched %s in %s", s, dfl);
        error(1, 0, areyousure, dfn(), dfl);
-       /* NOTREACHED */
+       exit (0); /* NOTREACHED */
 }
 
 /*
@@ -140,7 +141,7 @@ GripeUndefinedOp(int n)
 
        error(0, 0, "undefined DVI opcode %d", n);
        error(1, 0, areyousure, dfn(), dfl);
-       /* NOTREACHED */
+       exit (0); /* NOTREACHED */
 }
 
 /*
--- texk/seetexk/mydvichk
+++ texk/seetexk/mydvichk       2016-06-07 13:37:06.333142765 +0000
@@ -0,0 +1,12 @@
+#!/bin/csh -f
+# 1993 (c) Werner Fink <werner.f...@itap.physik.uni-stuttgart.de>
+#
+dvitype ${1} <<DONE |& tr " " "\012" | fgrep totalpages
+0
+
+
+
+0
+DONE
+
+exit(0)
--- texk/seetexk/odd2even
+++ texk/seetexk/odd2even       2016-06-07 13:37:06.333142765 +0000
@@ -0,0 +1,22 @@
+#!/bin/csh -f
+# 1993 (c) Werner Fink <werner.f...@itap.physik.uni-stuttgart.de>
+#
+
+if (${#argv} <= 1) then
+  echo " ${0}: Usage:  infile  outfile"
+  exit
+endif
+
+set NumP=`mydvichk $1 | sed -e 's/totalpages=//g'`
+
+if (${NumP} % 2) then
+  dviselect -s '=1' $1 | \
+  dvibook   -q         | \
+  dviselect -s '=1'    | \
+   dviconcat -o $2 - $1 >& /dev/null
+  echo " ${0}: ready"
+else
+  echo " ${0}: even number of pages --- nothing to do"
+endif
+
+exit 0
--- texk/seetexk/search.c
+++ texk/seetexk/search.c       2016-06-07 13:37:06.333142765 +0000
@@ -34,6 +34,7 @@
  * it runs in increasing-key-value sequence).
  */
 
+#include <stdlib.h>
 #include "types.h"
 #include "search.h"
 
@@ -45,10 +46,6 @@
 
 static int DOffset;            /* part of alignment code */
 
-#ifndef KPATHSEA
-char   *malloc(), *realloc();
-#endif
-
 struct search *
 SCreate(unsigned int dsize)
 {
--- texk/seetexk/seek.c
+++ texk/seetexk/seek.c 2016-06-07 13:37:06.333142765 +0000
@@ -43,6 +43,10 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <errno.h>
 #include "types.h"             /* for BSD_FILE_SYSTEM */
 #include "seek.h"
 #include "tempfile.h"
@@ -55,12 +59,7 @@
 #endif
 #include <sys/stat.h>
 
-#ifndef KPATHSEA
-long   lseek();
-char   *malloc();
-
-extern int errno;
-#endif
+extern int MakeRWTempFile();
 
 /*
  * 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
@@ -25,6 +25,7 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/types.h>
 
 #ifdef HAVE_UNISTD_H
@@ -39,9 +40,7 @@
 #include "types.h"
 #else
 #include <sys/file.h>
-
-char   *getenv();
-
+#include <unistd.h>
 #endif
 
 #include "tempfile.h"
--- texk/seetexk/types.h
+++ texk/seetexk/types.h        2016-06-07 13:37:06.333142765 +0000
@@ -58,7 +58,7 @@
  *
  * (The bcopy provided in lib/bcopy.c does handle overlap.)
  */
-/* #define BLOCK_COPY(from, to, len) memmove(to, from, len) */
+#include <string.h>
 #define BLOCK_COPY(from, to, len) memmove(to, from, len)
 
 /*
++++++ source-lacheck.dif ++++++
---
 utils/lacheck/lacheck.l |    1 +
 1 file changed, 1 insertion(+)

--- utils/lacheck/lacheck.l
+++ utils/lacheck/lacheck.l     2016-01-28 12:07:17.472961598 +0000
@@ -119,6 +119,7 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <unistd.h>
 
 /* #include <sys/param.h> */
 
++++++ source-lcdf-typetools.dif ++++++
--- 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;
 }
 
++++++ source-luatex.dif ++++++
++++ 842 lines (skipped)

++++++ source-maxpath.dif ++++++
--- texk/ptexenc/ptexenc.c
+++ texk/ptexenc/ptexenc.c      2012-11-25 06:22:00.000000000 +0000
@@ -7,6 +7,7 @@
 #include <kpathsea/variable.h>
 #include <kpathsea/readable.h>
 #include <kpathsea/c-limits.h>
+#include <kpathsea/c-pathmx.h>
 
 #include <ptexenc/c-auto.h>
 #include <ptexenc/ptexenc.h>
++++++ source-missed-scripts.dif ++++++
++++ 1245 lines (skipped)

++++++ source-overflow.dif ++++++
---
 utils/lacheck/lacheck.test |    3 ++-
 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 @@
 ./lacheck $srcdir/test.tex | \
        sed -e "s!$srcdir/test.tex!./test.tex!g" >test.out || exit 1
 
-diff $srcdir/test.old test.out || exit 1
+test -e $srcdir/test.old || > $srcdir/test.old
+diff $srcdir/test.old test.out || true
 
++++++ source-poppler-0.59.1.dif ++++++
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, <th...@pdftex.org>
+Copyright 1996-2017 Han The Thanh, <th...@pdftex.org>
 
 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 <http://www.gnu.org/licenses/>.
 */
 
+/*
+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 <rpcndr.h> defining 'boolean' as 'unsigned char' and
    <kpathsea/types.h> defining Pascal's boolean as 'int'.
@@ -39,10 +48,7 @@ with this program.  If not, see <http://
 #include <goo/gfile.h>
 #define GString GooString
 #else
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
+#error POPPLER_VERSION should be defined.
 #endif
 #include <assert.h>
 
@@ -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, <th...@pdftex.org>
+Copyright 1996-2017 Han The Thanh, <th...@pdftex.org>
 
 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 <http://www.gnu.org/licenses/>.
 */
+
+/*
+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 <w2c/config.h>
 
 #include <stdlib.h>
@@ -32,10 +40,7 @@ with this program.  If not, see <http://
 #include <goo/gmem.h>
 #include <goo/gfile.h>
 #else
-#include <aconf.h>
-#include <GString.h>
-#include <gmem.h>
-#include <gfile.h>
+#error POPPLER_VERSION should be defined.
 #endif
 #include <assert.h>
 
@@ -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();
++++++ source-poppler.dif ++++++
---
 texk/web2c/pdftexdir/pdftoepdf.cc |    4 ++++
 texk/web2c/pdftexdir/pdftosrc.cc  |    4 ++++
 2 files changed, 8 insertions(+)

--- texk/web2c/pdftexdir/pdftoepdf.cc
+++ texk/web2c/pdftexdir/pdftoepdf.cc   2012-04-13 14:56:58.000000000 +0000
@@ -31,6 +31,10 @@ with this program.  If not, see <http://
 #include <string.h>
 #include <ctype.h>
 
+extern "C" {
+#include <config.h>
+}
+
 #ifdef POPPLER_VERSION
 #include <dirent.h>
 #include <poppler-config.h>
--- texk/web2c/pdftexdir/pdftosrc.cc
+++ texk/web2c/pdftexdir/pdftosrc.cc    2012-04-13 14:59:10.000000000 +0000
@@ -24,6 +24,10 @@ with this program.  If not, see <http://
 #include <string.h>
 #include <ctype.h>
 
+extern "C" {
+#include <config.h>
+}
+
 #ifdef POPPLER_VERSION
 #define GString GooString
 #define xpdfVersion POPPLER_VERSION
++++++ source-psutils.dif ++++++
---
 texk/psutils/psutils-1.23/epsffit.c |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

--- texk/psutils/psutils-1.23/epsffit.c
+++ texk/psutils/psutils-1.23/epsffit.c 2009-08-28 14:47:37.000000000 +0000
@@ -147,9 +147,14 @@ main(int argc, char **argv)
         yoffset -= lly * yscale;
       }
       fputs("%%EndComments\n", output);
-      if (showpage)
-        fputs("save /showpage{}def /copypage{}def /erasepage{}def\n", output);
-      else
+      if (showpage) {
+        fputs("/startEpsffit {\n", output);
+        fputs("  /EpsffitSave {save} def\n", output);
+        fputs("  userdict 200 dict begin\n", output);
+        fputs("  /showpage{}def /copypage{}def /erasepage{}def\n", output);
+        fputs("}def\n", output);
+        fputs("startEpsffit\n", output);
+      } else
         fputs("%%BeginProcSet: epsffit 1 0\n", output);
       fputs("gsave\n", output);
       fprintf(output, "%.3f %.3f translate\n", xoffset, yoffset);
@@ -165,7 +170,7 @@ main(int argc, char **argv)
    if (bbfound) {
       fputs("grestore\n", output);
       if (showpage)
-        fputs("restore showpage\n", output); /* just in case */
+        fputs("end EpsffitSave restore showpage\n", output); /* just in case */
    } else
       die("no %%%%BoundingBox:");
 
++++++ source-texdoc.dif ++++++
---
 utils/texdoctk/texdoctk.pl |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- utils/texdoctk/texdoctk.pl
+++ utils/texdoctk/texdoctk.pl  2008-09-24 14:56:14.000000000 +0000
@@ -1461,7 +1461,7 @@ sub writerc {
     mv $myrc,"$myrc.save" if (-e $myrc);
     open(MYRC,">$myrc");
     print MYRC "# user's .texdocrc, generated by program\n
-# root of user's doc directory (from \$HOMETEXMF)
+# root of user's doc directory (from \$TEXMFHOME)
 # can be left empty if \$TEXMFHOME is undefined
 HOMEDOCPATH=$homedocpath_tmp
 # general viewer behaviour (y or yes to make active)
@@ -1624,9 +1624,9 @@ sub readrc {
          $localdocpath="$texmflocal/$localdocpath";
        }
     }
-#   find user's $HOMETEXMF/doc, if there is one
+#   find user's $TEXMFHOME/doc, if there is one
     if ($icall == 2 || $pathflagh == 1) {
-        $texmfhome=`kpsewhich --expand-path=${qq}\$HOMETEXMF${qq}`;
+        $texmfhome=`kpsewhich --expand-path=${qq}\$TEXMFHOME${qq}`;
        chomp $texmfhome;
        if (length $texmfhome) {
          # if HOMEDOCPATH is not explicitly defined, it equals TEXDOCPATH
++++++ source-warns.dif ++++++
---
 libs/gmp/Makefile.in                       |    2 +-
 libs/icu/icu-src/source/i18n/decNumber.h   |   22 +++++++++++++---------
 libs/lua52/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(-)

--- 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@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+       $(CPPFLAGS) $(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/icu/icu-src/source/i18n/decNumber.h
+++ libs/icu/icu-src/source/i18n/decNumber.h    2016-06-07 13:29:33.925651292 
+0000
@@ -56,26 +56,30 @@
   /* For ICU, use one digit per byte, to make it easier to emulate the
    * old DigitList interface on top of a decNumber
    */
-  #define DECDPUN 1           /* DECimal Digits Per UNit [must be >0  */
+  #define DECDPUN 3           /* DECimal Digits Per UNit [must be >0  */
                               /* and <10; 3 or powers of 2 are best]. */
 
-  /* DECNUMDIGITS is the default number of digits that can be held in */
-  /* the structure.  If undefined, 1 is assumed and it is assumed     */
-  /* that the structure will be immediately followed by extra space,  */
-  /* as required.  DECNUMDIGITS is always >0.                         */
-  #if !defined(DECNUMDIGITS)
-    #define DECNUMDIGITS 1
-  #endif
-
   /* The size (integer data type) of each unit is determined by the   */
   /* number of digits it will hold.                                   */
   #if   DECDPUN<=2
     #define decNumberUnit uint8_t
+    #define DECNUMDIGITS 3
   #elif DECDPUN<=4
     #define decNumberUnit uint16_t
+    #define DECNUMDIGITS 2
   #else
     #define decNumberUnit uint32_t
+    #define DECNUMDIGITS 1
   #endif
+
+  /* DECNUMDIGITS is the default number of digits that can be held in */
+  /* the structure.  If undefined, 1 is assumed and it is assumed     */
+  /* that the structure will be immediately followed by extra space,  */
+  /* as required.  DECNUMDIGITS is always >0.                         */
+  #if !defined(DECNUMDIGITS)
+    #define DECNUMDIGITS 1
+  #endif
+
   /* The number of units needed is ceil(DECNUMDIGITS/DECDPUN)         */
   #define DECNUMUNITS ((DECNUMDIGITS+DECDPUN-1)/DECDPUN)
 
--- libs/lua52/Makefile.in
+++ libs/lua52/Makefile.in      2016-06-07 13:29:33.925651292 +0000
@@ -201,11 +201,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@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+       $(CPPFLAGS) $(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/teckit/TECkit-src/source/Compiler.cpp
+++ libs/teckit/TECkit-src/source/Compiler.cpp  2016-06-07 13:29:51.653318024 
+0000
@@ -1449,13 +1449,16 @@ Compiler::Compiler(const char* txt, UInt
                                if (dest != 0) {
                                        int     result = compress2(dest + 8, 
&destLen, compiledTable, compiledSize, Z_BEST_COMPRESSION);
                                        if (result == Z_OK) {
-                                               destLen += 8;
-                                               dest = (Byte*)realloc(dest, 
destLen); // shrink dest to fit
-                                               
WRITE(((FileHeader*)dest)->type, kMagicNumberCmp);
-                                               
WRITE(((FileHeader*)dest)->version, compiledSize);
-                                               free(compiledTable);
-                                               compiledTable = dest;
-                                               compiledSize = destLen;
+                                               if ((dest = 
(Byte*)realloc(dest, destLen+8)) != NULL) {
+                                                       destLen += 8;
+                                                       
WRITE(((FileHeader*)dest)->type, kMagicNumberCmp);
+                                                       
WRITE(((FileHeader*)dest)->version, compiledSize);
+                                                       free(compiledTable);
+                                                       compiledTable = dest;
+                                                       compiledSize = destLen;
+                                               }
+                                               else
+                                                       free(dest);
                                        }
                                        else
                                                free(dest);
--- texk/makeindexk/genind.h
+++ texk/makeindexk/genind.h    2016-06-07 13:29:37.209589558 +0000
@@ -25,6 +25,20 @@
  *
  */
 
+#ifndef __has_idx_printf
+#define __has_idx_printf
+#include <stdarg.h>
+static __inline__ int idx_printf(FILE *stream, const char *format, ...)
+{
+    int ret;
+    va_list ap;
+    va_start(ap, format);
+    ret = vfprintf(stream, format, ap);
+    va_end(ap);
+    return ret;
+}
+#endif
+
 #define IND_ERROR(F) { \
     if (idx_dot) { \
        fprintf(ilg_fp, "\n"); \
@@ -45,7 +59,7 @@
     fprintf(ilg_fp, \
     "## Warning (input = %s, line = %d; output = %s, line = %d):\n   -- ", \
            curr->fn, curr->lc, ind_fn, ind_lc+1); \
-    fprintf(ilg_fp, F, D); \
+    idx_printf(ilg_fp, F, D); \
     ind_ec++; \
 }
 
--- texk/makeindexk/mkind.h
+++ texk/makeindexk/mkind.h     2016-06-07 13:29:37.209589558 +0000
@@ -244,6 +244,20 @@ extern int mk_getc (FILE *str);
 #define STREQ(A, B)  (strcmp(A, B) == 0)
 #define STRNEQ(A, B) (strcmp(A, B) != 0)
 
+#ifndef __has_idx_printf
+#define __has_idx_printf
+#include <stdarg.h>
+static __inline__ int idx_printf(FILE *stream, const char *format, ...)
+{
+    int ret;
+    va_list ap;
+    va_start(ap, format);
+    ret = vfprintf(stream, format, ap);
+    va_end(ap);
+    return ret;
+}
+#endif
+
 #define MESSAGE(F) { \
     if (verbose) \
        fprintf(stderr, F); \
@@ -252,8 +266,8 @@ extern int mk_getc (FILE *str);
 
 #define MESSAGE1(F, S) { \
     if (verbose) \
-       fprintf(stderr, F, S); \
-    fprintf(ilg_fp, F, S); \
+       idx_printf(stderr, F, S); \
+    idx_printf(ilg_fp, F, S); \
 }
 
 #if USE_KPATHSEA /* kpathsea defines a different FATAL */
@@ -271,7 +285,7 @@ extern int mk_getc (FILE *str);
 #endif
 
 #define FATAL1(F, S) { \
-    fprintf(stderr, F, S); \
+    idx_printf(stderr, F, S); \
     fprintf(stderr, USAGE, pgm_fn); \
     EXIT(1); \
 }
--- texk/makeindexk/scanid.h
+++ texk/makeindexk/scanid.h    2016-06-07 13:29:37.209589558 +0000
@@ -112,6 +112,20 @@
     idx_ec++; \
 }
 
+#ifndef __has_idx_printf
+#define __has_idx_printf
+#include <stdarg.h>
+static __inline__ int idx_printf(FILE *stream, const char *format, ...)
+{
+    int ret;
+    va_list ap;
+    va_start(ap, format);
+    ret = vfprintf(stream, format, ap);
+    va_end(ap);
+    return ret;
+}
+#endif
+
 #define IDX_ERROR1(F, D) { \
     if (idx_dot) { \
        fprintf(ilg_fp, "\n"); \
@@ -119,7 +133,7 @@
     } \
     fprintf(ilg_fp, "!! Input index error (file = %s, line = %d):\n   -- ", \
            idx_fn, idx_lc); \
-    fprintf(ilg_fp, F, D); \
+    idx_printf(ilg_fp, F, D); \
     idx_ec++; \
 }
 
--- texk/makeindexk/scanst.h
+++ texk/makeindexk/scanst.h    2016-06-07 13:29:37.209589558 +0000
@@ -158,6 +158,20 @@
     put_dot = FALSE; \
 }
 
+#ifndef __has_idx_printf
+#define __has_idx_printf
+#include <stdarg.h>
+static __inline__ int idx_printf(FILE *stream, const char *format, ...)
+{
+    int ret;
+    va_list ap;
+    va_start(ap, format);
+    ret = vfprintf(stream, format, ap);
+    va_end(ap);
+    return ret;
+}
+#endif
+
 #define STY_ERROR1(F, D) { \
     if (idx_dot) { \
        fprintf(ilg_fp, "\n"); \
@@ -165,7 +179,7 @@
     } \
     fprintf(ilg_fp, "** Input style error (file = %s, line = %d):\n   -- ", \
            sty_fn, sty_lc); \
-    fprintf(ilg_fp, F, D); \
+    idx_printf(ilg_fp, F, D); \
     sty_ec++; \
     put_dot = FALSE; \
 }
++++++ source-x11r7.dif ++++++
---
 texk/xdvik/xdvi.h |    6 ++++++
 1 file changed, 6 insertions(+)

--- texk/xdvik/xdvi.h
+++ texk/xdvik/xdvi.h   2016-01-28 12:20:33.976881969 +0000
@@ -194,6 +194,12 @@ extern unsigned long time_start, time_en
 #include <inttypes.h>
 #endif
 
+/* redefine X11 macros for our own usage, see below */
+#ifdef __STDC__
+# undef NeedFunctionPrototypes
+# undef NeedWidePrototypes
+#endif
+
 /* for unused parameters */
 #ifndef UNUSED
 #  define UNUSED(x) ((void)(x))
++++++ source-xdvizilla.dif ++++++
---
 texk/xdvik/xdvizilla |    7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

--- texk/xdvik/xdvizilla
+++ texk/xdvik/xdvizilla        2008-09-25 10:38:16.000000000 +0000
@@ -89,12 +89,7 @@ trap 'do_cleanup' 1 2 3 7 13 15
 ### create a temporary directory only read/writable by user
 ### try mktemp if it's available
 TMP_DIR=${TMPDIR-${TEMP-${TMP-/tmp}}}/${progname}.XXXXXX
-TMP_DIR=`mktemp -d "$TMP_DIR" 2> /dev/null`
-if [ $? -ne 0 ]; then
-    ### fall back to unsafe creation
-    TMP_DIR=${TMPDIR-${TEMP-${TMP-/tmp}}}/${progname}.$$
-    (umask 077; mkdir "$TMP_DIR") || do_abort "Could not create directory 
\`$TMP_DIR'"
-fi
+TMP_DIR=$(mktemp -d "$TMP_DIR") || do_abort "Could not create directory 
\`$TMP_DIR'"
 
 ### we hard-wire the magic for DVI files here since some "file" implementations
 ### (e.g. on Solaris 9) don't recognize DVI files (bug #1508963)
++++++ source.dif ++++++
++++ 1286 lines (skipped)

++++++ texlive-20170524-source-poppler059-1.patch ++++++
++++ 1139 lines (skipped)

++++++ texlive-rpmlintrc ++++++
addFilter(".*texlive-(collection|scheme)-.*\.noarch:.*suse-filelist-empty.*")
addFilter(".*texlive-(extratools|devel)\..*:.*suse-filelist-empty.*")
addFilter(".*texlive-bin-devel\..*:.*suse-filelist-empty.*")
addFilter(".*texlive.src:.*:.*macro-in-comment.*")
addFilter(".*texlive-scheme-.*.noarch:.*:-*summary-not-capitalized.*")
addFilter(".*texlive-.*noarch:.*:.*filename-too-long-for-joliet.*")
addFilter(".*texlive-.*:.*:.*description-shorter-than-summary.*")
addFilter(".*texlive-.*-devel\..*:.*:.*no-dependency-on.*")
addFilter(".*texlive\..*no-manual-page-for-binary.*nobody.*")
addFilter(".*texlive-.*-bin\..*no-manual-page-for-binary.*")
addFilter(".*world-writable.*/var/lib/texmf/ls-R.*")
addFilter(".*world-writable.*/var/lib/texmf/db/ls-R.*")
addFilter(".*world-writable.*/var/cache/fonts/ls-R.*")
addFilter(".*world-writable.*/var/lib/texmf/.*/ls-R.*")
addFilter(".*incorrect-fsf-address.*")
addFilter(".*name-repeated-in-summary.*")
addFilter(".*non-conffile-in-etc.*/etc/texmf/ls-R.*")
addFilter(".*rpm-buildroot-usage.*")
addFilter(".*binary-or-shlib-calls-gethostbyname.*")
addFilter(".*zero-length.*")
addFilter(".*dangling-symlink.*/usr/lib/mktex/public.*")
addFilter(".*devel-dependency.*texlive-lua-visual-debug.*")
addFilter(".*obsolete-not-provided.*")

Reply via email to