texlive[65852] trunk: l3build (16feb23)

commits+karl at tug.org commits+karl at tug.org
Thu Feb 16 22:35:01 CET 2023


Revision: 65852
          http://tug.org/svn/texlive?view=revision&revision=65852
Author:   karl
Date:     2023-02-16 22:35:01 +0100 (Thu, 16 Feb 2023)
Log Message:
-----------
l3build (16feb23)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/epspdf/epspdf.tlu
    trunk/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
    trunk/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3build/README.md
    trunk/Master/texmf-dist/doc/latex/l3build/l3build.pdf
    trunk/Master/texmf-dist/doc/man/man1/l3build.1
    trunk/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
    trunk/Master/texmf-dist/scripts/l3build/l3build-check.lua
    trunk/Master/texmf-dist/scripts/l3build/l3build-manifest.lua
    trunk/Master/texmf-dist/scripts/l3build/l3build-typesetting.lua
    trunk/Master/texmf-dist/scripts/l3build/l3build.lua
    trunk/Master/texmf-dist/source/latex/l3build/l3build.dtx

Modified: trunk/Build/source/texk/texlive/linked_scripts/epspdf/epspdf.tlu
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/epspdf/epspdf.tlu	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Build/source/texk/texlive/linked_scripts/epspdf/epspdf.tlu	2023-02-16 21:35:01 UTC (rev 65852)
@@ -13,8 +13,11 @@
        some refactoring; better handling of some corner cases
 0.6.5: eliminate .setpdfwrite from ghostscript commandlines,
        since this is now considered obsolete
+0.6.5.1: eliminate faulty check for writability system_tmpdir;
+      just error out when no tempdir for epspdf can be created.
+      Avoid spawn for MiKTeX.
 
-Copyright (C) 2006-2020 Siep Kroonenberg
+Copyright (C) 2006-2023 Siep Kroonenberg
 
 siepo at bitmuis nl
 
@@ -304,40 +307,8 @@
   return false
 end -- find_on_path
 
-function dir_writable(d)
-  -- because directory attributes do not tell the whole story,
-  -- we actually try to create a file in the directory.
-  if not lfs.isdir(d) then
-    return false
-  end
-  -- try to create a new file, write to it and delete it afterwards
-  for i=1,1000 do
-    local s = d .. '/' .. tostring(i)
-    if not lfs.isfile(s) then
-      local fh = io.open(s, "w")
-      if fh then
-        fh:write('test')
-        fh:close()
-        if lfs.isfile(s) then
-          if lfs.attributes(s, 'size') > 0 then
-            os.remove(s)
-            return true
-          else
-            os.remove(s)
-            return false -- open and write resulted in empty file
-          end -- lfs.attributes
-        else
-          return false -- open and write did not result in a file
-        end -- lfs.isfile
-      end -- fh
-      return false -- filename available; could not open for write
-    end -- not lfs.isfile
-  end -- for
-  return false
-end
-
 function system_tempdir ()
-  local d
+  local d = false
   if os.type=='windows' then
     d = os.getenv('TEMP')
     if not d then
@@ -350,9 +321,6 @@
     end
   end
   -- cygwin: $TEMP=/tmp, root '/' being root of cygwin installation
-  if d and not dir_writable(d) then
-    d = false
-  end
   return d
 end
 
@@ -403,6 +371,20 @@
   return res
 end -- tab_combine
 
+-- workaround for miktex spawn problem
+function spawnexec(cmd)
+  if is_miktex then
+    if type(cmd)=='table' then
+      return os.execute(table.concat(cmd, ' '))
+      -- there is no need for quoting in the cases used
+    else
+      return os.execute(cmd)
+    end
+  else
+    return os.spawn(cmd)
+  end
+end
+
 -- files ----------------------------------------------------
 -- Copy a file in chunks, with optional length and offset.
 -- Since files may be very large, we copy them piecemeal.
@@ -1547,13 +1529,7 @@
   -- if os.type=='unix' then
     cmd = {luatex_prog, '--safer', '--no-shell-escape', textemp}
     log_cmd(cmd)
-    res = os.spawn(cmd)
-  -- else
-  --   cmd = luatex_prog..' --safer --no-shell-escape '..textemp
-  --   log_cmd({cmd})
-  --   -- os.execute('timeout /t 1 /nobreak >nul')
-  --   res = os.execute(cmd)
-  -- end
+    res = spawnexec(cmd)
     if res and res==0 and lfs.attributes(pdftemp, 'size')>0 then
     psp = PsPdf:from_path(pdftemp)
     options.bbox = false
@@ -1583,7 +1559,7 @@
   cmd = tab_combine({cmd, pdf_tail_options})
   table.insert(cmd, self.path)
   log_cmd(cmd)
