Skip to content
This repository has been archived by the owner on Mar 6, 2023. It is now read-only.

Commit

Permalink
sync with experimental revision 7420.
Browse files Browse the repository at this point in the history
git-svn-id: https://serveur-svn.lri.fr/svn/modhel/luatex/trunk@7421 0b2b3880-5936-4365-a048-eb17d2e5a6bf
  • Loading branch information
luigiScarso committed Mar 28, 2021
1 parent 16f2f7c commit eee644d
Show file tree
Hide file tree
Showing 125 changed files with 7,553 additions and 11,416 deletions.
30 changes: 29 additions & 1 deletion manual/luatex-tex.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% language=uk
% engine=luatex language=uk

% lua.newtable

Expand Down Expand Up @@ -1969,6 +1969,34 @@ \subsubsection{\type {getlocallevel}}
{kpse_init} is explicitly set to \type {false}. In all other cases, the normal
values from \type {texmf.cnf} are used.
You can kick in your own nesting level visualizer, for instance:
\starttyping
callback.register("input_level_string",function(n)
if tex.tracingmacros > 0 and tex.count.tracingstacklevels > 0 then
if tex.tracingmacros > 1 then
return "! " .. string.rep(">",n) .. " "
end
end)
\stoptyping
Or, in sync with other engines (not checked):
\newcount\tracingstacklevels
\starttyping
\directlua {
callback.register("input_level_string", function(n)
if tex.tracingmacros > 0 then
local l = tex.count.tracingstacklevels
if l > 0 then
return string.rep("~",l) .. string.rep(".",n-l)
end
end
end)
}
\stoptyping
\stopsection
\startsection[title={The \type {texio} library}][library=texio]
Expand Down
Binary file modified manual/luatex.pdf
Binary file not shown.
8 changes: 8 additions & 0 deletions source/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
2021-03-23 Karl Berry <[email protected]>

* tardate.ac (tex_live_tardate): 2020-03-23 for TL'21.

2021-02-17 Karl Berry <[email protected]>

* version.ac: 2021, no more /dev.

2020-05-28 Karl Berry <[email protected]>

* Makefile.am (world): do not descend into $(texlinks_dir) if it
Expand Down
46 changes: 25 additions & 21 deletions source/README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
$Id: README 54144 2020-03-06 23:51:39Z karl $
$Id: README 58223 2021-03-08 18:14:30Z karl $
Public domain. Originally written 2005 by Karl Berry.

For a high-level overview of building TeX Live, see
Expand Down Expand Up @@ -32,41 +32,45 @@ aarch64-linux:
gcc (Debian 8.3.0-6) 8.3.0
./Build --enable-arm-neon=check

armhf-linux:
Raspbian/Raspberry Pi OS (Debian Buster)
gcc (Raspbian 8.3.0-6+rpi1) 8.3.0
./Build --enable-xindy CLISP=${BUILD_ROOT_DIR}/clisp/clisp-build/clisp}

i386-cygwin, x86_64-cygwin: gcc-10.2.0, cygwin-3.1.7
TL_CONFIGURE_ARGS="--enable-xindy --enable-shared CLISP=/path/to/clisp.exe
LDFLAGS='-Wl,--no-insert-timestamp -Wl,--stack,0x800000'" \
./Build


i386-freebsd, amd64-freebsd:
Built on contextgarden, see below.
FreeBSD 11.4

i386-linux: see travis below.

i386-netbsd, amd64-netbsd:
NetBSD/amd64 9.0
gcc version 7.4.0 (nb3 20190319)
NetBSD/amd64 9.1
gcc version 7.5.0 (nb4 20200810)
TL_MAKE=gmake CC=gcc CXX=g++ \
CFLAGS=-D_NETBSD_SOURCE \
CXXFLAGS='-D_NETBSD_SOURCE -std=c++11' \
LDFLAGS='-L/usr/X11R7/lib -Wl,-rpath,/usr/X11R7/lib' \
./Build --enable-xindy CLISP=/usr/local/bin/clisp
Except that we take Nelson's asy build.

