--- libs/icu/icu-src/source/common/Makefile.in | 2 reautoconf | 2 texk/dviljk/dvi2xx.c | 11 texk/kpathsea/c-fopen.h | 6 texk/kpathsea/c-memstr.h | 3 texk/kpathsea/cnf-to-paths.awk | 2 texk/kpathsea/db.c | 13 - texk/kpathsea/mktex.opt | 39 ++- texk/kpathsea/mktexlsr | 52 +++- texk/kpathsea/progname.c | 4 texk/kpathsea/texmf.cnf | 140 +++++++----- texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc | 3 texk/ps2pk/pk2bm.c | 2 texk/texlive/linked_scripts/musixtex/musixtex.lua | 17 + texk/texlive/linked_scripts/texlive/fmtutil-sys.sh | 1 texk/texlive/linked_scripts/texlive/fmtutil.pl | 24 +- texk/texlive/linked_scripts/texlive/updmap-sys.sh | 1 texk/texlive/tl_scripts/fmtutil.cnf | 17 - texk/texlive/tl_scripts/texconfig-dialog.sh | 14 - texk/texlive/tl_scripts/texconfig-sys.sh | 1 texk/texlive/tl_scripts/texconfig.sh | 35 --- texk/texlive/tl_scripts/texlinks.sh | 53 +++- texk/web2c/Makefile.in | 7 texk/web2c/luatexdir/luapplib/ppheap.c | 61 ++--- texk/web2c/luatexdir/luapplib/ppload.c | 4 texk/web2c/uptexdir/tests/gkhugeng.err | 8 texk/web2c/window/regis.c | 8 texk/web2c/window/x11-Xlib.c | 8 texk/web2c/window/x11-Xt.c | 4 texk/xdvik/psgs.c | 22 + texk/xdvik/xdvi-sh.in | 19 + 31 files changed, 393 insertions(+), 190 deletions(-) --- libs/icu/icu-src/source/common/Makefile.in +++ libs/icu/icu-src/source/common/Makefile.in 2018-04-10 09:02:17.774983801 +0000 @@ -69,7 +69,7 @@ DEFS += -DU_COMMON_IMPLEMENTATION LDFLAGS += $(LDFLAGSICUUC) # for plugin configuration -CPPFLAGS += "-DDEFAULT_ICU_PLUGINS=\"$(libdir)/icu\" " +CPPFLAGS += "-DDEFAULT_ICU_PLUGINS=\"/usr/lib/icu\" " # for icu data location ifeq ($(PKGDATA_MODE),common) --- reautoconf +++ reautoconf 2018-04-10 09:02:17.774983801 +0000 @@ -83,7 +83,7 @@ echo "$0: TL_AUTOHEADER, T # Give users a chance to quit here # and set TL_AUTOCONF, TL_AUTOHEADER, TL_AUTOMAKE, and/or TL_ACLOCAL -$do_cmd sleep 5 +# $do_cmd sleep 5 AUTOCONF=$TL_AUTOCONF AUTOHEADER=$TL_AUTOHEADER --- texk/dviljk/dvi2xx.c +++ texk/dviljk/dvi2xx.c 2018-04-10 09:02:17.858982223 +0000 @@ -168,7 +168,18 @@ main(int argc, char *argv[]) setbuf(ERR_STREAM, NULL); #ifdef KPATHSEA +# if defined(LJ) kpse_set_program_name(argv[0], "dvilj"); +# endif +# if defined(LJ2P) + kpse_set_program_name(argv[0], "dvilj2p"); +# endif +# if defined(LJ4) && !defined(LJ4L) + kpse_set_program_name(argv[0], "dvilj4"); +# endif +# if defined(LJ4) && defined(LJ4L) + kpse_set_program_name(argv[0], "dvilj4l"); +# endif kpse_set_program_enabled (kpse_pk_format, MAKE_TEX_PK_BY_DEFAULT, kpse_src_compile); G_progname = kpse_program_name; #else --- texk/kpathsea/c-fopen.h +++ texk/kpathsea/c-fopen.h 2018-04-10 09:02:17.858982223 +0000 @@ -38,17 +38,17 @@ /* How to open a binary file for reading: */ #ifndef FOPEN_RBIN_MODE -#define FOPEN_RBIN_MODE "rb" +#define FOPEN_RBIN_MODE "r" #endif /* not FOPEN_RBIN_MODE */ /* How to open a binary file for writing: */ #ifndef FOPEN_WBIN_MODE -#define FOPEN_WBIN_MODE "wb" +#define FOPEN_WBIN_MODE "w" #endif /* not FOPEN_WBIN_MODE */ /* How to open a binary file for appending: */ #ifndef FOPEN_ABIN_MODE -#define FOPEN_ABIN_MODE "ab" +#define FOPEN_ABIN_MODE "a" #endif /* not FOPEN_ABIN_MODE */ /* How to switch an already open file handle to binary mode. --- texk/kpathsea/c-memstr.h +++ texk/kpathsea/c-memstr.h 2018-04-10 09:02:17.858982223 +0000 @@ -37,6 +37,7 @@ /* For ancient systems that lack the system V/ANSI version of the string functions we express them in terms of the BSD versions. */ +#ifndef __GNUC__ #if !defined(HAVE_STRCHR) && !defined(strchr) #define strchr index #endif @@ -60,4 +61,6 @@ extern char *strstr (); #endif #endif +#endif /* not __GNUC__ */ + #endif /* not KPATHSEA_C_MEMSTR_H */ --- texk/kpathsea/cnf-to-paths.awk +++ texk/kpathsea/cnf-to-paths.awk 2018-04-10 09:02:17.858982223 +0000 @@ -40,7 +40,7 @@ val = $0; sub(/^.*=[ \t]*/, "", val); sub(/[ \t]*$/, "", val); - #print "got ident", ident, "and val", val >"/dev/stderr"; +print "got ident", ident, "and val", val >"/dev/stderr"; if (val ~ /\$SELFAUTO/) { # Replace all semicolons with colons in the SELFAUTO paths we're keeping. --- texk/kpathsea/db.c +++ texk/kpathsea/db.c 2018-04-10 09:08:03.084494047 +0000 @@ -93,7 +93,8 @@ db_build (kpathsea kpse, hash_table_type unsigned len = strlen (db_filename) - sizeof (DB_NAME) + 1; /* Keep the /. */ string top_dir = (string)xmalloc (len + 1); string cur_dir = NULL; /* First thing in ls-R might be a filename. */ - FILE *db_file = fopen (db_filename, FOPEN_R_MODE); + struct stat statdb; + FILE *db_file; #if defined(MONOCASE_FILENAMES) string pp; #endif /* MONOCASE_FILENAMES */ @@ -101,7 +102,15 @@ db_build (kpathsea kpse, hash_table_type strncpy (top_dir, db_filename, len); top_dir[len] = 0; - if (db_file) { + if ((getenv("MKTEXLSR") == NULL) && + (stat(db_filename, &statdb) < 0 || statdb.st_size == 0)) { + char buf[PATH_MAX+1]; + snprintf(buf, PATH_MAX, "mktexlsr %s", top_dir); + xputenv("MKTEXLSR", "true"); /* fork loop detection */ + system (buf); + } + + if ((db_file = fopen (db_filename, FOPEN_R_MODE))) { while ((line = read_line (db_file)) != NULL) { len = strlen (line); --- texk/kpathsea/mktex.opt +++ texk/kpathsea/mktex.opt 2018-04-10 09:02:17.858982223 +0000 @@ -38,10 +38,11 @@ if test "$DOSISH" = "no"; then SEP=':'; # TEMPDIR needs to be unique to each process because of the possibility of two # people running dvips (or whatever) simultaneously. if test -n "$TMPDIR"; then - TEMPDIR="${TMPDIR}/mt$$.tmp" + TEMPDIR="${TMPDIR}/.mtXXXXXXXXXX" else - TEMPDIR="/tmp/mt$$.tmp" + TEMPDIR="/tmp/.mtXXXXXXXXXX" fi +TEMPDIR=$(mktemp -d "$TEMPDIR") || exit 1 # We want to output only filenames to standard output, but it's too # error-prone to write the scripts that way, so we direct stdout here. @@ -49,17 +50,23 @@ STDOUT="$TEMPDIR/mt$$.out" # We will change search paths to include $KPSE_DOT. This is necessary # since we cd to $TEMPDIR. -: ${KPSE_DOT=`pwd`}; export KPSE_DOT +: ${KPSE_DOT=${PWD}}; export KPSE_DOT # Clean up on normal or abnormal exit. # The "cd /" is for MS-DOS and MS-Windows, where there is a separate # current directory on each drive, and therefore "cd $KPSE_DOT" might # still leave $TMPDIR current directory on its drive, in which case it # cannot be removed. -trap 'rc=$?; cd /; cd "$KPSE_DOT"; test -f "$STDOUT" && cat "$STDOUT"; rm -rf "$TEMPDIR"; exit $rc' \ - 0 1 2 3 7 13 15 +atexit () +{ + local rc=$? + cd "$KPSE_DOT" + test -n "$STDOUT" -a -f "$STDOUT" && cat "$STDOUT" + test -n "$TEMPDIR" -a -d "$TEMPDIR" && rm -rf "$TEMPDIR" + exit $rc +} +trap 'atexit' EXIT SIGHUP SIGINT SIGQUIT SIGBUS SIGPIPE SIGTERM -(umask 077 && mkdir "$TEMPDIR") || exit 1 cd "$TEMPDIR" || exit 1 # The alternative location for fonts. The directory need not exist, @@ -69,6 +76,11 @@ if test -z "$MT_VARTEXFONTS"; then echo "$0: VARTEXFONTS is not defined. Defaulting to \`$KPSE_DOT'." >&2 MT_VARTEXFONTS='$KPSE_DOT' fi +: ${MT_TEXMFVAR=`kpsewhich --expand-var='$TEXMFVAR' | sed 's%^!!%%'`} +if test -z "$MT_TEXMFVAR"; then + echo "$0: TEXMFVAR is not defined. Defaulting to \`$KPSE_DOT'." >&2 + MT_TEXMFVAR='$KPSE_DOT' +fi # The supporting scripts: : ${MT_MKTEXNAM=`kpsewhich --format='web2c files' mktexnam`} @@ -109,9 +121,18 @@ fi : ${MAG=1.0} : ${ps_to_pk=gsftopk} # some prefer ps2pk -# Allow fonts to be read and written (especially in case we make -# directories) by everyone. -umask 0 +case ":${MT_FEATURES}:" in +*:varfonts:*) + if test -w "$MT_VARTEXFONTS" ; then + # Allow fonts to be read and written (especially in case we make + # directories) by everyone. + umask 0 + else + umask 022 + MT_VARTEXFONTS=$HOME/.cache/texmf/fonts + test -d $MT_VARTEXFONTS || mkdir -p $MT_VARTEXFONTS + fi +esac # Cache values that may be useful for recursive calls. export MT_MKTEX_OPT MT_MKTEX_CNF --- texk/kpathsea/mktexlsr +++ texk/kpathsea/mktexlsr 2018-04-10 09:02:17.858982223 +0000 @@ -58,6 +58,9 @@ if test "$DOSISH" = "no"; then SEP=':'; # be done before kpsewhich can be called, and thus cannot be put into # mktex.opt. dirname=`echo $0 | sed 's%/*[^/][^/]*$%%'` +case "$SEP$PATH$SEP" in + *$SEP$dirname$SEP*) dirname="" ;; +esac case $dirname in "") # Do nothing ;; @@ -152,6 +155,16 @@ old_ls_R_magic='% ls-R -- maintained by shift } +cache="`kpsewhich --expand-var='$VARTEXFONTS'`" +{ + saveIFS=$IFS + IFS=: + for c in ${cache}; do + test -w "$c" || continue + cache=$c + done + IFS=$saveIFS +} for TEXMFLS_R in "$@"; do # Prepend cwd if the directory was relative. case "$TEXMFLS_R" in @@ -181,12 +194,23 @@ for TEXMFLS_R in "$@"; do # want to be silent if the directory doesn't exist, since the ls-R # path ordinarily contains many nonexistent directories. test -d "$db_dir" || continue - test -w "$db_dir" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; } + if test -w "$db_dir" ; then + # default + db_dir_tmp="$db_dir/.lsR.XXXXXX" + else + # Escape to writable cache directory + test -w "$cache" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; } + db_dir_tmp="$cache/.lsR.XXXXXX" + fi if test ! -f "$db_file"; then - cp /dev/null "$db_file" + # Note: this script has set the noclobber option at line 40 + > "$db_file" \ + || { echo "$progname: could not create file '$db_file'. Skipping..." >&2; continue; } # Use same permissions as parent directory, minus x,s, or t bits. chmod `kpsestat -xst "$db_dir"` "$db_file" + elif test -w $db_file -a ! -s $db_file ; then + : Is writable but empty elif test -s "$db_file" \ && test "x`sed '1s/ $//;1q' \"$db_file\"`" != "x$ls_R_magic" \ && test "x`sed '1s/ $//;1q' \"$db_file\"`" != "x$old_ls_R_magic"; then @@ -197,8 +221,13 @@ for TEXMFLS_R in "$@"; do # Skip if we cannot write the file: kpseaccess -w "$db_file" || { echo "$progname: $db_file: no write permission, skipping..." >&2; continue; } - db_dir_tmp="$db_dir/lsR$$.tmp" - (umask 077 && mkdir "$db_dir_tmp" ) \ + until PERMS=`kpsestat = "$db_file"`; do sleep 1; done + if test "$PERMS" = "666" -a ! -k "$db_dir" ; then + echo "$progname: $db_file: world writable but '$db_dir' not sticky, skipping..." >&2 + continue + fi + + db_dir_tmp=$(mktemp -d "$db_dir_tmp") \ || { echo "$progname: $db_dir_tmp: could not create directory, skipping..." >&2; continue; } db_file_tmp="$db_dir_tmp/lsR$$.tmp" rm -f "$db_file_tmp" @@ -206,7 +235,9 @@ for TEXMFLS_R in "$@"; do $verbose && echo "$progname: Updating $db_file... " $dry_run && continue - echo "$ls_R_magic" >"$db_file_tmp" + # Note: this script has set the noclobber option at line 40 + echo "$ls_R_magic" >"$db_file_tmp" \ + || { echo "$progname: $db_file_tmp: could not create file, skipping..." >&2; continue; } # The main task. We put ./: in the output, so top-level files can be # found via ls-R. Probably irrelevant in practice. The sed command @@ -220,15 +251,20 @@ for TEXMFLS_R in "$@"; do vc_dirs='\.\(bzr\|git\|hg\|svn\)\|_darcs' (cd "$TEXMFLS_R" && \ls -LRa 2>/dev/null) \ | sed -e '/^$/{n;s%^\./%%;s%^%./%;}; /^\.$/d; /^\.\.$/d; /^'$vc_dirs'$/d;' \ - -e '/^[\.\/]*lsR[0-9]*\.tmp:*$/d' \ + -e '/^[\.\/]*lsR[0-9]*\.tmp:*$/d;/^[\.\/]*'${db_dir_tmp##*/}':*$/d' \ | sed -e /$vc_dirs'.*:$/,/^$/d' \ >>"$db_file_tmp" # To be really safe, a loop. until PERMS=`kpsestat = "$db_file"`; do sleep 1; done chmod $PERMS "$db_file_tmp" - rm -f "$db_file" - mv "$db_file_tmp" "$db_file" + if test -w "$db_file" ; then + # Sticky bit is set see line 200 + # Temporary unset the noclobber option at line 40 + set +o noclobber + cat "$db_file_tmp" > "$db_file" + set -o noclobber + fi rm -rf "$db_dir_tmp" done --- texk/kpathsea/progname.c +++ texk/kpathsea/progname.c 2018-04-10 09:02:17.862982147 +0000 @@ -662,9 +662,9 @@ kpathsea_set_program_name (kpathsea kpse /* SELFAUTODIR is actually the parent of the invocation directory, and SELFAUTOPARENT the grandparent. This is how teTeX did it. */ kpathsea_xputenv (kpse, "SELFAUTOLOC", fix_selfdir (sdir)); - sdir_parent = xdirname (sdir); + sdir_parent = xdirname ("/usr/share"); kpathsea_xputenv (kpse, "SELFAUTODIR", fix_selfdir (sdir_parent)); - sdir_grandparent = xdirname (sdir_parent); + sdir_grandparent = xdirname ("/usr/share/texmf"); kpathsea_xputenv (kpse, "SELFAUTOPARENT", fix_selfdir (sdir_grandparent)); sdir_greatgrandparent = xdirname (sdir_grandparent); kpathsea_xputenv (kpse, "SELFAUTOGRANDPARENT", fix_selfdir (sdir_greatgrandparent)); --- texk/kpathsea/texmf.cnf +++ texk/kpathsea/texmf.cnf 2019-05-29 06:12:28.489081219 +0000 @@ -61,20 +61,20 @@ TEXMFROOT = $SELFAUTOPARENT % The main tree of distributed packages and programs: -TEXMFDIST = $TEXMFROOT/texmf-dist +TEXMFDIST = /usr/share/texmf % We used to have a separate /texmf tree with some core programs and files. % Keep the variable name. TEXMFMAIN = $TEXMFDIST % Local additions to the distribution trees. -TEXMFLOCAL = $SELFAUTOGRANDPARENT/texmf-local +TEXMFLOCAL = /usr/local/share/texmf % TEXMFSYSVAR, where *-sys store cached runtime data. -TEXMFSYSVAR = $TEXMFROOT/texmf-var +TEXMFSYSVAR = /var/lib/texmf % TEXMFSYSCONFIG, where *-sys store configuration data. -TEXMFSYSCONFIG = $TEXMFROOT/texmf-config +TEXMFSYSCONFIG = /etc/texmf % Per-user texmf tree(s) -- organized per the TDS, as usual. To define % more than one per-user tree, set this to a list of directories in @@ -83,10 +83,10 @@ TEXMFSYSCONFIG = $TEXMFROOT/texmf-config TEXMFHOME = ~/texmf % TEXMFVAR, where texconfig/updmap/fmtutil store cached runtime data. -TEXMFVAR = ~/.texlive2019/texmf-var +TEXMFVAR = ${TEXMFSYSVAR} % TEXMFCONFIG, where texconfig/updmap/fmtutil store configuration data. -TEXMFCONFIG = ~/.texlive2019/texmf-config +TEXMFCONFIG = ${TEXMFSYSCONFIG} % This is the value manipulated by tlmgr's auxtrees subcommand in the % root texmf.cnf. Kpathsea warns about a literally empty string for a @@ -107,7 +107,7 @@ TEXMFAUXTREES = {} % The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is % ever defined (the 99% common case), no extra elements will be added to % the search paths. tlmgr takes care to end any value with a trailing comma. -TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST} +TEXMF = {$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFDIST} % Where to look for, and where mktexlsr creates, ls-R files. By default, % this is all and only the !! elements of TEXMF, so that mktexlsr does not @@ -115,24 +115,23 @@ TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEX % present, it will be used, and the disk will not (usually) be searched, % regardless of !!. Although in principle a directory listed here need % not contain an ls-R file, in practice they all should. -TEXMFDBS = {!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST} +TEXMFDBS = $TEXMF;$VARTEXFONTS;$HOMECACHE % The system trees. These are the trees that are shared by all users. % If a tree appears in this list, the mktex* scripts will use % VARTEXFONTS for generated files, if the original tree isn't writable; % otherwise the current working directory is used. -SYSTEXMF = $TEXMFSYSVAR;$TEXMFLOCAL;$TEXMFDIST +SYSTEXMF = $TEXMFSYSCONFIG;$TEXMFSYSVAR;$TEXMFLOCAL;$TEXMFDIST % First writable tree here is used by Lua(La)TeX for the font cache. % LuaLaTeX uses the value here, while ConTeXt uses the same variable but % from texmfcnf.lua; therefore the two values should be kept in sync. % (As should everything else in texmf.cnf <-> texmfcnf.lua.) -TEXMFCACHE = $TEXMFSYSVAR;$TEXMFVAR +TEXMFCACHE = $TEXMFSYSVAR;$TEXMFVAR;$HOMECACHE % Where generated fonts may be written. This tree is used when the sources % were found in a system tree and either that tree wasn't writable, or the % varfonts feature was enabled in MT_FEATURES in mktex.cnf. -VARTEXFONTS = $TEXMFVAR/fonts % On some systems, there will be a system tree which contains all the font % files that may be created as well as the formats. For example @@ -143,7 +142,8 @@ VARTEXFONTS = $TEXMFVAR/fonts % % Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below % one of the TEXMF directories (avoids overlapping ls-R files). - +VARTEXFONTS = /var/cache/texmf/fonts +HOMECACHE = ${HOME}/.cache/texmf/fonts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Usually you will not need to edit any of the following variables. @@ -151,7 +151,7 @@ VARTEXFONTS = $TEXMFVAR/fonts % WEB2C is for Web2C specific files. The current directory may not be % a good place to look for them. -WEB2C = $TEXMF/web2c +WEB2C = ${TEXMFHOME}/web2c;${TEXMFSYSCONFIG}/web2c;${TEXMFSYSVAR}/web2c;$TEXMF/web2c % This variable exists only to be redefined; it is used in nearly all % search paths. If a document has source files not only in the current @@ -285,7 +285,7 @@ TEXINPUTS = $TEXMFDOTDIR;$ TTF2TFMINPUTS = $TEXMFDOTDIR;$TEXMF/ttf2pk// % Metafont, MetaPost inputs. -MFINPUTS = $TEXMFDOTDIR;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source// +MFINPUTS = $TEXMFDOTDIR;$TEXMF/metafont//;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/source// MPINPUTS = $TEXMFDOTDIR;$TEXMF/metapost// % Dump files (fmt/base/mem) for vir{tex,mf,mp} to read. @@ -295,31 +295,31 @@ MPINPUTS = $TEXMFDOTDIR;$TEXMF/metapost/ % We repeat the same definition three times because of the way fmtutil % is implemented; if we use ${TEXFORMATS}, the mpost/mf/etc. formats % will not be found. -TEXFORMATS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} -MFBASES = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} -MPMEMS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,} +TEXFORMATS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}// +MFBASES = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}// +MPMEMS = $TEXMFDOTDIR;$TEXMF/web2c{/$engine,}// % % As of 2008, pool files don't exist any more (the strings are compiled % into the binaries), but just in case something expects to find these: -TEXPOOL = $TEXMFDOTDIR;$TEXMF/web2c +TEXPOOL = $TEXMFDOTDIR;$WEB2C MFPOOL = ${TEXPOOL} MPPOOL = ${TEXPOOL} % support the original xdvi. Must come before the generic settings. -PKFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}// +PKFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s;{$HOMECACHE,$VARTEXFONTS}/pk/{%m,modeless}// VFFONTS.XDvi = $TEXMFDOTDIR;$TEXMF/%s PSHEADERS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,fonts/type1}// TEXPICTS.XDvi = $TEXMFDOTDIR;$TEXMF/%q{dvips,tex}// % Device-independent font metric files. VFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/vf// -TFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/tfm// +TFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/tfm// % The $MAKETEX_MODE below means the drivers will not use a cx font when % the mode is ricoh. If no mode is explicitly specified, kpse_prog_init % sets MAKETEX_MODE to /, so all subdirectories are searched. See the manual. % The modeless part guarantees that bitmaps for PostScript fonts are found. -PKFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}// +PKFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}// % Similarly for the GF format, which only remains in existence because % Metafont outputs it (and MF isn't going to change). @@ -415,8 +415,8 @@ MPSUPPORT = $TEXMFDOTDIR;$TEXMF/metapost % For xdvi to find mime.types and .mailcap, if they do not exist in % ~. These are single directories, not paths. % (But the default mime.types, at least, may well suffice.) -MIMELIBDIR = $TEXMFROOT/etc -MAILCAPLIBDIR = $TEXMFROOT/etc +MIMELIBDIR = /etc +MAILCAPLIBDIR = /etc % Default settings for the fontconfig library as used by the Windows % versions of xetex/xdvipdfmx. Not used by xetex on Unixish systems. @@ -440,10 +440,10 @@ WEBINPUTS = $TEXMFDOTDIR;$TEXMF/web// CWEBINPUTS = $TEXMFDOTDIR;$TEXMF/cweb// % Omega-related fonts and other files. -OFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}// -OPLFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/opl// -OVFFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}// -OVPFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/ovp// +OFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/{ofm,tfm}// +OPLFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/opl// +OVFFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/{ovf,vf}// +OVPFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$HOMECACHE,$VARTEXFONTS}/ovp// OTPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/otp// OCPINPUTS = $TEXMFDOTDIR;$TEXMF/omega/ocp// @@ -526,32 +526,38 @@ RUBYINPUTS = $TEXMFDOTDIR;$TEXMF/scrip % explicitly list every directory. Arguably more understandable anyway. % TEXMFCNF = {\ -$SELFAUTOLOC,\ -$SELFAUTOLOC/share/texmf-local/web2c,\ -$SELFAUTOLOC/share/texmf-dist/web2c,\ -$SELFAUTOLOC/share/texmf/web2c,\ -$SELFAUTOLOC/texmf-local/web2c,\ -$SELFAUTOLOC/texmf-dist/web2c,\ -$SELFAUTOLOC/texmf/web2c,\ -\ -$SELFAUTODIR,\ -$SELFAUTODIR/share/texmf-local/web2c,\ -$SELFAUTODIR/share/texmf-dist/web2c,\ -$SELFAUTODIR/share/texmf/web2c,\ -$SELFAUTODIR/texmf-local/web2c,\ -$SELFAUTODIR/texmf-dist/web2c,\ -$SELFAUTODIR/texmf/web2c,\ -\ -$SELFAUTOGRANDPARENT/texmf-local/web2c,\ -$SELFAUTOPARENT,\ -\ -$SELFAUTOPARENT/share/texmf-local/web2c,\ -$SELFAUTOPARENT/share/texmf-dist/web2c,\ -$SELFAUTOPARENT/share/texmf/web2c,\ -$SELFAUTOPARENT/texmf-local/web2c,\ -$SELFAUTOPARENT/texmf-dist/web2c,\ -$SELFAUTOPARENT/texmf/web2c\ +/etc/texmf,\ +/etc/texmf/web2c,\ +/var/lib/texmf/web2c,\ +/usr/share/texmf/web2c\ } +%TEXMFCNF = {\ +%$SELFAUTOLOC,\ +%$SELFAUTOLOC/share/texmf-local/web2c,\ +%$SELFAUTOLOC/share/texmf-dist/web2c,\ +%$SELFAUTOLOC/share/texmf/web2c,\ +%$SELFAUTOLOC/texmf-local/web2c,\ +%$SELFAUTOLOC/texmf-dist/web2c,\ +%$SELFAUTOLOC/texmf/web2c,\ +%\ +%$SELFAUTODIR,\ +%$SELFAUTODIR/share/texmf-local/web2c,\ +%$SELFAUTODIR/share/texmf-dist/web2c,\ +%$SELFAUTODIR/share/texmf/web2c,\ +%$SELFAUTODIR/texmf-local/web2c,\ +%$SELFAUTODIR/texmf-dist/web2c,\ +%$SELFAUTODIR/texmf/web2c,\ +%\ +%$SELFAUTOGRANDPARENT/texmf-local/web2c,\ +%$SELFAUTOPARENT,\ +%\ +%$SELFAUTOPARENT/share/texmf-local/web2c,\ +%$SELFAUTOPARENT/share/texmf-dist/web2c,\ +%$SELFAUTOPARENT/share/texmf/web2c,\ +%$SELFAUTOPARENT/texmf-local/web2c,\ +%$SELFAUTOPARENT/texmf-dist/web2c,\ +%$SELFAUTOPARENT/texmf/web2c\ +%} % % For reference, here is the old brace-using definition: %TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c} @@ -836,3 +842,33 @@ max_cols.gftype = 8191 % Guess input encoding (SJIS vs. Unicode, etc.) in pTeX and friends? % Default is 1, to guess. Used on Windows only. guess_input_kanji_encoding = 1 + +% These are xmltex specific +main_memory.xmltex = 1500000 +param_size.xmltex = 1500 +stack_size.xmltex = 1500 +hash_extra.xmltex = 50000 +string_vacancies.xmltex = 45000 +pool_free.xmltex = 47500 +nest_size.xmltex = 500 +save_size.xmltex = 10000 +pool_size.xmltex = 500000 +max_strings.xmltex = 55000 + +% These are pdfxmltex specific +main_memory.pdfxmltex = 2500000 +param_size.pdfxmltex = 1500 +stack_size.pdfxmltex = 1500 +hash_extra.pdfxmltex = 50000 +string_vacancies.pdfxmltex = 45000 +pool_free.pdfxmltex = 47500 +nest_size.pdfxmltex = 500 +save_size.pdfxmltex = 10000 +pool_size.pdfxmltex = 500000 +max_strings.pdfxmltex = 55000 + +% These are jadetex specific +main_memory.jadetex = 499999 +hash_extra.jadetex = 25000 +pool_size.jadetex = 500000 +save_size.jadetex = 15000 --- texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc +++ texk/lcdf-typetools/lcdf-typetools-src/otftotfm/otftotfm.cc 2018-04-10 09:08:59.687430373 +0000 @@ -67,6 +67,9 @@ # include #endif +#undef SHAREDIR +#define SHAREDIR "/usr/share/texmf/fonts/map/glyphlist" + using namespace Efont; #define VERSION_OPT 301 --- texk/ps2pk/pk2bm.c +++ texk/ps2pk/pk2bm.c 2018-04-10 09:02:17.862982147 +0000 @@ -103,7 +102,7 @@ int main(int argc, char *argv[]) } } - if (argc == 0) { + if (argc != 1) { msg ("pk2bm (ps2pk) version " PACKAGE_VERSION "\n"); printf("Usage: %s [-bh] {-c char|-o octchar} [-W width -H height] pkfile\n", myname); exit(1); --- texk/texlive/linked_scripts/musixtex/musixtex.lua +++ texk/texlive/linked_scripts/musixtex/musixtex.lua 2018-04-10 09:12:50.395048030 +0000 @@ -200,15 +200,26 @@ end -- possible by exploiting the the fact that Lua has two false values. -- dvi == nil "do not produce a DVI file" (but maybe PDF) -- dvi == false "do not process the DVI file" (but stop after TeX) +local base=string.explode(arg[0], "/+") +base=string.explode(base[#base], ".+") +base=base[1] local dvips = "dvips -e0" function defaults() prepmx = "prepmx" pmx = "pmxab" autosp = "autosp" - tex = "etex" + if base == "pdfmusixtex" then + tex = "pdfetex" + dvips = "" + dvi = "" + ps2pdf = "" + else + tex = "etex" + dvips = "dvips -e0" + dvi = dvips + ps2pdf = "ps2pdf" + end musixflx = "musixflx" - dvi = dvips - ps2pdf = "ps2pdf" cleanup = true -- clean up intermediate and log files index = false latex = false --- texk/texlive/linked_scripts/texlive/fmtutil-sys.sh +++ texk/texlive/linked_scripts/texlive/fmtutil-sys.sh 2018-04-10 09:02:17.862982147 +0000 @@ -22,4 +22,5 @@ PATH="$mydir:$PATH"; export PATH # hack around a bug in zsh: test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' +umask 022 exec fmtutil --sys ${1+"$@"} --- texk/texlive/linked_scripts/texlive/fmtutil.pl +++ texk/texlive/linked_scripts/texlive/fmtutil.pl 2018-04-10 09:02:17.862982147 +0000 @@ -10,16 +10,16 @@ # History: # Original shell script (C) 2001 Thomas Esser, public domain -my $TEXMFROOT; +my $TEXMFDIST; BEGIN { $^W = 1; - $TEXMFROOT = `kpsewhich -var-value=TEXMFROOT`; + $TEXMFDIST = `kpsewhich -var-value=TEXMFDIST`; if ($?) { - die "$0: kpsewhich -var-value=TEXMFROOT failed, aborting early.\n"; + die "$0: kpsewhich -var-value=TEXMFDIST failed, aborting early.\n"; } - chomp($TEXMFROOT); - unshift(@INC, "$TEXMFROOT/tlpkg", "$TEXMFROOT/texmf-dist/scripts/texlive"); + chomp($TEXMFDIST); + unshift(@INC, "$TEXMFDIST/tlpkg", "$TEXMFDIST/scripts/texlive"); require "mktexlsr.pl"; TeX::Update->import(); } @@ -70,7 +70,7 @@ TeXLive::TLUtils::prepend_own_path(); # this function checks by itself whether it is running on windows or not reset_root_home(); -chomp(our $TEXMFDIST = `kpsewhich --var-value=TEXMFDIST`); +chomp(our $TEXMFROOT = `kpsewhich --var-value=TEXMFROOT`); chomp(our $TEXMFVAR = `kpsewhich -var-value=TEXMFVAR`); chomp(our $TEXMFSYSVAR = `kpsewhich -var-value=TEXMFSYSVAR`); chomp(our $TEXMFCONFIG = `kpsewhich -var-value=TEXMFCONFIG`); @@ -361,7 +361,14 @@ sub callback_build_formats { TeXLive::TLWinGoo::maybe_make_ro ($tmpdir); } } else { + my ($uid, $gid); $tmpdir = File::Temp::tempdir(CLEANUP => 1); + if ($> == 0 && ($uid=getpwnam("mktex")) && ($gid=getgrnam("mktex"))) { + my $cnt = chown $uid, $gid, $tmpdir; + die "could not create directory $tmpdir" if $cnt <= 0; + $cnt = chmod 0770, $tmpdir; + die "could not create directory $tmpdir" if $cnt <= 0; + } } # set up destination directory $opts{'fmtdir'} ||= "$texmfvar/web2c"; @@ -597,6 +604,7 @@ sub rebuild_one_format { # check for existence of ini file before doing anything else if (system("kpsewhich -progname=$fmt -format=$kpsefmt $inifile >$nul 2>&1") != 0) { # we didn't find the ini file, skip + return $FMT_NOTAVAIL if (!$opts{'no-error-if-no-engine'}); print_deferred_warning("inifile $inifile for $fmt/$eng not found.\n"); # The original script just skipped it but in TeX Live we expect that # all activated formats are also buildable, thus return failure. @@ -656,11 +664,15 @@ sub rebuild_one_format { ",$opts{'no-error-if-no-engine'}," =~ m/,$eng,/) { return $FMT_NOTAVAIL; } else { + return $FMT_NOTAVAIL if (!$opts{'no-error-if-no-engine'}); print_deferred_error("not building $fmt due to missing engine $eng.\n"); return $FMT_FAILURE; } } + if ($ENV{batchmode} and $ENV{batchmode} eq "yes") { + $texargs="\\batchmode \\input $texargs" if $eng eq "tex" || $eng eq "ptex"; + } my $cmdline = "$eng -ini $tcxflag $recorderswitch $jobswitch " . "$prgswitch $texargs"; print_verbose("running \`$cmdline' ...\n"); --- texk/texlive/linked_scripts/texlive/updmap-sys.sh +++ texk/texlive/linked_scripts/texlive/updmap-sys.sh 2018-04-10 09:02:17.862982147 +0000 @@ -22,4 +22,5 @@ PATH="$mydir:$PATH"; export PATH # hack around a bug in zsh: test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' +umask 022 exec updmap --sys ${1+"$@"} --- texk/texlive/tl_scripts/fmtutil.cnf +++ texk/texlive/tl_scripts/fmtutil.cnf 2018-04-10 09:02:17.862982147 +0000 @@ -46,10 +46,11 @@ amstex pdftex - -translate-file=cp227.tc # from context: cont-en pdftex cont-usr.tex -8bit *cont-en.mkii cont-en xetex cont-usr.tex -8bit *cont-en.mkii -#! cont-fr pdftex cont-usr.tex -8bit *cont-fr.mkii -#! cont-it pdftex cont-usr.tex -8bit *cont-it.mkii -#! cont-nl pdftex cont-usr.tex -8bit *cont-nl.mkii -#! cont-ro pdftex cont-usr.tex -8bit *cont-ro.mkii +cont-de pdftex cont-usr.tex -8bit *cont-fr.mkii +cont-fr pdftex cont-usr.tex -8bit *cont-fr.mkii +cont-it pdftex cont-usr.tex -8bit *cont-it.mkii +cont-nl pdftex cont-usr.tex -8bit *cont-nl.mkii +cont-ro pdftex cont-usr.tex -8bit *cont-ro.mkii # # from cslatex: cslatex pdftex - -etex cslatex.ini @@ -66,8 +67,8 @@ pdfcsplain luatex - -etex csplain.ini eplain pdftex language.dat -translate-file=cp227.tcx *eplain.ini # # from jadetex: -jadetex pdftex language.dat *jadetex.ini -pdfjadetex pdftex language.dat *pdfjadetex.ini +jadetex pdftex language.dat -translate-file=cp227.tcx *jadetex.ini +pdfjadetex pdftex language.dat -translate-file=cp227.tcx *pdfjadetex.ini # # from latex-bin: latex pdftex language.dat -translate-file=cp227.tcx *latex.ini @@ -132,5 +133,5 @@ xetex xetex language.def -etex xetex.ini xelatex xetex language.dat -etex xelatex.ini # # from xmltex: -xmltex pdftex language.dat *xmltex.ini -pdfxmltex pdftex language.dat *pdfxmltex.ini +xmltex pdftex language.dat -translate-file=cp227.tcx *xmltex.ini +pdfxmltex pdftex language.dat -translate-file=cp227.tcx *pdfxmltex.ini --- texk/texlive/tl_scripts/texconfig-dialog.sh +++ texk/texlive/tl_scripts/texconfig-dialog.sh 2018-04-10 09:02:17.862982147 +0000 @@ -157,7 +157,14 @@ termCtl() ############################################################################### menuMain() { - cat <<-'eof' + rows="$(stty size)" + columns=${rows##* } + rows=${rows%% *} + test -n "$rows" || rows=0 + test -n "$columns" || columns=0 + + if test $rows -lt 24 -a $columns -lt 80 ; then + cat <<-'eof' The interactive texconfig utility will be started now. Make sure your screen has at least 24 rows and 80 columns. If texconfig crashes now, you can still set up your TeX system using the @@ -169,8 +176,9 @@ menuMain() More likely these days, you're better off using tlmgr. See http://tug.org/texlive/tlmgr.html. -eof - termCtl readln + eof + termCtl readln + fi while :; do logMessage='view logfile' --- texk/texlive/tl_scripts/texconfig-sys.sh +++ texk/texlive/tl_scripts/texconfig-sys.sh 2018-04-10 09:02:17.862982147 +0000 @@ -30,4 +30,5 @@ TEXMFVAR="$v" TEXMFCONFIG="$c" export TEXMFVAR TEXMFCONFIG +umask 022 exec texconfig ${1+"$@"} --- texk/texlive/tl_scripts/texconfig.sh +++ texk/texlive/tl_scripts/texconfig.sh 2018-04-10 09:02:17.862982147 +0000 @@ -40,7 +40,7 @@ envVars=" TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS " -tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tctmp.$$ +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tctmp.$$.$RANDOM needsCleanup=false lastUpdatedFile= @@ -997,21 +997,6 @@ For more information about these \`featu ;; formats) - cat >&2 <&2 fmtutil --catcfg > $tmpdir/pre @@ -1037,22 +1022,6 @@ EOM # "hyphen FORMAT" hyphen) - cat >&2 </dev/null 2>&1 + test $? -ne 0 && continue + + install_link "$selfautoloc/$fmt" "$symlinkdir/$fmt" + + # restore positional arguments: + set x $main_args_while; shift done } @@ -274,12 +290,12 @@ main() test -f "$cnf_file" || abort "config file \`$cnf' not found" - tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/texlinks.$$ + tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/texlinks.$$.$RANDOM setupTmpDir cd "$tmpdir" || cleanup 1 - sed '/^[ ]*#/d; /^[ ]*$/d' $cnf_file \ - | awk '{print $1, $2}' > cnf_file_ln.$$ + sed '/^[ ]*#/d; /^[ ]*$/d; s%\*%%' $cnf_file \ + | awk '{print $1, $2, $NF}' > cnf_file_ln.$$ if test -z "$dirs"; then if test $multiplatform = true; then @@ -300,13 +316,16 @@ main() # cnf_file_ln.$$ has lines with "format engine" pairs set x `cat cnf_file_ln.$$`; shift while test $# != 0; do - fmt=$1; engine=$2; shift; shift + fmt=$1; engine=$2; ini=$3; shift; shift; shift # Some broken shells destroy the positional arguments when calling a # shellfunction. Therefore, we save and restore them "by hand" in the # main_args_while variable. main_args_while="$@" + kpsewhich -progname=$fmt -format=tex $ini >/dev/null 2>&1 + test $? -ne 0 && continue + test "x$fmt" = "x$engine" && continue if test -f "$d/$engine$exeext"; then case $unlink in --- texk/web2c/Makefile.in +++ texk/web2c/Makefile.in 2018-04-10 09:02:17.870981997 +0000 @@ -4947,7 +4947,7 @@ libmd5_a_SOURCES = libmd5/md5.c libmd5/m md5main_CPPFLAGS = -I$(srcdir)/libmd5 md5main_SOURCES = libmd5/md5main.c md5main_LDADD = libmd5.a -all: ff-config.h +all: ff-config.h w2c/config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: @@ -4994,6 +4994,11 @@ w2c/c-auto.h: w2c/stamp-h1 w2c/stamp-h1: $(srcdir)/c-auto.in $(top_builddir)/config.status @rm -f w2c/stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status w2c/c-auto.h +.PHONY: w2c/config.h +w2c/config.h: + $(MKDIR_P) w2c + cp $(srcdir)/w2c/config.h $@ + $(srcdir)/c-auto.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f w2c/stamp-h1 --- texk/web2c/luatexdir/luapplib/ppheap.c +++ texk/web2c/luatexdir/luapplib/ppheap.c 2019-05-20 12:04:35.067508800 +0000 @@ -101,21 +101,25 @@ #endif typedef struct _simplereg { - size_t bucket_pos; + int heap_instance; + int bucket_pos; size_t bucket_size; - size_t heap_instance; - aligned_data **align_data_set ; -} simplereg; + union { + void *_area; + aligned_data **_set; + } align_data __attribute__ ((aligned(__alignof__(void*)))); +} simplereg __attribute__ ((aligned(__alignof__(void*)))); /* By default static vars are initialized to NULL, but to be clear.. */ static simplereg *align_set = NULL ; static void align_init_set(void){ size_t size ; + int p; if (align_set) { align_set->heap_instance++; - return ; + return; } align_set = malloc(sizeof(simplereg)); @@ -125,8 +129,8 @@ } size = SIZE_OF_POINTER*ALIGN_BUFF_BUCKET_SIZE; - align_set->align_data_set = malloc(size); - if (!align_set->align_data_set) { + align_set->align_data._area = malloc(size); + if (!align_set->align_data._area) { fprintf(stderr,"! fatal error: unable to setup register for aligned pointers\n"); exit(EXIT_FAILURE); } @@ -134,37 +138,40 @@ align_set->bucket_pos = 0; align_set->bucket_size = ALIGN_BUFF_BUCKET_SIZE; align_set->heap_instance = 1; - memset(align_set->align_data_set, 0UL,size); + memset(align_set->align_data._area, 0, size); + p = align_set->bucket_size; + while (p-- > 0){ + align_set->align_data._set[p] = NULL; + } } static void align_save_into_set(aligned_data *p){ if (align_set->bucket_pos >= align_set->bucket_size) { size_t new_size; - aligned_data **align_data_set_new; + void *align_data_area_new; - if(!align_set->align_data_set){ + if(!align_set->align_data._area){ fprintf(stderr,"! fatal error: unable to save aligned pointer,corrupted set\n"); exit(EXIT_FAILURE); } new_size = (ALIGN_BUFF_BUCKET_SIZE+align_set->bucket_size)*SIZE_OF_POINTER; - align_data_set_new = malloc(new_size); - if (!align_data_set_new) { + align_data_area_new = malloc(new_size); + if (!align_data_area_new) { fprintf(stderr,"! fatal error: unable to save aligned pointer\n"); exit(EXIT_FAILURE); } - memset(align_data_set_new,0,new_size); - memcpy(align_data_set_new, align_set->align_data_set, align_set->bucket_size*SIZE_OF_POINTER); - free(align_set->align_data_set); - align_set->align_data_set = align_data_set_new ; + memset(align_data_area_new,0,new_size); + memcpy(align_data_area_new, align_set->align_data._area, align_set->bucket_size*SIZE_OF_POINTER); + free(align_set->align_data._area); + align_set->align_data._area = align_data_area_new ; align_set->bucket_size += ALIGN_BUFF_BUCKET_SIZE; } if (align_set->bucket_pos>align_set->bucket_size){ fprintf(stderr,"! fatal error: unable to save aligned pointer, wrong position\n"); exit(EXIT_FAILURE); } - align_set->align_data_set[align_set->bucket_pos] = p ; + align_set->align_data._set[align_set->bucket_pos] = p ; align_set->bucket_pos++; - } static void align_free_set(void){ @@ -174,15 +181,16 @@ if (align_set->heap_instance>1) { align_set->heap_instance--; } else if (align_set->heap_instance ==1) { - if (align_set->align_data_set){ - size_t p; - for(p=1;pbucket_pos;p++){ - if (align_set->align_data_set[p]) { - free(align_set->align_data_set[p]); + if (align_set->align_data._area){ + int p = align_set->bucket_pos; + while (p-- > 0){ + if (align_set->align_data._set[p]) { + free(align_set->align_data._set[p]); + align_set->align_data._set[p] = NULL; } } - free(align_set->align_data_set); - align_set->align_data_set = NULL; + free(align_set->align_data._area); + align_set->align_data._area = NULL; } align_set->heap_instance=0; free(align_set); @@ -225,7 +233,6 @@ #ifdef PPHEAP_NEED_ALIGNMENT align_free_set(); #endif - } void ppheap_renew (ppheap *heap) @@ -415,7 +422,7 @@ // iof_close(O); #ifdef PPHEAP_NEED_ALIGNMENT /* Todo: only if data%sizeof(aligned_data) != 0 */ - p_aligned_data = malloc(size); + p_aligned_data = (aligned_data*)malloc(size); if (!p_aligned_data) { fprintf(stderr,"! fatal error: unable to setup aligned pointer for ppheap_flush\n"); exit(EXIT_FAILURE); --- texk/web2c/luatexdir/luapplib/ppload.c +++ texk/web2c/luatexdir/luapplib/ppload.c 2019-05-20 11:59:47.417508800 +0000 @@ -60,7 +60,7 @@ ghost->size = siz - sizeof(_ppname) - 1, \ (ppname)(ghost + 1)) -#if ARM_COMPLAINT +#if ARM_COMPLIANT #define ppname_flush_with_ego(O, ghost, siz, flgs) \ (iof_put(O, '\0'), \ pad=(O->pos - pos_begin)%(sizeof(ppname*)), \ @@ -270,7 +270,7 @@ -#if ARM_COMPLIANT +#if 0 // ARM_COMPLIANT /* Invalid write of size 8 */ #define ppstring_set_alter_ego(string, ghost, ego) do{ \ size_t t = ((ghost)->size + 1); \ t = (t%sizeof(ppstring *))==0?t: (t/sizeof(ppstring *)+1)*sizeof(ppstring *); \ --- texk/web2c/uptexdir/tests/gkhugeng.err +++ texk/web2c/uptexdir/tests/gkhugeng.err 2019-05-13 11:22:35.158192154 +0000 @@ -1,3 +1,11 @@ +warning: kpathsea: /etc/texmf/ls-R: No usable entries in ls-R. +warning: kpathsea: See the manual for how to generate ls-R. +warning: kpathsea: /var/lib/texmf/ls-R: No usable entries in ls-R. +warning: kpathsea: See the manual for how to generate ls-R. +warning: kpathsea: /usr/share/texmf/ls-R: No usable entries in ls-R. +warning: kpathsea: See the manual for how to generate ls-R. +warning: kpathsea: /var/cache/texmf/fonts/ls-R: No usable entries in ls-R. +warning: kpathsea: See the manual for how to generate ls-R. Input file is in YOKO-kumi kanji tfm format. The fifth byte of the input file exceeds 127! Sorry, but I can't go on; are you sure this is a TFM? --- texk/web2c/window/regis.c +++ texk/web2c/window/regis.c 2018-04-10 09:02:17.870981997 +0000 @@ -64,12 +64,14 @@ void mf_regis_blankrectangle (screencol screenrow top, screenrow bottom) { - printf( + const char *format = #ifdef WRITEWHITE - "%cPpP[%d,%d]W(I0)W(S1)V[%d,%d]V[%d,%d]V[%d,%d]V[%d,%d]W(S0)W(I3)%c\\", + "%cPpP[%d,%d]W(I0)W(S1)V[%d,%d]V[%d,%d]V[%d,%d]V[%d,%d]W(S0)W(I3)%c\\" #else - "%cPpP[%d,%d]W(I3)W(S1)V[%d,%d]V[%d,%d]V[%d,%d]V[%d,%d]W(S0)W(I0)%c\\", + "%cPpP[%d,%d]W(I3)W(S1)V[%d,%d]V[%d,%d]V[%d,%d]V[%d,%d]W(S0)W(I0)%c\\" #endif + ; + printf(format, ESCAPE,left,bottom,right,bottom,right,top,left,top, left,bottom,ESCAPE); } --- texk/web2c/window/x11-Xlib.c +++ texk/web2c/window/x11-Xlib.c 2018-04-10 09:02:18.646967412 +0000 @@ -73,6 +73,8 @@ static XWMHints wm_hints = { #define BORDER_WIDTH 1 /* Should get this from resource. */ #define DEFAULT_X_POSITION 0 #define DEFAULT_Y_POSITION 0 +#define DEFAULT_WIDTH 450 +#define DEFAULT_DEPTH 500 #include @@ -101,12 +103,12 @@ mf_x11_initscreen(void) sizehints.x = DEFAULT_X_POSITION; sizehints.y = DEFAULT_Y_POSITION; - sizehints.width = screenwidth; - sizehints.height = screendepth; + sizehints.width = DEFAULT_WIDTH; + sizehints.height = DEFAULT_DEPTH; sizehints.flags = PPosition|PSize; sprintf (default_geometry, "%ux%u+%u+%u", - (unsigned int) screenwidth, (unsigned int) screendepth, + (unsigned int) DEFAULT_WIDTH, (unsigned int) DEFAULT_DEPTH, DEFAULT_X_POSITION, DEFAULT_Y_POSITION); /* Look up the geometry for this window. (Section 10.2 Obtaining X --- texk/web2c/window/x11-Xt.c +++ texk/web2c/window/x11-Xt.c 2018-04-10 09:02:18.646967412 +0000 @@ -18,8 +18,8 @@ #define PLANE 0 -static unsigned int mf_defwidth = 0; -static unsigned int mf_defheight = 0; +static unsigned int mf_defwidth = 450;; +static unsigned int mf_defheight = 500; static Display *mf_display; static Window mf_window; --- texk/xdvik/psgs.c +++ texk/xdvik/psgs.c 2018-04-10 09:02:18.646967412 +0000 @@ -34,6 +34,8 @@ OTHER DEALINGS IN THE SOFTWARE. #include /* for timeval */ #include +#include +#include /* Condition for retrying a write */ #include @@ -625,6 +627,26 @@ initGS(void) perror("[xdvik] pipe"); return False; } + + if (GS_pid > 0) { /* Check if we've a running ghostscript */ + int status, n = 0; + errno = 0; +retry: + switch (waitpid(GS_pid, &status, WNOHANG)) { + case -1: + if (errno == EINTR) + goto retry; + return False; + case 0: + break; + default: + if (WIFEXITED(status) && WEXITSTATUS(status)) + return False; + if (WIFSIGNALED(status)) + return False; + break; /* Not reached */ + } + } fflush(stderr); /* to avoid double flushing */ GS_pid = vfork(); if (GS_pid == 0) { /* child */ --- texk/xdvik/xdvi-sh.in +++ texk/xdvik/xdvi-sh.in 2018-04-10 09:02:18.646967412 +0000 @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # This is the xdvi wrapper script for teTeX, version 0.2. # Copyright Thomas Esser, 1998. Permission to distribute under the terms @@ -50,4 +50,19 @@ if test -n "$xdviappfile"; then XFILESEARCHPATH="$xdviapppath:${XFILESEARCHPATH-%D}"; export XFILESEARCHPATH fi -exec @final_exec_name@ $NAMEOPT ${1+"$@"} +uncompress= +filename="${1+"$@"}" +case "${filename}" in + *.gz) uncompress="gzip -d -c $filename" ;; + *.bz2) uncompress="bzip2 -d -c $filename" ;; +esac +if test -n "$uncompress" -a -r "$filename" ; then + filename="${filename##*/}" + tmpfile="`mktemp ${TMPDIR-/tmp}/${filename%.*}.XXXXXX`" || exit 1 + trap 'rc=$?; rm -f $tmpfile; exit $rc' 0 1 2 3 6 13 15 + $uncompress > $tmpfile + exec -a xdvi @final_exec_name@ $NAMEOPT $tmpfile +else + exec -a xdvi @final_exec_name@ $NAMEOPT ${1+"$@"} +fi +