From 67b0c96f0d33b92adb84b6be9c280d26a18ec255 Mon Sep 17 00:00:00 2001
From: Luigi Scarso <luigi.scarso@gmail.com>
Date: Mon, 15 Apr 2019 09:20:25 +0000
Subject: [PATCH] sync with TeXLive 2019 -- trunk.

---
 source/ChangeLog                              |   4 +
 source/README                                 |   4 +-
 source/build-aux/config.guess                 | 170 +++++++-
 source/build-aux/config.sub                   |   4 +-
 source/build-aux/missing                      |  14 +-
 source/build-aux/test-driver                  |   8 +-
 source/build-aux/texinfo.tex                  | 369 +++++++++---------
 source/build-aux/ylwrap                       |   8 +-
 source/configure                              | 137 +++++--
 source/libs/README                            |   4 +-
 source/libs/configure                         |  23 +-
 source/libs/libpng/ChangeLog                  |   2 +-
 source/libs/luajit/ChangeLog                  |   6 +-
 source/libs/luajit/configure.ac               |   7 +-
 source/m4/ChangeLog                           |   5 +
 source/m4/kpse-freetype2-flags.m4             |  23 +-
 source/tardate.ac                             |   6 +-
 source/texk/README                            |  32 +-
 source/texk/configure                         |  23 +-
 source/texk/kpathsea/ChangeLog                |  12 +
 source/texk/kpathsea/NEWS                     |   4 +-
 source/texk/kpathsea/doc/kpathsea.info        | 195 ++++-----
 source/texk/kpathsea/doc/kpathsea.texi        |  59 ++-
 source/texk/kpathsea/kpsewhich.c              |   2 +-
 source/texk/kpathsea/texmf.cnf                |  12 +-
 .../texk/texlive/linked_scripts/Makefile.am   |   1 +
 .../texk/texlive/linked_scripts/Makefile.in   |   1 +
 source/texk/texlive/tl_scripts/fmtutil.cnf    |   3 +-
 source/texk/texlive/w32_wrapper/runscript.tlu |   6 +-
 .../texk/texlive/w32_wrapper/tl-tray-menu.c   |  88 +++--
 source/texk/web2c/ChangeLog                   |   9 +
 source/texk/web2c/NEWS                        |   2 +-
 source/texk/web2c/ac/web2c.ac                 |  11 +-
 source/texk/web2c/configure                   | 130 ++++--
 source/texk/web2c/configure.ac                |   2 +-
 source/texk/web2c/lib/ChangeLog               |  14 +
 source/texk/web2c/lib/openclose.c             |   4 +-
 source/texk/web2c/lib/texmfmp.c               |  24 +-
 .../texk/web2c/luatexdir/luatex_svnversion.h  |   2 +-
 source/texk/web2c/luatexdir/tex/printing.c    |   2 +-
 source/texk/web2c/man/ChangeLog               |  13 +
 source/texk/web2c/man/Makefile.am             |   6 +-
 source/texk/web2c/man/Makefile.in             |   9 +-
 source/texk/web2c/man/ctwill.man              |  11 +-
 source/texk/web2c/man/cweb.man                |   2 +-
 source/texk/web2c/man/gftodvi.man             |   4 +-
 source/texk/web2c/mfluadir/mflua_version.h    |   3 +-
 source/texk/web2c/uptexdir/uptex_version.h    |   2 +-
 source/utils/README                           |   4 +-
 source/utils/configure                        |  23 +-
 50 files changed, 969 insertions(+), 540 deletions(-)

diff --git a/source/ChangeLog b/source/ChangeLog
index 61f8131ee..5e8181085 100644
--- a/source/ChangeLog
+++ b/source/ChangeLog
@@ -1,3 +1,7 @@
+2019-04-07  Karl Berry  <karl@freefriends.org>
+
+	* tardate.ac (tex_live_tardate): let's hope for 2019-04-07.
+
 2018-10-02  Karl Berry  <karl@tug.org>
 
 	* Build: TL_MAKE_VERBOSE=VERBOSE=1 by default,
diff --git a/source/README b/source/README
index 55cb61acb..1cbe89d63 100644
--- a/source/README
+++ b/source/README
@@ -1,4 +1,4 @@
-$Id: README 49472 2018-12-21 23:23:35Z karl $
+$Id: README 50267 2019-03-06 22:50:00Z karl $
 Public domain.  Originally written 2005 by Karl Berry.
 
 For a high-level overview of building TeX Live, see
@@ -47,7 +47,7 @@ i386-openbsd, amd64-openbsd:
   e.g., see CONFIGURE_ARGS in the Makefile in
   http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/print/texlive/base/
 
-i386-solaris, x86_64-solaris, sparc-solaris:
+i386-solaris, x86_64-solaris:
   Solaris 10, gcc 5.5.  See doc/README.solaris.
 
 i386-cygwin, x86_64-cygwin: gcc-4.8.2, cygwin-1.7.29.
diff --git a/source/build-aux/config.guess b/source/build-aux/config.guess
index a81aa505b..79d1317f5 100755
--- a/source/build-aux/config.guess
+++ b/source/build-aux/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2019 Free Software Foundation, Inc.
 
-timestamp='2019-01-15'
+timestamp='2019-03-04'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -985,22 +985,50 @@ EOF
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	set_cc_for_build
+	IS_GLIBC=0
+	test x"${LIBC}" = xgnu && IS_GLIBC=1
 	sed 's/^	//' << EOF > "$dummy.c"
 	#undef CPU
-	#undef ${UNAME_MACHINE}
-	#undef ${UNAME_MACHINE}el
+	#undef mips
+	#undef mipsel
+	#undef mips64
+	#undef mips64el
+	#if ${IS_GLIBC} && defined(_ABI64)
+	LIBCABI=gnuabi64
+	#else
+	#if ${IS_GLIBC} && defined(_ABIN32)
+	LIBCABI=gnuabin32
+	#else
+	LIBCABI=${LIBC}
+	#endif
+	#endif
+
+	#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+	CPU=mipsisa64r6
+	#else
+	#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+	CPU=mipsisa32r6
+	#else
+	#if defined(__mips64)
+	CPU=mips64
+	#else
+	CPU=mips
+	#endif
+	#endif
+	#endif
+
 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=${UNAME_MACHINE}el
+	MIPS_ENDIAN=el
 	#else
 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=${UNAME_MACHINE}
+	MIPS_ENDIAN=
 	#else
-	CPU=
+	MIPS_ENDIAN=
 	#endif
 	#endif
 EOF
-	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
-	test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
+	eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
+	test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
 	;;
     mips64el:Linux:*:*)
 	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@@ -1113,7 +1141,7 @@ EOF
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
 	esac
-	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
+	echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
 	exit ;;
     i*86:*:3.2:*)
 	if test -f /usr/options/cb.name; then
@@ -1433,6 +1461,130 @@ EOF
 	exit ;;
 esac
 
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+  "4"
+#else
+  ""
+#endif
+  ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+  struct utsname un;
+
+  uname(&un);
+  if (strncmp(un.version, "V2", 2) == 0) {
+    printf ("i386-sequent-ptx2\n"); exit (0);
+  }
+  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+    printf ("i386-sequent-ptx1\n"); exit (0);
+  }
+  printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+  printf ("vax-dec-bsd4.3\n"); exit (0);
+#else
+#if BSD == 199006
+  printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#else
+  printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#endif
+#else
+  printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#else
+  printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) /* >= ULTRIX4 */
+  printf ("mips-dec-ultrix4\n"); exit (0);
+#else
+#if defined(ULTRIX3) || defined(ultrix3) || defined(SIGLOST)
+  printf ("mips-dec-ultrix3\n"); exit (0);
+#endif
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
 echo "$0: unable to guess system type" >&2
 
 case "$UNAME_MACHINE:$UNAME_SYSTEM" in
diff --git a/source/build-aux/config.sub b/source/build-aux/config.sub
index 3b4c7624b..a44fd8ae9 100755
--- a/source/build-aux/config.sub
+++ b/source/build-aux/config.sub
@@ -822,7 +822,9 @@ case $basic_machine in
 		cpu=m68k
 		vendor=next
 		case $os in
-		    nextstep* )
+		    openstep*)
+		        ;;
+		    nextstep*)
 			;;
 		    ns2*)
 		      os=nextstep2
diff --git a/source/build-aux/missing b/source/build-aux/missing
index c6e379584..625aeb118 100755
--- a/source/build-aux/missing
+++ b/source/build-aux/missing
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@ scriptversion=2016-01-11.22; # UTC
 # 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, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -101,9 +101,9 @@ else
   exit $st
 fi
 
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
 
 program_details ()
 {
@@ -207,7 +207,7 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \
 exit $st
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
diff --git a/source/build-aux/test-driver b/source/build-aux/test-driver
index 0218a01f6..b8521a482 100644
--- a/source/build-aux/test-driver
+++ b/source/build-aux/test-driver
@@ -1,9 +1,9 @@
 #! /bin/sh
 # test-driver - basic testsuite driver script.
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 2011-2017 Free Software Foundation, Inc.
+# Copyright (C) 2011-2018 Free Software Foundation, Inc.
 #
 # 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
@@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC
 # 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, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -140,7 +140,7 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
diff --git a/source/build-aux/texinfo.tex b/source/build-aux/texinfo.tex
index 5fe81b4c2..192284ccc 100644
--- a/source/build-aux/texinfo.tex
+++ b/source/build-aux/texinfo.tex
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2019-02-16.14}
+\def\texinfoversion{2019-03-03.15}
 
 %
 % Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
@@ -258,8 +258,8 @@
 
 % \domark is called twice inside \chapmacro, to add one
 % mark before the section break, and one after.
-%   In the second call \prevchapterdefs is the same as \lastchapterdefs,
-% and \prevsectiondefs is the same as \lastsectiondefs.
+%   In the second call \prevchapterdefs is the same as \currentchapterdefs,
+% and \prevsectiondefs is the same as \currentsectiondefs.
 %   Then if the page is not broken at the mark, some of the previous
 % section appears on the page, and we can get the name of this section
 % from \firstmark for @everyheadingmarks top.
@@ -267,11 +267,11 @@
 %
 % See page 260 of The TeXbook.
 \def\domark{%
-  \toks0=\expandafter{\lastchapterdefs}%
-  \toks2=\expandafter{\lastsectiondefs}%
+  \toks0=\expandafter{\currentchapterdefs}%
+  \toks2=\expandafter{\currentsectiondefs}%
   \toks4=\expandafter{\prevchapterdefs}%
   \toks6=\expandafter{\prevsectiondefs}%
-  \toks8=\expandafter{\lastcolordefs}%
+  \toks8=\expandafter{\currentcolordefs}%
   \mark{%
                    \the\toks0 \the\toks2  % 0: marks for @everyheadingmarks top
       \noexpand\or \the\toks4 \the\toks6  % 1: for @everyheadingmarks bottom
@@ -288,19 +288,19 @@
 % @setcolor (or @url, or @link, etc.) between @contents and the very
 % first @chapter.
 \def\gettopheadingmarks{%
-  \ifcase0\topmark\fi
+  \ifcase0\the\savedtopmark\fi
   \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
 }
 \def\getbottomheadingmarks{\ifcase1\botmark\fi}
-\def\getcolormarks{\ifcase2\topmark\fi}
+\def\getcolormarks{\ifcase2\the\savedtopmark\fi}
 
 % Avoid "undefined control sequence" errors.
-\def\lastchapterdefs{}
-\def\lastsectiondefs{}
-\def\lastsection{}
+\def\currentchapterdefs{}
+\def\currentsectiondefs{}
+\def\currentsection{}
 \def\prevchapterdefs{}
 \def\prevsectiondefs{}
-\def\lastcolordefs{}
+\def\currentcolordefs{}
 
 % Margin to add to right of even pages, to left of odd pages.
 \newdimen\bindingoffset
@@ -310,11 +310,35 @@
 % Main output routine.
 %
 \chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
+\newtoks\defaultoutput
+\defaultoutput = {\savetopmark\onepageout{\pagecontents\PAGE}}
+\output=\expandafter{\the\defaultoutput}
 
 \newbox\headlinebox
 \newbox\footlinebox
 
+% When outputting the double column layout for indices, an output routine
+% is run several times, which hides the original value of \topmark.  This
+% can lead to a page heading being output and duplicating the chapter heading
+% of the index.  Hence, save the contents of \topmark at the beginning of
+% the output routine.  The saved contents are valid until we actually
+% \shipout a page.
+%
+% (We used to run a short output routine to actually set \topmark and 
+% \firstmark to the right values, but if this was called with an empty page 
+% containing whatsits for writing index entries, the whatsits would be thrown 
+% away and the index auxiliary file would remain empty.)
+%
+\newtoks\savedtopmark
+\newif\iftopmarksaved
+\topmarksavedtrue
+\def\savetopmark{%
+  \iftopmarksaved\else
+    \global\savedtopmark=\expandafter{\topmark}%
+    \global\topmarksavedtrue
+  \fi
+}
+
 % \onepageout takes a vbox as an argument.
 % \shipout a vbox for a single page, adding an optional header, footer
 % and footnote.  This also causes index entries for this page to be written
@@ -326,23 +350,17 @@
   \ifodd\pageno  \advance\hoffset by \bindingoffset
   \else \advance\hoffset by -\bindingoffset\fi
   %
-  % Common context changes for both heading and footing.
-  % Do this outside of the \shipout so @code etc. will be expanded in
-  % the headline as they should be, not taken literally (outputting ''code).
-  \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
-  %
   % Retrieve the information for the headings from the marks in the page,
   % and call Plain TeX's \makeheadline and \makefootline, which use the
   % values in \headline and \footline.
   %
   % This is used to check if we are on the first page of a chapter.
-  \ifcase1\topmark\fi
+  \ifcase1\the\savedtopmark\fi
   \let\prevchaptername\thischaptername
   \ifcase0\firstmark\fi
   \let\curchaptername\thischaptername
   %
   \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
-  \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
   %
   \ifx\curchaptername\prevchaptername
     \let\thischapterheading\thischapter
@@ -353,7 +371,14 @@
     \def\thischapterheading{}%
   \fi
   %
+  % Common context changes for both heading and footing.
+  % Do this outside of the \shipout so @code etc. will be expanded in
+  % the headline as they should be, not taken literally (outputting ''code).
+  \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
+  %
   \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+  %
+  \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
   \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
   %
   {%
@@ -384,8 +409,9 @@
         \unvbox\footlinebox
       \fi
       %
-    }% end of \shipout\vbox
-  }% end of group with \indexdummies
+    }%
+  }%
+  \global\topmarksavedfalse
   \advancepageno
   \ifnum\outputpenalty>-20000 \else\dosupereject\fi
 }