i386-freebsd, amd64-freebsd:
http://anthesphoria.net/FreeBSD/TeXLive-2018/ has details for 2018.
2019 and forward built on contextgarden (see below).
In 2020: FreeBSD 12.1-RELEASE-p1
(e.g.,
https://build.contextgarden.net/#/builders/56/builds/141/steps/2/logs/build _info
) Except that we take Nelson's asy build.

i386-linux: see travis below.

i386-openbsd, amd64-openbsd:
e.g., see CONFIGURE_ARGS in the Makefile in
http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/print/texlive/base/

i386-solaris, x86_64-solaris:
Built on contextgarden, see below.
Solaris 10, gcc 5.5. See doc/README.solaris.

i386-cygwin, x86_64-cygwin: gcc-4.8.2, cygwin-1.7.29.
./Build (with --enable-xindy for i386).
universal-darwin: See Master/source/mactexdoc.tar.xz.

x86_64-darwin: See Master/source/mactexdoc.tar.xz.
win32:
Makefiles written by hand, see Master/source/w32tex-src.tar.xz.
Visual Studio 2010 and Visual Studio 2015.

x86_64-darwinlegacy:
Mac OS X 10.6, clang 5.0, libc++ required
auxiliary installer binaries: Mac OS X 10.6, gcc -std=c99.
https://github.com/TeXLive-M/texlive-buildbot
http://build.contextgarden.net/waterfall?tag=c/texlive
(These links have info on all platforms built by Mojca.)
Expand Down
6 changes: 3 additions & 3 deletions source/README.1prerequisites
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ notably FreeType; all the TL-maintained directories (and
Automake/Autoconf output in general) work with any reasonable 'make'.

A C++11 compiler is similarly required because of the third-party
libraries ICU and Poppler; the program 'dvisvgm' also requires C++11.
It is possible to build everything else with older compilers, but you
have to remove the C++11-dependent sources. *Note Build one package::.
library ICU; the program 'dvisvgm' also requires C++11. It is possible
to build everything else with older compilers, but you have to remove
the C++11-dependent sources. *Note Build one package::.

A few programs in the tree have additional requirements:

Expand Down
44 changes: 28 additions & 16 deletions source/README.2building
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,8 @@ invoked to build an individual program or library, first building any
required libraries.

Here is an example from start to finish for working on 'dvipdfm-x'.
(Unfortunately, this does not suffice for building one, or a subset, of
the TeX engines; see the next section.)
(Unfortunately, this does not suffice for building the TeX engines; see
the next section.)

mkdir mydir && cd mydir # new working directory

Expand Down Expand Up @@ -142,7 +142,7 @@ an older compiler lacking such support, you need to (re)move those
source directories; specifying '--disable' for them does not suffice,
unfortunately. Specifically, before running 'configure':

rm -rf libs/icu libs/poppler libs/graphite2 texk/dvisvgm
rm -rf libs/icu libs/graphite2 texk/dvisvgm

Also, even with '--disable-all-pkgs', dependencies are (currently)
checked. For instance, if a (non-MacOSX) system does not have
Expand All @@ -165,19 +165,31 @@ wanting to build one, or a subset, of the TeX engines (or other Web2c
programs).

The simplest way to do this is to disable everything and then
explicitly specify what to make. For example, to build only LuaTeX:

./configure --disable-all-pkgs # or ./Build
cd Work/texk/web2c # build directory
make luatex # specify target

This works because the 'make' automatically runs 'configure' as
necessary for the dependencies and target. Furthermore, the source tree
can be cut down to just what is needed for the given engine (the
separate pdfTeX and LuaTeX source repositories do this, if you want to
peruse examples).

We hope to improve the situation in the future. Patches are welcome.
explicitly specify what to make. For example, to build only the
original TeX:

