diff --git a/source/README b/source/README
index 6552bd172631e307ad94f99cf0c3c14da3e8b3cb..9c904e5caf30e4b002ceed75f310eae13ced19bb 100644
--- a/source/README
+++ b/source/README
@@ -1,4 +1,4 @@
-$Id: README 46228 2018-01-05 23:02:24Z karl $
+$Id: README 46966 2018-03-14 23:01:23Z karl $
 Public domain.  Originally written 2005 by Karl Berry.
 
 For a high-level overview of building TeX Live, see
@@ -29,14 +29,14 @@ Build information for some of the platforms.
 aarch64-linux:
   aarch64 Debian GNU/Linux 9 (stretch)
   gcc (Debian 6.3.0-18) 6.3.0 20170516
-  ./Build --enable-xindy --without-x --enable-arm-neon=check
-    with the libpng-1.6.34 source directory copied over from SVN -r45971
-    (where it has been reconfigured to expose --enable-arm-neon)
+  ./Build --enable-arm-neon=check
 
 amd64-netbsd:
   gcc version 4.5.3 (NetBSD nb2 20110806)
   NetBSD/amd64 6.1.3
-  TL_MAKE=gmake LDFLAGS='-L/usr/X11R7/lib -Wl,-rpath,/usr/X11R7/lib' ./Build
+  TL_MAKE=gmake CC=gcc CXX=g++ CFLAGS=-D_NETBSD_SOURCE \
+  LDFLAGS='-L/usr/X11R7/lib -Wl,-rpath,/usr/X11R7/lib' \
+  ./Build --enable-xindy CLISP=/usr/local/bin/clisp
   
 i386-freebsd, amd64-freebsd:
   --disable-dvisvgm; upmendex for i386 built with -DU_IS_BIG_ENDIAN=0.
@@ -75,4 +75,10 @@ x86_64-darwinlegacy, i386-darwin, powerpc-darwin:
     but will only be used for < 10.10 since x86_64-darwin covers newer.
   PPC binaries made with gcc-4.2 and Intel binaries with clang-3.7.
 
-x86_64-linux: Debian 6.0 (Squeeze), Feb 2009.
+x86_64-linux: Debian 8.0 (Jessie), Apr 2015.
+
+x86_64-linuxmusl:
+  Alpine 3.1 Docker image with musl libc 1.1.5
+  Binaries are taken from the CI testing on travis-ci, see the
+  source/.travis.yaml file for details on how to build.
+
diff --git a/source/build-aux/ar-lib b/source/build-aux/ar-lib
index 245e6f32feb277abad34a4f122b7f196e407bfc1..0baa4f607608a8e07a0e2be8ae0735791a9b1a68 100755
--- a/source/build-aux/ar-lib
+++ b/source/build-aux/ar-lib
@@ -4,7 +4,7 @@
 me=ar-lib
 scriptversion=2012-03-01.08; # UTC
 
-# Copyright (C) 2010-2017 Free Software Foundation, Inc.
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
 # Written by Peter Rosin <peda@lysator.liu.se>.
 #
 # This program is free software; you can redistribute it and/or modify
diff --git a/source/build-aux/compile b/source/build-aux/compile
index 0bb9d0f53abe465ae27679ef9d40ddbff6d0aea6..99e50524b3bade179355469777b4d664bcd5c964 100644
--- a/source/build-aux/compile
+++ b/source/build-aux/compile
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2017-09-16.17; # UTC
+scriptversion=2018-03-07.03; # UTC
 
 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
@@ -340,7 +340,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/build-aux/config.guess b/source/build-aux/config.guess
index f50dcdb6de2af0a2e33f44704da3ec1286e5f291..256083a70d35921d544b15f4f51749af89d18b89 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-2018 Free Software Foundation, Inc.
 
-timestamp='2018-02-24'
+timestamp='2018-03-08'
 
 # 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
