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.*")