cd Work # top build directory
../configure --without-x --disable-shared --disable-all-pkgs \
--enable-tex --disable-synctex -C CFLAGS=-g CXXFLAGS=-g
make
cd texk/web2c # cd engine build directory
make tex # must specify target

The first 'make' run will configure everything, and even build the
libraries, even though the packages are disabled. The source tree can
be cut down to just what is needed for the given engine (the separate
pdfTeX and LuaTeX source repositories do this, for example), but see
caveats in previous section.

If you want to debug an X-related program or shared library setup, or
other variants, change the 'configure' options accordingly. Either
'../Build' or '../configure' can be run.

Then it is necessary to again specify the target engine ('tex', in
the above) in the 'make'.

All this is somewhat unfortunate. We hope to improve the situation
in the future. Patches are welcome.

4.7 Cross compilation
=====================
Expand Down
81 changes: 56 additions & 25 deletions source/README.4layout
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ many extra hassles, so don't do that, tempting as it may be.
Currently the versions we use are:

autoconf (GNU Autoconf) 2.69
automake (GNU automake) 1.16.1
bison (GNU Bison) 3.5.2
automake (GNU automake) 1.16.2
bison (GNU Bison) 3.7.4
flex 2.6.0
ltmain.sh (GNU libtool) 2.4.6
m4 (GNU M4) 1.4.18
Expand Down Expand Up @@ -504,45 +504,76 @@ In that case, as above, we put the upstream sources into a subdirectory
'configure' in this original '...-src' directory, but only in our own
directory; but we do compile using the source files in '...-src'.

So, to summarize the files that we must (usually) create:
So, to summarize the files that must (usually) be created inside a
new TL source directory ('texk/newprog' or 'utils/newprog'):

'ac/withenable.ac'
The 'KPSE_ENABLE_PROG' call just explained.

'configure.ac'
'Makefile.am'
By merging the contents of the original 'configure.ac' (if
provided) and a comparable program already in TL. There is no magic
recipe, it's necessary to think about needs to be done in the
original vs. in TeX Live.
provided) and a comparable program already in TL. In the above
example, one line that will be needed in 'configure.ac' (can be
added before the 'AC_CONFIG_FILES' at the end) is:

AC_SUBST([NEWPROG_TREE], [newprog-src])

and then use '@NEWPROG_TREE@' in 'Makefile.am' where needed.

In general, there is no magic recipe for this part of the job.
It's necessary to think about what needs to be done in the original
vs. in TeX Live. It's useful to look at the setup for the most
comparable programs already in TL that you can find. It's also
useful to grep the entire 'Build/source' tree for whatever you can
think of to investigate how something is done. Most of the
TL-specific macros are defined in 'Build/source/m4/*'.

'TLpatches/TL-Changes'
Actions taken after getting the original source tree; typically
removal of derived or unused common files.
First actions taken after getting the original source tree;
typically removal of derived or unused common files.

'TLpatches/patch-...'
If any changes are needed to the original sources, record the
patches here so they can be applied next time. And send them
upstream so that perhaps they won't have to be.
patches here so they can be applied next time. Also, send them
upstream so that we don't have to maintain them forever.

'ChangeLog'
Record all TL-specific changes, now and in the future.

Then, run GNU 'autoreconf' in the new directory (*note Build system
tools::). After that works, 'svn add' the necessary files, including
the generated 'Makefile.in aclocal.m4 configure', and 'svn:ignore' the
Automake cache 'autom4te.cache'. (This is so people checking out the TL
source tree do not have to run any autotools, but can simply run
'configure'.)

Then, run the TL tool 'reautoconf' in the top-level TL 'source/'
directory, to incorporate the new program into the build tree.

Then, run (and rerun) a build until the program compiles and tests
successfully, probably involving rerunning autoreconf in the source
directory, 'make' in the build directory, etc.