@@ -1046,11 +1046,7 @@ EOF
 	echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
 	exit ;;
     x86_64:Linux:*:*)
-	if objdump -f /bin/sh | grep -q elf32-x86-64; then
-	    echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32
-	else
-	    echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
-	fi
+	echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
 	exit ;;
     xtensa*:Linux:*:*)
 	echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@@ -1473,7 +1469,7 @@ EOF
 exit 1
 
 # Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
diff --git a/source/build-aux/config.sub b/source/build-aux/config.sub
index 1d8e98bcee23a0421e4fafe9a6c9ac75180cff25..9ccf09a7a335ff98c87c5533fc30e2e051deb759 100755
--- a/source/build-aux/config.sub
+++ b/source/build-aux/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-02-22'
+timestamp='2018-03-08'
 
 # 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
@@ -1376,7 +1376,7 @@ case $os in
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \
 	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
@@ -1794,7 +1794,7 @@ echo "$basic_machine$os"
 exit
 
 # Local variables:
-# eval: (add-hook 'write-file-functions 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
diff --git a/source/build-aux/depcomp b/source/build-aux/depcomp
index 49eb4bff6e0e5359969b29b81209d90d84eb13dc..65cbf7093a1e4c4a2da08ac8dcd725f8376c344c 100755
--- a/source/build-aux/depcomp
+++ b/source/build-aux/depcomp
@@ -1,7 +1,7 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2017-09-16.17; # UTC
+scriptversion=2018-03-07.03; # UTC
 
 # Copyright (C) 1999-2018 Free Software Foundation, Inc.
 
@@ -783,7 +783,7 @@ exit 0
 # 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/install-sh b/source/build-aux/install-sh
index ac159ceda40d78bbd6606879377a1c7ca7adad1c..8175c640fe6288a75cc846567ea5506086f326f4 100755
--- a/source/build-aux/install-sh
+++ b/source/build-aux/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2017-09-23.17; # UTC
+scriptversion=2018-03-11.20; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -332,34 +332,43 @@ do
             # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
             ;;
           *)
+            # Note that $RANDOM variable is not portable (e.g. dash);  Use it
+            # here however when possible just to lower collision chance.
             tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
 
+            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            # Because "mkdir -p" follows existing symlinks and we likely work
+            # directly in world-writeable /tmp, make sure that the '$tmpdir'
+            # directory is successfully created first before we actually test
+            # 'mkdir -p' feature.
             if (umask $mkdir_umask &&
-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+                $mkdirprog $mkdir_mode "$tmpdir" &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
             then
               if test -z "$dir_arg" || {
                    # Check for POSIX incompatibilities with -m.
                    # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
                    # other-writable bit of parent directory when it shouldn't.
                    # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                   test_tmpdir="$tmpdir/a"
+                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
                    case $ls_ld_tmpdir in
                      d????-?r-*) different_mode=700;;
                      d????-?--*) different_mode=755;;
                      *) false;;
                    esac &&
-                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
                      test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
                    }
                  }
               then posix_mkdir=:
               fi
-              rmdir "$tmpdir/d" "$tmpdir"
+              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
             else
               # Remove any dirs left behind by ancient mkdir implementations.
-              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
             fi
             trap '' 0;;
         esac;;
@@ -501,7 +510,7 @@ do
 done
 
 # 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/texinfo.tex b/source/build-aux/texinfo.tex
index 0af2f09b5270e1b6559eb38b1446a2ed99af8e7c..aa4f256437e2e08a4f7ce6800c4ddceccf26290d 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{2018-02-24.16}
+\def\texinfoversion{2018-03-10.14}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -11715,7 +11715,7 @@ directory should work if nowhere else does.}
 @markupsetuprqdefault
 
 @c Local variables:
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
+@c eval: (add-hook 'before-save-hook 'time-stamp)
 @c page-delimiter: "^\\\\message\\|emacs-page"
 @c time-stamp-start: "def\\\\texinfoversion{"
 @c time-stamp-format: "%:y-%02m-%02d.%02H"