-  local res = os.spawn(cmd)
+  local res = spawnexec(cmd)
   if res and res==0 and lfs.attributes(psp.path, 'size')>0 then
     psp.pages, psp.miver, psp.maver = pdf_props(psp.path)
     options.gray = false
@@ -1623,7 +1599,7 @@
   cmd = tab_combine({cmd, pdf_tail_options})
   table.insert(cmd, self.path)
   log_cmd(cmd)
-  local res = os.spawn(cmd)
+  local res = spawnexec(cmd)
   if res and res==0 and lfs.attributes(psp.path, 'size')>0 then
     psp.pages, psp.miver, psp.maver = pdf_props(psp.path)
     options.gray = false
@@ -1655,10 +1631,9 @@
       -- which are usually harmless and for which I know no easy fix
       -- pdftops -q does not do the trick on Windows,
       -- and redirection to logfile gives access denied under miktex
-      -- res = os.spawn({'cmd', '/c', table.concat(cmd, ' ')..' 2>>'..log_bsl})
       res = os.execute(table.concat(cmd, ' ')..' 2>nul')
     else
-      res = os.spawn(cmd)
+      res = spawnexec(cmd)
     end
     if res and res==0 and lfs.attributes(psp.path, 'size')>0 then
       psp.pages = 1
@@ -1732,7 +1707,7 @@
     table.insert(cmd, '-sOutputFile='..psp.path)
     table.insert(cmd, self.path)
     log_cmd(cmd)
-    res = os.spawn(cmd)
+    res = spawnexec(cmd)
     if res and res==0 and lfs.attributes(psp.path, 'size')>0 then
       psp.pages = 1
       options.page = false
@@ -1762,7 +1737,7 @@
   cmd = tab_combine({cmd, pdf_tail_options})
   table.insert(cmd, self.path)
   log_cmd(cmd)
-  local res = os.spawn(cmd)
+  local res = spawnexec(cmd)
   if res and res==0 and lfs.attributes(psp.path, 'size')>0 then
     psp.pages, psp.miver, psp.maver = pdf_props(psp.path)
     options.gray = false
@@ -1805,10 +1780,9 @@
     -- which are usually harmless and for which I know no easy fix
     -- pdftops -q does not do the trick on Windows,
     -- and redirection to logfile gives access denied under miktex
-    -- res = os.spawn({'cmd', '/c', table.concat(cmd, ' ')..' 2>>'..log_bsl})
     res = os.execute(table.concat(cmd, ' ')..' 2>nul')
   else
-    res = os.spawn(cmd)
+    res = spawnexec(cmd)
   end
   if res and res==0 and lfs.attributes(psp.path, 'size')>0 then
     options.page = false
@@ -1833,7 +1807,7 @@
   table.insert(cmd, '-sOutputFile#'..psp.path)
   table.insert(cmd, self.path)
   log_cmd(cmd)
-  local res = os.spawn(cmd)
+  local res = spawnexec(cmd)
   if res and res==0 and lfs.attributes(psp.path, 'size')>0 then
     options.gray = false
     return psp
@@ -1901,9 +1875,12 @@
     if settings.pdf_target and (settings.pdf_target~='default') then
       table.insert(pdf_options, '-dPDFSETTINGS#/'..settings.pdf_target)
     end
-    if settings.pdf_target~='screen' and settings.pdf_target~='ebook' then
-      pdf_tail_options = {
-        '-c', '<</NeverEmbed [ ] >> setdistillerparams', '-f'}
+    if not is_miktex then
+      -- options below cause trouble with unpacked cmd table
+      if settings.pdf_target~='screen' and settings.pdf_target~='ebook' then
+        pdf_tail_options = {
+          '-c', '<</NeverEmbed [ ] >> setdistillerparams', '-f'}
+      end
     end
   end
 
@@ -2063,7 +2040,7 @@
       end
       if (not need_gs) and options.page then
         psp = psp:pdf_crop()
-        -- less invasive that page selection by gs
+        -- less invasive than page selection by gs
       end
       if need_gs then
         psp = psp:pdf_to_pdf() -- will handle page selection too
@@ -2395,7 +2372,7 @@
     -- a couple of functions only available during command-line parsing
 
     local function show_version ()
-      print('Epspdf version 0.6.4\nCopyright (c) 2006-2019 Siep Kroonenberg')
+      print('Epspdf version 0.6.5.1\nCopyright (c) 2006-2023 Siep Kroonenberg')
     end
 
     local function help (mess) -- requires opts array