@@ -1161,7 +1187,7 @@ output) for that.)}
   % Set color, and create a mark which defines \thiscolor accordingly,
   % so that \makeheadline knows which color to restore.
   \def\setcolor#1{%
-    \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
+    \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
     \domark
     \pdfsetcolor{#1}%
   }
@@ -1169,7 +1195,7 @@ output) for that.)}
   \def\maincolor{\rgbBlack}
   \pdfsetcolor{\maincolor}
   \edef\thiscolor{\maincolor}
-  \def\lastcolordefs{}
+  \def\currentcolordefs{}
   %
   \def\makefootline{%
     \baselineskip24pt
@@ -1547,7 +1573,7 @@ output) for that.)}
   % Set color, and create a mark which defines \thiscolor accordingly,
   % so that \makeheadline knows which color to restore.
   \def\setcolor#1{%
-    \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
+    \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
     \domark
     \pdfsetcolor{#1}%
   }
@@ -1555,7 +1581,7 @@ output) for that.)}
   \def\maincolor{\rgbBlack}
   \pdfsetcolor{\maincolor}
   \edef\thiscolor{\maincolor}
-  \def\lastcolordefs{}
+  \def\currentcolordefs{}
   %
   \def\makefootline{%
     \baselineskip24pt
@@ -3032,41 +3058,33 @@ end
   \global\def/{\normalslash}
 }
 