diff --git a/source/doc/tlbuild.info b/source/doc/tlbuild.info
index 17c2eb65d78c5104b8489214fa84ae35878d102f..786881058df28c63528ad48983de8231cc08cd90 100644
--- a/source/doc/tlbuild.info
+++ b/source/doc/tlbuild.info
@@ -1,4 +1,4 @@
-This is tlbuild.info, produced by makeinfo version 6.4 from
+This is tlbuild.info, produced by makeinfo version 6.5 from
 tlbuild.texi.
 
 This file documents the TeX Live build system and more.
diff --git a/source/libs/README b/source/libs/README
index de847a7c53ff8854375b243872bfc29462140841..3b40dd21cc93fe70cdeb7e6ef2073c3ba7a7d69c 100644
--- a/source/libs/README
+++ b/source/libs/README
@@ -1,4 +1,4 @@
-$Id: README 46585 2018-02-10 06:43:26Z kakuto $
+$Id: README 46877 2018-03-07 22:32:14Z kakuto $
 Public domain.  Originally created by Karl Berry, 2005.
 
 Libraries we compile for TeX Live.
@@ -21,10 +21,10 @@ gd 2.2.5 - checked 30aug17
 gmp 6.1.2 - checked 16dec16
   http://ftp.gnu.org/gnu/gmp/
 
-graphite2 1.3.10 - checked 20jun17
+graphite2 1.3.11 - checked 05mar18
   http://sourceforge.net/projects/silgraphite/files/graphite2/
 
-harfbuzz 1.7.5 - checked 31jan18
+harfbuzz 1.7.6 - checked 07mar18
   http://www.freedesktop.org/software/harfbuzz/release/
 
 icu 60.2 - checked 11jan18
diff --git a/source/libs/poppler/ChangeLog b/source/libs/poppler/ChangeLog
index afe783aeab5a0e6de29ee5aefb6751b44321046d..f972855b6d9e371cc4801418ff598d2afb514be5 100644
--- a/source/libs/poppler/ChangeLog
+++ b/source/libs/poppler/ChangeLog
@@ -1,3 +1,10 @@
+2018-03-14  Luigi Scarso  <luigi.scarso@gmail.com>
+
+	* configure.ac (HAVE_DCT_DECODER, HAVE_JPX_DECODER): hardwire to 1,
+	instead of requiring --enable.
+	Original report from Jose Manuel,
+	http://tug.org/pipermail/tex-live/2018-March/041158.html
+
 2018-01-08  Karl Berry  <karl@freefriends.org>
 
 	Import poppler-0.62.0.
diff --git a/source/texk/README b/source/texk/README
index e72520fe9f1ccbbc53f0abc0d4c8bf9cde5521fb..8dce7398b1f10b388628af6086df6a8b798e5945 100644
--- a/source/texk/README
+++ b/source/texk/README
@@ -1,4 +1,4 @@
-$Id: README 46714 2018-02-22 22:32:26Z kakuto $
+$Id: README 46939 2018-03-12 23:07:15Z kakuto $
 Copyright 2006-2018 TeX Users Group.
 You may freely use, modify and/or distribute this file.
 
@@ -62,8 +62,8 @@ dvipsk - maintained here, by us
 dvisvgm 2.3.3 - checked 21feb18
   http://dvisvgm.bplaced.net/Downloads
 
-gregorio 5.0.1 - checked 16apr17
-  https://github.com/gregorio-project/gregorio/releases/
+gregorio 5.1.0 - checked 12mar18
+  CTAN/support/gregoriotex/gregorio-5.1.0.zip
 
 gsftopk - from Paul Vojta's xdvi?
 
diff --git a/source/texk/kpathsea/ChangeLog b/source/texk/kpathsea/ChangeLog
index 01547b41e497f6d5afc886b8f6514605d7fa47ad..363bf0ee4f474c82f95a453d97813e59eb2a3d87 100644
--- a/source/texk/kpathsea/ChangeLog
+++ b/source/texk/kpathsea/ChangeLog
@@ -1,3 +1,9 @@
+2018-03-14  Karl Berry  <karl@tug.org>
+
+	* tex-glyph.c (kpathsea_find_glyph, try_size): disentangle
+	successful searches and filling in return information.
+	Private report from Doug McKenna, 14 Mar 2018 11:51:29.
+
 2018-02-26  Karl Berry  <karl@freefriends.org>
 
 	* texmf.cnf (TEXMFVAR, TEXMFCONFIG, doc): 2018.
diff --git a/source/texk/kpathsea/tex-glyph.c b/source/texk/kpathsea/tex-glyph.c
index c98a17edf47852349162e9b215d9fb7764a2864f..9af2aabfce07f53aec9c93ea831582ccdc8a41cb 100644
--- a/source/texk/kpathsea/tex-glyph.c
+++ b/source/texk/kpathsea/tex-glyph.c
@@ -101,18 +101,18 @@ try_size (kpathsea kpse, const_string fontname,  unsigned dpi,
   ret = try_pk ? try_format (kpse, kpse_pk_format) : NULL;
   format_found = kpse_pk_format;
 
-  if (ret == NULL && try_gf)
-    {
-      ret = try_format (kpse, kpse_gf_format);
-      format_found = kpse_gf_format;
-    }
+  if (ret == NULL && try_gf) {
+    ret = try_format (kpse, kpse_gf_format);
+    format_found = kpse_gf_format;
+  }
 
-  if (ret != NULL && glyph_file)
-    { /* Success.  Fill in the return info.  */
+  if (ret != NULL) {  /* Success.  */
+    if (glyph_file) { /* Fill in the return info.  */
       glyph_file->name = fontname;
       glyph_file->dpi = dpi;
       glyph_file->format = format_found;
     }
+  }
 
   return ret;
 }
@@ -290,15 +290,16 @@ kpathsea_find_glyph (kpathsea kpse,
     /* If mktex... succeeded, set return struct.  Doesn't make sense for
        `kpse_make_tex' to set it, since it can only succeed or fail,
        unlike the other routines.  */
-    if (ret && glyph_file) {
-      KPSE_GLYPH_FILE_DPI (*glyph_file) = dpi;
-      KPSE_GLYPH_FILE_NAME (*glyph_file) = fontname;
-    }
+    if (ret) {
+      if (glyph_file) {
+        KPSE_GLYPH_FILE_DPI (*glyph_file) = dpi;
+        KPSE_GLYPH_FILE_NAME (*glyph_file) = fontname;
+      }
 
     /* If mktex... failed, try any fallback resolutions.  */
-    else {
+    } else {
       if (kpse->fallback_resolutions)
-        ret = try_fallback_resolutions (kpse, fontname, dpi, format, glyph_file);
+        ret = try_fallback_resolutions (kpse, fontname, dpi,format,glyph_file);
 
       /* We're down to the font of last resort.  */
       if (!ret && kpse->fallback_font) {
diff --git a/source/texk/texlive/linked_scripts/Makefile.am b/source/texk/texlive/linked_scripts/Makefile.am
index 2ababe9d2cae6a2331193ae8d1fad6db199eedc2..fc690d65b944981a546d3d7e1636d1ad6838c4da 100644
--- a/source/texk/texlive/linked_scripts/Makefile.am
+++ b/source/texk/texlive/linked_scripts/Makefile.am
@@ -133,6 +133,7 @@ texmf_other_scripts = \
 	kotex-utils/jamo-normalize.pl \
 	kotex-utils/komkindex.pl \
 	kotex-utils/ttf2kotexfont.pl \
+	l3build/l3build.lua \
 	latex-git-log/latex-git-log \
 	latex-papersize/latex-papersize.py \
 	latex2man/latex2man \
@@ -206,6 +207,8 @@ texmf_other_scripts = \
 	texliveonfly/texliveonfly.py \
 	texloganalyser/texloganalyser \
 	thumbpdf/thumbpdf.pl \
+	tlcockpit/tlcockpit.sh \
+	tlshell/tlshell.tcl \
 	ulqda/ulqda.pl \
 	urlbst/urlbst \
 	vpe/vpe.pl \
@@ -230,9 +233,9 @@ nobase_dist_texmf_scripts_SCRIPTS = \
 
 ## Symlinks within $(bindir): FILE:LINK here means "ln -s FILE LINK" is done.
 bin_links = \
-	texdef:latexdef \
 	epstopdf:repstopdf \
-	pdfcrop:rpdfcrop
+	pdfcrop:rpdfcrop \
+	texdef:latexdef
 
 # The idea is to install the scripts themselves in texmf*/scripts, and
 # have bin/arch/foo be a symlink to, say,
diff --git a/source/texk/texlive/linked_scripts/Makefile.in b/source/texk/texlive/linked_scripts/Makefile.in
index e1b728cc6b2520e553f4d6965c836fe5ae9a4de3..d7fada8bc7078759d0ca6bf81345b6c063c4bbde 100644
--- a/source/texk/texlive/linked_scripts/Makefile.in
+++ b/source/texk/texlive/linked_scripts/Makefile.in
@@ -347,6 +347,7 @@ texmf_other_scripts = \
 	kotex-utils/jamo-normalize.pl \
 	kotex-utils/komkindex.pl \
 	kotex-utils/ttf2kotexfont.pl \
+	l3build/l3build.lua \
 	latex-git-log/latex-git-log \
 	latex-papersize/latex-papersize.py \
 	latex2man/latex2man \
@@ -420,6 +421,8 @@ texmf_other_scripts = \
 	texliveonfly/texliveonfly.py \
 	texloganalyser/texloganalyser \
 	thumbpdf/thumbpdf.pl \
+	tlcockpit/tlcockpit.sh \
+	tlshell/tlshell.tcl \
 	ulqda/ulqda.pl \
 	urlbst/urlbst \
 	vpe/vpe.pl \
@@ -440,9 +443,9 @@ nobase_dist_texmf_scripts_SCRIPTS = \
 	$(texmf_context_scripts)
 
 bin_links = \
-	texdef:latexdef \
 	epstopdf:repstopdf \
-	pdfcrop:rpdfcrop
+	pdfcrop:rpdfcrop \
+	texdef:latexdef
 
 relpath = $(SHELL) $(top_srcdir)/../../build-aux/relpath
 runscript = $(top_srcdir)/$(WIN_WRAPPER)/runscript.exe
diff --git a/source/texk/texlive/w32_wrapper/runscript.tlu b/source/texk/texlive/w32_wrapper/runscript.tlu
index 6cf4a3e99364bc3f3543b904a5a475dd5ed1416a..983e00818444cdd552e33dd1bccc67af45925126 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: 46031 $", "%d+") or "0"
-local svndate     = string.match("$Date: 2017-12-10 14:35:30 +0100 (Sun, 10 Dec 2017) $", "[-%d]+") or "2009-12-04"
+local svnrevision = string.match("$Revision: 46914 $", "%d+") or "0"
+local svndate     = string.match("$Date: 2018-03-10 04:48:22 +0100 (Sat, 10 Mar 2018) $", "[-%d]+") or "2009-12-04"
 local bannerstr   = "runscript wrapper utility (rev. " ..
                     svnrevision .. ", " .. svndate .. ")\n" .. 
                     "usage:   runscript script-name [arguments]\n" ..
@@ -683,9 +683,11 @@ end
 -- general case
 
 if not ARGV then
+  os.setenv('TEXMF', TEXMFDIST)
   local extlist = '.tlu;.texlua;.lua;.pl;.rb;.py;.tcl;.jar;.vbs;.js;.bat;.cmd;\0'
   local progfullname = search_path(progname, BINDIR, '.tlu;.bat;.cmd') or
                        assert(find_texmfscript(progname, extlist))
+  os.setenv('TEXMF', nil)
   local ext = string.match(string.lower(progfullname), '%.[^\\/.]*$') or ''
   if (ext == '.lua') or (ext == '.tlu') or (ext == '.texlua') then -- lua script
     arg[0] = progfullname
diff --git a/source/texk/web2c/doc/web2c.info b/source/texk/web2c/doc/web2c.info
index 08bce4338faba783ce43a08cabab0513e2552063..a8c61bf1d0561e49c81509dcc1fe10ba7dafb7be 100644
--- a/source/texk/web2c/doc/web2c.info
+++ b/source/texk/web2c/doc/web2c.info
@@ -1,4 +1,4 @@
-This is web2c.info, produced by makeinfo version 6.4 from web2c.texi.
+This is web2c.info, produced by makeinfo version 6.5 from web2c.texi.
 
 This file documents the installation and use of the programs in Web2c,
 an implementation of Donald Knuth's TeX system.
diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h
index d724d59dba6ef716cf15eb005a84bdca542ac227..74887da0f2acc241aff82d4509a9e562e5f14289 100644
--- a/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1 +1 @@
-#define luatex_svn_revision 6647
+#define luatex_svn_revision 6654
diff --git a/source/utils/ChangeLog b/source/utils/ChangeLog
index d4bd499a1aac3f9ae967e5bb65b1e3096c6b188f..7e9a80ecef7e635074c6c7a049205f6ee6f7f885 100644
--- a/source/utils/ChangeLog
+++ b/source/utils/ChangeLog
@@ -1,3 +1,8 @@
+2018-03-15  Karl Berry  <karl@tug.org>
+
+	* README: best guess is that xindy's use of clisp does not need
+	ffcall (with current clisp beta release).
+
 2018-02-09  Karl Berry  <karl@freefriends.org>
 
 	* axodraw2: new utility: package axodraw2, executable axohelp.
diff --git a/source/utils/README b/source/utils/README
index b34f13490862aa568aeddb0ed9f538067a101787..66b79e2c3fad93e68812f7f2aee5e2331cabb9f4 100644
--- a/source/utils/README
+++ b/source/utils/README
@@ -1,4 +1,4 @@
-$Id: README 46780 2018-03-02 00:31:26Z preining $
+$Id: README 46965 2018-03-14 23:00:36Z karl $
 Public domain.  Originally written 2005 by Karl Berry.
 
 Extra utilities we (optionally) compile for TeX Live.
@@ -81,14 +81,6 @@ ln -s . $clisp_toolsdir/lib/64  # for Solaris 64-bit
 # if you can't build libsigsegv, pass --ignore-absence-of-libsigsegv
 # when running configure for clisp.
 
-ffcall_ver=libffcall-2.1
-cd $clisp_basedir
-$wget https://ftp.gnu.org/gnu/libffcall/$ffcall_ver.tar.gz
-gzip -dc $ffcall_ver.tar.gz | tar xf -
-cd $ffcall_ver
-./configure -C --prefix=$clisp_toolsdir --disable-shared --enable-static \
-&& make && make check && make install
-
 # may be able to omit iconv if have new enough in libc or elsewhere.
 libiconv_ver=libiconv-1.15
 cd $clisp_basedir
@@ -121,11 +113,9 @@ cd $clisp_ver
   --without-readline --without-dynamic-modules --without-termcap-ncurses \
   --disable-nls \
   --with-libsigsegv-prefix=$clisp_toolsdir \
-  --with-libffcall-prefix=$clisp_toolsdir \
   --with-libiconv-prefix=$clisp_toolsdir \
   $clisp_builddir \
 && (cd $clisp_builddir && make)
 
 There may be clisp test failures relating to sockets on some
 systems. Since xindy doesn't use sockets, we can ignore those for TL.
-