@@ -2649,10 +2626,16 @@
   -- a directory under a dedicated temp directory, which has a better chance
   -- of getting cleaned up by the system.
 
-  lfs.chdir(system_tempdir() or out_dir)
-  -- no check for failure; we create a subdirectory in
-  -- whatever is the current directory
-  tempdir = os.tmpdir()
+  for i, d in pairs({system_tempdir(), out_dir}) do
+    if not lfs.chdir(d) then
+      io.stdout:write('cannot cd into '..d..'\n')
+      goto continue
+    end
+    tempdir = os.tmpdir()
+    if not tempdir then goto continue end
+    break
+    ::continue::
+  end
   if not tempdir then
     errror('Cannot create directory for temporary files')
   end

Modified: trunk/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua	2023-02-16 21:35:01 UTC (rev 65852)
@@ -25,7 +25,7 @@
 --]]
 
 -- Version information
-release_date = "2022-11-10"
+release_date = "2023-02-16"
 
 -- File operations are aided by the LuaFileSystem module
 local lfs = require("lfs")

Modified: trunk/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md	2023-02-16 21:35:01 UTC (rev 65852)
@@ -7,6 +7,15 @@
 
 ## [Unreleased]
 
+## [2023-02-16]
+
+### Changed
+- Drop a redundant setup line for upTeX
+- Normalise more Lua stack trace data (may require `.tlg` rebuild)
+
+### Fixed
+- Ensure `texmf.cnf` work correctly for `dvips`
+
 ## [2022-11-10]
 
 ### Changed
@@ -611,7 +620,8 @@
 - Rationalise short option names: removed `-d`, `-E`, `-r`
 - Target `cmdcheck`: specific to LaTeX kernel work
 
-[Unreleased]: https://github.com/latex3/l3build/compare/2022-11-10...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2023-02-16...HEAD
+[2023-02-16]: https://github.com/latex3/l3build/compare/2022-11-10...2023-02-16
 [2022-11-10]: https://github.com/latex3/l3build/compare/2022-09-15...2022-11-10
 [2022-09-15]: https://github.com/latex3/l3build/compare/2022-04-19...2022-09-15
 [2022-04-19]: https://github.com/latex3/l3build/compare/2022-04-12...2022-04-19

Modified: trunk/Master/texmf-dist/doc/latex/l3build/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3build/README.md	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Master/texmf-dist/doc/latex/l3build/README.md	2023-02-16 21:35:01 UTC (rev 65852)
@@ -1,7 +1,7 @@
 l3build: a testing and building system for LaTeX
 =================================================
 