After final success, don't forget to commit.
After populating the new TL source directory ('.../newprog/', in the
above), run GNU 'autoreconf' there (*note Build system tools::). Once
that works, if you are the one who's eventually going to commit the new
package, 'svn add' the necessary files, including the generated
'Makefile.in aclocal.m4 configure', and 'svn:ignore' the Automake cache
'autom4te.cache'. (This is so people checking out the TL source tree do
not have to run any autotools, but can simply run 'configure'.)

To reiterate: do not fail to commit the generated 'configure' and
other files. The m4 code in 'kpse-pkgs.m4' uses the existence of
'configure' to determine whether to descend into (and configure) a given
subdirectory.

Then, run the TL tool 'reautoconf' in the top-level TL
'Build/source/' directory, to incorporate the new program into the build
tree. It is good to then rebuild the whole tree (e.g., using TL's
'Build/Build' script) to get all the necessary files generated.

It will probably fail. So then you need to keep at it until the
program compiles and tests successfully. The most efficient way is to
rerun 'autoreconf' as needed in the new source directory
('Build/source/.../newprog'), then 'make' in the corresponding build
directory ('Build/work/.../newprog'), then 'make check', etc. In the
end, also make sure that the whole tree builds from scratch.

After final success, don't forget to commit. (Or email the TL
maintainers with the patch.)

Caveat: adding a new TeX engine is not completely different, but it's
not all that similar, either. In that case, the work is done inside a
new subdirectory of 'texk/web2c/'. Many things are common to all the
engines, other things need to be copied and possibly modified for each
one, yet others are unique to each. No general recipe is possible.

6.6.2 Adding a new generic library module
-----------------------------------------
Expand Down
19 changes: 1 addition & 18 deletions source/README.5configure
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,7 @@ of 'DVI' and 'GF' files must always be <2GB, due to the file format
specifications.

With LFS, there is no fixed limit on the size of PDF files created by
'pdftex' or PostScript files created by 'dvips'. The size of PDF images
included by 'pdftex' or 'luatex' must, however, be <2GB when using
'poppler' version 0.22 or before (even on 64-bit systems with LFS).
'pdftex' or PostScript files created by 'dvips'.

7.1.4 '--disable-missing'
-------------------------
Expand Down Expand Up @@ -362,21 +360,6 @@ is one of:
to generate the specified type of file dynamically. The default can be
overridden by the user in any case (*note kpathsea library::).

7.3.2 Configure options for system 'poppler'
--------------------------------------------

Building XeTeX requires 'poppler', either from the TL tree or system
headers and library. Building pdfTeX requires either 'xpdf' from the
TeX Live tree or system 'poppler' headers and library.

'--with-system-poppler'
Use a system version (0.18 or newer) of 'poppler' for LuaTeX (or
LuaJITTeX) and XeTeX, and use 'pkg-config' to obtain the required flags.

'--with-system-xpdf'
Use a system version (0.12 or newer) of 'poppler' (and 'pkg-config') for
pdfTeX instead of 'xpdf' from the TL tree. *Note --disable-largefile::.

7.4 Variables for configure
===========================

Expand Down
4 changes: 2 additions & 2 deletions source/build-aux/config.sub
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2021 Free Software Foundation, Inc.

timestamp='2021-01-08'
timestamp='2021-03-10'

# 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
Expand Down Expand Up @@ -1712,7 +1712,7 @@ case $os in
| bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
| ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
| udi* | lites* | ieee* | go32* | aux* | hcos* \
| chorusrdb* | cegcc* | glidix* \
| chorusrdb* | cegcc* | glidix* | serenity* \
| cygwin* | msys* | pe* | moss* | proelf* | rtems* \
| midipix* | mingw32* | mingw64* | mint* \
| uxpv* | beos* | mpeix* | udk* | moxiebox* \
Expand Down
Loading

0 comments on commit eee644d

Please sign in to comment.