[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[texlive-bin] 01/07: Imported Upstream version 2016.20160507.40923



This is an automated email from the git hooks/post-receive script.

preining pushed a commit to branch experimental
in repository texlive-bin.

commit 278de69b1d1985ccec14cbe7a9dc253e82379663
Author: Norbert Preining <preining@debian.org>
Date:   Sat May 7 08:33:18 2016 +0900

    Imported Upstream version 2016.20160507.40923
---
 doc/README.solaris                                 | 132 ++++++++++++++++++++-
 texk/dvipdfm-x/ChangeLog                           |   5 +
 texk/dvipdfm-x/pdfdoc.c                            |   4 +-
 texk/dvipdfm-x/pdfencrypt.c                        |   4 +-
 texk/dvipdfm-x/pdffont.c                           |   8 +-
 texk/dvipdfm-x/pdfobj.h                            |   1 +
 texk/dvipdfm-x/xbb.c                               |   2 +-
 texk/dvipsk/ChangeLog                              |   9 ++
 texk/dvipsk/output.c                               |  42 ++++++-
 .../linked_scripts/luaotfload/luaotfload-tool.lua  |  95 ++++++++-------
 texk/texlive/linked_scripts/texlive/tlmgr.pl       |  24 ++--
 texk/web2c/ChangeLog                               |   4 +
 texk/web2c/lib/ChangeLog                           |  18 +++
 texk/web2c/lib/texmfmp.c                           |  86 ++++++++++----
 texk/web2c/luatexdir/tex/extensions.w              |   2 +-
 texk/web2c/man/pdftex.man                          |  72 ++++++-----
 texk/web2c/pdftexdir/NEWS                          |  10 +-
 texk/web2c/pdftexdir/README                        |  18 +--
 texk/web2c/texmfmp-help.h                          |   4 +-
 utils/devnag/NEWS                                  |   0
 utils/devnag/README                                |  20 ----
 utils/devnag/src/devnag.c                          |  14 ++-
 utils/devnag/tests/captions.tex                    |   2 +-
 utils/devnag/tests/examples.tex                    |   2 +-
 utils/devnag/tests/misspaal.tex                    |   2 +-
 utils/devnag/tests/vedasample.tex                  |   2 +-
 26 files changed, 412 insertions(+), 170 deletions(-)

diff --git a/doc/README.solaris b/doc/README.solaris
index 713be51..9a96a20 100644
--- a/doc/README.solaris
+++ b/doc/README.solaris
@@ -2,9 +2,6 @@
 
 Compiling TeX binaries on Solaris
 
-(The document describes the procedures used on Sparc Solaris binaries,
-but the same rules should apply to i386 and x86_64 as well.)
-
 Solaris 9 has been out of official support for a while and making
 software compile on that platform is challenging, so it hardly makes any
 sense to try to support it.
@@ -41,6 +38,14 @@ You can check the libc version with
         SUNW_0.8;
         SUNW_0.7;
 
+Building for 64-bit
+===================
+
+All binaries have been compiled with gcc-5.2.
+The only thing that is needed to build for 64-bit is to define
+    export CC="/path/to/gcc-5.2 -m64"
+    export CXX="/path/to/g++-5.2 -m64"
+
 Building wget
 =============
 
@@ -71,6 +76,9 @@ The binary was built with gcc 5.2.
 The definition '#define _XOPEN_SOURCE 500' has been removed from 'src/sysdep.h'
 to avoid compile error due to the fact that GCC 5 switched to -std=99. 
 
+On i386 and x86_64 one has to manually add "-lsocket -lnsl" to the last linker command.
+This should be reported upstream.
+
 > pvs Master/tlpkg/installer/wget/wget.sparc-solaris
     libsocket.so.1 (SUNW_1.4);
     libnsl.so.1 (SUNW_1.7);
@@ -108,6 +116,67 @@ libc.so - SUNW_1.22 SUNWprivate_1.1 $ADDVERS=SUNW_1.22;
 If users need binaries to run on even older systems, we can target what
 is desired by changing the map file.
 
+Building asymptote
+==================
+
+Asymptote has been built with the following flags:
+
+export CC=/opt/csw/bin/gcc-5.2
+export CXX=/opt/csw/bin/g++-5.2
+./configure --prefix=/tmp/asyinst --enable-texlive-build \
+    --disable-fftw --disable-offscreen \
+    --disable-gl --disable-gsl --disable-readline
+
+Even though GL, GSL and readline should generally not be disabled,
+the resulting binaries would not be portable enough otherwise.
+
+Because a newer gcc compiler was used we had to link statically against stdlib.
+In the last command that builds the asy binary the following part:
+    -lnsl -lrt -lz -lm gc-7.4.2/.libs/libgc.a
+was replaced by:
+    gc-7.4.2/.libs/libgc.a -nodefaultlibs -Wl,-Bstatic -lstdc++ \
+    -Wl,-Bdynamic -lnsl -lrt -lz -lm -lgcc_eh -lgcc -lc
+
+The resulting binary depends on:
+
+> pvs asy
+    libnsl.so.1 (SUNW_0.7);
+    librt.so.1 (SUNW_1.2);
+    libm.so.2 (SUNW_1.2);
+    libc.so.1 (SUNW_1.22, SUNWprivate_1.1);
+> ldd asy
+    libnsl.so.1 =>   /lib/libnsl.so.1
+    librt.so.1 =>    /lib/librt.so.1
+    libz.so.1 =>     /usr/lib/libz.so.1
+    libm.so.2 =>     /lib/libm.so.2
+    libc.so.1 =>     /lib/libc.so.1
+    libmp.so.2 =>    /lib/libmp.so.2
+    libmd.so.1 =>    /lib/libmd.so.1
+    libscf.so.1 =>   /lib/libscf.so.1
+    libaio.so.1 =>   /lib/libaio.so.1
+    libdoor.so.1 =>  /lib/libdoor.so.1
+    libuutil.so.1 => /lib/libuutil.so.1
+    libgen.so.1 =>   /lib/libgen.so.1
+
+Additional notes:
+
+* gc-7.4.2 doesn't support sparc properly, so the sources for sparc were fetched from
+  https://github.com/ivmai/bdwgc/tree/release-7_4
+  and put into gc-7.4.2
+  Running ./autogen.sh was needed before proceeding
+
+* Workarounds were needed for:
+  * https://github.com/vectorgraphics/asymptote/issues/19
+    CC and CXX env variables are not respected when building GC
+  * https://github.com/vectorgraphics/asymptote/issues/20
+    Provide a configure-time option to disable sigsegv
+  * https://github.com/vectorgraphics/asymptote/pull/21
+    Makefile.in: replace 'test ! -e' => 'test ! -s'
+  * https://github.com/vectorgraphics/asymptote/issues/22
+    Wrong expansion of revision in Bourne Shell
+
+* Patches used are listed below.
+
 Building texlive
 ================
 
@@ -117,3 +186,60 @@ Additional settings were needed to compile TeX Live with gcc 5.2:
 The '--without-iconv' makes sure to avoid linking against libiconv
 which is not available on SunOS by default.
 
+
+
+Patches for Asymptote
+=====================
+
+--- Makefile.in (revision 40918)
++++ Makefile.in (working copy)
+@@ -114,7 +114,7 @@
+        fi
+ 
+ version: $(GCLIB) $(FILES:=.o)
+-       if test ! -e revision.cc -o "$(revision)" != "$(last)"; then     \
++       if test ! -s revision.cc -o "$(revision)" != "$(last)"; then     \
+          echo $(REVISION)\"$(revision)\"\; > revision.cc; \
+        fi
+        $(CXX) $(OPTS) $(INCL) -o revision.o -c revision.cc;
+@@ -160,7 +160,7 @@
+          mv gc-7.2 gc-7.2d; \
+        fi
+        cd $(GC) && \
+-       ./configure $(GCOPTIONS); \
++       ./configure CC="$(CC)" CXX="$(CXX)" $(GCOPTIONS); \
+        $(MAKE) check
+
+ $(GCPPLIB): $(GCLIB)
+--- configure.ac        (revision 40918)
++++ configure.ac        (working copy)
+@@ -223,15 +223,15 @@
+ AC_SUBST(OPTIONS)
+ 
+ # Checks for libraries.
+-AC_CHECK_LIB([ncurses], [setupterm], [AC_DEFINE(HAVE_LIBCURSES)
+-                        LIBS=$LIBS"-lncurses "],
+-                        AC_CHECK_LIB([curses], [setupterm]))
++#AC_CHECK_LIB([ncurses], [setupterm], [AC_DEFINE(HAVE_LIBCURSES)
++#                       LIBS=$LIBS"-lncurses "],
++#                       AC_CHECK_LIB([curses], [setupterm]))
+ AC_CHECK_LIB([m], [sqrt],,
+ AC_MSG_ERROR([*** Please install libm on your system ***]))
+ AC_CHECK_LIB([z], [deflate],,
+ AC_MSG_ERROR([*** Please install libz or zlib-devel on your system ***]))
+ AX_PTHREAD
+-AC_CHECK_LIB([sigsegv], [stackoverflow_install_handler])
++#AC_CHECK_LIB([sigsegv], [stackoverflow_install_handler])
+ AC_CHECK_LIB([rt], [sched_yield])
+ 
+ AC_ARG_ENABLE(readline,
+@@ -254,7 +254,7 @@
+ # Checks for header files.
+ AC_HEADER_SYS_WAIT
+ AC_CHECK_HEADERS([fenv.h stddef.h libintl.h])
+-AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h], [break])
++#AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h], [break])
+ AC_CHECK_HEADERS(fpu_control.h)
+ 
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include "xstream.h"])],
+
diff --git a/texk/dvipdfm-x/ChangeLog b/texk/dvipdfm-x/ChangeLog
index 182ebfd..ab7dc97 100644
--- a/texk/dvipdfm-x/ChangeLog
+++ b/texk/dvipdfm-x/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-04  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
+
+	* pdfdoc.c, pdfencrypt.c, pdffont.c, pdfobj.h, xbb.c: Improve the
+	support of SOURCE_DATE_EPOCH.
+
 2016-05-02  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
 
 	* pdfdoc.c, xbb.c: Apply the patch by Alexis,