-Release 2022-11-10
+Release 2023-02-16
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex/l3build/l3build.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/man/man1/l3build.1
===================================================================
--- trunk/Master/texmf-dist/doc/man/man1/l3build.1	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Master/texmf-dist/doc/man/man1/l3build.1	2023-02-16 21:35:01 UTC (rev 65852)
@@ -1,4 +1,4 @@
-.TH l3build 1 "2022-11-10"
+.TH l3build 1 "2023-02-16"
 .SH NAME
 l3build \- Checking and building packages
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/scripts/l3build/l3build-check.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/l3build/l3build-check.lua	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Master/texmf-dist/scripts/l3build/l3build-check.lua	2023-02-16 21:35:01 UTC (rev 65852)
@@ -1,6 +1,6 @@
 --[[
 
-File l3build-check.lua Copyright (C) 2018-2022 The LaTeX Project
+File l3build-check.lua Copyright (C) 2018-2023 The LaTeX Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -126,8 +126,8 @@
     -- Zap line numbers from \show, \showbox, \box_show and the like:
     -- do this before wrapping lines
     line = gsub(line, "^l%.%d+ ", "l. ...")
-    -- Also from lua stack traces.
-    line = gsub(line, "lua:%d+: in function", "lua:...: in function")
+    -- Also from Lua stack traces
+    line = gsub(line, "lua:%d+:", "lua:...:")
     -- Allow for wrapped lines: preserve the content and wrap
     -- Skip lines that have an explicit marker for truncation
     if len(line) == maxprintline  and
@@ -778,8 +778,7 @@
   rmfile(testdir,name .. logext)
   local errlevels = {}
   for i = 1, checkruns do
-    errlevels[i] = run(
-      testdir,
+    errlevels[i] = runcmd(
       -- No use of localdir here as the files get copied to testdir:
       -- avoids any paths in the logs
       os_setenv .. " TEXINPUTS=." .. localtexmf()
@@ -788,13 +787,6 @@
       os_setenv .. " LUAINPUTS=." .. localtexmf()
         .. (checksearch and os_pathsep or "")
         .. os_concat ..
-      -- Avoid spurious output from (u)pTeX
-      os_setenv .. " GUESS_INPUT_KANJI_ENCODING=0"
-        .. os_concat ..
-      -- Allow for local texmf files
-      os_setenv .. " TEXMFCNF=." .. os_pathsep
-        .. os_concat ..
-      set_epoch_cmd(epoch, forcecheckepoch) ..
       -- Ensure lines are of a known length
       os_setenv .. " max_print_line=" .. maxprintline
         .. os_concat ..
@@ -803,7 +795,8 @@
         .. setup(lvtfile)
         .. (hide and (" > " .. os_null) or "")
         .. os_concat ..
-      runtest_tasks(jobname(lvtfile),i)
+      runtest_tasks(jobname(lvtfile),i),
+      testdir
     )
     -- Break the loop if the result is stable
     if breakout and i < checkruns then

Modified: trunk/Master/texmf-dist/scripts/l3build/l3build-manifest.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/l3build/l3build-manifest.lua	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Master/texmf-dist/scripts/l3build/l3build-manifest.lua	2023-02-16 21:35:01 UTC (rev 65852)
@@ -58,6 +58,8 @@
   printline = "Manifest written to " .. manifestfile
   print((printline:gsub(".","*")))  print(printline)  print((printline:gsub(".","*")))
 
+  return 0
+
 end
 
 --[[

Modified: trunk/Master/texmf-dist/scripts/l3build/l3build-typesetting.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/l3build/l3build-typesetting.lua	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Master/texmf-dist/scripts/l3build/l3build-typesetting.lua	2023-02-16 21:35:01 UTC (rev 65852)
@@ -35,18 +35,6 @@
 
 local os_type = os.type
 
-function dvitopdf(name, dir, engine, hide)
-  run(
-    dir,
-    set_epoch_cmd(epoch, forcecheckepoch) ..
-    "dvips " .. name .. dviext
-      .. (hide and (" > " .. os_null) or "")
-      .. os_concat ..
-    "ps2pdf " .. ps2pdfopt .. name .. psext
-      .. (hide and (" > " .. os_null) or "")
-  )
-end
-
 -- An auxiliary used to set up the environmental variables
 function runcmd(cmd,dir,vars)
   dir = dir or "."
@@ -67,6 +55,17 @@
   return run(dir,set_epoch_cmd(epoch, forcedocepoch) .. env .. os_concat .. cmd)
 end
 
+function dvitopdf(name, dir, engine, hide)
+  runcmd(
+    "dvips " .. name .. dviext
+      .. (hide and (" > " .. os_null) or "")
+      .. os_concat ..
+    "ps2pdf " .. ps2pdfopt .. name .. psext
+      .. (hide and (" > " .. os_null) or ""),
+    dir
+  )
+end
+
 function biber(name,dir)
   if fileexists(dir .. "/" .. name .. ".bcf") then
     return

Modified: trunk/Master/texmf-dist/scripts/l3build/l3build.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/l3build/l3build.lua	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Master/texmf-dist/scripts/l3build/l3build.lua	2023-02-16 21:35:01 UTC (rev 65852)
@@ -25,7 +25,7 @@
 --]]
 
 -- Version information
-release_date = "2022-11-10"
+release_date = "2023-02-16"
 
 -- File operations are aided by the LuaFileSystem module
 local lfs = require("lfs")

Modified: trunk/Master/texmf-dist/source/latex/l3build/l3build.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3build/l3build.dtx	2023-02-16 21:34:35 UTC (rev 65851)
+++ trunk/Master/texmf-dist/source/latex/l3build/l3build.dtx	2023-02-16 21:35:01 UTC (rev 65852)
@@ -1,6 +1,6 @@
 % \iffalse
 %
-% File l3build.dtx (C) Copyright 2014-2022 The LaTeX Project
+% File l3build.dtx (C) Copyright 2014-2023 The LaTeX Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -236,7 +236,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2022-11-10}
+% \date{Released 2023-02-16}
 %
 % \maketitle
 % \tableofcontents
@@ -1129,7 +1129,7 @@
 %       if run == 1 then
 %         return "biber " .. name
 %       else
-%         return 0
+%         return ""
 %       end
 %     end
 %   \end{lstlisting}
@@ -1553,7 +1553,7 @@
 % the zip file to be uploaded. You may wish to specify that this file
 % is ignored by any version control in that directory (using
 % |.gitignore| or similar). Or alternatively you can use the
-% |uploadconfig.curl_file| field in the |build.lua| file to specify an
+% |uploadconfig.curlopt_file| field in the |build.lua| file to specify an
 % alternative name or location for this file.
 %
 % \paragraph{Validating}



More information about the tex-live-commits mailing list.