diff options
-rw-r--r-- | Build/source/texk/texlive/linked_scripts/l3build/l3build.lua | 2 | ||||
-rwxr-xr-x | Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl | 39 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3build/CHANGELOG.md | 12 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3build/README.md | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/l3build/l3build.pdf | bin | 750889 -> 750224 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/l3build.1 | 154 | ||||
-rw-r--r-- | Master/texmf-dist/doc/man/man1/l3build.man1.pdf | bin | 15764 -> 16007 bytes | |||
-rw-r--r-- | Master/texmf-dist/scripts/l3build/l3build-aux.lua | 16 | ||||
-rw-r--r-- | Master/texmf-dist/scripts/l3build/l3build-check.lua | 9 | ||||
-rw-r--r-- | Master/texmf-dist/scripts/l3build/l3build-help.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/scripts/l3build/l3build-typesetting.lua | 5 | ||||
-rwxr-xr-x | Master/texmf-dist/scripts/l3build/l3build.lua | 2 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/l3build/l3build.dtx | 8 |
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 Binary files differindex af2c8688f0b..93f4b8f3abe 100644 --- a/Master/texmf-dist/doc/latex/l3build/l3build.pdf +++ b/Master/texmf-dist/doc/latex/l3build/l3build.pdf 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 Binary files differindex 76bd5b2e58c..037e91e199d 100644 --- a/Master/texmf-dist/doc/man/man1/l3build.man1.pdf +++ b/Master/texmf-dist/doc/man/man1/l3build.man1.pdf 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} |