diff --git a/texk/dvipdfm-x/pdfdoc.c b/texk/dvipdfm-x/pdfdoc.c
index 3bf163a..21d47c0 100644
--- a/texk/dvipdfm-x/pdfdoc.c
+++ b/texk/dvipdfm-x/pdfdoc.c
@@ -443,7 +443,7 @@ compute_timezone_offset()
   time_t gmtoff;
 
   now = get_unique_time_if_given();
-  if (now == 0) {
+  if (now == INVALID_EPOCH_VALUE) {
     now = time(NULL);
     localtime_r(&now, &local);
     gmtime_r(&now, &tm);
@@ -467,7 +467,7 @@ asn_date (char *date_string)
   struct tm  *bd_time;
 
   current_time = get_unique_time_if_given();
-  if (current_time == 0) {
+  if (current_time == INVALID_EPOCH_VALUE) {
     time(&current_time);
     bd_time = localtime(&current_time);
 
diff --git a/texk/dvipdfm-x/pdfencrypt.c b/texk/dvipdfm-x/pdfencrypt.c
index 1771fff..c29543f 100644
--- a/texk/dvipdfm-x/pdfencrypt.c
+++ b/texk/dvipdfm-x/pdfencrypt.c
@@ -101,7 +101,7 @@ pdf_enc_init (int use_aes, int encrypt_metadata)
   struct pdf_sec *p = &sec_data;
 
   current_time = get_unique_time_if_given();
-  if (current_time == 0)
+  if (current_time == INVALID_EPOCH_VALUE)
     current_time = time(NULL);
   srand(current_time); /* For AES IV */
   p->setting.use_aes = use_aes;
@@ -127,7 +127,7 @@ pdf_enc_compute_id_string (char *dviname, char *pdfname)
 
   date_string = NEW(15, char);
   current_time = get_unique_time_if_given();
-  if (current_time == 0) {
+  if (current_time == INVALID_EPOCH_VALUE) {
     time(&current_time);
     bd_time = localtime(&current_time);
   } else {
diff --git a/texk/dvipdfm-x/pdffont.c b/texk/dvipdfm-x/pdffont.c
index 66578da..7c8caca 100644
--- a/texk/dvipdfm-x/pdffont.c
+++ b/texk/dvipdfm-x/pdffont.c
@@ -90,7 +90,9 @@ pdf_font_set_dpi (int font_dpi)
 
 /* If an environment variable SOURCE_DATE_EPOCH is correctly defined like
  * SOURCE_DATE_EPOCH=1456304492, then returns this value, to be used as the
- * 'current time', otherwise returns 0.
+ * 'current time', otherwise returns INVALID_EPOCH_VALUE (= 0x7fffffffffffffffULL).
+ * In the case of Microsoft Visual Studio 2010, the value should be less
+ * than 32535291600.
  */
 
 time_t
@@ -99,7 +101,7 @@ get_unique_time_if_given(void)
   const char *source_date_epoch;
   int64_t epoch;
   char *endptr;
-  time_t ret = 0;
+  time_t ret = INVALID_EPOCH_VALUE;
 
   source_date_epoch = getenv("SOURCE_DATE_EPOCH");
   if (source_date_epoch) {
@@ -121,7 +123,7 @@ pdf_font_make_uniqueTag (char *tag)
   if (first) {
     time_t current_time;
     current_time = get_unique_time_if_given();
-    if (current_time == 0)
+    if (current_time == INVALID_EPOCH_VALUE)
       current_time = time(NULL);
     srand(current_time);
     first = 0;
diff --git a/texk/dvipdfm-x/pdfobj.h b/texk/dvipdfm-x/pdfobj.h
index 98347a8..83f45a6 100644
--- a/texk/dvipdfm-x/pdfobj.h
+++ b/texk/dvipdfm-x/pdfobj.h
@@ -199,5 +199,6 @@ extern int      pdfobj_escape_str (char *buffer, int size, const unsigned char *
 extern pdf_obj *pdf_new_indirect  (pdf_file *pf, unsigned label, unsigned short generation);
 
 extern time_t get_unique_time_if_given(void);
+#define INVALID_EPOCH_VALUE 0x7fffffffffffffffULL
 
 #endif  /* _PDFOBJ_H_ */
diff --git a/texk/dvipdfm-x/xbb.c b/texk/dvipdfm-x/xbb.c
index a15bf6a..70fb5d3 100644
--- a/texk/dvipdfm-x/xbb.c
+++ b/texk/dvipdfm-x/xbb.c
@@ -95,7 +95,7 @@ static void do_time(FILE *file)
   struct tm *bd_time;
 
   current_time = get_unique_time_if_given();
-  if (current_time == 0) {
+  if (current_time == INVALID_EPOCH_VALUE) {
     time(&current_time);
     bd_time = localtime(&current_time);
   } else {
diff --git a/texk/dvipsk/ChangeLog b/texk/dvipsk/ChangeLog
index 3d06bf0..004aa8f 100644
--- a/texk/dvipsk/ChangeLog
+++ b/texk/dvipsk/ChangeLog
@@ -1,3 +1,12 @@
+2016-05-06  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
+
+	* output.c: Avoid to crash for to large a value of SOURCE_DATE_EPOCH
+	(w32 only). 
+
+2016-05-04  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
+
+	* output.c: Support SOURCE_DATE_EPOCH for %%CreationDate.
+
 2016-03-24  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
 
 	* writet1.c: Fix one-byte buffer overflow bug reported by Hanno Boeck:
diff --git a/texk/dvipsk/output.c b/texk/dvipsk/output.c
index 0fc3d7a..fa57daa 100644
--- a/texk/dvipsk/output.c
+++ b/texk/dvipsk/output.c
@@ -85,7 +85,37 @@ static struct papsiz defpapsiz = {
 #endif
 #include <time.h> /* asctime() and localtime(), at least on BSD Unix */
 static time_t jobtime;
+
+#if defined(_MSC_VER)
+#define strtoll _strtoi64
+#endif
+
+#define INVALID_EPOCH_VALUE 0x7fffffffffffffffULL
+
+static time_t
+get_unique_time_if_given(void)
+{
+   const char *source_date_epoch;
+   int64_t epoch;
+   char *endptr;
+   time_t ret = INVALID_EPOCH_VALUE;
+
+   source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+   if (source_date_epoch) {
+      errno = 0;
+      epoch = strtoll(source_date_epoch, &endptr, 10);
+      if (!(epoch < 0 || *endptr != '\0' || errno != 0)) {
+         ret = (time_t) epoch;
+#if defined(_MSC_VER)
+         if (ret > 32535291599ULL)
+            ret = 32535291599ULL;
 #endif
+      }
+   }
+   return ret;
+}
+#endif /* CREATIONDATE */
+
 /*
  *   This routine copies a file down the pipe.  Search path uses the
  *   header path.
@@ -1388,9 +1418,15 @@ initprinter(sectiontype *sect)
       if (*iname)
          fprintf(bitfile, "%%%%Title: %s\n", iname);
 #ifdef CREATIONDATE
-      jobtime=time(0);
-      fprintf(bitfile, "%%%%CreationDate: %s",
-                                 asctime(localtime(&jobtime)));
+      jobtime = get_unique_time_if_given();
+      if (jobtime == INVALID_EPOCH_VALUE) {
+         jobtime = time(0);
+         fprintf(bitfile, "%%%%CreationDate: %s",
+                                    asctime(localtime(&jobtime)));
+      } else {
+         fprintf(bitfile, "%%%%CreationDate: %s",
+                                    asctime(gmtime(&jobtime)));
+      }
 #endif
       if (! isepsf) {
 /*
diff --git a/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua b/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua
index 4b4dc50..35dc9b3 100755
--- a/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua
+++ b/texk/texlive/linked_scripts/luaotfload/luaotfload-tool.lua
@@ -7,10 +7,11 @@
 --      LICENSE:  GPL v2.0
 -----------------------------------------------------------------------
 
-luaotfload          = luaotfload or { }
-local version       = "2.7"
-luaotfload.version  = version
-luaotfload.self     = "luaotfload-tool"
+luaotfload                     = luaotfload or { }
+local version                  = "2.7"
+luaotfload.version             = version
+luaotfload.min_luatex_version  = { 0, 95, 0 }   --- i. e. 0.95.0
+luaotfload.self                = "luaotfload-tool"
 
 --[[doc--
 
@@ -33,16 +34,6 @@ see the luaotfload documentation for more info. Report bugs to
 
 kpse.set_program_name "luatex"
 
---[[doc--
-
-    We test for Lua 5.1 by means of capability detection to see if
-    we’re running an outdated Luatex.  If so, we bail.
-
-    \url{http://lua-users.org/wiki/LuaVersionCompatibility}
-
---doc]]--
-
-
 local iowrite         = io.write
 local kpsefind_file   = kpse.find_file
 local mathfloor       = math.floor
@@ -59,19 +50,32 @@ local texiowrite      = texio.write
 local tonumber        = tonumber
 local type            = type
 
-local runtime
-if _G.getfenv ~= nil then -- 5.1 or LJ
-    if _G.jit ~= nil then
-        runtime = { "jit", jit.version }
-    else
-        runtime = { "stock", _VERSION }
-        print "FATAL ERROR"
-        print "Luaotfload requires a Luatex version >=0.76."
-        print "Please update your TeX distribution!"
-        os.exit (-1)
-    end
-else -- 5.2
-    runtime = { "stock", _VERSION }
+do
+    local runtime         = _G.jit and { "jit"  , jit.version }
+                                    or { "stock", _VERSION }
+    local stats           = status and status.list ()
+    local minimum         = luaotfload.min_luatex_version
+    local actual          = { 0, 0, 0 }
+    if stats then
+        local major    = stats.luatex_version / 100
+        local minor    = stats.luatex_version % 100
+        local revision = stats.luatex_revision --[[ : string ]]
+        local revno    = tonumber (revision)
+        actual         = { major, minor, revno or 0 }
+    end
+
+    if actual [1] < minimum [1] or actual [2] < minimum [2]
+    or actual [3] < minimum [3]
+    then
+        texio.write_nl ("term and log",
+                        string.format ("\tFATAL ERROR\n\z
+                                        \tLuaotfload requires a Luatex version >= %d.%d.%d.\n\z
+                                        \tPlease update your TeX distribution!\n\n",
+                                       (unpack or table.unpack) (minimum)))
+        error "version check failed"
+    end
+    luaotfload.runtime        = runtime
+    luaotfload.luatex_version = actual
 end
 
 local C, Ct, P, S  = lpeg.C, lpeg.Ct, lpeg.P, lpeg.S
@@ -336,15 +340,21 @@ local version_msg = function ( )
     local out   = function (...) texiowrite_nl (stringformat (...)) end
     local uname = os.uname ()
     local meta  = fonts.names.getmetadata ()
-    local info  = status.list ()
+
+    local runtime = luaotfload.runtime
+    local actual  = luaotfload.luatex_version
+    local status  = config.luaotfload.status
+    local notes   = status and status.notes or { }
+
     out (about, luaotfload.self)
     out ("%s version: %q", luaotfload.self, version)
-    out ("Revision: %q", config.luaotfload.status.notes.revision)
+    if notes.description then
+        out ("Luaotfload: %q", notes.description)
+    end
+    out ("Revision: %q", notes.revision)
     out ("Lua interpreter: %s; version %q", runtime[1], runtime[2])
 --[[out ("Luatex SVN revision: %d", info.luatex_svn)]] --> SVN r5624
-    out ("Luatex version: %.2f.%d",
-         info.luatex_version / 100,
-         info.luatex_revision)
+    out ("Luatex version: %d.%d", actual [1], actual [2])
     out ("Platform: type=%s name=%s", os.type, os.name)
 
     local uname_vars = tablesortedkeys (uname)
@@ -356,7 +366,7 @@ local version_msg = function ( )
         out("No database metadata available.")
     else
         out ("Index: version=%q created=%q modified=%q",
-             config.luaotfload.status.notes.revision,
+             meta.version or "too old",
              meta.created or "ages ago",
              meta.modified or "ages ago")
     end
@@ -1160,16 +1170,21 @@ actions.query = function (job)
         tmpspec.size = 655360 --- assume 10pt
     end
 
-    local foundname, subfont, success
+    local foundname, subfont, success, needle
 
-    if tmpspec.lookup == "name"
-    or tmpspec.lookup == "anon" --- not *exactly* as resolvers.anon
-    then
-        foundname, _, success = fonts.names.lookup_font_name (tmpspec)
-        if foundname then
-            foundname, _, success = fonts.names.lookup_font_file (foundname)
+    if tmpspec.lookup == "name" then
+        if fonts.definers.resolvers.name (tmpspec) then
+            needle = tmpspec.resolved
+        end
+    elseif tmpspec.lookup == "anon" then
+        if fonts.definers.resolvers.anon (tmpspec) then
+            needle = tmpspec.resolved or tmpspec.name
         end
     elseif tmpspec.lookup == "file" then
+        needle = tmpspec.name
+    end
+
+    if needle then
         foundname, _, success = fonts.names.lookup_font_file (tmpspec.name)
     end
 
diff --git a/texk/texlive/linked_scripts/texlive/tlmgr.pl b/texk/texlive/linked_scripts/texlive/tlmgr.pl
index 07ffe92..244de84 100755
--- a/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/texk/texlive/linked_scripts/texlive/tlmgr.pl
@@ -1,13 +1,13 @@
 #!/usr/bin/env perl
-# $Id: tlmgr.pl 40800 2016-04-28 17:56:52Z karl $
+# $Id: tlmgr.pl 40844 2016-05-02 23:46:44Z karl $
 #
 # Copyright 2008-2016 Norbert Preining
 # This file is licensed under the GNU General Public License version 2
 # or any later version.
 #
 
-my $svnrev = '$Revision: 40800 $';
-my $datrev = '$Date: 2016-04-28 19:56:52 +0200 (Thu, 28 Apr 2016) $';
+my $svnrev = '$Revision: 40844 $';
+my $datrev = '$Date: 2016-05-03 01:46:44 +0200 (Tue, 03 May 2016) $';
 my $tlmgrrevision;
 my $prg;
 if ($svnrev =~ m/: ([0-9]+) /) {
@@ -7637,7 +7637,7 @@ The allowed keys are:
 
 =over 4
 
-=item C<auto-remove, value 0 or 1 (default 1), same as command-line
+=item C<auto-remove>, value 0 or 1 (default 1), same as command-line
 option.
 
 =item C<gui-expertmode>, value 0 or 1 (default 1).
@@ -7661,7 +7661,7 @@ The system-wide config file can contain one additional key:
 
 =over 4
 
-=item C<allowed-actions> I<action1[,I<action>,...]
+=item C<allowed-actions> I<action1> [,I<action>,...]
 The value is a comma-separated list of C<tlmgr> actions which are
 allowed to be executed when C<tlmgr> is invoked in system mode (that is,
 without C<--usermode>).
@@ -7679,13 +7679,13 @@ to checksums computed locally after downloading.  C<no-checksums>
 disables this.
 
 The checksum algorithm is SHA-512.  Your system must have (looked for in
-this order) the Perl L<Digest::SHA> module, the C<openssl> program
-(L<openssl.org>), or the C<sha512sum> program (from GNU Coreutils,
-L<http://www.gnu.org/software/coreutils>).  If none of these are
-available, a warning is issued and C<tlmgr> proceeds without checking
-checksums.  (Incidentally, other SHA implementations, such as the pure
-Perl and pure Lua modules, are much too slow to be usable in our
-context.)  C<no-checksums> also avoids the warning.
+this order) the Perl C<Digest::SHA> module, the C<openssl> program
+(L<http://openssl.org>), or the C<sha512sum> program (from GNU
+Coreutils, L<http://www.gnu.org/software/coreutils>).  If none of these
+are available, a warning is issued and C<tlmgr> proceeds without
+checking checksums.  (Incidentally, other SHA implementations, such as
+the pure Perl and pure Lua modules, are much too slow to be usable in
+our context.)  C<no-checksums> also avoids the warning.
 
 
 =head1 CRYPTOGRAPHIC VERIFICATION
diff --git a/texk/web2c/ChangeLog b/texk/web2c/ChangeLog
index af6fb41..594e37a 100644
--- a/texk/web2c/ChangeLog
+++ b/texk/web2c/ChangeLog
@@ -1,3 +1,7 @@
+2016-05-04  Karl Berry  <karl@freefriends.org>
+
+	* texmfmp-help.h (PDFTEXHELP) [pdfTeX]: mention pdftex.org.
+
 2016-02-27  Akira Kakuto  <kakuto@fuk.kindai.ac.jp>
 
 	* help.h: Add an option -charcode-format in omfonts for compatibility.
diff --git a/texk/web2c/lib/ChangeLog b/texk/web2c/lib/ChangeLog
index 7a8ede7..3fe4626 100644
--- a/texk/web2c/lib/ChangeLog
+++ b/texk/web2c/lib/ChangeLog
@@ -1,3 +1,21 @@
+2016-05-06  Karl Berry  <karl@tug.org>
+
+	* texmfmp.c (init_start_time, get_date_and_time) [onlyTeX]:
+	ignore SOURCE_DATE_EPOCH... envvars for original TeX.
+
+2016-05-05  Akira Kakuto  <kakuto@fuk.kinidai.ac.jp>
+
+	* texmfmp.c (strtoull) [_MSC_VER]: #define as _strtoui64.
+
+2016-05-04  Karl Berry  <karl@freefriends.org>
+
+	* texmfmp.c (init_start_time): new fn, factored out from
+	initstarttime.
+	(get_date_and_time): if envvar SOURCE_DATE_EPOCH_TEX_PRIMITIVES
+	is set, initialize minutes, day, month, year, from
+	SOURCE_DATE_EPOCH value.  Requested by Debian, thread starting at
+	http://tug.org/pipermail/tex-k/2016-May/002691.html.
+
 2016-04-14  Akira Kakuto  <kakuto@fuk.kinidai.ac.jp>
 
 	* texmfmp.c: Fix a bug to show input file name in the case of pipe input.
diff --git a/texk/web2c/lib/texmfmp.c b/texk/web2c/lib/texmfmp.c
index a391445..c56cd02 100644
--- a/texk/web2c/lib/texmfmp.c
+++ b/texk/web2c/lib/texmfmp.c
@@ -2200,6 +2200,37 @@ catch_interrupt (int arg)
 }
 #endif /* not WIN32 */
 
+#if defined(_MSC_VER)
+#define strtoull _strtoui64
+#endif
+
+static boolean start_time_set = false;
+static time_t start_time = 0;
+
+void init_start_time() {
+    char *source_date_epoch;
+    unsigned long long epoch;
+    char *endptr;
+    if (!start_time_set) {
+        start_time_set = true;
+#ifndef onlyTeX
+        source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+        if (source_date_epoch) {
+            errno = 0;
+            epoch = strtoull(source_date_epoch, &endptr, 10);
+            if (epoch < 0 || *endptr != '\0' || errno != 0) {
+FATAL1 ("invalid epoch-seconds-timezone value for environment variable $SOURCE_DATE_EPOCH: %s",
+                      source_date_epoch);
+            }
+            start_time = epoch;
+        } else
+#endif /* not onlyTeX */
+        {
+            start_time = time((time_t *) NULL);
+        }
+    }
+}
+
 /* Besides getting the date and time here, we also set up the interrupt
    handler, for no particularly good reason.  It's just that since the
    `fix_date_and_time' routine is called early on (section 1337 in TeX,
@@ -2210,8 +2241,29 @@ void
 get_date_and_time (integer *minutes,  integer *day,
                    integer *month,  integer *year)
 {
-  time_t myclock = time ((time_t *) 0);
-  struct tm *tmptr = localtime (&myclock);
+  struct tm *tmptr;
+#ifndef onlyTeX
+  string sde_texprim = getenv ("SOURCE_DATE_EPOCH_TEX_PRIMITIVES");
+  if (sde_texprim && STREQ (sde_texprim, "1")) {
+    init_start_time ();
+    tmptr = gmtime (&start_time);
+  } else
+#endif /* not onlyTeX */
+    {
+    /* whether the envvar was not set (usual case) or invalid,
+       use current time.  */
+    time_t myclock = time ((time_t *) 0);
+    tmptr = localtime (&myclock);
+
+#ifndef onlyTeX
+    /* warn if they gave an invalid value, empty (null string) ok.  */
+    if (sde_texprim && strlen (sde_texprim) > 0
+        && !STREQ (sde_texprim, "0")) {
+WARNING1 ("invalid value (expected 0 or 1) for environment variable $SOURCE_DATE_EPOCH_TEX_PRIMITIVES: %s", 
+          sde_texprim);
+    }
+#endif /* not onlyTeX */
+  }
 
   *minutes = tmptr->tm_hour * 60 + tmptr->tm_min;
   *day = tmptr->tm_mday;
@@ -2930,8 +2982,7 @@ void pdftex_fail(const char *fmt, ...)
 #endif /* not pdfTeX */
 
 #if !defined(XeTeX)
-static boolean start_time_set = false;
-static time_t start_time = 0;
+
 #define TIME_STR_SIZE 30
 char start_time_str[TIME_STR_SIZE];
 static char time_str[TIME_STR_SIZE];
@@ -2990,31 +3041,14 @@ static void makepdftime(time_t t, char *time_str, boolean utc)
     }
 }
 
-#if defined(_MSC_VER)
-#define strtoll _strtoi64
-#endif
-
 void initstarttime(void)
 {
-    char *source_date_epoch;
-    int64_t epoch;
-    char *endptr;
     if (!start_time_set) {
-        start_time_set = true;
-        source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-        if (source_date_epoch) {
-            errno = 0;
-            epoch = strtoll(source_date_epoch, &endptr, 10);
-            if (epoch < 0 || *endptr != '\0' || errno != 0) {
-       FATAL1 ("invalid value for environment variable $SOURCE_DATE_EPOCH: %s",
-                source_date_epoch);
-            }
-            start_time = epoch;
-            makepdftime(start_time, start_time_str, /* utc= */true);
-        }
-        else {
-            start_time = time((time_t *) NULL);
-            makepdftime(start_time, start_time_str, /* utc= */false);
+        init_start_time ();
+        if (getenv ("SOURCE_DATE_EPOCH")) {
+            makepdftime (start_time, start_time_str, /* utc= */true);
+        } else {
+            makepdftime (start_time, start_time_str,  /* utc= */false);
         }
     }
 }
diff --git a/texk/web2c/luatexdir/tex/extensions.w b/texk/web2c/luatexdir/tex/extensions.w
index a6161dc..f787e93 100644
--- a/texk/web2c/luatexdir/tex/extensions.w
+++ b/texk/web2c/luatexdir/tex/extensions.w
@@ -525,7 +525,7 @@ void write_out(halfword p)
     expand_macros_in_tokenlist(p);
     old_setting = selector;
     j = write_stream(p);
-    if (write_open[j]) {
+    if (file_can_be_written(j)) {
         selector = j;
     } else if ((j == term_only) && (selector == term_and_log)) {
         /* write to the terminal if file isn't open */
diff --git a/texk/web2c/man/pdftex.man b/texk/web2c/man/pdftex.man
index 507801d..d1b8ef5 100644
--- a/texk/web2c/man/pdftex.man
+++ b/texk/web2c/man/pdftex.man
@@ -1,4 +1,4 @@
-.TH PDFTEX 1 "16 June 2015" "Web2C @VERSION@"
+.TH PDFTEX 1 "4 May 2016" "Web2C @VERSION@"
 .\"=====================================================================
 .if n .ds MF Metafont
 .if t .ds MF Metafont
@@ -318,7 +318,7 @@ line can overrule this setting.
 Print version information and exit.
 .\"=====================================================================
 .SH ENVIRONMENT
-See the Kpathsearch library documentation (the `Path specifications'
+See the Kpathsea library documentation (e.g., the `Path specifications'
 node) for precise details of how the environment variables are used.
 The
 .B kpsewhich
@@ -364,11 +364,6 @@ current directory and ``/home/user/tex'' to the standard search path.
 .B TEXFORMATS
 Search path for format files.
 .TP
-.B TEXPOOL
-search path for
-.B pdftex
-internal strings.
-.TP
 .B TEXEDIT
 Command template for switching to editor.  The default, usually
 .BR vi ,
@@ -378,6 +373,27 @@ is set when pdf\*(TX is compiled.
 Search path for font metric
 .RI ( .tfm )
 files.
+.TP
+.B SOURCE_DATE_EPOCH
+If set, its value, taken to be in epoch-seconds, will be used for the
+timestamps in the PDF output, such as the CreationDate and ModDate keys.
+This is useful for making reproducible builds.
+.TP
+.B SOURCE_DATE_EPOCH_TEX_PRIMITIVES
+If set to the value "1", the time-related \*(TX primitives
+.RI ( \eyear ,
+.IR \emonth ,
+.IR \eday ,
+.IR \etime )
+are also initialized from the value of SOURCE_DATE_EPOCH.  This is not
+recommended if there is any viable alternative.
+.br
+pdf\*(TX also has several primitives to support reproducible builds,
+which are preferable to setting these environment variables; see the
+main manual.
+.PP
+Many, many more environment variables may be consulted related to path
+searching.  See the Kpathsea manual.
 .\"=====================================================================
 .SH FILES
 The location of the files mentioned below varies from system to
@@ -385,11 +401,8 @@ system.  Use the
 .B kpsewhich
 utility to find their locations.
 .TP
-.I pdftex.pool
-Text file containing pdf\*(TX's internal strings.
-.TP
 .I pdftex.map
-Filename mapping definitions.
+Font name mapping definitions.
 .TP
 .I *.tfm
 Metric files for pdf\*(TX's fonts.
@@ -409,14 +422,6 @@ and the info manual
 .IR "Web2C: A TeX implementation" .
 .\"=====================================================================
 .SH BUGS
-This version of pdf\*(TX implements a number of optional extensions.
-In fact, many of these extensions conflict to a greater or lesser
-extent with the definition of pdf\*(TX.  When such extensions are
-enabled, the banner printed when pdf\*(TX starts is changed to print
-.B pdfTeXk
-instead of
-.BR pdfTeX .
-.PP
 This version of pdf\*(TX fails to trap arithmetic overflow when
 dimensions are added or subtracted.  Cases where this occurs are rare,
 but when it does the generated
@@ -427,27 +432,19 @@ file would be usable is unknown.
 .\"=====================================================================
 .SH AVAILABILITY
 pdf\*(TX is available for a large variety of machine architectures
-and operation systems.
+and operating systems.
 pdf\*(TX is part of all major \*(TX distributions.
-.P
-Information on how to get pdf\*(TX and related information
-is available at the
-.B http://www.pdftex.org
-.IR "pdf\*(TX"
-web site.
-.P
-The following pdfe\*(TX related mailing list is available:
-.BR pdftex@tug.org .
-This is a mailman list;
-to subscribe send a message containing
-.I subscribe
-to
-.BR pdftex-request@tug.org .
-A web interface and list archives can be found at the
-.B "http://lists.tug.org/pdftex";
-mailing list web site.
+.br
+The pdf\*(TX home page: http://www.pdftex.org.
+.br
+pdf\*(TX on CTAN: http://www.ctan.org/pkg/pdftex.
+.br
+pdf\*(TX mailing list for all discussion: http://lists.tug.org/pdftex.
 .\"=====================================================================
 .SH "SEE ALSO"
+The full pdf\*(TX manual can be accessed from the home page or CTAN page.
+Same for the Web2C, Kpathsea, and other manuals.
+Some related programs:
 .BR epstopdf (1),
 .BR etex (1),
 .BR latex (1),
@@ -455,7 +452,6 @@ mailing list web site.
 .BR mptopdf (1),
 .BR tex (1),
 .BR mf (1).
-http://pdftex.org, http://tug.org/web2c.
 .\"=====================================================================
 .SH AUTHORS
 The primary authors of pdf\*(TX are Han The Thanh, Petr Sojka,
diff --git a/texk/web2c/pdftexdir/NEWS b/texk/web2c/pdftexdir/NEWS
index 7171ee7..bd682a8 100644
--- a/texk/web2c/pdftexdir/NEWS
+++ b/texk/web2c/pdftexdir/NEWS
@@ -1,9 +1,13 @@
 pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016)
 - changes:
-  - if environment variable SOURCE_DATE_EPOCH is set, use its value for
-    the CreationDate and ModDate values, and to seed the trailer /ID.
+  - if the environment variable SOURCE_DATE_EPOCH is set, use its value for
+    the PDF CreationDate and ModDate values, and to seed the trailer /ID.
     This by itself should suffice to create reproducible PDFs.  The
-    other changes support more granular output tweaks along the same lines.
+    new primitives below support more granular output tweaks with the
+    same intent.
+  - if the environment variable SOURCE_DATE_EPOCH_TEX_PRIMITIVES is set
+    to 1, the \year, \day, and \time primitives are also initialized
+    from the SOURCE_DATE_EPOCH value, instead of the current time.
     
   - new primitive \pdfinfoomitdate to omit CreationDate and ModDate keys.
   - new primitive \pdftrailerid to set seed for the trailer /ID
diff --git a/texk/web2c/pdftexdir/README b/texk/web2c/pdftexdir/README
index 9b78615..785ab5b 100644
--- a/texk/web2c/pdftexdir/README
+++ b/texk/web2c/pdftexdir/README
@@ -2,14 +2,16 @@ pdfTeX is an extended version of eTeX that can create PDF directly from
 TeX source files and enhance the result of TeX typesetting with the help
 of PDF. When PDF output is not selected, pdfTeX produces normal DVI
 output, otherwise it produces PDF output that looks essentially
-identical to the DVI output. An important aspect of this project was to
-investigate alternative justification algorithms, resulting in the
-margin kerning and font expansion "microtypgraphy" features, inspired by
-Peter Karow.
-
-pdfTeX is based on the original e-TeX sources and Web2c, and has been
-successfully compiled on many systems. It is actively maintained, but
-stability is paramount now; only bug fixes and small enhancements are expected.
+identical to the DVI output
+
+An important aspect of this project was to investigate alternative
+justification algorithms, resulting in the "microtypography" features of
+margin kerning and font expansion.  This was inspired by Peter Karow's
+and Hermann Zapf's work.
+
+pdfTeX is integrated with the original e-TeX sources and Web2c.  It is
+actively maintained, but stability is paramount now; only bug fixes and
+small enhancements are expected.  Releases are made through TeX Live.
 
 See the file NEWS for changes to the program.
 Documentation about pdfTeX can be found at http://www.pdftex.org.
diff --git a/texk/web2c/texmfmp-help.h b/texk/web2c/texmfmp-help.h
index 6a0dba4..b6a5f9d 100644
--- a/texk/web2c/texmfmp-help.h
+++ b/texk/web2c/texmfmp-help.h
@@ -1,6 +1,6 @@
 /* The help messages for TeX & MF family of programs.
 
-Copyright 1995, 1996, 2008-2015 Karl Berry.
+Copyright 1995, 1996, 2008-2016 Karl Berry.
 Copyright 2001-05 Olaf Weber.
 
 This program is free software; you can redistribute it and/or modify
@@ -464,6 +464,8 @@ const_string PDFTEXHELP[] = {
     "-8bit                   make all characters printable by default",
     "-help                   display this help and exit",
     "-version                output version information and exit",
+    "",
+    "pdfTeX home page: <http://pdftex.org>",
     NULL
 };
 #endif /* pdfTeX */
diff --git a/utils/devnag/NEWS b/utils/devnag/NEWS
deleted file mode 100644
index e69de29..0000000
diff --git a/utils/devnag/README b/utils/devnag/README
deleted file mode 100644
index 1aa0977..0000000
--- a/utils/devnag/README
+++ /dev/null
@@ -1,20 +0,0 @@
-=============================================================================
-Devanagari for TeX                                              Release Notes
-version 2.0                                                   23 January 2000
-=============================================================================
-
-Preprocessor: devnag.c has been updated and greatly enhanced. If you have
-a previously installed version of devnag, you must recompile the source.
-A 32-bit DOS/Win95 executable (devnag.exe) has been provided.
-
-Package: dev.sty has been revised to fix certain catcode problems. Several
-new features have been implemented in the package. Refer to the manual
-for descriptions.
-
-Font: The fonts have been revised. Certain characters have been modified.
-The font metrics have not been changed.
-
-Please refer to the manual for further information.
-
-=============================================================================
-
diff --git a/utils/devnag/src/devnag.c b/utils/devnag/src/devnag.c
index 421a3f9..ff9606e 100644
--- a/utils/devnag/src/devnag.c
+++ b/utils/devnag/src/devnag.c
@@ -1,9 +1,9 @@
 /*  $Id: devnag.c,v 1.15 2008-03-09 15:57:59 icebearsoft Exp $
-    Version 2.15
+    Version 2.16
 
  *
  Preprocessor for Devanagari for TeX package
- Copyright (C) 1991-1998  University of Groningen, The Netherlands
+ Copyright (C) 1991-2016  University of Groningen, The Netherlands
  *
  Author   : Frans J. Velthuis <velthuis@rc.rug.nl>
  Date     : 09 May 1991
@@ -277,7 +277,15 @@
  (requested by Karl Berry)
 */
 
-const char *version = "2.15";
+/*
+ Modifications in version 2.16:
+
+ Character and string handling commands were improved by TeX Live developers,
+ these commands cuased errors in several platforms.
+
+ */
+
+const char *version = "2.16";
 
 #include <stdio.h>
 #include <ctype.h>
diff --git a/utils/devnag/tests/captions.tex b/utils/devnag/tests/captions.tex
index 14bd7a4..3f29360 100644
--- a/utils/devnag/tests/captions.tex
+++ b/utils/devnag/tests/captions.tex
@@ -1,4 +1,4 @@
-\def\DevnagVersion{2.15}%@modernhindi
+\def\DevnagVersion{2.16}%@modernhindi
 \def\datemodernhindi{\def\today{\@datenumeric\day\space\ifcase\month\or
 {\dn jnvrF}\or
 {\dn \327wrvrF}\or
diff --git a/utils/devnag/tests/examples.tex b/utils/devnag/tests/examples.tex
index 1300824..f020162 100644
--- a/utils/devnag/tests/examples.tex
+++ b/utils/devnag/tests/examples.tex
@@ -1,4 +1,4 @@
-\def\DevnagVersion{2.15}%@hyphen
+\def\DevnagVersion{2.16}%@hyphen
 \documentclass[12pt]{article}
 \usepackage{devanagari}
 \parindent=0pt
diff --git a/utils/devnag/tests/misspaal.tex b/utils/devnag/tests/misspaal.tex
index 007ec8f..4d14b42 100644
--- a/utils/devnag/tests/misspaal.tex
+++ b/utils/devnag/tests/misspaal.tex
@@ -1,4 +1,4 @@
-\def\DevnagVersion{2.15}\documentclass[11pt]{article}
+\def\DevnagVersion{2.16}\documentclass[11pt]{article}
 \usepackage{devanagari}
 
 \def\portraitpage{%
diff --git a/utils/devnag/tests/vedasample.tex b/utils/devnag/tests/vedasample.tex
index 924a667..58fe344 100644
--- a/utils/devnag/tests/vedasample.tex
+++ b/utils/devnag/tests/vedasample.tex
@@ -1,4 +1,4 @@
-\def\DevnagVersion{2.15}\input dnmacs
+\def\DevnagVersion{2.16}\input dnmacs
 \font\dnhead=dvnc10 at 20pt
 \font\rmhead=cmr10 at 14pt
 \def\newpage{\vfill\eject}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-tex/texlive-bin.git


Reply to: