summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/texlive/linked_scripts/l3build/l3build.lua2
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/tlmgr.pl39
-rw-r--r--Master/texmf-dist/doc/latex/l3build/CHANGELOG.md12
-rw-r--r--Master/texmf-dist/doc/latex/l3build/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3build/l3build.pdfbin750889 -> 750224 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/l3build.1154
-rw-r--r--Master/texmf-dist/doc/man/man1/l3build.man1.pdfbin15764 -> 16007 bytes
-rw-r--r--Master/texmf-dist/scripts/l3build/l3build-aux.lua16
-rw-r--r--Master/texmf-dist/scripts/l3build/l3build-check.lua9
-rw-r--r--Master/texmf-dist/scripts/l3build/l3build-help.lua2
-rw-r--r--Master/texmf-dist/scripts/l3build/l3build-typesetting.lua5
-rwxr-xr-xMaster/texmf-dist/scripts/l3build/l3build.lua2
-rw-r--r--Master/texmf-dist/source/latex/l3build/l3build.dtx8
13 files changed, 127 insertions, 124 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua b/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
index 5b40bc51115..bb53a2ce55a 100644
--- a/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
+++ b/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2024-02-08"
+release_date = "2024-05-27"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
index 1d4315f3cee..9aa6a5f8e3e 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
-# $Id: tlmgr.pl 71079 2024-04-25 22:15:30Z karl $
+# $Id: tlmgr.pl 71331 2024-05-24 07:30:36Z preining $
# Copyright 2008-2024 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
@@ -8,8 +8,8 @@
use strict; use warnings;
-my $svnrev = '$Revision: 71079 $';
-my $datrev = '$Date: 2024-04-26 00:15:30 +0200 (Fri, 26 Apr 2024) $';
+my $svnrev = '$Revision: 71331 $';
+my $datrev = '$Date: 2024-05-24 09:30:36 +0200 (Fri, 24 May 2024) $';
my $tlmgrrevision;
my $tlmgrversion;
my $prg;
@@ -1821,6 +1821,22 @@ sub action_info {
# SEARCH
#
+sub format_search_tlpdb_result {
+ my $ret = shift;
+ my $retfile = '';
+ my $retdesc = '';
+ for my $pkg (sort keys %{$ret->{"packages"}}) {
+ $retdesc .= "$pkg - " . $ret->{"packages"}{$pkg} . "\n";
+ }
+ for my $pkg (sort keys %{$ret->{"files"}}) {
+ $retfile .= "$pkg:\n";
+ for my $f (@{$ret->{"files"}{$pkg}}) {
+ $retfile .= "\t$f\n";
+ }
+ }
+ return ($retfile, $retdesc);
+}
+
sub action_search {
my ($r) = @ARGV;
my $tlpdb;
@@ -1855,17 +1871,7 @@ sub action_search {
my $json = TeXLive::TLUtils::encode_json($ret);
print($json);
} else {
- my $retfile = '';
- my $retdesc = '';
- for my $pkg (sort keys %{$ret->{"packages"}}) {
- $retdesc .= "$pkg - " . $ret->{"packages"}{$pkg} . "\n";
- }
- for my $pkg (sort keys %{$ret->{"files"}}) {
- $retfile .= "$pkg:\n";
- for my $f (@{$ret->{"files"}{$pkg}}) {
- $retfile .= "\t$f\n";
- }
- }
+ my ($retfile, $retdesc) = format_search_tlpdb_result($ret);
print ($retdesc);
print ($retfile);
}
@@ -4328,7 +4334,8 @@ sub show_one_package_detail {
}
# we didn't find a package like this, so use search
info("$prg: cannot find package $pkg, searching for other matches:\n");
- my ($foundfile, $founddesc) = search_tlpdb($remotetlpdb,$pkg,1,1,0);
+ my $ret = search_tlpdb($remotetlpdb,$pkg,1,1,0);
+ my ($foundfile, $founddesc) = format_search_tlpdb_result($ret);
print "\nPackages containing \`$pkg\' in their title/description:\n";
print $founddesc;
print "\nPackages containing files matching \`$pkg\':\n";
@@ -10584,7 +10591,7 @@ This script and its documentation were written for the TeX Live
distribution (L<https://tug.org/texlive>) and both are licensed under the
GNU General Public License Version 2 or later.
-$Id: tlmgr.pl 71079 2024-04-25 22:15:30Z karl $
+$Id: tlmgr.pl 71331 2024-05-24 07:30:36Z preining $
=cut
# test HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html
diff --git a/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
index ea466dfcccd..f2231144d8b 100644
--- a/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
@@ -7,6 +7,15 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2024-05-27]
+
+### Changed
+- Respect `--rerun` in `doc` target (issue \#112)
+
+### Fixed
+- Skip unknown engines correctly in `l3build save`
+- Handling of environment settings in some cases (issue \#353)
+
## [2024-02-08]
### Changed
@@ -776,7 +785,8 @@ this project uses date-based 'snapshot' version identifiers.
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2024-02-08...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2024-05-27...HEAD
+[2024-05-27]: https://github.com/latex3/l3build/compare/2024-02-08...2024-05-27
[2024-02-08]: https://github.com/latex3/l3build/compare/2024-01-18...2024-02-08
[2024-01-18]: https://github.com/latex3/l3build/compare/2024-01-09...2024-01-18
[2024-01-09]: https://github.com/latex3/l3build/compare/2024-01-04...2024-01-09
diff --git a/Master/texmf-dist/doc/latex/l3build/README.md b/Master/texmf-dist/doc/latex/l3build/README.md
index b5172bbf210..1b49dc0b0c2 100644
--- a/Master/texmf-dist/doc/latex/l3build/README.md
+++ b/Master/texmf-dist/doc/latex/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX
=================================================
-Release 2024-02-08
+Release 2024-05-27
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3build/l3build.pdf b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
index af2c8688f0b..93f4b8f3abe 100644
--- a/Master/texmf-dist/doc/latex/l3build/l3build.pdf
+++ b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/l3build.1 b/Master/texmf-dist/doc/man/man1/l3build.1
index b983494b73d..d42e486f3ca 100644
--- a/Master/texmf-dist/doc/man/man1/l3build.1
+++ b/Master/texmf-dist/doc/man/man1/l3build.1
@@ -1,91 +1,71 @@
-.TH l3build 1 "2024-02-08"
+.TH L3BUILD 1 "2024-05-27" "LaTeX"
+
.SH NAME
-l3build \- Checking and building packages
+l3build
+
.SH SYNOPSIS
-l3build <target> [<options>] [<names>]
+ Usage l3build <target> [<options>] [<names>]
+
.SH DESCRIPTION
-The l3build system is a Lua script for building TeX packages, with particular
-emphasis on regression testing. It is written in cross-platform Lua code, so
-can be used by any modern TeX distribution with the texlua interpreter. A
-package for building with l3build can be written in any TeX dialect; its
-defaults are set up for LaTeX packages written in the DocStrip style.
-.PP
-The standard l3build targets are:
-.IP check
-Runs all automated tests
-.IP clean
-Cleans out directory tree
-.IP ctan
-Creates CTAN-ready archive
-.IP doc
-Typesets all documentation files
-.IP install
-Installs files into the local texmf tree
-.IP manifest
-Creates a manifest file
-.IP save
-Saves test validation log
-.IP tag
-Updates release tags in files
-.IP uninstall
-Uninstalls files from the local texmf tree
-.IP unpack
-Unpacks the source files into the build tree
-.IP upload
-Sends archive to CTAN for public release
+------
+
+The l3build module is designed to support the development of
+high-quality LaTeX code by providing:
+* A unit testing system
+* Automated typesetting of code sources
+* A reliable packaging system for CTAN releases
+
+The bundle consists of a Lua script to run the tasks and a
+.tex file which provides the testing environment. These were
+originally developed for supporting LaTeX development but
+are designed such that they can be readily used by others. Full
+documentation is provided.
+
+.SH COMMANDS
+Valid targets are:
+ check Runs all automated tests
+ clean Cleans out directory tree
+ ctan Creates CTAN-ready archive
+ doc Typesets all documentation files
+ install Installs files into the local texmf tree
+ manifest Creates a manifest file
+ save Saves test validation log
+ tag Updates release tags in files
+ uninstall Uninstalls files from the local texmf tree
+ unpack Unpacks the source files into the build tree
+ upload Sends archive to CTAN for public release
+
.SH OPTIONS
-Various options apply
-.IP --config|-c
-Sets the config(s) used for running tests
-.IP --date
-Sets the date to insert into sources
-.IP --debug
-Runs target in debug mode
-.IP --dirty
-Skips cleaning up the test area
-.IP --dry-run
-Dry run for install or upload
-.IP --email
-Email address of CTAN uploader
-.IP --engine|-e
-Sets the engine(s) to use for running test
-.IP --epoch
-Sets the epoch for tests and typesetting
-.IP --file|-F
-Takes the upload announcement from the given file
-.IP --first
-Name of first test to run
-.IP --full
-Installs all files
-.IP --halt-on-error|-H
-Stops running tests after the first failure
-.IP --help|-h
-Prints help message and exits
-.IP --last
-Name of last test to run
-.IP --message|-m
-Text for upload announcement message
-.IP --quiet|-q
-Suppresses TeX output when unpacking
-.IP --rerun
-Skips setup: simply reruns tests
-.IP --show-log-on-error
-Shows the full log of the failure with 'halt-on-error'
-.IP --show-saves|-S
-Shows the invocation to update failing .tlg files
-.IP --shuffle
-Shuffles order of tests
-.IP --stdengine|-s
-Run tests with the std engine (config dependent)
-.IP --texmfhome
-Location of user texmf tree
-.IP --version
-Prints version information and exits
-.SH BUGS
-.SH AUTHOR
-The LaTeX Project (latex-team@latex-project.org)
-.PP
-Please log issues on the GitHub homepage:
-https://github.com/latex3/l3build/issues.
-.SH SEE ALSO
-See l3build.pdf for more details.
+Valid options are:
+ --config|-c Sets the config(s) used for running tests
+ --date Sets the date to insert into sources
+ --debug Runs target in debug mode
+ --dirty Skips cleaning up the test area
+ --dry-run Dry run for install or upload
+ --email Email address of CTAN uploader
+ --engine|-e Sets the engine(s) to use for running test
+ --epoch Sets the epoch for tests and typesetting
+ --file|-F Takes the upload announcement from the given file
+ --first Name of first test to run
+ --full Installs all files
+ --halt-on-error|-H Stops running tests after the first failure
+ --help|-h Prints this message and exits
+ --last Name of last test to run
+ --message|-m Text for upload announcement message
+ --quiet|-q Suppresses TeX output when unpacking
+ --rerun Skips setup: simply reruns tests
+ --show-log-on-error Shows the full log of the failure with 'halt-on-error'
+ --show-saves|-S Shows the invocation to update failing .tlg files
+ --shuffle Shuffles order of tests
+ --stdengine|-s Run tests with the std engine (config dependent)
+ --texmfhome Location of user texmf tree
+ --version Prints version information and exits
+
+.SH "SEE ALSO"
+Full manual available via 'texdoc l3build'.
+
+Repository : https://github.com/latex3/l3build
+
+Bug tracker : https://github.com/latex3/l3build/issues
+.SH AUTHORS
+Copyright (C) 2014-2024 The LaTeX Project
diff --git a/Master/texmf-dist/doc/man/man1/l3build.man1.pdf b/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
index 76bd5b2e58c..037e91e199d 100644
--- a/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/l3build/l3build-aux.lua b/Master/texmf-dist/scripts/l3build/l3build-aux.lua
index dd8c410fc09..bf0b85c6989 100644
--- a/Master/texmf-dist/scripts/l3build/l3build-aux.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build-aux.lua
@@ -189,9 +189,9 @@ function runcmd(cmd,dir,vars)
dir = abspath(dir)
vars = vars or {}
-- Allow for local texmf files
- local env = ""
- if not match(checkformat,"^context$") then
- env = os_setenv .. " TEXMFCNF=." .. os_pathsep .. os_concat
+ local env
+ if checkformat ~= "context" then
+ env = os_setenv .. " TEXMFCNF=." .. os_pathsep
end
local envpaths = "." .. localtexmf() .. os_pathsep
.. abspath(localdir) .. os_pathsep
@@ -201,11 +201,9 @@ function runcmd(cmd,dir,vars)
envpaths = gsub(envpaths,'"','')
end
for _,var in pairs(vars) do
- if env ~= "" then
- env = env .. os_setenv .. " " .. var .. "=" .. envpaths .. os_concat
- else
- env = os_setenv .. " " .. var .. "=" .. envpaths
- end
+ env = (env and (env .. os_concat) or "")
+ .. os_setenv .. " " .. var .. "=" .. envpaths
end
- return run(dir,set_epoch_cmd(epoch, forcedocepoch) .. env .. cmd)
+ return run(dir,set_epoch_cmd(epoch, forcedocepoch)
+ .. (env and (env .. os_concat) or "") .. cmd)
end
diff --git a/Master/texmf-dist/scripts/l3build/l3build-check.lua b/Master/texmf-dist/scripts/l3build/l3build-check.lua
index 812187123a4..d6d30e3e2aa 100644
--- a/Master/texmf-dist/scripts/l3build/l3build-check.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build-check.lua
@@ -778,7 +778,7 @@ function runtest(name, engine, hide, ext, test_type, breakout)
local function setup(file)
return " -jobname=" .. name .. tokens .. ' "\\input ' .. file .. '" '
end
- if match(checkformat,"^context$") then
+ if checkformat == "context" then
function setup(file) return tokens .. ' "' .. file .. '" ' end
end
if match(binary,"make4ht") then
@@ -1119,7 +1119,12 @@ function save(names)
return errorlevel
end
end
- local engines = options["engine"] or {stdengine}
+ local engines
+ if options["engine"] then
+ engines = checkengines -- sanitized by check_engines()
+ else
+ engines = {stdengine}
+ end
if names == nil then
print("Arguments are required for the save command")
return 1
diff --git a/Master/texmf-dist/scripts/l3build/l3build-help.lua b/Master/texmf-dist/scripts/l3build/l3build-help.lua
index 46b0bc45b39..9cad7135ddb 100644
--- a/Master/texmf-dist/scripts/l3build/l3build-help.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build-help.lua
@@ -59,7 +59,7 @@ function help()
if not (match(arg[0], "l3build%.lua$") or match(arg[0],"l3build$")) then
scriptname = arg[0]
end
- print("usage: " .. scriptname .. " <target> [<options>] [<names>]")
+ print("\nUsage: " .. scriptname .. " <target> [<options>] [<names>]")
print("")
print("Valid targets are:")
local longest,t = setup_list(target_list)
diff --git a/Master/texmf-dist/scripts/l3build/l3build-typesetting.lua b/Master/texmf-dist/scripts/l3build/l3build-typesetting.lua
index 8de57f3718d..eaffbe6ae95 100644
--- a/Master/texmf-dist/scripts/l3build/l3build-typesetting.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build-typesetting.lua
@@ -181,7 +181,10 @@ function docinit_hook() return 0 end
-- Typeset all required documents
-- Uses a set of dedicated auxiliaries that need to be available to others
function doc(files)
- local errorlevel = docinit()
+ local errorlevel = 0
+ if not options["rerun"] then
+ errorlevel = docinit()
+ end
if errorlevel ~= 0 then return errorlevel end
local done = {}
local files_unknown = {}
diff --git a/Master/texmf-dist/scripts/l3build/l3build.lua b/Master/texmf-dist/scripts/l3build/l3build.lua
index 5b40bc51115..bb53a2ce55a 100755
--- a/Master/texmf-dist/scripts/l3build/l3build.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build.lua
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2024-02-08"
+release_date = "2024-05-27"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
diff --git a/Master/texmf-dist/source/latex/l3build/l3build.dtx b/Master/texmf-dist/source/latex/l3build/l3build.dtx
index 96c1f0ead88..2433c7a3115 100644
--- a/Master/texmf-dist/source/latex/l3build/l3build.dtx
+++ b/Master/texmf-dist/source/latex/l3build/l3build.dtx
@@ -251,7 +251,7 @@
% }^^A
% }
%
-% \date{Released 2024-02-08}
+% \date{Released 2024-05-27}
%
% \maketitle
% \tableofcontents
@@ -1227,9 +1227,9 @@
% \subsection{Settings in \texttt{texmf.cnf}}
%
% To allow application of non-standard \TeX{} trees or similar non-standard
-% settings, \pkg{l3build} enables searching for a \texttt{texmf.cnf} file
-% by setting the envirnmental variable \texttt{TEXMFCNF}. This might
-% for example be used with a file containing
+% settings, \pkg{l3build} sets the environment variable \texttt{TEXMFCNF}
+% to allow reading of any \texttt{texmf.cnf} file present in the support folder.
+% This might for example be used with a file containing
% \begin{verbatim}
% TEXMFAUXTREES = ../../texmf,
% \end{verbatim}