-% we put a little stretch before and after the breakable chars, to help
-% line breaking of long url's.  The unequal skips make look better in
-% cmtt at least, especially for dots.
-\def\urefprestretchamount{.13em}
-\def\urefpoststretchamount{.1em}
-\def\urefprestretch{\urefprebreak \hskip0pt plus\urefprestretchamount\relax}
-\def\urefpoststretch{\urefpostbreak \hskip0pt plus\urefprestretchamount\relax}
-%
-\def\urefcodeamp{\urefprestretch \&\urefpoststretch}
-\def\urefcodedot{\urefprestretch .\urefpoststretch}
-\def\urefcodehash{\urefprestretch \#\urefpoststretch}
-\def\urefcodequest{\urefprestretch ?\urefpoststretch}
+\def\urefcodeamp{\urefprebreak \&\urefpostbreak}
+\def\urefcodedot{\urefprebreak .\urefpostbreak}
+\def\urefcodehash{\urefprebreak \#\urefpostbreak}
+\def\urefcodequest{\urefprebreak ?\urefpostbreak}
 \def\urefcodeslash{\futurelet\next\urefcodeslashfinish}
 {
   \catcode`\/=\active
   \global\def\urefcodeslashfinish{%
-    \urefprestretch \slashChar
+    \urefprebreak \slashChar
     % Allow line break only after the final / in a sequence of
     % slashes, to avoid line break between the slashes in http://.
-    \ifx\next/\else \urefpoststretch \fi
+    \ifx\next/\else \urefpostbreak \fi
   }
 }
 
-% One more complication: by default we'll break after the special
-% characters, but some people like to break before the special chars, so
-% allow that.  Also allow no breaking at all, for manual control.
+% By default we'll break after the special characters, but some people like to 
+% break before the special chars, so allow that.  Also allow no breaking at 
+% all, for manual control.
 % 
 \parseargdef\urefbreakstyle{%
   \def\txiarg{#1}%
   \ifx\txiarg\wordnone
     \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak}
   \else\ifx\txiarg\wordbefore
-    \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak}
+    \def\urefprebreak{\urefallowbreak}\def\urefpostbreak{\nobreak}
   \else\ifx\txiarg\wordafter
-    \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak}
+    \def\urefprebreak{\nobreak}\def\urefpostbreak{\urefallowbreak}
   \else
     \errhelp = \EMsimple
     \errmessage{Unknown @urefbreakstyle setting `\txiarg'}%
@@ -3076,6 +3094,14 @@ end
 \def\wordbefore{before}
 \def\wordnone{none}
 
+% Allow a ragged right output to aid breaking long URL's.  Putting stretch in 
+% between characters of the URL doesn't look good.
+\def\urefallowbreak{%
+  \hskip 0pt plus 1fil\relax
+  \allowbreak
+  \hskip 0pt plus -1fil\relax
+}
+
 \urefbreakstyle after
 
 % @url synonym for @uref, since that's how everyone uses it.
@@ -5198,34 +5224,16 @@ end
 
 \let\SETmarginindex=\relax % put index entries in margin (undocumented)?
 
-% Most index entries go through here, but \dosubind is the general case.
 % #1 is the index name, #2 is the entry text.
-\def\doind#1#2{\dosubind{#1}{#2}{}}
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-% TODO: Two-level index?  Operation index?
-
-% Workhorse for all indexes.
-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% empty if called from \doind, as we usually are (the main exception
-% is with most defuns, which call us directly).
-%
-\def\dosubind#1#2#3{%
+\def\doind#1#2{%
   \iflinks
   {%
-    \requireopenindexfile{#1}%
-    % Store the main index entry text (including the third arg).
-    \toks0 = {#2}%
-    % If third arg is present, precede it with a space.
-    \def\thirdarg{#3}%
-    \ifx\thirdarg\empty \else
-      \toks0 = \expandafter{\the\toks0 \space #3}%
-    \fi
     %
+    \requireopenindexfile{#1}%
     \edef\writeto{\csname#1indfile\endcsname}%
     %
-    \safewhatsit\dosubindwrite
+    \def\indextext{#2}%
+    \safewhatsit\doindwrite
   }%
   \fi
 }
@@ -5254,14 +5262,7 @@ end
   @gdef@useindexbackslash{@def\{{@indexbackslash}}}
 }
 
-% Definition for writing index entry text.
-\def\sortas#1{\ignorespaces}%
-
-% Definition for writing index entry sort key.  Should occur at the at
-% the beginning of the index entry, like
-%     @cindex @sortas{september} \september
-% The \ignorespaces takes care of following space, but there's no way
-% to remove space before it.
+% Definition for writing index entry sort key.
 {
 \catcode`\-=13
 \gdef\indexwritesortas{%
@@ -5272,10 +5273,71 @@ end
   \xdef\indexsortkey{#1}\endgroup}
 }
 
+% Given index entry text like "aaa @subentry bbb @sortas{ZZZ}":
+%   * Set \bracedtext to "{aaa}{bbb}"
+%   * Set \fullindexsortkey to "aaa @subentry ZZZ"
+%
+\def\splitindexentry#1{%
+  \gdef\fullindexsortkey{}%
+  \xdef\bracedtext{}%
+  \def\sep{}%
+  \expandafter\doindexsegment#1\subentry\finish\subentry
+}
+
+% append the results from the next segment
+\def\doindexsegment#1\subentry{%
+  \def\segment{#1}%
+  \ifx\segment\isfinish
+  \else
+    %
+    % Fully expand the segment, throwing away any @sortas directives, and 
+    % trim spaces.
+    \def\sortas##1{}%
+    \edef\trimmed{\segment}%
+    \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
+    %
+    \xdef\bracedtext{\bracedtext{\trimmed}}%
+    %
+    % Get the string to sort by.  Process the segment with all
+    % font commands turned off.
+    \bgroup
+      \let\sortas\indexwritesortas
+      \indexnofonts
+      % The braces around the commands are recognized by texindex.
+      \def\lbracechar{{\indexlbrace}}%
+      \def\rbracechar{{\indexrbrace}}%
+      \let\{=\lbracechar
+      \let\}=\rbracechar
+      %
+      \let\indexsortkey\empty
+      % Execute the segment and throw away the typeset output.  This executes
+      % any @sortas commands in this segment.
+      \setbox\dummybox = \hbox{\segment}%
+      \ifx\indexsortkey\empty{%
+        \indexnonalnumdisappear
+        \xdef\trimmed{\segment}%
+        \xdef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
+        \xdef\indexsortkey{\trimmed}%
+        \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
+      }\fi
+      %
+      % Append to \fullindexsortkey.
+      \edef\tmp{\gdef\noexpand\fullindexsortkey{%
+                  \fullindexsortkey\sep\indexsortkey}}%
+      \tmp
+    \egroup
+    \def\sep{\subentry}%
+    %
+    \expandafter\doindexsegment
+  \fi
+}
+\def\isfinish{\finish}%
+
+\let\subentry\relax
 
 % Write the entry in \toks0 to the index file.
 %
-\def\dosubindwrite{%
+\def\doindwrite{%
   % Put the index entry in the margin if desired.
   \ifx\SETmarginindex\relax\else
     \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
@@ -5285,34 +5347,20 @@ end
   \indexdummies % Must do this here, since \bf, etc expand at this stage
   \useindexbackslash % \indexbackslash isn't defined now so it will be output 
                      % as is; and it will print as backslash.
-  % The braces around \indexbrace are recognized by texindex.
-  %
-  % Get the string to sort by, by processing the index entry with all
-  % font commands turned off.
-  {\indexnofonts
-   \def\lbracechar{{\indexlbrace}}%
-   \def\rbracechar{{\indexrbrace}}%
-   \let\{=\lbracechar
-   \let\}=\rbracechar
-   \indexnonalnumdisappear
-   \xdef\indexsortkey{}%
-   \let\sortas=\indexwritesortas
-   \edef\temp{\the\toks0}%
-   \setbox\dummybox = \hbox{\temp}% Make sure to execute any \sortas
-   \ifx\indexsortkey\empty
-     \xdef\indexsortkey{\temp}%
-     \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
-   \fi
-  }%
+  %
+  % Split the entry into primary entry and any subentries, and get the index 
+  % sort key.
+  \splitindexentry\indextext
   %
   % Set up the complete index entry, with both the sort key and
   % the original text, including any font commands.  We write
   % three arguments to \entry to the .?? file (four in the
   % subentry case), texindex reduces to two when writing the .??s
   % sorted result.
+  %
   \edef\temp{%
     \write\writeto{%
-      \string\entry{\indexsortkey}{\noexpand\folio}{\the\toks0}}%
+      \string\entry{\fullindexsortkey}{\noexpand\folio}\bracedtext}%
   }%
   \temp
 }
@@ -5418,11 +5466,6 @@ end
 \def\tindex {\tpindex}
 \def\pindex {\pgindex}
 
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
 % Define the macros used in formatting output of the sorted index material.
 
 % @printindex causes a particular index (the ??s file) to get printed.
@@ -5793,34 +5836,13 @@ end
 \newbox\partialpage
 \newdimen\doublecolumnhsize
 
-% Use inside an output routine to save \topmark and \firstmark
-\def\savemarks{%
-  \global\savedtopmark=\expandafter{\topmark }%
-  \global\savedfirstmark=\expandafter{\firstmark }%
-}
-\newtoks\savedtopmark
-\newtoks\savedfirstmark
-
-% Set \topmark and \firstmark for next time \output runs.
-% Can't be run from withinside \output (because any material
-% added while an output routine is active, including 
-% penalties, is saved for after it finishes).  The page so far
-% should be empty, otherwise what's on it will be thrown away.
-\def\restoremarks{%
-  \mark{\the\savedtopmark}%
-  \bgroup\output = {%
-    \setbox\dummybox=\box\PAGE
-  }abc\eject\egroup
-  % "abc" because output routine doesn't fire for a completely empty page.
-  \mark{\the\savedfirstmark}%
-}
-
 \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
   % If not much space left on page, start a new page.
   \ifdim\pagetotal>0.8\vsize\vfill\eject\fi
   %
   % Grab any single-column material above us.
   \output = {%
+    \savetopmark
     %
     % Here is a possibility not foreseen in manmac: if we accumulate a
     % whole lot of material, we might end up calling this \output
@@ -5838,15 +5860,8 @@ end
       \unvbox\PAGE
       \kern-\topskip \kern\baselineskip
     }%
-    \savemarks
   }%
   \eject % run that output routine to set \partialpage
-  \restoremarks
-  %
-  % We recover the two marks that the last output routine saved in order
-  % to propagate the information in marks added around a chapter heading,
-  % which could be otherwise be lost by the time the final page is output.
-  %
   %
   % Use the double-column output routine for subsequent pages.
   \output = {\doublecolumnout}%
@@ -5887,6 +5902,7 @@ end
 %
 \def\doublecolumnout{%
   %
+  \savetopmark
   \splittopskip=\topskip \splitmaxdepth=\maxdepth
   \dimen@ = \vsize
   \divide\dimen@ by 2
@@ -5942,7 +5958,7 @@ end
   %
   \output = {%
     % Split the last of the double-column material.
-    \savemarks
+    \savetopmark
     \balancecolumns
   }%
   \eject % call the \output just set
@@ -5950,10 +5966,9 @@ end
     % Having called \balancecolumns once, we do not
     % want to call it again.  Therefore, reset \output to its normal
     % definition right away.
-    \global\output = {\onepageout{\pagecontents\PAGE}}%
+    \global\output=\expandafter{\the\defaultoutput}
     %
     \endgroup % started in \begindoublecolumns
-    \restoremarks
     % Leave the double-column material on the current page, no automatic
     % page break.
     \box\balancedcolumns
@@ -6468,27 +6483,22 @@ end
   \expandafter\ifx\thisenv\titlepage\else
     \checkenv{}% chapters, etc., should not start inside an environment.
   \fi
-  % FIXME: \chapmacro is currently called from inside \titlepage when
-  % \setcontentsaftertitlepage to print the "Table of Contents" heading, but
-  % this should probably be done by \sectionheading with an option to print
-  % in chapter size.
-  %
   % Insert the first mark before the heading break (see notes for \domark).
-  \let\prevchapterdefs=\lastchapterdefs
-  \let\prevsectiondefs=\lastsectiondefs
-  \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
+  \let\prevchapterdefs=\currentchapterdefs
+  \let\prevsectiondefs=\currentsectiondefs
+  \gdef\currentsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
                         \gdef\thissection{}}%
   %
   \def\temptype{#2}%
   \ifx\temptype\Ynothingkeyword
-    \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+    \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
                           \gdef\thischapter{\thischaptername}}%
   \else\ifx\temptype\Yomitfromtockeyword
-    \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+    \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
                           \gdef\thischapter{}}%
   \else\ifx\temptype\Yappendixkeyword
     \toks0={#1}%
-    \xdef\lastchapterdefs{%
+    \xdef\currentchapterdefs{%
       \gdef\noexpand\thischaptername{\the\toks0}%
       \gdef\noexpand\thischapternum{\appendixletter}%
       % \noexpand\putwordAppendix avoids expanding indigestible
@@ -6499,7 +6509,7 @@ end
     }%
   \else
     \toks0={#1}%
-    \xdef\lastchapterdefs{%
+    \xdef\currentchapterdefs{%
       \gdef\noexpand\thischaptername{\the\toks0}%
       \gdef\noexpand\thischapternum{\the\chapno}%
       % \noexpand\putwordChapter avoids expanding indigestible
@@ -6519,18 +6529,18 @@ end
   %
   % Now the second mark, after the heading break.  No break points
   % between here and the heading.
-  \let\prevchapterdefs=\lastchapterdefs
-  \let\prevsectiondefs=\lastsectiondefs
+  \let\prevchapterdefs=\currentchapterdefs
+  \let\prevsectiondefs=\currentsectiondefs
   \domark
   %
   {%
     \chapfonts \rm
     \let\footnote=\errfootnoteheading % give better error message
     %
-    % Have to define \lastsection before calling \donoderef, because the
+    % Have to define \currentsection before calling \donoderef, because the
     % xref code eventually uses it.  On the other hand, it has to be called
     % after \pchapsepmacro, or the headline will change too soon.
-    \gdef\lastsection{#1}%
+    \gdef\currentsection{#1}%
     %
     % Only insert the separating space if we have a chapter/appendix
     % number, and don't print the unnumbered ``number''.
@@ -6619,10 +6629,10 @@ end
     \csname #2fonts\endcsname \rm
     %
     % Insert first mark before the heading break (see notes for \domark).
-    \let\prevsectiondefs=\lastsectiondefs
+    \let\prevsectiondefs=\currentsectiondefs
     \ifx\temptype\Ynothingkeyword
       \ifx\sectionlevel\seckeyword
-        \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
+        \gdef\currentsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
                               \gdef\thissection{\thissectionname}}%
       \fi
     \else\ifx\temptype\Yomitfromtockeyword
@@ -6630,7 +6640,7 @@ end
     \else\ifx\temptype\Yappendixkeyword
       \ifx\sectionlevel\seckeyword
         \toks0={#1}%
-        \xdef\lastsectiondefs{%
+        \xdef\currentsectiondefs{%
           \gdef\noexpand\thissectionname{\the\toks0}%
           \gdef\noexpand\thissectionnum{#4}%
           % \noexpand\putwordSection avoids expanding indigestible
@@ -6643,7 +6653,7 @@ end
     \else
       \ifx\sectionlevel\seckeyword
         \toks0={#1}%
-        \xdef\lastsectiondefs{%
+        \xdef\currentsectiondefs{%
           \gdef\noexpand\thissectionname{\the\toks0}%
           \gdef\noexpand\thissectionnum{#4}%
           % \noexpand\putwordSection avoids expanding indigestible
@@ -6669,28 +6679,28 @@ end
     %
     % Now the second mark, after the heading break.  No break points
     % between here and the heading.
-    \global\let\prevsectiondefs=\lastsectiondefs
+    \global\let\prevsectiondefs=\currentsectiondefs
     \domark
     %
     % Only insert the space after the number if we have a section number.
     \ifx\temptype\Ynothingkeyword
       \setbox0 = \hbox{}%
       \def\toctype{unn}%
-      \gdef\lastsection{#1}%
+      \gdef\currentsection{#1}%
     \else\ifx\temptype\Yomitfromtockeyword
       % for @headings -- no section number, don't include in toc,
-      % and don't redefine \lastsection.
+      % and don't redefine \currentsection.
       \setbox0 = \hbox{}%
       \def\toctype{omit}%
       \let\sectionlevel=\empty
     \else\ifx\temptype\Yappendixkeyword
       \setbox0 = \hbox{#4\enspace}%
       \def\toctype{app}%
-      \gdef\lastsection{#1}%
+      \gdef\currentsection{#1}%
     \else
       \setbox0 = \hbox{#4\enspace}%
       \def\toctype{num}%
-      \gdef\lastsection{#1}%
+      \gdef\currentsection{#1}%
     \fi\fi\fi
     %
     % Write the toc entry (before \donoderef).  See comments in \chapmacro.
@@ -7347,13 +7357,9 @@ end
 
 
 % @raggedright does more-or-less normal line breaking but no right
-% justification.  From plain.tex.  Don't stretch around special
-% characters in urls in this environment, since the stretch at the right
-% should be enough.
+% justification.  From plain.tex.
 \envdef\raggedright{%
   \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax
-  \def\urefprestretchamount{0pt}%
-  \def\urefpoststretchamount{0pt}%
 }
 \let\Eraggedright\par
 
@@ -7728,6 +7734,21 @@ end
   \fi\fi
 }
 
+% \dosubind {index}{topic}{subtopic}
+%
+% If SUBTOPIC is present, precede it with a space, and call \doind.
+% (At some time during the 20th century, this made a two-level entry in an 
+% index such as the operation index.  Nobody seemed to notice the change in 
+% behaviour though.)
+\def\dosubind#1#2#3{%
+  \def\thirdarg{#3}%
+  \ifx\thirdarg\empty
+    \doind{#1}{#2}%
+  \else
+    \doind{#1}{#2\space#3}%
+  \fi
+}
+
 % Untyped functions:
 
 % @deffn category name args
@@ -7742,7 +7763,6 @@ end
 % \deffngeneral {subind}category name args
 %
 \def\deffngeneral#1#2 #3 #4\endheader{%
-  % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
   \dosubind{fn}{\code{#3}}{#1}%
   \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
 }
@@ -8754,7 +8774,7 @@ end
 
 % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
 % anchor), which consists of three parts:
-% 1) NAME-title - the current sectioning name taken from \lastsection,
+% 1) NAME-title - the current sectioning name taken from \currentsection,
 %                 or the anchor name.
 % 2) NAME-snt   - section number and type, passed as the SNT arg, or
 %                 empty for anchors.
@@ -8776,7 +8796,7 @@ end
 	\write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
 	  ##1}{##2}}% these are parameters of \writexrdef
       }%
-      \toks0 = \expandafter{\lastsection}%
+      \toks0 = \expandafter{\currentsection}%
       \immediate \writexrdef{title}{\the\toks0 }%
       \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
       \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
@@ -9574,13 +9594,13 @@ end
       \global\advance\floatno by 1
       %
       {%
-        % This magic value for \lastsection is output by \setref as the
+        % This magic value for \currentsection is output by \setref as the
         % XREFLABEL-title value.  \xrefX uses it to distinguish float
         % labels (which have a completely different output format) from
         % node and anchor labels.  And \xrdef uses it to construct the
         % lists of floats.
         %
-        \edef\lastsection{\floatmagic=\safefloattype}%
+        \edef\currentsection{\floatmagic=\safefloattype}%
         \setref{\floatlabel}{Yfloat}%
       }%
     \fi
@@ -9703,7 +9723,7 @@ end
 
 % #1 is the control sequence we are passed; we expand into a conditional
 % which is true if #1 represents a float ref.  That is, the magic
-% \lastsection value which we \setref above.
+% \currentsection value which we \setref above.
 %
 \def\iffloat#1{\expandafter\doiffloat#1==\finish}
 %
@@ -11191,21 +11211,14 @@ directory should work if nowhere else does.}
    \relax
 }
 
-% define all Unicode characters we know about, for the sake of @U.
+% Define all Unicode characters we know about.  This makes UTF-8 the default
+% input encoding and allows @U to work.
 \iftxinativeunicodecapable
   \nativeunicodechardefsatu
 \else
   \utfeightchardefs
 \fi
 
-
-% Make non-ASCII characters printable again for compatibility with
-% existing Texinfo documents that may use them, even without declaring a
-% document encoding.
-%
-\setnonasciicharscatcode \other
-
-
 \message{formatting,}
 
 \newdimen\defaultparindent \defaultparindent = 15pt
diff --git a/source/build-aux/ylwrap b/source/build-aux/ylwrap
index d788f2da5..5943168da 100755
--- a/source/build-aux/ylwrap
+++ b/source/build-aux/ylwrap
@@ -1,9 +1,9 @@
 #! /bin/sh
 # ylwrap - wrapper for lex/yacc invocations.
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 #
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
@@ -18,7 +18,7 @@ scriptversion=2016-01-11.22; # UTC
 # 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, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -239,7 +239,7 @@ exit $ret
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
diff --git a/source/configure b/source/configure
index e69b4c83d..0e2d074fc 100755
--- a/source/configure
+++ b/source/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for TeX Live 2018-04-14.
+# Generated by GNU Autoconf 2.69 for TeX Live 2019-04-07.
 #
 # Report bugs to <tex-k@tug.org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='TeX Live'
 PACKAGE_TARNAME='tex-live'
-PACKAGE_VERSION='2018-04-14'
-PACKAGE_STRING='TeX Live 2018-04-14'
+PACKAGE_VERSION='2019-04-07'
+PACKAGE_STRING='TeX Live 2019-04-07'
 PACKAGE_BUGREPORT='tex-k@tug.org'
 PACKAGE_URL=''
 
@@ -807,7 +807,6 @@ enable_aleph
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
-enable_luatex53
 enable_luajittex
 enable_mp
 enable_pmp
@@ -1417,7 +1416,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures TeX Live 2018-04-14 to adapt to many kinds of systems.
+\`configure' configures TeX Live 2019-04-07 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1491,7 +1490,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of TeX Live 2018-04-14:";;
+     short | recursive ) echo "Configuration of TeX Live 2019-04-07:";;
    esac
   cat <<\_ACEOF
 
@@ -1530,7 +1529,6 @@ Optional Features:
   --disable-pdftex          do not compile and install pdfTeX
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
-  --disable-luatex53        do not compile and install LuaTeX53
   --disable-luajittex       do not compile and install LuaJITTeX
   --disable-mp              do not compile and install MetaPost
   --disable-pmp             do not compile and install pMetaPost
@@ -1692,7 +1690,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-TeX Live configure 2018-04-14
+TeX Live configure 2019-04-07
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2469,7 +2467,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by TeX Live $as_me 2018-04-14, which was
+It was created by TeX Live $as_me 2019-04-07, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4006,7 +4004,8 @@ test "x$enable_web2c" = xno || {
   need_zlib=yes
 }
 
-## texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
+# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
 # Check whether --with-banner-add was given.
@@ -4179,22 +4178,6 @@ case $enable_luatex in #(
 esac
 
 test "x$enable_web2c:$enable_luatex" = xyes:yes && {
-  need_libpng=yes
-  need_zziplib=yes
-  need_lua52=yes
-}
-# Check whether --enable-luatex53 was given.
-if test "${enable_luatex53+set}" = set; then :
-  enableval=$enable_luatex53;
-fi
-case $enable_luatex53 in #(
-  yes | no) :
-     ;; #(
-  *) :
-    enable_luatex53=yes ;;
-esac
-
-test "x$enable_web2c:$enable_luatex53" = xyes:yes && {
   need_libpng=yes
   need_zziplib=yes
   need_lua53=yes
@@ -4333,7 +4316,7 @@ case $enable_mflua_nowin in #(
 esac
 
 test "x$enable_web2c:$enable_mflua" = xyes:yes && {
-  need_lua52=yes
+  need_lua53=yes
 }
 # Check whether --enable-mfluajit was given.
 if test "${enable_mfluajit+set}" = set; then :
@@ -8890,7 +8873,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='tex-live'
- VERSION='2018-04-14'
+ VERSION='2019-04-07'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -19442,9 +19425,103 @@ esac
 else
   FT2_CONFIG="$ac_cv_prog_FT2_CONFIG"
 fi
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$PKG_CONFIG"; then
+  ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+PKG_CONFIG=$ac_cv_prog_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_PKG_CONFIG"; then
+  ac_ct_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_PKG_CONFIG"; then
+  ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG
+if test -n "$ac_ct_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PKG_CONFIG" >&5
+$as_echo "$ac_ct_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_PKG_CONFIG" = x; then
+    PKG_CONFIG="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_ct_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_prog_PKG_CONFIG"
+fi
 if $FT2_CONFIG --ftversion >/dev/null 2>&1; then
   FREETYPE2_INCLUDES=`$FT2_CONFIG --cflags`
   FREETYPE2_LIBS=`$FT2_CONFIG --libs`
+elif $PKG_CONFIG --libs freetype2 >/dev/null 2>&1; then
+  FREETYPE2_INCLUDES=`$PKG_CONFIG --cflags freetype2`
+  FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
 elif test "x$need_freetype2:$with_system_freetype2" = xyes:yes; then
   as_fn_error $? "did not find freetype-config required for system freetype2 library" "$LINENO" 5
 fi
@@ -20465,7 +20542,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by TeX Live $as_me 2018-04-14, which was
+This file was extended by TeX Live $as_me 2019-04-07, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -20522,7 +20599,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-TeX Live config.status 2018-04-14
+TeX Live config.status 2019-04-07
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/source/libs/README b/source/libs/README
index 8c9c70f29..58268f59d 100644
--- a/source/libs/README
+++ b/source/libs/README
@@ -1,4 +1,4 @@
-$Id: README 50014 2019-02-12 23:03:56Z kakuto $
+$Id: README 50122 2019-02-25 03:01:12Z kakuto $
 Public domain.  Originally created by Karl Berry, 2005.
 
 Libraries we compile for TeX Live.
@@ -59,7 +59,7 @@ poppler 0.68.0 - checked 20aug18
 teckit 2.5.8 - checked 24jul18
   https://github.com/silnrsi/teckit/archive/2.5.8.tar.gz
 
-xpdf 4.00 - checked 13aug17
+xpdf 4.01 - checked 25feb19
   http://www.xpdfreader.com/download.html
   with modifications for pdftex
 
diff --git a/source/libs/configure b/source/libs/configure
index 62798fee7..a1040aaba 100755
--- a/source/libs/configure
+++ b/source/libs/configure
@@ -716,7 +716,6 @@ enable_aleph
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
-enable_luatex53
 enable_luajittex
 enable_mp
 enable_pmp
@@ -1417,7 +1416,6 @@ Optional Features:
   --disable-pdftex          do not compile and install pdfTeX
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
-  --disable-luatex53        do not compile and install LuaTeX53
   --disable-luajittex       do not compile and install LuaJITTeX
   --disable-mp              do not compile and install MetaPost
   --disable-pmp             do not compile and install pMetaPost
@@ -3186,7 +3184,8 @@ test "x$enable_web2c" = xno || {
   need_zlib=yes
 }
 
-## texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
+# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
 # Check whether --with-banner-add was given.
@@ -3359,22 +3358,6 @@ case $enable_luatex in #(
 esac
 
 test "x$enable_web2c:$enable_luatex" = xyes:yes && {
-  need_libpng=yes
-  need_zziplib=yes
-  need_lua52=yes
-}
-# Check whether --enable-luatex53 was given.
-if test "${enable_luatex53+set}" = set; then :
-  enableval=$enable_luatex53;
-fi
-case $enable_luatex53 in #(
-  yes | no) :
-     ;; #(
-  *) :
-    enable_luatex53=yes ;;
-esac
-
-test "x$enable_web2c:$enable_luatex53" = xyes:yes && {
   need_libpng=yes
   need_zziplib=yes
   need_lua53=yes
@@ -3513,7 +3496,7 @@ case $enable_mflua_nowin in #(
 esac
 
 test "x$enable_web2c:$enable_mflua" = xyes:yes && {
-  need_lua52=yes
+  need_lua53=yes
 }
 # Check whether --enable-mfluajit was given.
 if test "${enable_mfluajit+set}" = set; then :
diff --git a/source/libs/libpng/ChangeLog b/source/libs/libpng/ChangeLog
index ee5ca7689..3c6e3a2ed 100644
--- a/source/libs/libpng/ChangeLog
+++ b/source/libs/libpng/ChangeLog
@@ -1,6 +1,6 @@
 2019-02-14  Johannes Hielscher  <jhielscher@posteo.de>
 
-	* Makefile.am (nodist_libpng_a_SOURCES) [PNG_ARM_NEON]: include
+	* Makefile.am (nodist_libpng_a_SOURCES) [PNG_ARM_NEON]: add
 	@LIBPNG_TREE@/arm/palette_neon_intrinsics.c.
 	tlbuild 12 Feb 2019 00:07:11.
 
diff --git a/source/libs/luajit/ChangeLog b/source/libs/luajit/ChangeLog
index cb4fa5b86..a4c8f8f74 100644
--- a/source/libs/luajit/ChangeLog
+++ b/source/libs/luajit/ChangeLog
@@ -1,3 +1,8 @@
+2019-03-26  Karl Berry  <karl@freefriends.org>
+
+	* configure.ac (LIBLUAJIT_LDEXTRA): -lc++abi -lpthread for
+	openbsd:*:clang, from Luigi.
+
 2018-09-09  Karl Berry  <karl@tug.org>
 
 	* lutjiterr.test: LC_ALL=LANGUAGE=C.
@@ -106,4 +111,3 @@
 
 	Import LuaJIT-2.0.2/ from
 	  http://luajit.org/download/LuaJIT-2.0.2.tar.gz.
-
diff --git a/source/libs/luajit/configure.ac b/source/libs/luajit/configure.ac
index 0f93b051d..04bd56136 100644
--- a/source/libs/luajit/configure.ac
+++ b/source/libs/luajit/configure.ac
@@ -1,6 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl   Copyright (C) 2014, 2015 Peter Breitenlohner <tex-live@tug.org>
+dnl   Copyright 2016-2019 Karl Berry <tex-live@tug.org>
+dnl   Copyright 2014-2015 Peter Breitenlohner <tex-live@tug.org>
 dnl
 dnl   This file is free software; the copyright holder
 dnl   gives unlimited permission to copy and/or distribute it,
@@ -65,10 +66,10 @@ AC_SUBST([LJVM_MODE])
 
 dnl Extra switches
 dnl We support openbsd x86_64 and i386,
-dnl other platforms could be require different switches .
+dnl other platforms could require different switches.
 dnl
 AS_CASE([$host_os:$host_cpu],
-        [*darwin*:x86_64],  [LIBLUAJIT_LDEXTRA='-image_base 7fff04c4a000'])
+        [*darwin*:x86_64], [LIBLUAJIT_LDEXTRA='-image_base 7fff04c4a000'])
 AS_CASE([$host_os:$host_cpu:$CC],
         [*openbsd*:x86_64:clang* | *openbsd*:x86_64:cc], [LIBLUAJIT_LDEXTRA='-lc++abi -lpthread'],
         [*openbsd*:i386:clang* | *openbsd*:i386:cc],   [LIBLUAJIT_LDEXTRA='-lc++abi -lpthread'])
diff --git a/source/m4/ChangeLog b/source/m4/ChangeLog
index b4589fdc7..f4345adb4 100644
--- a/source/m4/ChangeLog
+++ b/source/m4/ChangeLog
@@ -1,3 +1,8 @@
+2019-03-25  Karl Berry  <karl@freefriends.org>
+
+	* kpse-freetype2-flags.m4 (KPSE_FREETYPE2_SYSTEM_FLAGS): try
+	pkg-config if freetype-config is not available. From Debian.
+
 2019-02-18  Luigi Scarso  <luigi.scarso@gmail.com>
 
 	* kpse-win32.m4 (KPSE_COND_WIN32_WRAP): if w64 and mingw,
diff --git a/source/m4/kpse-freetype2-flags.m4 b/source/m4/kpse-freetype2-flags.m4
index c00b24a24..d6292912a 100644
--- a/source/m4/kpse-freetype2-flags.m4
+++ b/source/m4/kpse-freetype2-flags.m4
@@ -1,5 +1,6 @@
-# Public macros for the TeX Live (TL) tree.
-# Copyright (C) 2009-2014 Peter Breitenlohner <tex-live@tug.org>
+# Public macros for the TeX Live (TL) tree - freetype2.
+# Copyright 2015-2019 Karl Berry <tex-live@tug.org>
+# Copyright 2009-2014 Peter Breitenlohner <tex-live@tug.org>
 #
 # This file is free software; the copyright holder
 # gives unlimited permission to copy and/or distribute it,
@@ -9,28 +10,36 @@
 # --------------------
 # Provide the configure option '--with-system-freetype2' (if in the TL tree).
 #
-# Set the make variables FREETYPE2_INCLUDES and FREETYPE2_LIBS to the CPPFLAGS and
-# LIBS required for the `-lfreetype' library in libs/freetype2/ of the TL tree.
+# Set the make variables FREETYPE2_INCLUDES and FREETYPE2_LIBS to the
+# CPPFLAGS and LIBS required for the `-lfreetype' library in
+# libs/freetype2/ of the TL tree.
+# 
 AC_DEFUN([KPSE_FREETYPE2_FLAGS], [dnl
 AC_REQUIRE([KPSE_ZLIB_FLAGS])[]dnl
 _KPSE_LIB_FLAGS([freetype2], [freetype], [],
                 [-IBLD/libs/freetype2/freetype2],
-                [BLD/libs/freetype2/libfreetype.a], [],
-                [], [${top_builddir}/../../libs/freetype2/freetype2/ft2build.h])[]dnl
+                [BLD/libs/freetype2/libfreetype.a], [], [],
+                [${top_builddir}/../../libs/freetype2/freetype2/ft2build.h])[]dnl
 ]) # KPSE_FREETYPE2_FLAGS
 
 # KPSE_FREETYPE2_OPTIONS([WITH-SYSTEM])
 # -------------------------------------
-AC_DEFUN([KPSE_FREETYPE2_OPTIONS], [_KPSE_LIB_OPTIONS([freetype2], [$1], [freetype-config])])
+AC_DEFUN([KPSE_FREETYPE2_OPTIONS], [dnl
+_KPSE_LIB_OPTIONS([freetype2], [$1], [freetype-config])])
 
 # KPSE_FREETYPE2_SYSTEM_FLAGS
 # ---------------------------
+# try pkg-config if freetype-config isn't available.
 AC_DEFUN([KPSE_FREETYPE2_SYSTEM_FLAGS], [dnl
 AC_REQUIRE([AC_CANONICAL_HOST])[]dnl
 AC_CHECK_TOOL([FT2_CONFIG], [freetype-config], [false])[]dnl
+AC_CHECK_TOOL([PKG_CONFIG], [pkg-config], [false])[]dnl
 if $FT2_CONFIG --ftversion >/dev/null 2>&1; then
   FREETYPE2_INCLUDES=`$FT2_CONFIG --cflags`
   FREETYPE2_LIBS=`$FT2_CONFIG --libs`
+elif $PKG_CONFIG --libs freetype2 >/dev/null 2>&1; then
+  FREETYPE2_INCLUDES=`$PKG_CONFIG --cflags freetype2`
+  FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
 elif test "x$need_freetype2:$with_system_freetype2" = xyes:yes; then
   AC_MSG_ERROR([did not find freetype-config required for system freetype2 library])
 fi
diff --git a/source/tardate.ac b/source/tardate.ac
index cdcc94e15..1e92ae848 100644
--- a/source/tardate.ac
+++ b/source/tardate.ac
@@ -1,5 +1,5 @@
-dnl $Id: tardate.ac 47457 2018-04-13 22:20:58Z karl $
-dnl   Copyright 2016-2018 Karl Berry <tex-live@tug.org>
+dnl $Id: tardate.ac 50836 2019-04-07 01:42:55Z karl $
+dnl   Copyright 2016-2019 Karl Berry <tex-live@tug.org>
 dnl   Copyright 2010-2015 Peter Breitenlohner <tex-live@tug.org>
 dnl
 dnl   This file is free software; the copyright holder
@@ -9,4 +9,4 @@ dnl
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current TeX Live tarball version
-m4_define([tex_live_tardate], [2018-04-14])
+m4_define([tex_live_tardate], [2019-04-07])
diff --git a/source/texk/README b/source/texk/README
index ffbb1b66e..30ff6a396 100644
--- a/source/texk/README
+++ b/source/texk/README
@@ -1,5 +1,5 @@
-$Id: README 49921 2019-02-03 10:49:09Z hironobu $
-Copyright 2006-2018 TeX Users Group.
+$Id: README 50838 2019-04-07 12:59:36Z karl $
+Copyright 2006-2019 TeX Users Group.
 You may freely use, modify and/or distribute this file.
 
 This TeX Live directory contains the programs that use the kpathsea
@@ -38,7 +38,7 @@ detex 2.8.5 - checked 03feb19
   https://github.com/pkubowicz/opendetex
     old info: http://www.cs.purdue.edu/homes/trinkle/detex/
 
-dtl - ?
+dtl - maintained here, by Takuji
 
 dvi2tty 6.0.0 - checked 05mar16
   https://github.com/t-tk/dvi2tty
@@ -56,19 +56,19 @@ dvipdfm-x - maintained here, by us, contains
   xdvipdfmx
     old info: http://project.ktug.org/dvipdfmx/
 
-dvipng 1.15 - checked 3mar15
-  http://mirror.ctan.org/dviware/dvipng/ (but maybe stale)
+dvipng 1.16 - checked 7apr19
   http://savannah.nongnu.org/files/?group=dvipng
+  http://mirror.ctan.org/dviware/dvipng/ (but maybe stale)
 
 dvipos - maintained here, by us
 
 dvipsk - maintained here, by us
 
-dvisvgm 2.6.2 - checked 25jan19
+dvisvgm 2.6.3 - checked 10mar19
   https://dvisvgm.de/Downloads/
 
-gregorio 5.1.1 - checked 25mar18
-  CTAN/support/gregoriotex/gregorio-5.1.1.zip
+gregorio 5.2.0 - checked 11mar19
+  CTAN/support/gregoriotex/gregorio-5.2.0.zip
 
 gsftopk - from Paul Vojta's xdvi?
 
@@ -82,7 +82,8 @@ makeindexk - maintained here, by us
 makejvf - by Japanese TeX Development Community (Takuji, Hironobu et al.)
   https://github.com/texjporg/tex-jp-build
 
-mendexk - maintained here, by us (Takuji, Akira et al.)
+mendexk - by Japanese TeX Development Community (Takuji, Hironobu et al.)
+  https://github.com/texjporg/tex-jp-build
 
 musixtnt 2016-01-30 - checked 10feb16
   http://mirror.ctan.org/macros/musixtnt/
@@ -106,26 +107,27 @@ ttf2pk2 - maintained here, by us
 
 ttfdump - maintained here, by us, since Taiwan upstream apparently gone.
 
-upmendex 0.51 - by Takuji Tanaka
+upmendex 0.52 - by Takuji Tanaka
   http://www.ctan.org/pkg/upmendex
-  http://www.t-lab.opal.ne.jp/tex/uptex_en.html
+  https://github.com/t-tk/upmendex-package
 
 web2c - maintained here, by us - core web2c, plain tex, etc.
   The TeX variant dirs (pdftexdir, xetexdir, etc.)
   updated here by their respective maintainers.  More info:
        aleph - maintained here
         ctie - CTAN
-        cweb - Knuth, ftp://ftp.cs.stanford.edu/pub/cweb/
+        cweb - https://github.com/ascherer/cwebbin
+               (original Knuth, ftp://ftp.cs.stanford.edu/pub/cweb/)
        eptex - https://github.com/texjporg/tex-jp-build
                also: https://osdn.jp/projects/eptex
         etex - maintained here
       euptex - http://www.t-lab.opal.ne.jp/tex/uptex_en.html
   mflua[jit] - https://serveur-svn.lri.fr/svn/modhel/mflua
                also: http://www.luatex.org/download.html
-    mplibdir - http://tug.org/metapost
+    mplibdir - http://tug.org/metapost/
                also: http://www.luatex.org/download.html
-      luatex - http://luatex.org
-      pdftex - http://pdftex.org
+      luatex - http://luatex.org/
+      pdftex - http://pdftex.org/
    [u]pmpost - nothing current, see README for old info
         ptex - https://github.com/texjporg/tex-jp-build
                old info: http://ascii.asciimw.jp/pb/ptex/
diff --git a/source/texk/configure b/source/texk/configure
index 551ff6301..cca1a4a76 100755
--- a/source/texk/configure
+++ b/source/texk/configure
@@ -716,7 +716,6 @@ enable_aleph
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
-enable_luatex53
 enable_luajittex
 enable_mp
 enable_pmp
@@ -1417,7 +1416,6 @@ Optional Features:
   --disable-pdftex          do not compile and install pdfTeX
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
-  --disable-luatex53        do not compile and install LuaTeX53
   --disable-luajittex       do not compile and install LuaJITTeX
   --disable-mp              do not compile and install MetaPost
   --disable-pmp             do not compile and install pMetaPost
@@ -3186,7 +3184,8 @@ test "x$enable_web2c" = xno || {
   need_zlib=yes
 }
 
-## texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
+# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
 # Check whether --with-banner-add was given.
@@ -3359,22 +3358,6 @@ case $enable_luatex in #(
 esac
 
 test "x$enable_web2c:$enable_luatex" = xyes:yes && {
-  need_libpng=yes
-  need_zziplib=yes
-  need_lua52=yes
-}
-# Check whether --enable-luatex53 was given.
-if test "${enable_luatex53+set}" = set; then :
-  enableval=$enable_luatex53;
-fi
-case $enable_luatex53 in #(
-  yes | no) :
-     ;; #(
-  *) :
-    enable_luatex53=yes ;;
-esac
-
-test "x$enable_web2c:$enable_luatex53" = xyes:yes && {
   need_libpng=yes
   need_zziplib=yes
   need_lua53=yes
@@ -3513,7 +3496,7 @@ case $enable_mflua_nowin in #(
 esac
 
 test "x$enable_web2c:$enable_mflua" = xyes:yes && {
-  need_lua52=yes
+  need_lua53=yes
 }
 # Check whether --enable-mfluajit was given.
 if test "${enable_mfluajit+set}" = set; then :
diff --git a/source/texk/kpathsea/ChangeLog b/source/texk/kpathsea/ChangeLog
index 5162fda2e..504310693 100644
--- a/source/texk/kpathsea/ChangeLog
+++ b/source/texk/kpathsea/ChangeLog
@@ -1,3 +1,15 @@
+2019-04-07  Karl Berry  <karl@freefriends.org>
+
+	* TeX Live 2019.
+
+2019-03-25  Karl Berry  <karl@freefriends.org>
+
+	* texmf.cnf (TEXMFDBS),
+	* doc/kpathsea.texi (ls-R): attempt to describe the lack of
+	disk searching when ls-R is present, regardless of !!, more clearly.
+	Report from Yann Salmon, tex-k thread of 27 Feb 2019 21:00:46.
+	* kpsewhich.c: doc fix.
+
 2019-02-11  Karl Berry  <karl@tug.org>
 
 	* version.ac,
diff --git a/source/texk/kpathsea/NEWS b/source/texk/kpathsea/NEWS
index 68dc912e1..dab9568db 100644
--- a/source/texk/kpathsea/NEWS
+++ b/source/texk/kpathsea/NEWS
@@ -1,7 +1,7 @@
-$Id: NEWS 49400 2018-12-13 17:23:10Z karl $
+$Id: NEWS 50836 2019-04-07 01:42:55Z karl $
 This file records noteworthy changes.  (Public domain.)
 
-6.3.1 (for TeX Live 2019)
+6.3.1 (for TeX Live 2019, 7 April 2019)
 * kpsewhich --var-value does brace expansion as well as variable and
   tilde expansion.
 * The kpathsea_path_search() and related functions always recognize either
diff --git a/source/texk/kpathsea/doc/kpathsea.info b/source/texk/kpathsea/doc/kpathsea.info
index 401a14dd4..d5d49858a 100644
--- a/source/texk/kpathsea/doc/kpathsea.info
+++ b/source/texk/kpathsea/doc/kpathsea.info
@@ -1,4 +1,4 @@
-This is kpathsea.info, produced by makeinfo version 6.5 from
+This is kpathsea.info, produced by makeinfo version 6.6 from
 kpathsea.texi.
 
 This file documents the Kpathsea library for path searching.
@@ -37,7 +37,7 @@ Kpathsea library
 ****************
 
 This manual documents the Kpathsea library for path searching.  It
-corresponds to version 6.3.1, released in February 2019.
+corresponds to version 6.3.1, released in March 2019.
 
 * Menu:
 
@@ -62,7 +62,7 @@ File: kpathsea.info,  Node: Introduction,  Next: unixtex.ftp,  Prev: Top,  Up: T
 **************
 
 This manual corresponds to version 6.3.1 of the Kpathsea library,
-released in February 2019.
+released in March 2019.
 
    The library's fundamental purpose is to return a filename from a list
 of directories specified by the user, similar to what shells do when
@@ -989,9 +989,13 @@ File: kpathsea.info,  Node: ls-R,  Next: Filename aliases,  Up: Filename databas
 
 As mentioned above, you must name the main filename database 'ls-R'.
 You can put one at the root of each TeX installation hierarchy you wish
-to search ('$TEXMF' by default); most sites have only one hierarchy.
-Kpathsea looks for 'ls-R' files along the 'TEXMFDBS' path, so that
-should presumably match the list of hierarchies.
+to search ('$TEXMF' by default, which expands to a braced list of
+several hierarchies in TeX Live).
+
+   Kpathsea looks for 'ls-R' files along the 'TEXMFDBS' path.  It is
+best for this to contain all and only those hierarchies from '$TEXMF'
+which are specified with '!!'--and also to specify them with '!!' in
+'TEXMFDBS'.  (See the end of this section for more on '!!'.)
 
    The recommended way to create and maintain 'ls-R' is to run the
 'mktexlsr' script, which is installed in '$(bindir)' ('/usr/local/bin'
@@ -1012,7 +1016,9 @@ definition of the file format, see *note Database format::.
    Regardless of whether you use the supplied script or your own, you
 will almost certainly want to invoke it via 'cron', so when you make
 changes in the installed files (say if you install a new LaTeX package),
-'ls-R' will be automatically updated.
+'ls-R' will be automatically updated.  However, for those using TeX Live
+or system distributions, the package managers should run 'mktexlsr' as
+needed.
 
    The '-A' option to 'ls' includes files beginning with '.' (except for
 '.' and '..'), such as the file '.tex' included with the LaTeX tools
@@ -1032,14 +1038,24 @@ instead of 'ls -LR ./' or 'ls -R /YOUR/TEXMF/ROOT'.  Another possibility
 is some system directory name starting with a '.' (perhaps if you are
 using AFS); Kpathsea ignores everything under such directories.
 
-   Because the database may be out-of-date for a particular run, if a
-file is not found in the database, by default Kpathsea goes ahead and
-searches the disk.  If a particular path element begins with '!!',
-however, _only_ the database will be searched for that element, never
-the disk.  If the database does not exist, nothing will be searched.
-Because this can surprise users ("I see the font 'foo.tfm' when I do an
-'ls'; why can't Dvips find it?"), it is not in any of the default search
-paths.
+   If a particular path element begins with '!!', _only_ the database
+will be searched for that element, never the disk; and if the database
+does not exist, nothing at all will be searched.  In TeX Live, most of
+the trees are specified with '!!'.
+
+   For path elements that do not begin with '!!', if the database
+exists, it will be used, and the disk will not be searched.  However, in
+this case, if the database does not exist, the disk will be searched.
+In TeX Live, the most notable case of this is the 'TEXMFHOME' tree, to
+allow users to add and remove files from their own tree without having
+to worry about 'ls-R'.
+
+   (Aside: there are uncommon cases where a '!!' tree will be searched
+on disk even if the 'ls-R' file exists; they are too obscure to try to
+explain here.  See 'pathsearch.c' in the source if you need to know.)
+
+   To sum up: do not create an 'ls-R' file unless you also take care to
+keep it up to date.  Otherwise newly-installed files will not be found.
 
 
 File: kpathsea.info,  Node: Filename aliases,  Next: Database format,  Prev: ls-R,  Up: Filename database
@@ -2963,13 +2979,16 @@ Index
 �[index�]
 * Menu:
 
-* !! in path specifications:             ls-R.                (line  51)
+* !! and casefolding:                    Casefolding examples.
+                                                              (line  57)
+* !! in path specifications:             ls-R.                (line  57)
+* !! in TEXMFDBS:                        ls-R.                (line  11)
 * $ expansion:                           Variable expansion.  (line   6)
 * --all:                                 Path searching options.
                                                               (line  12)
 * --casefold-search:                     Path searching options.
                                                               (line  19)
-* --color=tty:                           ls-R.                (line  21)
+* --color=tty:                           ls-R.                (line  25)
 * --debug=NUM:                           Auxiliary tasks.     (line   9)
 * --dpi=NUM:                             Path searching options.
                                                               (line  28)
@@ -3014,14 +3033,14 @@ Index
 * --without-mktexpk-default:             mktex configuration. (line  12)
 * --without-mktextfm-default:            mktex configuration. (line  12)
 * -1 debugging value:                    Debugging.           (line  23)
-* -A option to ls:                       ls-R.                (line  33)
+* -A option to ls:                       ls-R.                (line  39)
 * -D NUM:                                Path searching options.
                                                               (line  28)
 * -iname, find predicate:                Casefolding examples.
                                                               (line  78)
-* -L option to ls:                       ls-R.                (line  38)
-* . directories, ignored:                ls-R.                (line  33)
-* . files:                               ls-R.                (line  33)
+* -L option to ls:                       ls-R.                (line  44)
+* . directories, ignored:                ls-R.                (line  39)
+* . files:                               ls-R.                (line  39)
 * .2602gf:                               Unable to generate fonts.
                                                               (line  36)
 * .afm:                                  Supported file formats.
@@ -3105,7 +3124,7 @@ Index
                                                               (line  42)
 * .tex:                                  Supported file formats.
                                                               (line 180)
-* .tex file, included in ls-R:           ls-R.                (line  33)
+* .tex file, included in ls-R:           ls-R.                (line  39)
 * .tfm:                                  Supported file formats.
                                                               (line 199)
 * .ttc:                                  Supported file formats.
@@ -3126,7 +3145,7 @@ Index
                                                               (line   6)
 * /etc/profile:                          Unable to find files.
                                                               (line  14)
-* /etc/profile and aliases:              ls-R.                (line  21)
+* /etc/profile and aliases:              ls-R.                (line  25)
 * /var/tmp/texfonts:                     mktex configuration. (line 113)
 * 2602gf:                                Unable to generate fonts.
                                                               (line  36)
@@ -3164,7 +3183,7 @@ Index
                                                               (line   6)
 * argv[0]:                               Calling sequence.    (line  14)
 * autoconf, recommended:                 Calling sequence.    (line 117)
-* automounter, and ls-R:                 ls-R.                (line  40)
+* automounter, and ls-R:                 ls-R.                (line  46)
 * auxiliary tasks:                       Auxiliary tasks.     (line   6)
 * Bach, Johann Sebastian:                Default expansion.   (line  41)
 * backslash-newline:                     Config files.        (line  37)
@@ -3266,13 +3285,13 @@ Index
                                                               (line   6)
 * disabling mktex scripts:               mktex configuration. (line   6)
 * disk search:                           Searching overview.  (line  22)
-* disk searching, avoiding:              ls-R.                (line  51)
+* disk searching, avoiding:              ls-R.                (line  57)
 * disk usage, reducing:                  Logging.             (line   6)
 * doc files:                             Supported file formats.
                                                               (line 185)
 * DOS compatible names:                  mktex configuration. (line  68)
 * dosnames:                              mktex configuration. (line  67)
-* dot files:                             ls-R.                (line  33)
+* dot files:                             ls-R.                (line  39)
 * doubled colons:                        Default expansion.   (line   6)
 * dpiNNN directories:                    mktex configuration. (line  68)
 * DVILJMAKEPK:                           mktex script names.  (line  32)
@@ -3471,7 +3490,7 @@ Index
 * ls-R:                                  Supported file formats.
                                                               (line  91)
 * ls-R database file:                    ls-R.                (line   6)
-* ls-R, simplest build:                  ls-R.                (line  18)
+* ls-R, simplest build:                  ls-R.                (line  22)
 * Mac filesystem, case-insensitive:      Casefolding rationale.
                                                               (line   6)
 * MacKenzie, David:                      History.             (line  44)
@@ -3544,7 +3563,7 @@ Index
 * must exist:                            Searching overview.  (line  31)
 * names for mktex scripts:               mktex script names.  (line   6)
 * Neumann, Gustaf:                       History.             (line  56)
-* NFS and ls-R:                          ls-R.                (line  40)
+* NFS and ls-R:                          ls-R.                (line  46)
 * nomfdrivers:                           mktex configuration. (line  92)
 * nomode:                                mktex configuration. (line  97)
 * none:                                  Suppressing warnings.
@@ -3692,7 +3711,7 @@ Index
                                                               (line   6)
 * symbolic links not found:              Unable to find files.
                                                               (line  21)
-* symbolic links, and ls-R:              ls-R.                (line  38)
+* symbolic links, and ls-R:              ls-R.                (line  44)
 * symlinks, resolving:                   Calling sequence.    (line  31)
 * system C compiler bugs:                TeX or Metafont failing.
                                                               (line  16)
@@ -3765,7 +3784,7 @@ Index
 * TEXMFCNF:                              Config files.        (line   6)
 * TEXMFCNF <1>:                          Supported file formats.
                                                               (line  49)
-* TEXMFDBS:                              ls-R.                (line   6)
+* TEXMFDBS:                              ls-R.                (line  11)
 * TEXMFDBS <1>:                          Supported file formats.
                                                               (line  91)
 * TEXMFINI:                              Supported file formats.
@@ -3827,7 +3846,7 @@ Index
 * unreadable file warnings:              Suppressing warnings.
                                                               (line  27)
 * unreadable files:                      Searching overview.  (line  63)
-* unusable ls-R warning:                 ls-R.                (line  45)
+* unusable ls-R warning:                 ls-R.                (line  51)
 * usage patterns, finding:               Logging.             (line   6)
 * USERPROFILE, as ~ expansion:           Tilde expansion.     (line   6)
 * USE_TEXMFVAR:                          mktex configuration. (line 128)
@@ -3845,7 +3864,7 @@ Index
                                                               (line 219)
 * Vojta, Paul:                           History.             (line  30)
 * Walsh, Norman:                         History.             (line  56)
-* warning about unusable ls-R:           ls-R.                (line  45)
+* warning about unusable ls-R:           ls-R.                (line  51)
 * warning, about missing texmf.cnf:      Config files.        (line  18)
 * warnings, file access:                 Searching overview.  (line  63)
 * warnings, suppressing:                 Suppressing warnings.
@@ -3873,61 +3892,61 @@ Index
 
 Tag Table:
 Node: Top1480
-Node: Introduction2263
-Node: History4336
-Node: unixtex.ftp8932
-Node: Security10357
-Node: TeX directory structure12861
-Node: Path searching16909
-Node: Searching overview17636
-Node: Path sources21455
-Node: Config files22546
-Node: Path expansion26473
-Node: Default expansion27426
-Node: Variable expansion29496
-Node: Tilde expansion30897
-Node: Brace expansion31877
-Node: KPSE_DOT expansion32816
-Node: Subdirectory expansion33329
-Node: Casefolding search35683
-Node: Casefolding rationale36452
-Node: Casefolding examples37791
-Node: Filename database42841
-Node: ls-R43899
-Node: Filename aliases46794
-Node: Database format47972
-Node: Invoking kpsewhich48985
-Node: Path searching options49940
-Node: Specially-recognized files58459
-Node: Auxiliary tasks59814
-Node: Standard options63520
-Node: TeX support63876
-Node: Supported file formats65230
-Node: File lookup72895
-Node: Glyph lookup74644
-Node: Basic glyph lookup75768
-Node: Fontmap76648
-Node: Fallback font79177
-Node: Suppressing warnings80089
-Node: mktex scripts81216
-Node: mktex configuration82431
-Node: mktex script names88234
-Node: mktex script arguments89620
-Node: Programming90499
-Node: Programming overview91072
-Node: Calling sequence93933
-Node: Program-specific files100465
-Node: Programming with config files101488
-Node: Reporting bugs103075
-Node: Bug checklist103753
-Node: Mailing lists107225
-Node: Debugging107900
-Node: Logging112977
-Node: Common problems114844
-Node: Unable to find files115321
-Node: Slow path searching117731
-Node: Unable to generate fonts119106
-Node: TeX or Metafont failing121577
-Node: Index122779
+Node: Introduction2260
+Node: History4330
+Node: unixtex.ftp8926
+Node: Security10351
+Node: TeX directory structure12855
+Node: Path searching16903
+Node: Searching overview17630
+Node: Path sources21449
+Node: Config files22540
+Node: Path expansion26467
+Node: Default expansion27420
+Node: Variable expansion29490
+Node: Tilde expansion30891
+Node: Brace expansion31871
+Node: KPSE_DOT expansion32810
+Node: Subdirectory expansion33323
+Node: Casefolding search35677
+Node: Casefolding rationale36446
+Node: Casefolding examples37785
+Node: Filename database42835
+Node: ls-R43893
+Node: Filename aliases47569
+Node: Database format48747
+Node: Invoking kpsewhich49760
+Node: Path searching options50715
+Node: Specially-recognized files59234
+Node: Auxiliary tasks60589
+Node: Standard options64295
+Node: TeX support64651
+Node: Supported file formats66005
+Node: File lookup73670
+Node: Glyph lookup75419
+Node: Basic glyph lookup76543
+Node: Fontmap77423
+Node: Fallback font79952
+Node: Suppressing warnings80864
+Node: mktex scripts81991
+Node: mktex configuration83206
+Node: mktex script names89009
+Node: mktex script arguments90395
+Node: Programming91274
+Node: Programming overview91847
+Node: Calling sequence94708
+Node: Program-specific files101240
+Node: Programming with config files102263
+Node: Reporting bugs103850
+Node: Bug checklist104528
+Node: Mailing lists108000
+Node: Debugging108675
+Node: Logging113752
+Node: Common problems115619
+Node: Unable to find files116096
+Node: Slow path searching118506
+Node: Unable to generate fonts119881
+Node: TeX or Metafont failing122352
+Node: Index123554
 
 End Tag Table
diff --git a/source/texk/kpathsea/doc/kpathsea.texi b/source/texk/kpathsea/doc/kpathsea.texi
index 3fef753b8..cbaa10186 100644
--- a/source/texk/kpathsea/doc/kpathsea.texi
+++ b/source/texk/kpathsea/doc/kpathsea.texi
@@ -3,7 +3,7 @@
 @settitle Kpathsea: A library for path searching
 
 @set version 6.3.1
-@set month-year February 2019
+@set month-year March 2019
 
 @copying
 This file documents the Kpathsea library for path searching.
@@ -1138,6 +1138,7 @@ searches the disk in the big system directory, the casefolding is not
 done, and a search for @samp{stix-regular.otf} will fail (on
 case-sensitive systems), as it always has.
 
+@kindex !! @r{and casefolding}
 The caveat about not searching the disk amounts to saying that
 casefolding does not happen in the trees specified with @samp{!!}
 (@pxref{ls-R}), that is, where only database (@file{ls-R}) searching
@@ -1224,14 +1225,19 @@ source file @file{kpathsea/db.c}.
 @subsection @file{ls-R}
 
 @flindex ls-R @r{database file}
-@vindex TEXMFDBS
 
 As mentioned above, you must name the main filename database
 @file{ls-R}.  You can put one at the root of each @TeX{} installation
-hierarchy you wish to search (@code{$TEXMF} by default); most sites have
-only one hierarchy.  Kpathsea looks for @file{ls-R} files along the
-@code{TEXMFDBS} path, so that should presumably match the list of
-hierarchies.
+hierarchy you wish to search (@code{$TEXMF} by default, which expands
+to a braced list of several hierarchies in @TeX{} Live). 
+
+@vindex TEXMFDBS
+@kindex !! @r{in @code{TEXMFDBS}}
+Kpathsea looks for @file{ls-R} files along the @code{TEXMFDBS}
+path. It is best for this to contain all and only those hierarchies
+from @code{$TEXMF} which are specified with @code{!!}---and also to
+specify them with @code{!!} in @code{TEXMFDBS}. (See the end of this
+section for more on @code{!!}.)
 
 The recommended way to create and maintain @samp{ls-R} is to run the
 @code{mktexlsr} script, which is installed in @samp{$(bindir)}
@@ -1256,10 +1262,12 @@ Also presuming your @code{ls} hasn't been aliased in a system file
 generating @file{ls-R}.  For the precise definition of the file format,
 see @ref{Database format}.
 
-Regardless of whether you use the supplied script or your own, you will
-almost certainly want to invoke it via @code{cron}, so when you make
-changes in the installed files (say if you install a new La@TeX{}
-package), @file{ls-R} will be automatically updated.
+Regardless of whether you use the supplied script or your own, you
+will almost certainly want to invoke it via @code{cron}, so when you
+make changes in the installed files (say if you install a new @LaTeX{}
+package), @file{ls-R} will be automatically updated.  However, for
+those using @TeX{} Live or system distributions, the package managers
+should run @code{mktexlsr} as needed.
 
 @opindex -A @r{option to @code{ls}}
 @cindex dot files
@@ -1268,7 +1276,7 @@ package), @file{ls-R} will be automatically updated.
 @flindex .tex @r{file, included in @file{ls-R}}
 The @samp{-A} option to @code{ls} includes files beginning with @samp{.}
 (except for @file{.} and @file{..}), such as the file @file{.tex}
-included with the La@TeX{} tools package.  (On the other hand,
+included with the @LaTeX{} tools package.  (On the other hand,
 @emph{directories} whose names begin with @samp{.} are always ignored.)
 
 @cindex symbolic links, and @file{ls-R}
@@ -1293,14 +1301,27 @@ ignores everything under such directories.
 
 @kindex !! @r{in path specifications}
 @cindex disk searching, avoiding
-Because the database may be out-of-date for a particular run, if a file
-is not found in the database, by default Kpathsea goes ahead and
-searches the disk. If a particular path element begins with @samp{!!},
-however, @emph{only} the database will be searched for that element,
-never the disk.  If the database does not exist, nothing will be
-searched.  Because this can surprise users (``I see the font
-@file{foo.tfm} when I do an @code{ls}; why can't Dvips find it?''), it
-is not in any of the default search paths.
+If a particular path element begins with @samp{!!}, @emph{only} the
+database will be searched for that element, never the disk; and if the
+database does not exist, nothing at all will be searched.  In @TeX{}
+Live, most of the trees are specified with @samp{!!}.
+
+For path elements that do not begin with @samp{!!}, if the database
+exists, it will be used, and the disk will not be searched.  However,
+in this case, if the database does not exist, the disk will be
+searched.  In @TeX{} Live, the most notable case of this is the
+@code{TEXMFHOME} tree, to allow users to add and remove files from
+their own tree without having to worry about @code{ls-R}.
+
+(Aside: there are uncommon cases where a @samp{!!} tree will be
+searched on disk even if the @code{ls-R} file exists; they are too
+obscure to try to explain here.  See @file{pathsearch.c} in the source
+if you need to know.)
+
+To sum up: do not create an @code{ls-R} file unless you also take care
+to keep it up to date. Otherwise newly-installed files will not be
+found.
+
 
 
 @node Filename aliases
diff --git a/source/texk/kpathsea/kpsewhich.c b/source/texk/kpathsea/kpsewhich.c
index a3d095ae1..1be21f398 100644
--- a/source/texk/kpathsea/kpsewhich.c
+++ b/source/texk/kpathsea/kpsewhich.c
@@ -632,7 +632,7 @@ read_command_line (kpathsea kpse, int argc, string *argv)
     assert (g == 0); /* We have no short option names.  */
 
     if (ARGUMENT_IS ("casefold-search")) {
-      /* We can't just a boolean for casefold-search because we want to
+      /* We can't use a boolean for casefold-search because we want to
          distinguish it being set with an option vs. leaving the default
          (by default).  */
       xputenv ("texmf_casefold_search", "1");      
diff --git a/source/texk/kpathsea/texmf.cnf b/source/texk/kpathsea/texmf.cnf
index c951999fa..97ed2a787 100644
--- a/source/texk/kpathsea/texmf.cnf
+++ b/source/texk/kpathsea/texmf.cnf
@@ -109,12 +109,12 @@ TEXMFAUXTREES = {}
 % the search paths. tlmgr takes care to end any value with a trailing comma.
 TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}
 
-% Where to look for ls-R files.  There need not be an ls-R in the
-% directories in this path, but if there is one, Kpathsea will use it.
-% By default, this is only the !! elements of TEXMF, so that mktexlsr
-% does not create ls-R files in the non-!! elements -- because if an
-% ls-R is present, it will be used, and the disk will not be searched.
-% This is arguably a bug in kpathsea.
+% 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
+% create ls-R files in the non-!! elements -- because if an ls-R is
+% 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}
 
 % The system trees.  These are the trees that are shared by all users.
diff --git a/source/texk/texlive/linked_scripts/Makefile.am b/source/texk/texlive/linked_scripts/Makefile.am
index 163aa0d90..0577a8b57 100644
--- a/source/texk/texlive/linked_scripts/Makefile.am
+++ b/source/texk/texlive/linked_scripts/Makefile.am
@@ -215,6 +215,7 @@ texmf_other_scripts = \
 	ulqda/ulqda.pl \
 	urlbst/urlbst \
 	vpe/vpe.pl \
+	webquiz/webquiz.py \
 	xindex/xindex.lua \
 	yplan/yplan
 texmf_context_scripts = \
diff --git a/source/texk/texlive/linked_scripts/Makefile.in b/source/texk/texlive/linked_scripts/Makefile.in
index 13dc1d7d3..11cbdbcc2 100644
--- a/source/texk/texlive/linked_scripts/Makefile.in
+++ b/source/texk/texlive/linked_scripts/Makefile.in
@@ -429,6 +429,7 @@ texmf_other_scripts = \
 	ulqda/ulqda.pl \
 	urlbst/urlbst \
 	vpe/vpe.pl \
+	webquiz/webquiz.py \
 	xindex/xindex.lua \
 	yplan/yplan
 
diff --git a/source/texk/texlive/tl_scripts/fmtutil.cnf b/source/texk/texlive/tl_scripts/fmtutil.cnf
index d382bc94f..bc5db8a5d 100644
--- a/source/texk/texlive/tl_scripts/fmtutil.cnf
+++ b/source/texk/texlive/tl_scripts/fmtutil.cnf
@@ -1,4 +1,4 @@
-# Generated by /home/texlive/karl/Master/bin/i386-linux/tlmgr on Sun May 15 03:17:09 2016
+# Generated by /home/texlive/karl/Master/bin/x86_64-linux/tlmgr on Sat Mar 23 02:25:32 2019
 # Originally written by Thomas Esser, 1998. Public domain.
 #
 # As of TeX Live 2015, fmtutil reads *all* fmtutil.cnf files found.
@@ -58,6 +58,7 @@ pdfcslatex pdftex - -etex cslatex.ini
 # from csplain:
 csplain pdftex - -etex -enc csplain-utf8.ini
 pdfcsplain pdftex - -etex -enc csplain-utf8.ini
+luacsplain luatex - -etex csplain.ini
 pdfcsplain xetex - -etex csplain.ini
 pdfcsplain luatex - -etex csplain.ini
 #
diff --git a/source/texk/texlive/w32_wrapper/runscript.tlu b/source/texk/texlive/w32_wrapper/runscript.tlu
index 0f94c5603..41af1ade8 100644
--- a/source/texk/texlive/w32_wrapper/runscript.tlu
+++ b/source/texk/texlive/w32_wrapper/runscript.tlu
@@ -1,7 +1,7 @@
 
 
-local svnrevision = string.match("$Revision: 49485 $", "%d+") or "0"
-local svndate     = string.match("$Date: 2018-12-23 16:28:08 +0100 (Sun, 23 Dec 2018) $", "[-%d]+") or "2009-12-04"
+local svnrevision = string.match("$Revision: 50675 $", "%d+") or "0"
+local svndate     = string.match("$Date: 2019-03-31 21:31:37 +0200 (Sun, 31 Mar 2019) $", "[-%d]+") or "2009-12-04"
 local bannerstr   = "runscript wrapper utility (rev. " ..
                     svnrevision .. ", " .. svndate .. ")\n" .. 
                     "usage:   runscript script-name [arguments]\n" ..
@@ -642,7 +642,7 @@ local scripts4tlperl = {
   ['fmtutil-sys'] = true, 
 }
 local try_extern_perl = (kpse.var_value('TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL') == '1') and 
-                        not (guimode or is_restricted_progname or scripts4tlperl[progname])
+                        not (is_restricted_progname or scripts4tlperl[progname])
 local PERLEXE = try_extern_perl and search_path('perl.exe', PATH)
 local extperl_warn
 if not PERLEXE then
diff --git a/source/texk/texlive/w32_wrapper/tl-tray-menu.c b/source/texk/texlive/w32_wrapper/tl-tray-menu.c
index fe65d5451..e223d39bb 100644
--- a/source/texk/texlive/w32_wrapper/tl-tray-menu.c
+++ b/source/texk/texlive/w32_wrapper/tl-tray-menu.c
@@ -4,6 +4,10 @@ Simple tray menu
 
 Originally written in 2011 by Tomasz M. Trzeciak, Public Domain
 
+2019 updates, by Siep Kroonenberg:
+- added option to open data files with default application
+- updated menu content
+
 compiling with gcc (size optimized):
 echo 1 ICON "tl-tray-menu.ico">tl-tray-menu.rc
 windres tl-tray-menu.rc tl-tray-menu-rc.o
@@ -14,6 +18,7 @@ gcc -Os -s -mwindows -o tl-tray-menu.exe tl-tray-menu-rc.o tl-tray-menu.c
 #define _WIN32_IE 0X0500 // minimum support for tray baloon (IE5)
 
 #include <windows.h>
+#include <shellapi.h>
 #include <process.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -45,16 +50,14 @@ char *menuLabels[MAX_MENU_ENTRIES] = {
 "&Package Manager",
 "&Documentation",
 "&Editor", 
-"PostScript/PDF &Viewer",
 "&Command Prompt",
 NULL };
 
 // default menu commands
 char *menuCommands[MAX_MENU_ENTRIES] = {
-"bin\\win32\\tlmgr-gui.exe",
-"bin\\win32\\texdoctk.exe",
+"bin\\win32\\tlshell.exe",
+"doc.html",
 "bin\\win32\\texworks.exe",
-"bin\\win32\\psv.exe",
 "tlpkg\\installer\\tl-cmd.bat",
 NULL };
 
@@ -65,6 +68,31 @@ For an example and instructions see:\n";
 HMENU hPopMenu;
 NOTIFYICONDATA nid;
 
+// has s executable extension according to PATHEXT?
+int is_exe ( char * s ) {
+  int i, j, extl;
+  char * pathext, * ext, * t, * t1;
+  if ( !s || !(*s)) DIE( "is_exe invoked with NULL or empty string" );
+  pathext = getenv( "PATHEXT" );
+  if (!pathext) return 1;
+  ext = strrchr( s, '.' );
+  if (!ext) return 1;
+  extl = strlen( ext );
+  t = s;
+  while ( 1 ) {
+    t1 = strchr( t, ';' );
+    if ( !t1 ) t1 = s + strlen( s );
+    if ( t1 - t == extl && !_strnicmp( ext, t, extl )) {
+      return 1;
+    } else if ( *t1 ) {
+      t = ++t1;
+    } else {
+      return 0;
+    }
+  }
+  return 0;
+}
+
 LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
 {
   switch ( msg )             
@@ -116,32 +144,39 @@ LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
 
         default:
         {
-          STARTUPINFO si;
-          PROCESS_INFORMATION pi;
-          ZeroMemory( &si, sizeof(si) );
-          si.cb = sizeof(si);
-          //si.dwFlags = STARTF_USESHOWWINDOW;
-          //si.wShowWindow = SW_HIDE ;
-          ZeroMemory( &pi, sizeof(pi) );
-          if( !CreateProcess(
-            NULL,     // module name (uses command line if NULL)
-            menuCommands[LOWORD(wParam)],     // command line
-            NULL,     // process security atrributes
-            NULL,     // thread security atrributes
-            TRUE,     // handle inheritance
-            0,        // creation flags, e.g. CREATE_NO_WINDOW, DETACHED_PROCESS
-            NULL,     // pointer to environment block (uses parent if NULL)
-            NULL,     // starting directory (uses parent if NULL)
-            &si,      // STARTUPINFO structure
-            &pi )     // PROCESS_INFORMATION structure
-          ) DIE( "Failed to spawn command (error code %d):\n%s", 
-                 GetLastError(), menuCommands[LOWORD(wParam)] );
+          if (is_exe( menuCommands[LOWORD(wParam )])) {
+            STARTUPINFO si;
+            PROCESS_INFORMATION pi;
+            ZeroMemory( &si, sizeof(si) );
+            si.cb = sizeof(si);
+            //si.dwFlags = STARTF_USESHOWWINDOW;
+            //si.wShowWindow = SW_HIDE ;
+            ZeroMemory( &pi, sizeof(pi) );
+            if( !CreateProcess(
+              NULL,     // module name (uses command line if NULL)
+              menuCommands[LOWORD(wParam)],     // command line
+              NULL,     // process security atrributes
+              NULL,     // thread security atrributes
+              TRUE,     // handle inheritance
+              0,        // creation flags, e.g. CREATE_NO_WINDOW,
+                        // DETACHED_PROCESS
+              NULL,     // pointer to environment block (uses parent if NULL)
+              NULL,     // starting directory (uses parent if NULL)
+              &si,      // STARTUPINFO structure
+              &pi )     // PROCESS_INFORMATION structure
+            ) DIE( "Failed to spawn command (error code %d):\n%s", 
+                   GetLastError(), menuCommands[LOWORD(wParam)] );
+          } else {
+            // data file; try to open with default application
+            ShellExecute( NULL, NULL, menuCommands[LOWORD(wParam)],
+                NULL, NULL, SW_SHOWNORMAL );
+          }
         }
       }
     }
     break;
 
-    default:                 
+    default:
       return DefWindowProc( hWnd, msg, wParam, lParam );
 
   }
@@ -175,6 +210,9 @@ int APIENTRY WinMain(
   // prepend bin/win32 to PATH
   
   strcpy( strBuf, dirSelf );
+  if ( strlen( dirSelf ) + strlen( "\\bin\\win32;" )
+      + strlen( getenv( "PATH" )) >= MAX_STR )
+    DIE( "Path getting too long" );
   strcat( strBuf, "\\bin\\win32;" );
   strcat( strBuf, getenv( "PATH" ) );
   SetEnvironmentVariable( "PATH", strBuf );
diff --git a/source/texk/web2c/ChangeLog b/source/texk/web2c/ChangeLog
index 6dec8c637..1131f6a32 100644
--- a/source/texk/web2c/ChangeLog
+++ b/source/texk/web2c/ChangeLog
@@ -1,3 +1,12 @@
+2019-04-07  Karl Berry  <karl@freefriends.org>
+
+	* TeX Live 2019.
+
+2019-03-11  Karl Berry  <karl@tug.org>
+
+	* ac/web2c.ac (kpse_tex_progs) <luatex53>: remove.
+	<luatex>, <mflua>: depend on lua53, not lua52.
+
 2019-01-19  Andreas Scherer  <https://ascherer.github.io>
 
 	* help.h: Fix CTWILL '--help' text.
diff --git a/source/texk/web2c/NEWS b/source/texk/web2c/NEWS
index 216ec2a91..a270ea4de 100644
--- a/source/texk/web2c/NEWS
+++ b/source/texk/web2c/NEWS
@@ -8,7 +8,7 @@ CWEB: now comes from the CWEBbin package
 more language support, and more.
 
 
-2019 (for TeX Live 2019)
+2019 (for TeX Live 2019,  7 April 2019)
 2018 (for TeX Live 2018, 14 April 2018)
 * Directories in the -output-directory do not mask files by the same name.
 
diff --git a/source/texk/web2c/ac/web2c.ac b/source/texk/web2c/ac/web2c.ac
index 27bd6bb2c..c665defb7 100644
--- a/source/texk/web2c/ac/web2c.ac
+++ b/source/texk/web2c/ac/web2c.ac
@@ -1,6 +1,8 @@
-## texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
+# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 dnl
-dnl Copyright (C) 2009-2015 Peter Breitenlohner <tex-live@tug.org>
+dnl Copyright 2016-2019 Karl Berry <tex-live@tug.org>
+dnl Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org>
 dnl You may freely use, modify and/or distribute this file.
 dnl
 ## configure options for TeX and MF
@@ -35,8 +37,7 @@ m4_define([kpse_tex_progs], [dnl
 [[euptex],    [yes], [yes], [e-upTeX],    [ptexenc]],
 [[aleph],     [yes], [],    [Aleph],      []],
 [[pdftex],    [yes], [yes], [pdfTeX],     [xpdf libpng]],
-[[luatex],    [yes], [],    [LuaTeX],     [libpng zziplib lua52]],
-[[luatex53],  [yes], [],    [LuaTeX53],   [libpng zziplib lua53]],
+[[luatex],    [yes], [],    [LuaTeX],     [libpng zziplib lua53]],
 [[luajittex], [yes], [],    [LuaJITTeX],  [libpng zziplib luajit]],
 [[mp],        [yes], [],    [MetaPost],   [mpfr cairo libpng]],
 [[pmp],       [yes], [],    [pMetaPost],  [mpfr cairo libpng ptexenc]],
@@ -50,7 +51,7 @@ m4_foreach([Kpse_Prog], [kpse_tex_progs],
 dnl [PROG, BUILD-OR-NO, NOWIN-OR-NO, TEXT, REQUIRED-LIBS]
 m4_define([kpse_mf_progs], [dnl
 [[mf],       [yes], [yes], [METAFONT], []],
-[[mflua],    [yes], [no],  [MFLua],    [lua52]],
+[[mflua],    [yes], [no],  [MFLua],    [lua53]],
 [[mfluajit], [yes], [no],  [MFLuaJIT], [luajit]],
 ])[]dnl
 m4_foreach([Kpse_Prog], [kpse_mf_progs],
diff --git a/source/texk/web2c/configure b/source/texk/web2c/configure
index 8912391d2..386dd145f 100755
--- a/source/texk/web2c/configure
+++ b/source/texk/web2c/configure
@@ -776,8 +776,6 @@ MP_FALSE
 MP_TRUE
 LUAJITTEX_FALSE
 LUAJITTEX_TRUE
-LUATEX53_FALSE
-LUATEX53_TRUE
 LUATEX_FALSE
 LUATEX_TRUE
 PDFTEX_SYNCTEX_FALSE
@@ -1007,7 +1005,6 @@ enable_aleph
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
-enable_luatex53
 enable_luajittex
 enable_mp
 enable_pmp
@@ -1738,7 +1735,6 @@ Optional Features:
   --disable-pdftex        do not compile and install pdfTeX
   --disable-pdftex-synctex  build pdfTeX without SyncTeX support
   --disable-luatex        do not compile and install LuaTeX
-  --disable-luatex53      do not compile and install LuaTeX53
   --disable-luajittex     do not compile and install LuaJITTeX
   --disable-mp            do not compile and install MetaPost
   --disable-pmp           do not compile and install pMetaPost
@@ -18596,7 +18592,8 @@ fi
 
 # Include additional code for web2c.
 
-## texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
+# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
 # Check whether --with-banner-add was given.
@@ -18769,22 +18766,6 @@ case $enable_luatex in #(
 esac
 
 test "x$enable_web2c:$enable_luatex" = xyes:yes && {
-  need_libpng=yes
-  need_zziplib=yes
-  need_lua52=yes
-}
-# Check whether --enable-luatex53 was given.
-if test "${enable_luatex53+set}" = set; then :
-  enableval=$enable_luatex53;
-fi
-case $enable_luatex53 in #(
-  yes | no) :
-     ;; #(
-  *) :
-    enable_luatex53=yes ;;
-esac
-
-test "x$enable_web2c:$enable_luatex53" = xyes:yes && {
   need_libpng=yes
   need_zziplib=yes
   need_lua53=yes
@@ -18923,7 +18904,7 @@ case $enable_mflua_nowin in #(
 esac
 
 test "x$enable_web2c:$enable_mflua" = xyes:yes && {
-  need_lua52=yes
+  need_lua53=yes
 }
 # Check whether --enable-mfluajit was given.
 if test "${enable_mfluajit+set}" = set; then :
@@ -21339,13 +21320,6 @@ fi
 else
   LUATEX_TRUE='#'
   LUATEX_FALSE=
-fi
- if test "x$enable_luatex53" = xyes; then
-  LUATEX53_TRUE=
-  LUATEX53_FALSE='#'
-else
-  LUATEX53_TRUE='#'
-  LUATEX53_FALSE=
 fi
  if test "x$enable_luajittex" = xyes; then
   LUAJITTEX_TRUE=
@@ -25216,9 +25190,103 @@ esac
 else
   FT2_CONFIG="$ac_cv_prog_FT2_CONFIG"
 fi
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$PKG_CONFIG"; then
+  ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+PKG_CONFIG=$ac_cv_prog_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_PKG_CONFIG"; then
+  ac_ct_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_PKG_CONFIG"; then
+  ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG
+if test -n "$ac_ct_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PKG_CONFIG" >&5
+$as_echo "$ac_ct_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_PKG_CONFIG" = x; then
+    PKG_CONFIG="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_ct_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_prog_PKG_CONFIG"
+fi
 if $FT2_CONFIG --ftversion >/dev/null 2>&1; then
   FREETYPE2_INCLUDES=`$FT2_CONFIG --cflags`
   FREETYPE2_LIBS=`$FT2_CONFIG --libs`
+elif $PKG_CONFIG --libs freetype2 >/dev/null 2>&1; then
+  FREETYPE2_INCLUDES=`$PKG_CONFIG --cflags freetype2`
+  FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2`
 elif test "x$need_freetype2:$with_system_freetype2" = xyes:yes; then
   as_fn_error $? "did not find freetype-config required for system freetype2 library" "$LINENO" 5
 fi
@@ -26514,10 +26582,6 @@ if test -z "${LUATEX_TRUE}" && test -z "${LUATEX_FALSE}"; then
   as_fn_error $? "conditional \"LUATEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${LUATEX53_TRUE}" && test -z "${LUATEX53_FALSE}"; then
-  as_fn_error $? "conditional \"LUATEX53\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${LUAJITTEX_TRUE}" && test -z "${LUAJITTEX_FALSE}"; then
   as_fn_error $? "conditional \"LUAJITTEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/source/texk/web2c/configure.ac b/source/texk/web2c/configure.ac
index 942fd0e5a..79aa8a925 100644
--- a/source/texk/web2c/configure.ac
+++ b/source/texk/web2c/configure.ac
@@ -1,4 +1,4 @@
-dnl $Id: configure.ac 48591 2018-09-05 21:30:41Z lscarso $
+dnl $Id: configure.ac 50260 2019-03-06 13:23:58Z lscarso $
 dnl Process this file with Autoconf to produce a configure script for Web2c.
 dnl
 dnl   Copyright 2018 Karl Berry <tex-live@tug.org>
diff --git a/source/texk/web2c/lib/ChangeLog b/source/texk/web2c/lib/ChangeLog
index ca3bbb0c2..5dd7cd63b 100644
--- a/source/texk/web2c/lib/ChangeLog
+++ b/source/texk/web2c/lib/ChangeLog
@@ -1,3 +1,17 @@
+2019-03-30  Akira Kakuto  <kakuto@w32tex.org>
+
+	* texmfmp.c: Improve to record texmf.cnf. (ptex and friends,
+	and w32 only).
+	* openclose.c: Remove "static" in order to use relevant
+	functions externally. (w32 only).
+
+2019-03-23  Akira Kakuto  <kakuto@w32tex.org>
+
+	* texmfmp.c: On windows, xetex and pdftex did not record
+	texmf.cnf in the case of --recorder because of special
+	initializations. Fix this bug. It is not needed to rebuild
+	in other platforms.
+
 2019-01-01  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
 
 	* printversion.c: Update copyright year.
diff --git a/source/texk/web2c/lib/openclose.c b/source/texk/web2c/lib/openclose.c
index 945c73267..63fa03935 100644
--- a/source/texk/web2c/lib/openclose.c
+++ b/source/texk/web2c/lib/openclose.c
@@ -43,7 +43,7 @@ static int fsyscp_rename(char *s1, char *s2)
   return ret;
 }
 
-static FILE *f_fsyscp_fopen(const char *filename, const char *mode)
+FILE *f_fsyscp_fopen(const char *filename, const char *mode)
 {
   if(!file_system_codepage)
     return fopen(filename, mode);
@@ -51,7 +51,7 @@ static FILE *f_fsyscp_fopen(const char *filename, const char *mode)
   return fsyscp_fopen(filename, mode);
 }
 
-static FILE *f_fsyscp_xfopen(const char *filename, const char *mode)
+FILE *f_fsyscp_xfopen(const char *filename, const char *mode)
 {
   if(!file_system_codepage)
     return xfopen(filename, mode);
diff --git a/source/texk/web2c/lib/texmfmp.c b/source/texk/web2c/lib/texmfmp.c
index c0606272b..64a7d3116 100644
--- a/source/texk/web2c/lib/texmfmp.c
+++ b/source/texk/web2c/lib/texmfmp.c
@@ -738,16 +738,24 @@ maininit (int ac, string *av)
   parse_options (ac, av);
 #endif
 
-#if IS_pTeX
-  /* In pTeX and friends, texmf.cnf is not recorded in the case of --recorder,
-     because parse_options() is executed after the start of kpathsea due to
-     special initializations. Therefore we record texmf.cnf here. */
+#if IS_pTeX || ((defined(XeTeX) || defined(pdfTeX)) && defined(WIN32))
+  /* In pTeX and friends, or in WIN32, texmf.cnf is not recorded in
+     the case of --recorder, because parse_options() is executed
+     after the start of kpathsea due to special initializations.
+     Therefore we record texmf.cnf here. */
   if (recorder_enabled) {
-    string p = kpse_find_file ("texmf.cnf", kpse_cnf_format, 0);
-    if (p)
-      recorder_record_input (p);
+    string *p = kpse_find_file_generic ("texmf.cnf", kpse_cnf_format, 0, 1);
+    if (p && *p) {
+      string *pp = p;
+      while (*p) {
+        recorder_record_input (*p);
+        free (*p);
+        p++;
+      }
+      free (pp);
+    }
   }
-#endif
+#endif /* IS_pTeX || (...) */
 
   /* If -progname was not specified, default to the dump name.  */
   if (!user_progname)
diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h
index 75bbf0254..87a04089a 100644
--- a/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1 +1 @@
-#define luatex_svn_revision 7127
+#define luatex_svn_revision 7131
diff --git a/source/texk/web2c/luatexdir/tex/printing.c b/source/texk/web2c/luatexdir/tex/printing.c
index 6ad4634a1..70bf1fc41 100644
--- a/source/texk/web2c/luatexdir/tex/printing.c
+++ b/source/texk/web2c/luatexdir/tex/printing.c
@@ -416,7 +416,7 @@ void tprint(const char *sss)
 {
     char *buffer = NULL;
     int i = 0;
-    int newlinechar = new_line_char_par;
+    int newlinechar = (lua_only == 1) ? 10 : new_line_char_par;
     int dolog = 0;
     int doterm = 0;
     switch (selector) {
diff --git a/source/texk/web2c/man/ChangeLog b/source/texk/web2c/man/ChangeLog
index 9a54c3166..8b698dc47 100644
--- a/source/texk/web2c/man/ChangeLog
+++ b/source/texk/web2c/man/ChangeLog
@@ -1,3 +1,16 @@
+2019-03-30  Hironobu Yamashita  <h.y.acetaminophen@gmail.com>
+
+	* ppltotf.man, ptftopl.man: new.
+
+2019-03-25  Karl Berry  <karl@freefriends.org>
+
+	* gftodvi.man: omit unused second font letter. From Debian.
+
+2019-03-10  Andreas Scherer  <https://ascherer.github.io>
+
+	* ctwill.man: Fix non-macro '\\PB';
+	add reference to 'Digital Typography' with full example.
+
 2019-02-01  Andreas Scherer  <https://ascherer.github.io>
 
 	* ctwill.man,
diff --git a/source/texk/web2c/man/Makefile.am b/source/texk/web2c/man/Makefile.am
index 0920d8f09..43618281b 100644
--- a/source/texk/web2c/man/Makefile.am
+++ b/source/texk/web2c/man/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am 49666 2019-01-10 23:03:46Z karl $
+## $Id: Makefile.am 50656 2019-03-30 10:13:17Z hironobu $
 ## Makefile.am for the TeX Live subdirectory texk/web2c/man/
 ## Copyright 2018 Karl Berry <tex-live@tug.org>
 ## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org>
@@ -55,8 +55,10 @@ EXTRA_DIST += $(pdftex_man_sources)
 if PTEX
 man_sources += ptex.man
 man1_links += ptex:eptex ptex:euptex ptex:uptex
+man_sources += ppltotf.man ptftopl.man
+man1_links += ppltotf:uppltotf ptftopl:uptftopl
 endif PTEX
-EXTRA_DIST += ptex.man
+EXTRA_DIST += ptex.man ppltotf.man ptftopl.man
 
 if LUATEX
 man_sources += luatex.man
diff --git a/source/texk/web2c/man/Makefile.in b/source/texk/web2c/man/Makefile.in
index a77f48ae4..9505be777 100644
--- a/source/texk/web2c/man/Makefile.in
+++ b/source/texk/web2c/man/Makefile.in
@@ -97,8 +97,9 @@ host_triplet = @host@
 @ETEX_TRUE@am__append_8 = etex.man
 @PDFTEX_TRUE@am__append_9 = $(pdftex_man_sources)
 @PDFTEX_TRUE@am__append_10 = pdftex:pdflatex
-@PTEX_TRUE@am__append_11 = ptex.man
-@PTEX_TRUE@am__append_12 = ptex:eptex ptex:euptex ptex:uptex
+@PTEX_TRUE@am__append_11 = ptex.man ppltotf.man ptftopl.man
+@PTEX_TRUE@am__append_12 = ptex:eptex ptex:euptex ptex:uptex \
+@PTEX_TRUE@	ppltotf:uppltotf ptftopl:uptftopl
 @LUATEX_TRUE@am__append_13 = luatex.man
 @LUATEX_TRUE@am__append_14 = luatex:texlua luatex:texluac
 @XETEX_TRUE@am__append_15 = xetex.man
@@ -446,8 +447,8 @@ man_sources = $(bootstrap_man_sources) $(am__append_1) $(am__append_2) \
 	$(misc_man_sources)
 EXTRA_DIST = $(bootstrap_man_sources) $(web_man_sources) tex.man \
 	mf.man mpost.man etex.man $(pdftex_man_sources) ptex.man \
-	luatex.man xetex.man $(otangle_man_sources) aleph.man \
-	$(misc_man_sources) spell.add
+	ppltotf.man ptftopl.man luatex.man xetex.man \
+	$(otangle_man_sources) aleph.man $(misc_man_sources) spell.add
 bootstrap_man_sources = ctie.man cweb.man ctwill.man tangle.man tie.man
 
 # Symlinks within $(man1dir): FILE:LINK indicates LINK.1->FILE.1
diff --git a/source/texk/web2c/man/ctwill.man b/source/texk/web2c/man/ctwill.man
index d22ecfb9a..55dd8e203 100644
--- a/source/texk/web2c/man/ctwill.man
+++ b/source/texk/web2c/man/ctwill.man
@@ -1,6 +1,6 @@
-.\" Automatically generated by Pandoc 2.6
+.\" Automatically generated by Pandoc 2.7
 .\"
-.TH "CTWILL" "1" "January 27, 2019" "Web2c @VERSION@" "General Commands Manual"
+.TH "CTWILL" "1" "March 10, 2019" "Web2c @VERSION@" "General Commands Manual"
 .hy
 .SH NAME
 .PP
@@ -101,6 +101,9 @@ you can check that your specifications are correct.
 More details how to use \f[B]ctwill\f[R] can be found in the first
 sections of its source code, respectively the change file
 \f[B]cweav-twill.ch\f[R] applicable to the \f[B]cweave.w\f[R] source.
+A complete example with all bells and whistles is described in
+\f[B]Mini-Indexes for Literate Programs\f[R], pages 225\[en]245 of
+Knuth\[cq]s \f[B]Digital Typography\f[R].
 .SH DIFFERENCES TO ORIGINAL CTWILL
 .PP
 The present incarnation of \f[B]ctwill\f[R] and its utilities tries hard
@@ -150,7 +153,7 @@ leave out the \f[B]happy message\f[R] (\f[B]-h\f[R]).
 \f[B]+v\f[R]/\f[B]-v\f[R]: shortcut for \f[B]+bhp\f[R]; also
 \f[B]--verbose\f[R]
 .IP \[bu] 2
-\f[B]-e\f[R]: do not enclose C/C++\ material in \f[B]\f[R]
+\f[B]-e\f[R]: do not enclose C/C++\ material in \f[B]\[rs]PB{\&...}\f[R]
 .IP \[bu] 2
 \f[B]-f\f[R]: do not force a newline after every C/C++\ statement in
 output
@@ -221,6 +224,8 @@ Silvio Levy (hardcopy version of \f[B]cwebman.tex\f[R] and the source
 code listings of \f[B]common.w\f[R], \f[B]ctangle.w\f[R], and
 \f[B]cweave.w\f[R]).
 .IP \[bu] 2
+Digital Typography: by D.\ E.\ Knuth.
+.IP \[bu] 2
 Literate Programming: by D.\ E.\ Knuth.
 .IP \[bu] 2
 Weaving a Program: by Wayne Sewell.
diff --git a/source/texk/web2c/man/cweb.man b/source/texk/web2c/man/cweb.man
index e3ff32f31..09d7f191d 100644
--- a/source/texk/web2c/man/cweb.man
+++ b/source/texk/web2c/man/cweb.man
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pandoc 2.6
+.\" Automatically generated by Pandoc 2.7
 .\"
 .TH "CWEB" "1" "January 27, 2019" "Web2c @VERSION@" "General Commands Manual"
 .hy
diff --git a/source/texk/web2c/man/gftodvi.man b/source/texk/web2c/man/gftodvi.man
index ea952df44..656ee1b2a 100644
--- a/source/texk/web2c/man/gftodvi.man
+++ b/source/texk/web2c/man/gftodvi.man
@@ -1,4 +1,4 @@
-.TH GFTODVI 1 "16 June 2015" "Web2C @VERSION@"
+.TH GFTODVI 1 "25 March 2019" "Web2C @VERSION@"
 .\"=====================================================================
 .if n .ds MF Metafont
 .if t .ds MF Metafont
@@ -60,7 +60,7 @@ and
 respectively; there is no default slant font.
 .PP
 To change the default fonts, you can give
-.BR special
+.B special
 commands in your
 \*(MF source file, or you can change the fonts online. An online dialog
 ensues if you end the
diff --git a/source/texk/web2c/mfluadir/mflua_version.h b/source/texk/web2c/mfluadir/mflua_version.h
index 7e5ddb329..800714bc5 100644
--- a/source/texk/web2c/mfluadir/mflua_version.h
+++ b/source/texk/web2c/mfluadir/mflua_version.h
@@ -1 +1,2 @@
-#define MFLUA_VERSION "0.9"
+#define MFLUA_VERSION "0.9.1"
+#define BANNER "This is MFLua, Version 2.7182818-" MFLUA_VERSION
\ No newline at end of file
diff --git a/source/texk/web2c/uptexdir/uptex_version.h b/source/texk/web2c/uptexdir/uptex_version.h
index 669df3fda..62752c3fd 100644
--- a/source/texk/web2c/uptexdir/uptex_version.h
+++ b/source/texk/web2c/uptexdir/uptex_version.h
@@ -1 +1 @@
-#define UPTEX_VERSION "u1.23"
+#define UPTEX_VERSION "u1.24"
diff --git a/source/utils/README b/source/utils/README
index c9ed16833..0611350c2 100644
--- a/source/utils/README
+++ b/source/utils/README
@@ -1,10 +1,10 @@
-$Id: README 49658 2019-01-10 18:49:48Z karl $
+$Id: README 50715 2019-04-02 22:05:50Z karl $
 Public domain.  Originally written 2005 by Karl Berry.
 
 Extra utilities we (optionally) compile for TeX Live.
 See comments in ../texk/README.
 
-asymptote 2.47 - checked 10jan19
+asymptote 2.49 - checked 3apr19
   update to TL from CTAN, to include prebuilt doc.
   see http://tug.org/texlive/build.html#asymptote
   and tlpkg/bin/tl-update-asy
diff --git a/source/utils/configure b/source/utils/configure
index 00e941fd1..708a4fae1 100755
--- a/source/utils/configure
+++ b/source/utils/configure
@@ -716,7 +716,6 @@ enable_aleph
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
-enable_luatex53
 enable_luajittex
 enable_mp
 enable_pmp
@@ -1417,7 +1416,6 @@ Optional Features:
   --disable-pdftex          do not compile and install pdfTeX
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
-  --disable-luatex53        do not compile and install LuaTeX53
   --disable-luajittex       do not compile and install LuaJITTeX
   --disable-mp              do not compile and install MetaPost
   --disable-pmp             do not compile and install pMetaPost
@@ -3186,7 +3184,8 @@ test "x$enable_web2c" = xno || {
   need_zlib=yes
 }
 
-## texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
+# $Id: web2c.ac 50341 2019-03-11 22:04:24Z karl $
+# texk/web2c/ac/web2c.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/
 ## configure options for TeX and MF
 
 # Check whether --with-banner-add was given.
@@ -3359,22 +3358,6 @@ case $enable_luatex in #(
 esac
 
 test "x$enable_web2c:$enable_luatex" = xyes:yes && {
-  need_libpng=yes
-  need_zziplib=yes
-  need_lua52=yes
-}
-# Check whether --enable-luatex53 was given.
-if test "${enable_luatex53+set}" = set; then :
-  enableval=$enable_luatex53;
-fi
-case $enable_luatex53 in #(
-  yes | no) :
-     ;; #(
-  *) :
-    enable_luatex53=yes ;;
-esac
-
-test "x$enable_web2c:$enable_luatex53" = xyes:yes && {
   need_libpng=yes
   need_zziplib=yes
   need_lua53=yes
@@ -3513,7 +3496,7 @@ case $enable_mflua_nowin in #(
 esac
 
 test "x$enable_web2c:$enable_mflua" = xyes:yes && {
-  need_lua52=yes
+  need_lua53=yes
 }
 # Check whether --enable-mfluajit was given.
 if test "${enable_mfluajit+set}" = set; then :
-- 
GitLab