diff --git a/source/build-aux/texinfo.tex b/source/build-aux/texinfo.tex index 1ddfef4b878255ff954dd3dcd07329a20fdeefed..a32c84197ae98e17d430e13fd049eded7162282f 100644 --- a/source/build-aux/texinfo.tex +++ b/source/build-aux/texinfo.tex @@ -3,7 +3,7 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2023-03-04.12} +\def\texinfoversion{2023-03-27.21} % % Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc. % @@ -1102,27 +1102,33 @@ where each line of input produces a line of output.} % Output page labels information. % See PDF reference v.1.7 p.594, section 8.3.1. +% Page label ranges must be increasing. \ifpdf \def\pagelabels{% \def\title{0 << /P (T-) /S /D >>}% - \edef\roman{\the\romancount << /S /r >>}% - \edef\arabic{\the\arabiccount << /S /D >>}% % - % Page label ranges must be increasing. Remove any duplicates. - % (There is a slight chance of this being wrong if e.g. there is - % a @contents but no @titlepage, etc.) - % - \ifnum\romancount=0 \def\roman{}\fi - \ifnum\arabiccount=0 \def\title{}% - \else - \ifnum\romancount=\arabiccount \def\roman{}\fi - \fi - % - \ifnum\romancount<\arabiccount - \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax + % support @contents at very end of document + \ifnum\contentsendcount=\pagecount + \ifnum\arabiccount<\romancount + \pdfcatalog{/PageLabels << /Nums + [\title + \the\arabiccount << /S /D >> + \the\romancount << /S /r >> + ] >> }\relax + \fi + % no contents in document + \else\ifnum\contentsendcount=0 + \pdfcatalog{/PageLabels << /Nums + [\title + \the\arabiccount << /S /D >> + ] >> }\relax \else - \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax - \fi + \pdfcatalog{/PageLabels << /Nums + [\title + \the\romancount << /S /r >> + \the\contentsendcount << /S /D >> + ] >> }\relax + \fi\fi } \else \let\pagelabels\relax @@ -1131,6 +1137,8 @@ where each line of input produces a line of output.} \newcount\pagecount \pagecount=0 \newcount\romancount \romancount=0 \newcount\arabiccount \arabiccount=0 +\newcount\contentsendcount \contentsendcount=0 + \ifpdf \let\ptxadvancepageno\advancepageno \def\advancepageno{% @@ -4102,7 +4110,6 @@ $$% \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue - \penalty 10021 % for \indexpar \fi } @@ -4219,7 +4226,6 @@ $$% % We can be in inner vertical mode in a footnote, although an % @itemize looks awful there. }% - \penalty 10021 % for \indexpar \flushcr } @@ -4784,17 +4790,11 @@ $$% % and it is the two-letter name of the index. \def\doindex#1{\edef\indexname{#1}\parsearg\doindexxxx} -\def\doindexxxx #1{\indexpar\doind{\indexname}{#1}} +\def\doindexxxx #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx} -\def\docodeindexxxx #1{\indexpar\docind{\indexname}{#1}} - -% End any open paragraph, unless we are immediately after @item in -% @itemize or @enumerate. -\def\indexpar{% -\ifnum\lastpenalty=10021 \else\endgraf\fi -} +\def\docodeindexxxx #1{\docind{\indexname}{#1}} % \definedummyword defines \#1 as \string\#1\space, thus effectively @@ -5351,9 +5351,7 @@ $$% % ..., ready, GO: % \def\safewhatsit#1{\ifhmode - \whatsitpenalty = \lastpenalty #1% - \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip @@ -6819,12 +6817,8 @@ might help (with 'rm \jobname.?? \jobname.??s')% % Get ready to use Arabic numerals again \def\contentsendroman{% \lastnegativepageno = \pageno - \global\pageno = \savepageno - % - % If \romancount > \arabiccount, the contents are at the end of the - % document. Otherwise, advance where the Arabic numerals start for - % the page numbers. - \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi + \global\pageno=1 + \contentsendcount = \pagecount } % Typeset the label for a chapter or appendix for the short contents. @@ -7597,7 +7591,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% \parseargusing\activeparens{\printdefunline\deflineheader}% } \def\deflineheader#1 #2 #3\endheader{% - \defname{#1}{}{#2}\magicamp\defunargs{#3\unskip}% + \printdefname{#1}{}{#2}\magicamp\defunargs{#3\unskip}% } \def\deftypeline{% \doingtypefntrue @@ -7660,14 +7654,14 @@ might help (with 'rm \jobname.?? \jobname.??s')% % @deffn category name args \makedefun{deffn}#1 #2 #3\endheader{% \doind{fn}{\code{#2}}% - \defname{#1}{}{#2}\magicamp\defunargs{#3\unskip}% + \printdefname{#1}{}{#2}\magicamp\defunargs{#3\unskip}% } % @defop category class name args \makedefun{defop}#1 {\defopheaderx{#1\ \putwordon}} \def\defopheaderx#1#2 #3 #4\endheader{% \doind{fn}{\code{#3}\space\putwordon\ \code{#2}}% - \defname{#1\ \code{#2}}{}{#3}\magicamp\defunargs{#4\unskip}% + \printdefname{#1\ \code{#2}}{}{#3}\magicamp\defunargs{#4\unskip}% } % Typed functions: @@ -7676,7 +7670,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% \makedefun{deftypefn}#1 #2 #3 #4\endheader{% \doind{fn}{\code{#3}}% \doingtypefntrue - \defname{#1}{#2}{#3}\defunargs{#4\unskip}% + \printdefname{#1}{#2}{#3}\defunargs{#4\unskip}% } % @deftypeop category class type name args @@ -7684,7 +7678,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% \def\deftypeopheaderx#1#2 #3 #4 #5\endheader{% \doind{fn}{\code{#4}\space\putwordon\ \code{#1\ \code{#2}}}% \doingtypefntrue - \defname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}% + \printdefname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}% } % Typed variables: @@ -7692,14 +7686,14 @@ might help (with 'rm \jobname.?? \jobname.??s')% % @deftypevr category type var args \makedefun{deftypevr}#1 #2 #3 #4\endheader{% \doind{vr}{\code{#3}}% - \defname{#1}{#2}{#3}\defunargs{#4\unskip}% + \printdefname{#1}{#2}{#3}\defunargs{#4\unskip}% } % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvheaderx{#1\ \putwordof}} \def\deftypecvheaderx#1#2 #3 #4 #5\endheader{% \doind{vr}{\code{#4}\space\putwordof\ \code{#2}}% - \defname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}% + \printdefname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}% } % Untyped variables: @@ -7716,7 +7710,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% - \defname{#1}{}{#2}\defunargs{#3\unskip}% + \printdefname{#1}{}{#2}\defunargs{#3\unskip}% } % Remaining @defun-like shortcuts: @@ -7732,14 +7726,14 @@ might help (with 'rm \jobname.?? \jobname.??s')% \makedefun{defivar}{\defcvheaderx\putwordInstanceVariableof} \makedefun{deftypeivar}{\deftypecvheaderx\putwordInstanceVariableof} -% \defname, which formats the name of the @def (not the args). +% \printdefname, which formats the name of the @def (not the args). % #1 is the category, such as "Function". % #2 is the return type, if any. % #3 is the function name. % % We are followed by (but not passed) the arguments, if any. % -\def\defname#1#2#3{% +\def\printdefname#1#2#3{% \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent @@ -7864,7 +7858,7 @@ might help (with 'rm \jobname.?? \jobname.??s')% % If we encounter &foo, then turn on ()-hacking afterwards \newif\ifampseen -\def\amprm#1 {\ampseentrue{\bf\ }} +\def\amprm#1 {\ampseentrue{\rm\ }} \def\parenfont{% \ifampseen @@ -8188,12 +8182,12 @@ might help (with 'rm \jobname.?? \jobname.??s')% % % We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro % body to be transformed. -% Set \macrobody to the body of the macro, and call \defmacro. +% Set \macrobody to the body of the macro, and call \macrodef. % {\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{% -\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% +\xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}% {\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{% -\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}% +\xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}% % Make @ a letter, so that we can make private-to-Texinfo macro names. \edef\texiatcatcode{\the\catcode`\@} @@ -8412,16 +8406,17 @@ might help (with 'rm \jobname.?? \jobname.??s')% % \xdef is used so that macro definitions will survive the file % they're defined in: @include reads the file inside a group. % -\def\defmacro{% +\def\macrodef{% \let\hash=##% convert placeholders to macro parameter chars \ifnum\paramno=1 - \def\xeatspaces##1{##1}% - % This removes the pair of braces around the argument. We don't - % use \eatspaces, because this can cause ends of lines to be lost - % when the argument to \eatspaces is read, leading to line-based - % commands like "@itemize" not being read correctly. + \long\def\xeatspaces##1{##1}% + % We don't use \xeatspaces for single-argument macros, because we + % want to keep ends of lines. This definition removes \xeatspaces + % when \macrobody is expanded below. \else - \let\xeatspaces\relax % suppress expansion + \def\xeatspaces{\string\xeatspaces}% + % This expands \xeatspaces as a sequence of character tokens, which + % stops \scantokens inserting an extra space after the control sequence. \fi \ifcase\paramno % 0 @@ -8590,40 +8585,35 @@ might help (with 'rm \jobname.?? \jobname.??s')% % @linemacro \parseargdef\linemacro{% - \linegetargs#1 \linegetargs - \expandafter\linegetparamlist\argl;% + \getargs{#1}% now \macname is the macname and \argl the arglist + \ifx\argl\empty + \paramno=0 + \let\hash\relax + \def\paramlist{\hash 1\endlinemacro}% + \else + \expandafter\linegetparamlist\argl;% + \fi \begingroup \macrobodyctxt \usembodybackslash \parselinemacrobody } -% Parse the arguments to a @linemacro line. Set \macname to the name -% of the macro and \argl to the list of arguments. -\def\linegetargs#1 #2\linegetargs{% - \macname={#1}% - \def\argl{#2}% -} - % Build up \paramlist which will be used as the parameter text for the macro. % At the end it will be like "#1 #2 #3\endlinemacro". \def\linegetparamlist#1;{% \paramno=0\def\paramlist{}% - \let\hash\relax \let\xeatspaces\relax - \linegetparamlistxxx#1; % + \let\hash\relax + \linegetparamlistxxx#1,;,% } -\def\linegetparamlistxxx#1 {% +\def\linegetparamlistxxx#1,{% \if#1;\let\next=\linegetparamlistxxxx \else \let\next=\linegetparamlistxxx \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname - {\noexpand\xeatspaces{\hash\the\paramno}}% + {\hash\the\paramno}% \edef\paramlist{\paramlist\hash\the\paramno\space}% \fi\next} \def\linegetparamlistxxxx{% - \ifx\paramlist\empty - \def\paramlist{\hash 1\endlinemacro}% - \else - \expandafter\fixparamlist\paramlist\fixparamlist - \fi + \expandafter\fixparamlist\paramlist\fixparamlist } % Replace final space token \def\fixparamlist#1 \fixparamlist{% @@ -8633,7 +8623,6 @@ might help (with 'rm \jobname.?? \jobname.??s')% % Read the body of the macro, replacing backslash-surrounded variables % {\catcode`\ =\other\long\gdef\parselinemacrobody#1@end linemacro{% -\let\xeatspaces\relax \xdef\macrobody{#1}% \endgroup \linemacrodef @@ -8642,26 +8631,20 @@ might help (with 'rm \jobname.?? \jobname.??s')% % Make the definition \def\linemacrodef{% \let\hash=##% - \let\xeatspaces\relax \expandafter\xdef\csname\the\macname\endcsname{% \bgroup - \noexpand\scanctxt \noexpand\parsearg \expandafter\noexpand\csname\the\macname @@\endcsname } \expandafter\xdef\csname\the\macname @@\endcsname##1{% \egroup \expandafter\noexpand - \csname\the\macname @@@\endcsname##1 \noexpand\endlinemacro - % Note that we append a space to the macro line to terminate the last - % argument in case the final argument is empty. @xeatspaces may be needed - % to remove this space. + \csname\the\macname @@@\endcsname##1\noexpand\endlinemacro } \expandafter\expandafter \expandafter\xdef \expandafter\expandafter\csname\the\macname @@@\endcsname\paramlist{% \newlinechar=13 % split \macrobody into lines - \let\noexpand\xeatspaces\noexpand\eatspaces \noexpand\scantokens{\macrobody}% } } @@ -9659,8 +9642,8 @@ might help (with 'rm \jobname.?? \jobname.??s')% % \def\caption{\docaption\thiscaption} \def\shortcaption{\docaption\thisshortcaption} -\def\docaption{\checkenv\float \bgroup\scanctxt\defcaption} -\def\defcaption#1#2{\egroup \def#1{#2}} +\def\docaption{\checkenv\float \bgroup\scanctxt\docaptionz} +\def\docaptionz#1#2{\egroup \def#1{#2}} % The parameter is the control sequence identifying the counter we are % going to use. Create it if it doesn't exist and assign it to \floatno. diff --git a/source/configure b/source/configure index 81d00c61bc030297cd186adbad34a32191128289..046037f8a176ef1e659ab17d96f8b4a3c0c29bd0 100755 --- a/source/configure +++ b/source/configure @@ -24278,11 +24278,11 @@ msg_compiling="$msg_compiling test "x$srcdir" = x. || msg_compiling="$msg_compiling from sources in $kpse_src" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: -** Configuration summary for $PACKAGE_STRING (2023$with_banner_add): +** Configuration summary for $PACKAGE_STRING (2024$with_banner_add): $msg_compiling" >&5 printf "%s\n" " -** Configuration summary for $PACKAGE_STRING (2023$with_banner_add): +** Configuration summary for $PACKAGE_STRING (2024$with_banner_add): $msg_compiling" >&6; } case $kpse_src$kpse_bld in diff --git a/source/libs/README b/source/libs/README index 04503a894aaf6306b1bc7d9cf1ac128cfd52892d..31b0362e3567ce1a233da9412268e1ba5cacc8cd 100644 --- a/source/libs/README +++ b/source/libs/README @@ -1,4 +1,4 @@ -$Id: README 65992 2023-02-20 23:13:30Z kakuto $ +$Id: README 66694 2023-03-28 06:08:03Z kakuto $ Public domain. Originally created by Karl Berry, 2005. Libraries we compile for TeX Live. @@ -25,10 +25,10 @@ graphite2 1.3.14 - checked 10apr20 http://sourceforge.net/projects/silgraphite/files/graphite2/ (requires C++11) -harfbuzz 7.0.1 - checked 21feb23 - https://github.com/harfbuzz/harfbuzz/releases/tag/7.0.1 +harfbuzz 7.1.0 - checked 28mar23 + https://github.com/harfbuzz/harfbuzz/releases/tag/7.1.0 -icu 70.1 - checked 16jan22 +icu 72.1 - checked 07jan23 https://github.com/unicode-org/icu/releases/ libpaper 1.1.28 - checked 10sep22 diff --git a/source/libs/configure b/source/libs/configure index 053d69e9079c326a609d562263028f4c385664b0..5afa27a7f9f28ab1a217a5b4a255d8ea4988cf2f 100755 --- a/source/libs/configure +++ b/source/libs/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for TeX Live libs 2023. +# Generated by GNU Autoconf 2.71 for TeX Live libs 2024. # # Report bugs to <tex-k@tug.org>. # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='TeX Live libs' PACKAGE_TARNAME='tex-live-libs' -PACKAGE_VERSION='2023' -PACKAGE_STRING='TeX Live libs 2023' +PACKAGE_VERSION='2024' +PACKAGE_STRING='TeX Live libs 2024' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1355,7 +1355,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures TeX Live libs 2023 to adapt to many kinds of systems. +\`configure' configures TeX Live libs 2024 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1426,7 +1426,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TeX Live libs 2023:";; + short | recursive ) echo "Configuration of TeX Live libs 2024:";; esac cat <<\_ACEOF @@ -1611,7 +1611,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TeX Live libs configure 2023 +TeX Live libs configure 2024 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1734,7 +1734,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by TeX Live libs $as_me 2023, which was +It was created by TeX Live libs $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -5242,7 +5242,7 @@ fi # Define the identity of the package. PACKAGE='tex-live-libs' - VERSION='2023' + VERSION='2024' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -6211,7 +6211,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TeX Live libs $as_me 2023, which was +This file was extended by TeX Live libs $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6270,7 +6270,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -TeX Live libs config.status 2023 +TeX Live libs config.status 2024 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/source/libs/harfbuzz/ChangeLog b/source/libs/harfbuzz/ChangeLog index c22536bc5862a82c9b6c77d38ed7e6a0eeee9754..b023344e02572b7c9d98ea97c10de4fdb47ff5d2 100644 --- a/source/libs/harfbuzz/ChangeLog +++ b/source/libs/harfbuzz/ChangeLog @@ -1,3 +1,8 @@ +2023-03-28 Akira Kakuto <kakuto@jcom.zaq.ne.jp> + + Import harfbuzz-7.1.0. + * version.ac, Makefile.am: Adjusted. + 2023-02-21 Akira Kakuto <kakuto@jcom.zaq.ne.jp> Import harfbuzz-7.0.1. diff --git a/source/libs/harfbuzz/Makefile.am b/source/libs/harfbuzz/Makefile.am index 2c990f24ab90a78793bff943de4ed3f94f4336be..5e41f52d3c2a0c1478cb11d4d031784d4759c7ae 100644 --- a/source/libs/harfbuzz/Makefile.am +++ b/source/libs/harfbuzz/Makefile.am @@ -1,4 +1,4 @@ -## $Id: Makefile.am 65798 2023-02-12 04:02:23Z kakuto $ +## $Id: Makefile.am 66694 2023-03-28 06:08:03Z kakuto $ ## Proxy Makefile.am to build harfbuzz for TeX Live. ## ## Copyright 2016-2017 Karl Berry <tex-live@tug.org> @@ -112,6 +112,7 @@ libharfbuzz_a_SOURCES = \ @HARFBUZZ_TREE@/src/hb-ot-tag.cc \ @HARFBUZZ_TREE@/src/hb-ot-tag-table.hh \ @HARFBUZZ_TREE@/src/hb-ot-var-common.hh \ + @HARFBUZZ_TREE@/src/hb-ot-var-cvar-table.hh \ @HARFBUZZ_TREE@/src/hb-outline.cc \ @HARFBUZZ_TREE@/src/hb-outline.hh \ @HARFBUZZ_TREE@/src/hb-paint-extents.cc \ diff --git a/source/libs/harfbuzz/Makefile.in b/source/libs/harfbuzz/Makefile.in index c1eee96eac9a434ed8d85218083bb7b5d2224b63..2b2a13fbbcf65568b2a2711a43288702e75d6b27 100644 --- a/source/libs/harfbuzz/Makefile.in +++ b/source/libs/harfbuzz/Makefile.in @@ -797,6 +797,7 @@ libharfbuzz_a_SOURCES = @HARFBUZZ_TREE@/src/hb-algs.hh \ @HARFBUZZ_TREE@/src/hb-ot-tag.cc \ @HARFBUZZ_TREE@/src/hb-ot-tag-table.hh \ @HARFBUZZ_TREE@/src/hb-ot-var-common.hh \ + @HARFBUZZ_TREE@/src/hb-ot-var-cvar-table.hh \ @HARFBUZZ_TREE@/src/hb-outline.cc \ @HARFBUZZ_TREE@/src/hb-outline.hh \ @HARFBUZZ_TREE@/src/hb-paint-extents.cc \ diff --git a/source/libs/harfbuzz/TLpatches/ChangeLog b/source/libs/harfbuzz/TLpatches/ChangeLog index 3a45c304827664d87ff015add523fe0954bb349f..f59e55f504dd52f22d082a003a07488684a032ea 100644 --- a/source/libs/harfbuzz/TLpatches/ChangeLog +++ b/source/libs/harfbuzz/TLpatches/ChangeLog @@ -1,3 +1,8 @@ +2023-03-28 Akira Kakuto <kakuto@jcom.zaq.ne.jp> + + Imported harfbuzz-7.1.0 source tree from: + https://github.com/harfbuzz/harfbuzz/releases/download/7.1.0/ + 2023-02-21 Akira Kakuto <kakuto@jcom.zaq.ne.jp> Imported harfbuzz-7.0.1 source tree from: diff --git a/source/libs/harfbuzz/TLpatches/TL-Changes b/source/libs/harfbuzz/TLpatches/TL-Changes index 383772522f4d0b678e11cc96aa2bc7f061fd20b1..a22b47ec07aad73981c4f2fcd88665dc4ff61e41 100644 --- a/source/libs/harfbuzz/TLpatches/TL-Changes +++ b/source/libs/harfbuzz/TLpatches/TL-Changes @@ -1,5 +1,5 @@ -Changes applied to the harfbuzz-7.0.1/ tree as obtained from: - https://github.com/harfbuzz/harfbuzz/releases/download/7.0.1/ +Changes applied to the harfbuzz-7.1.0/ tree as obtained from: + https://github.com/harfbuzz/harfbuzz/releases/download/7.1.0/ Removed: COPYING diff --git a/source/libs/harfbuzz/configure b/source/libs/harfbuzz/configure index cc3ba6db2a76a0c57d649608d9ad4b849c18e567..fd8ba8ff07916706503750a34db6cdc97f07755f 100755 --- a/source/libs/harfbuzz/configure +++ b/source/libs/harfbuzz/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for harfbuzz (TeX Live) 7.0.1. +# Generated by GNU Autoconf 2.71 for harfbuzz (TeX Live) 7.1.0. # # Report bugs to <tex-k@tug.org>. # @@ -611,8 +611,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='harfbuzz (TeX Live)' PACKAGE_TARNAME='harfbuzz--tex-live-' -PACKAGE_VERSION='7.0.1' -PACKAGE_STRING='harfbuzz (TeX Live) 7.0.1' +PACKAGE_VERSION='7.1.0' +PACKAGE_STRING='harfbuzz (TeX Live) 7.1.0' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1346,7 +1346,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures harfbuzz (TeX Live) 7.0.1 to adapt to many kinds of systems. +\`configure' configures harfbuzz (TeX Live) 7.1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1418,7 +1418,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of harfbuzz (TeX Live) 7.0.1:";; + short | recursive ) echo "Configuration of harfbuzz (TeX Live) 7.1.0:";; esac cat <<\_ACEOF @@ -1523,7 +1523,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -harfbuzz (TeX Live) configure 7.0.1 +harfbuzz (TeX Live) configure 7.1.0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2064,7 +2064,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by harfbuzz (TeX Live) $as_me 7.0.1, which was +It was created by harfbuzz (TeX Live) $as_me 7.1.0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4823,7 +4823,7 @@ fi # Define the identity of the package. PACKAGE='harfbuzz--tex-live-' - VERSION='7.0.1' + VERSION='7.1.0' # Some tools Automake needs. @@ -5034,9 +5034,9 @@ WARNING_CFLAGS=$kpse_cv_warning_cflags HB_VERSION_MAJOR=7 -HB_VERSION_MINOR=0 -HB_VERSION_MICRO=1 -HB_VERSION=7.0.1 +HB_VERSION_MINOR=1 +HB_VERSION_MICRO=0 +HB_VERSION=7.1.0 ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -8817,7 +8817,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by harfbuzz (TeX Live) $as_me 7.0.1, which was +This file was extended by harfbuzz (TeX Live) $as_me 7.1.0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -8885,7 +8885,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -harfbuzz (TeX Live) config.status 7.0.1 +harfbuzz (TeX Live) config.status 7.1.0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/source/libs/harfbuzz/harfbuzz-src/ChangeLog b/source/libs/harfbuzz/harfbuzz-src/ChangeLog index 759594e33bbd85fcf3afc3fb0ea3e81cab525e23..1111f51303fd2b2f3fffbe90350d92fe2fa50835 100644 --- a/source/libs/harfbuzz/harfbuzz-src/ChangeLog +++ b/source/libs/harfbuzz/harfbuzz-src/ChangeLog @@ -1,3 +1,536 @@ +commit 60841e26187576bff477c1a09ee2ffe544844abc +Author: Khaled Hosny <khaled@aliftype.com> +Date: Fri Mar 3 01:01:49 2023 +0200 + + 7.1.0 + + NEWS | 10 ++++++++++ + configure.ac | 2 +- + docs/harfbuzz-docs.xml | 1 + + meson.build | 2 +- + src/hb-font.cc | 2 +- + src/hb-version.h | 6 +++--- + 6 files changed, 17 insertions(+), 6 deletions(-) + +commit e471ef77f93eeafff2701a31e6c042054ea4f7e1 +Author: Qunxin Liu <qxliu@google.com> +Date: Thu Mar 2 12:40:16 2023 -0800 + + [instancer] fix a runtime error + + runtime error: -1 is outside the range of representable values of type 'unsigned int' + + src/hb-ot-var-cvar-table.hh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 43dbdd9db6abda31d41d06f4c33a826e1b791bd2 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Mar 2 13:42:52 2023 -0700 + + [justify] Document algorithm + + src/hb-shape.cc | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +commit c98bb4cf9c2d73a78773ea9547865fbeaa1ecaff +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Mar 2 13:18:06 2023 -0700 + + [justify] Fix up after recent changes + + Oops. + + src/hb-shape.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit fb067390e422d79b092d9cfe8abb84f0ef8cae05 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Mar 2 11:40:45 2023 -0700 + + [docs] Fix a warning + + docs/harfbuzz-sections.txt | 1 + + 1 file changed, 1 insertion(+) + +commit fe83736e2608eb4697ce1194a69a55234561b620 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Mar 2 11:35:42 2023 -0700 + + [sanitize] Protect against an underflow + + src/hb-sanitize.hh | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +commit 08784baf101aea472c133dcd67604b475ace3772 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Mar 2 10:48:30 2023 -0700 + + [GSUB/GPOS] Fix sanitization in Format1 + + Fixes https://oss-fuzz.com/testcase-detail/5120727025319936 + + src/OT/Layout/GPOS/SinglePosFormat1.hh | 14 ++++++++------ + src/OT/Layout/GSUB/SingleSubstFormat1.hh | 14 ++++++++------ + 2 files changed, 16 insertions(+), 12 deletions(-) + +commit 789717387042ae7855cb61af2ef4b91ee32866a4 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Mar 2 10:38:12 2023 -0700 + + [justify] Fix compiler warnings + + src/hb-shape.cc | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +commit be64cae16489406147848e4613d11de8303e1513 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Mar 2 09:50:38 2023 -0700 + + [map] Another try at fixing old Mac builds + + Maybe fixes https://github.com/harfbuzz/harfbuzz/issues/4138 + + src/hb-map.cc | 4 ++-- + src/hb-map.hh | 12 ------------ + src/test-map.cc | 4 ++-- + 3 files changed, 4 insertions(+), 16 deletions(-) + +commit 67e01c1292821e7b6fc2ab13acddb84ab41b2187 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 20:07:38 2023 -0700 + + [map] Try to work around old Mac compiler bug + + Maybe fixes https://github.com/harfbuzz/harfbuzz/issues/4138 + + src/hb-map.hh | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit e359f46a202899e0ee6dab1fec3c4cc325b9509c +Author: Khaled Hosny <khaled@aliftype.com> +Date: Thu Mar 2 03:06:53 2023 +0200 + + Fix build + + src/hb-shape.cc | 2 -- + 1 file changed, 2 deletions(-) + +commit e8f94f9e1249fd1374fa282685ae93aba3b8fcdd +Merge: c67c0086e 6de9d2b89 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 16:34:01 2023 -0700 + + Merge pull request #4144 from harfbuzz/justify + + Justify + +commit 6de9d2b89fb10ce69ebf501b3e77bd95da5b1792 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 14:32:06 2023 -0700 + + [justify] Rename hb-view --width to hb-view --justify-to + + util/shape-options.hh | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +commit 25c66d633d58dcdd1e59095abf673a9ef08a612c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 14:16:08 2023 -0700 + + [justify] Wrap in HB_EXPERIMENTAL_API + + src/gen-def.py | 3 ++- + src/hb-shape.cc | 8 +++++++- + util/shape-options.hh | 4 ++++ + 3 files changed, 13 insertions(+), 2 deletions(-) + +commit 96d4ed093123293114d65800e8629deb1fff2218 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 14:08:16 2023 -0700 + + [justify] Document API + + docs/harfbuzz-sections.txt | 1 + + src/hb-shape.cc | 78 ++++++++++++++++++++++++++++++---------------- + src/hb-shape.h | 6 ++-- + 3 files changed, 56 insertions(+), 29 deletions(-) + +commit d29d7b7a3dd2cfca151ce667a3290359d028911c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 13:10:11 2023 -0700 + + [algs] Adjust solve_itp + + src/hb-algs.hh | 11 +++++++---- + src/hb-shape.cc | 4 ---- + 2 files changed, 7 insertions(+), 8 deletions(-) + +commit aa10deaf4283822f8c368ecbdebd01330dd76fe5 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 11:08:32 2023 -0700 + + [justify] Print default buffer width in hb-shape --width=-1 + + util/shape-options.hh | 25 ++++++++++++++++++++++--- + 1 file changed, 22 insertions(+), 3 deletions(-) + +commit 93252c6fc3585f6c226514e9c476af82b7c55d86 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 10:59:04 2023 -0700 + + [justify] Debug output + + src/hb-debug.hh | 4 ++++ + src/hb-shape.cc | 11 ++++++++--- + 2 files changed, 12 insertions(+), 3 deletions(-) + +commit b937edfb148d28421f97db7c3c81e2253019e469 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 10:44:57 2023 -0700 + + [justify] Add min/max target_width + + Speeds up solving when some slack available. + + src/hb-algs.hh | 8 +++++--- + src/hb-shape.cc | 32 ++++++++++++++++++-------------- + src/hb-shape.h | 3 ++- + util/shape-options.hh | 6 ++++-- + 4 files changed, 29 insertions(+), 20 deletions(-) + +commit 6e483c4061b526c6c22db198194d4f8b2cfb3a86 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 28 12:25:32 2023 -0700 + + [shape] Add hb_shape_justify() and hb-view --width + + src/hb-algs.hh | 2 +- + src/hb-shape.cc | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-shape.h | 11 ++++ + util/shape-options.hh | 30 +++++++-- + 4 files changed, 210 insertions(+), 6 deletions(-) + +commit ee4822f9696d2a40351a26d73257667a77af78ca +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 28 09:39:32 2023 -0700 + + [algs] Add solve_itp method + + Port from kurbo. + + src/hb-algs.hh | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 53 insertions(+) + +commit c67c0086ef66e05228f9cc1f4c169f690e130511 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Mar 1 13:32:44 2023 -0700 + + [GPOS] Fix indexing in MarkLigPos + + This was broken in 8708b9e081. + + Fixes https://github.com/harfbuzz/harfbuzz/issues/4142 + + src/OT/Layout/GPOS/MarkLigPosFormat1.hh | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +commit 01d34763f06f0c513406dc14db6d496a08ecf4fa +Author: Matthias Clasen <mclasen@redhat.com> +Date: Tue Feb 28 20:16:39 2023 -0500 + + Typo fix + + src/hb-font.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2d33a6b4dfdcd751eba242637c863d810a4a803c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 28 15:31:45 2023 -0700 + + [subset-fuzzer] Protect against overflow + + Fixes + https://github.com/harfbuzz/harfbuzz/issues/4137#issuecomment-1448994447 + + test/fuzzing/hb-subset-fuzzer.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5226d697338756e661c951af28c19b9a69b4ff93 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 28 14:49:44 2023 -0700 + + [font] Make set_variation() respect currently-set variations + + Fixes https://github.com/harfbuzz/harfbuzz/issues/4143 + + src/hb-font.cc | 27 ++++++++++++++++++--------- + 1 file changed, 18 insertions(+), 9 deletions(-) + +commit 91627daee2970b26666d8d9d47161387511667d1 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 28 14:31:25 2023 -0700 + + [outline] Rename internal function + + src/hb-outline.cc | 4 ++-- + src/hb-outline.hh | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 5c462865920681246422a1d23d38cc62a94f1870 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 28 12:16:46 2023 -0700 + + Revert "." + + This reverts commit 59434578cd453d9dcdcaf5d010d5f5686c17717e. + + src/hb-shape.cc | 84 --------------------------------------------------------- + src/hb-shape.h | 9 ------- + 2 files changed, 93 deletions(-) + +commit 59434578cd453d9dcdcaf5d010d5f5686c17717e +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 28 12:13:55 2023 -0700 + + . + + src/hb-shape.cc | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-shape.h | 9 +++++++ + 2 files changed, 93 insertions(+) + +commit bbb9d6d436b7fb5aba771c63378aa4daa231b8c5 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 28 12:07:48 2023 -0700 + + [font] Add hb_font_set_variation() + + docs/harfbuzz-sections.txt | 1 + + src/hb-font.cc | 64 ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-font.h | 5 ++++ + 3 files changed, 70 insertions(+) + +commit a975ec4842468e574484bdc310095fad780978fc +Author: Qunxin Liu <qxliu@google.com> +Date: Tue Feb 14 13:26:59 2023 -0800 + + [instancer] apply cvar deltas + + src/hb-ot-face-table-list.hh | 1 + + src/hb-ot-var-cvar-table.hh | 27 +++++++++++++-------- + src/hb-subset-input.cc | 1 - + src/hb-subset.cc | 11 +++++++++ + test/subset/data/Makefile.am | 1 + + test/subset/data/Makefile.sources | 1 + + ...r-new.default.retain-all-codepoint.wght=300.ttf | Bin 0 -> 131712 bytes + ...r-new.default.retain-all-codepoint.wght=700.ttf | Bin 0 -> 131588 bytes + test/subset/data/tests/apply_cvar_delta.tests | 12 +++++++++ + test/subset/meson.build | 1 + + 10 files changed, 44 insertions(+), 11 deletions(-) + +commit 8b0c7b9554cc75d499bc0aa9c25f45e53a1f2ce9 +Author: Qunxin Liu <qxliu@google.com> +Date: Fri Feb 10 09:49:09 2023 -0800 + + [instance] Add struct definition for cvar table + + Also add functions to add cvt tables with cvar deltas applied + + src/Makefile.sources | 1 + + src/hb-ot-var-common.hh | 19 ++++++ + src/hb-ot-var-cvar-table.hh | 151 ++++++++++++++++++++++++++++++++++++++++++++ + src/meson.build | 1 + + 4 files changed, 172 insertions(+) + +commit 22cc73f3e9b941be47330a574599cddd79811168 +Author: Qunxin Liu <qxliu@google.com> +Date: Mon Feb 6 12:36:05 2023 -0800 + + Move common structs for TupleVariation from gvar to var-common.hh + + Also added a table_base in the iterator and related function to handle + different start address for dataoffset in cvar and gvar + + src/hb-ot-var-common.hh | 308 +++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-var-gvar-table.hh | 309 +------------------------------------------- + 2 files changed, 312 insertions(+), 305 deletions(-) + +commit c0fac016dc017596e2d979e19e1eb8f88df38ea3 +Author: Garret Rieger <grieger@google.com> +Date: Wed Feb 22 20:54:20 2023 +0000 + + [subset] update the subset fuzzer to be able to reach instancing code. + + test/fuzzing/fonts/AdobeVFPrototype.ABC.otf | Bin 0 -> 4724 bytes + test/fuzzing/fonts/Roboto-Variable.ABC.ttf | Bin 0 -> 13480 bytes + test/fuzzing/hb-subset-fuzzer.cc | 49 +++++++++++++++++++++++----- + 3 files changed, 41 insertions(+), 8 deletions(-) + +commit 62fc27f372779d363cb6ba46cfaca6433a42504b +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Feb 27 11:20:47 2023 -0700 + + [ft] Enlarge glyph-cache value-size again + + 8bits just doesn't do it. It has caused cache-hammering and high + CPU usage when the font is hinted. + + Fixes https://github.com/harfbuzz/harfbuzz/issues/4139 + + src/hb-ft.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 921eca3e79df93af8ee16a47994150d1f4845bfc +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Feb 24 17:06:43 2023 -0700 + + [autotools] Fix hb-info chafa build + + util/Makefile.am | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +commit 209f63b7850f836e5e3628523f6f740e25008409 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Feb 24 16:03:23 2023 -0700 + + [TINY] Fix config issue + + src/hb-config.hh | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 605aed0544e51fa2534a3324262f3935d4dcfe99 +Author: Qunxin Liu <qxliu@google.com> +Date: Fri Feb 24 10:17:32 2023 -0800 + + [instancer] bug fix in post table applying mvar deltas + + src/hb-ot-post-table.hh | 8 ++++---- + test/subset/data/Makefile.am | 1 + + test/subset/data/Makefile.sources | 1 + + ...l-codepoint.wght=400,CASL=0,CRSV=0,MONO=0,slnt=0.ttf | Bin 0 -> 1884 bytes + test/subset/data/fonts/Recursive-ABC.ttf | Bin 0 -> 20332 bytes + test/subset/data/tests/post_apply_mvar_delta.tests | 11 +++++++++++ + test/subset/meson.build | 1 + + 7 files changed, 18 insertions(+), 4 deletions(-) + +commit 918193ebf908d35c88bb71d02dfc14bc41ffc31d +Author: Garret Rieger <grieger@google.com> +Date: Wed Feb 22 23:11:29 2023 +0000 + + [subset] fix a class of fuzzer timeouts caused by large shared coverage tables. + + More acurately estimates the op count for CoverageFormat2 tables as the population size instead of the size in bytes. + + src/OT/Layout/GPOS/SinglePosFormat1.hh | 8 +++++++- + src/OT/Layout/GSUB/SingleSubstFormat1.hh | 8 +++++++- + src/hb-sanitize.hh | 8 ++++++++ + ...testcase-minimized-hb-subset-fuzzer-5192684970311680 | Bin 0 -> 67697 bytes + 4 files changed, 22 insertions(+), 2 deletions(-) + +commit ddd0f7f40b5cae71271fcfa7b6143066d8e465df +Author: Garret Rieger <grieger@google.com> +Date: Wed Feb 22 20:23:34 2023 +0000 + + [subset] Add a test for CFF2 instancing. + + Adds option to disable the fonttools comparison check in the test. This is needed since CFF2 instancing is not yet supported in fonttools. + + test/subset/data/Makefile.am | 1 + + test/subset/data/Makefile.sources | 1 + + ...efault.retain-all-codepoint.wght=650,CNTR=50.otf | Bin 0 -> 41760 bytes + test/subset/data/tests/instantiate_cff2.tests | 14 ++++++++++++++ + test/subset/generate-expected-outputs.py | 20 +++++++++++--------- + test/subset/meson.build | 1 + + test/subset/subset_test_suite.py | 13 ++++++++----- + 7 files changed, 36 insertions(+), 14 deletions(-) + +commit 33cc3121d457b415f3fac2374af7df5cd4fd704e +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Feb 22 12:03:30 2023 -0700 + + Comment + + src/hb-shaper-list.hh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5bc6ab006da7dbab993867c3d7d24cefaa81b51c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Feb 22 08:08:11 2023 -0700 + + Use __has_builtin for builtin checks instead of compiler versions + + https://github.com/harfbuzz/harfbuzz/issues/4066#issuecomment-1439510188 + + src/hb-algs.hh | 30 ++++++++++++++++++++++-------- + src/hb.hh | 10 +++++++++- + 2 files changed, 31 insertions(+), 9 deletions(-) + +commit 6b286cfabf23c93ecec6d65f83d8c1291cd46cf6 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 21 16:15:45 2023 -0700 + + [cubic-glyf] Remove stale comment + + src/OT/glyf/path-builder.hh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 22b93156281dae8772b15e68b2553a2a9a5c8367 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 21 15:50:55 2023 -0700 + + [cubic-glyf] Handle wrap-around cubic off-curves + + src/OT/glyf/path-builder.hh | 30 ++++++++++++++++++++---------- + 1 file changed, 20 insertions(+), 10 deletions(-) + +commit 050f5a58fe182f8f2bf85c95fc2ddc13bc784699 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Feb 21 15:25:59 2023 -0700 + + [cubic-glyf] Handle contour-initial cubic offcurves + + src/OT/glyf/path-builder.hh | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +commit 9c27fe625f592fdb97dc94c4006f928877e7cb61 +Author: Khaled Hosny <khaled@aliftype.com> +Date: Tue Feb 21 23:25:14 2023 +0200 + + Revert "[doc] Fix a couple of gtk-doc warnings" + + This reverts commit ed42b2fcb556a1d47a620f77cc98069123d1670c. + + docs/harfbuzz-sections.txt | 1 - + src/hb-gobject-structs.cc | 2 +- + 2 files changed, 1 insertion(+), 2 deletions(-) + +commit ed42b2fcb556a1d47a620f77cc98069123d1670c +Author: Khaled Hosny <khaled@aliftype.com> +Date: Tue Feb 21 23:08:15 2023 +0200 + + [doc] Fix a couple of gtk-doc warnings + + docs/harfbuzz-sections.txt | 1 + + src/hb-gobject-structs.cc | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +commit 0575229477006a51f85eee10c9490db92972d60a +Author: Khaled Hosny <khaled@aliftype.com> +Date: Tue Feb 21 18:07:53 2023 +0200 + + [blob] Typo in documentation + + src/hb-blob.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 424f5f2c0d10596abc79d98bc165cd9e86680597 +Author: Khaled Hosny <khaled@aliftype.com> +Date: Mon Feb 20 16:05:53 2023 +0200 + + [ci] Don’t build docs while building Windows binaries + + .circleci/config.yml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + commit 1d1f93a612ed071b703abab7deb0951f46a12433 Author: Khaled Hosny <khaled@aliftype.com> Date: Mon Feb 20 15:54:12 2023 +0200 diff --git a/source/libs/harfbuzz/harfbuzz-src/NEWS b/source/libs/harfbuzz/harfbuzz-src/NEWS index 9a5914525c51e97231817bb9e7ed579000dadbd7..5ed287822d003c3374d5d00f557b292d6b5c0d11 100644 --- a/source/libs/harfbuzz/harfbuzz-src/NEWS +++ b/source/libs/harfbuzz/harfbuzz-src/NEWS @@ -1,3 +1,13 @@ +Overview of changes leading to 7.1.0 +Friday, March 3, 2023 +==================================== +- New experimental hb_shape_justify() API that uses font variations to expand + or shrink the text to a given advance. (Behdad Esfahbod) +- Various build and bug fixes. (Behdad Esfahbod, Garret Rieger, Qunxin Liu) + +- New API: ++hb_font_set_variation() + Overview of changes leading to 7.0.1 Monday, February 20, 2023 ==================================== diff --git a/source/libs/harfbuzz/harfbuzz-src/configure.ac b/source/libs/harfbuzz/harfbuzz-src/configure.ac index 099259a2752cbf3d6053a4305c277a6abfd8f730..c863ab83b0b2aae1a8c105f340e7caa69be59b58 100644 --- a/source/libs/harfbuzz/harfbuzz-src/configure.ac +++ b/source/libs/harfbuzz/harfbuzz-src/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ([2.64]) AC_INIT([HarfBuzz], - [7.0.1], + [7.1.0], [https://github.com/harfbuzz/harfbuzz/issues/new], [harfbuzz], [http://harfbuzz.org/]) diff --git a/source/libs/harfbuzz/harfbuzz-src/meson.build b/source/libs/harfbuzz/harfbuzz-src/meson.build index 1515257c9c980dcb9258bf1146d99e8c7e7cb964..6bf8d05da94faa07b0c0237a6583fc79ceaffc50 100644 --- a/source/libs/harfbuzz/harfbuzz-src/meson.build +++ b/source/libs/harfbuzz/harfbuzz-src/meson.build @@ -1,6 +1,6 @@ project('harfbuzz', 'c', 'cpp', meson_version: '>= 0.55.0', - version: '7.0.1', + version: '7.1.0', default_options: [ 'cpp_eh=none', # Just to support msvc, we are passing -fno-exceptions also anyway 'cpp_rtti=false', # Just to support msvc, we are passing -fno-rtti also anyway diff --git a/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources b/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources index 9a96ad69ffc926f1300898e2864e06ecb3a283a0..fd7c3b55ef250b1675b437e87e32f1b492fc0ba8 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources +++ b/source/libs/harfbuzz/harfbuzz-src/src/Makefile.sources @@ -225,6 +225,7 @@ HB_BASE_sources = \ hb-ot-tag.cc \ hb-ot-var-avar-table.hh \ hb-ot-var-common.hh \ + hb-ot-var-cvar-table.hh \ hb-ot-var-fvar-table.hh \ hb-ot-var-gvar-table.hh \ hb-ot-var-hvar-table.hh \ diff --git a/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GPOS/MarkLigPosFormat1.hh b/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GPOS/MarkLigPosFormat1.hh index 7e7b438aa7daed57d12eac51cfa01ed131739eab..92e83a0e994899b2cd6dfdbcecacaeb0435ae9a7 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GPOS/MarkLigPosFormat1.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GPOS/MarkLigPosFormat1.hh @@ -126,15 +126,15 @@ struct MarkLigPosFormat1_2 return_trace (false); } - j = (unsigned) c->last_base; + unsigned idx = (unsigned) c->last_base; /* Checking that matched glyph is actually a ligature by GDEF is too strong; disabled */ - //if (!_hb_glyph_info_is_ligature (&buffer->info[j])) { return_trace (false); } + //if (!_hb_glyph_info_is_ligature (&buffer->info[idx])) { return_trace (false); } - unsigned int lig_index = (this+ligatureCoverage).get_coverage (buffer->info[j].codepoint); + unsigned int lig_index = (this+ligatureCoverage).get_coverage (buffer->info[idx].codepoint); if (lig_index == NOT_COVERED) { - buffer->unsafe_to_concat_from_outbuffer (skippy_iter.idx, buffer->idx + 1); + buffer->unsafe_to_concat_from_outbuffer (idx, buffer->idx + 1); return_trace (false); } @@ -145,7 +145,7 @@ struct MarkLigPosFormat1_2 unsigned int comp_count = lig_attach.rows; if (unlikely (!comp_count)) { - buffer->unsafe_to_concat_from_outbuffer (skippy_iter.idx, buffer->idx + 1); + buffer->unsafe_to_concat_from_outbuffer (idx, buffer->idx + 1); return_trace (false); } @@ -154,7 +154,7 @@ struct MarkLigPosFormat1_2 * can directly use the component index. If not, we attach the mark * glyph to the last component of the ligature. */ unsigned int comp_index; - unsigned int lig_id = _hb_glyph_info_get_lig_id (&buffer->info[j]); + unsigned int lig_id = _hb_glyph_info_get_lig_id (&buffer->info[idx]); unsigned int mark_id = _hb_glyph_info_get_lig_id (&buffer->cur()); unsigned int mark_comp = _hb_glyph_info_get_lig_comp (&buffer->cur()); if (lig_id && lig_id == mark_id && mark_comp > 0) @@ -162,7 +162,7 @@ struct MarkLigPosFormat1_2 else comp_index = comp_count - 1; - return_trace ((this+markArray).apply (c, mark_index, comp_index, lig_attach, classCount, j)); + return_trace ((this+markArray).apply (c, mark_index, comp_index, lig_attach, classCount, idx)); } bool subset (hb_subset_context_t *c) const diff --git a/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GPOS/SinglePosFormat1.hh b/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GPOS/SinglePosFormat1.hh index f7a170f34e05815cc31a5ec4dfaee7a792b06d6f..623e4e66b20c29bf87182b3acd22f1941c38c741 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GPOS/SinglePosFormat1.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GPOS/SinglePosFormat1.hh @@ -28,7 +28,15 @@ struct SinglePosFormat1 TRACE_SANITIZE (this); return_trace (c->check_struct (this) && coverage.sanitize (c, this) && + /* The coverage table may use a range to represent a set + * of glyphs, which means a small number of bytes can + * generate a large glyph set. Manually modify the + * sanitizer max ops to take this into account. + * + * Note: This check *must* be right after coverage sanitize. */ + c->check_ops ((this + coverage).get_population () >> 1) && valueFormat.sanitize_value (c, this, values)); + } bool intersects (const hb_set_t *glyphs) const diff --git a/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GSUB/SingleSubstFormat1.hh b/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GSUB/SingleSubstFormat1.hh index 78725352c2840890d29861a2b3ef90391352ff4a..5b54fdb0788ac118a7422be6ab65f08cb5e0c224 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GSUB/SingleSubstFormat1.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/OT/Layout/GSUB/SingleSubstFormat1.hh @@ -25,7 +25,15 @@ struct SingleSubstFormat1_3 bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (coverage.sanitize (c, this) && deltaGlyphID.sanitize (c)); + return_trace (c->check_struct (this) && + coverage.sanitize (c, this) && + /* The coverage table may use a range to represent a set + * of glyphs, which means a small number of bytes can + * generate a large glyph set. Manually modify the + * sanitizer max ops to take this into account. + * + * Note: This check *must* be right after coverage sanitize. */ + c->check_ops ((this + coverage).get_population () >> 1)); } hb_codepoint_t get_mask () const diff --git a/source/libs/harfbuzz/harfbuzz-src/src/OT/glyf/path-builder.hh b/source/libs/harfbuzz/harfbuzz-src/src/OT/glyf/path-builder.hh index e35a4dafde0d5c08a335c3320c3e20b922652cdd..8916241f76e3d1f3af306783fe4ae94774563510 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/OT/glyf/path-builder.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/OT/glyf/path-builder.hh @@ -26,13 +26,13 @@ struct path_builder_t optional_point_t lerp (optional_point_t p, float t) { return optional_point_t (x + t * (p.x - x), y + t * (p.y - y)); } - } first_oncurve, first_offcurve, last_offcurve, last_offcurve2; + } first_oncurve, first_offcurve, first_offcurve2, last_offcurve, last_offcurve2; path_builder_t (hb_font_t *font_, hb_draw_session_t &draw_session_) { font = font_; draw_session = &draw_session_; - first_oncurve = first_offcurve = last_offcurve = last_offcurve2 = optional_point_t (); + first_oncurve = first_offcurve = first_offcurve2 = last_offcurve = last_offcurve2 = optional_point_t (); } /* based on https://github.com/RazrFalcon/ttf-parser/blob/4f32821/src/glyf.rs#L287 @@ -40,7 +40,7 @@ struct path_builder_t * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM01/Chap1.html * https://stackoverflow.com/a/20772557 * - * Cubic support added (incomplete). */ + * Cubic support added. */ void consume_point (const contour_point_t &point) { bool is_on_curve = point.flag & glyf_impl::SimpleGlyph::FLAG_ON_CURVE; @@ -59,7 +59,12 @@ struct path_builder_t } else { - if (first_offcurve) + if (is_cubic && !first_offcurve2) + { + first_offcurve2 = first_offcurve; + first_offcurve = p; + } + else if (first_offcurve) { optional_point_t mid = first_offcurve.lerp (p, .5f); first_oncurve = mid; @@ -126,16 +131,30 @@ struct path_builder_t { if (first_offcurve && last_offcurve) { - optional_point_t mid = last_offcurve.lerp (first_offcurve, .5f); - draw_session->quadratic_to (last_offcurve.x, last_offcurve.y, - mid.x, mid.y); + optional_point_t mid = last_offcurve.lerp (first_offcurve2 ? + first_offcurve2 : + first_offcurve, .5f); + if (last_offcurve2) + draw_session->cubic_to (last_offcurve2.x, last_offcurve2.y, + last_offcurve.x, last_offcurve.y, + mid.x, mid.y); + else + draw_session->quadratic_to (last_offcurve.x, last_offcurve.y, + mid.x, mid.y); last_offcurve = optional_point_t (); - /* now check the rest */ } + /* now check the rest */ if (first_offcurve && first_oncurve) - draw_session->quadratic_to (first_offcurve.x, first_offcurve.y, - first_oncurve.x, first_oncurve.y); + { + if (first_offcurve2) + draw_session->cubic_to (first_offcurve2.x, first_offcurve2.y, + first_offcurve.x, first_offcurve.y, + first_oncurve.x, first_oncurve.y); + else + draw_session->quadratic_to (first_offcurve.x, first_offcurve.y, + first_oncurve.x, first_oncurve.y); + } else if (last_offcurve && first_oncurve) { if (last_offcurve2) diff --git a/source/libs/harfbuzz/harfbuzz-src/src/gen-def.py b/source/libs/harfbuzz/harfbuzz-src/src/gen-def.py index 9b4efd4f3ec9ccb962a14280e94d9f5645ec7fb5..6011817bc5462009d0a3459dc69669c269ac6a6b 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/gen-def.py +++ b/source/libs/harfbuzz/harfbuzz-src/src/gen-def.py @@ -19,7 +19,8 @@ symbols = sorted (re.findall (r"^hb_\w+(?= \()", "\n".join (headers_content), re if '--experimental-api' not in sys.argv: # Move these to harfbuzz-sections.txt when got stable experimental_symbols = \ -"""hb_subset_repack_or_fail +"""hb_shape_justify +hb_subset_repack_or_fail hb_subset_input_override_name_table """.splitlines () symbols = [x for x in symbols if x not in experimental_symbols] diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh index e98645e3e3b7204a5d52deaa1d98d466c4ef0ce1..13587eac0178e800f8569ad7644e69029c67444c 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-algs.hh @@ -110,9 +110,10 @@ struct BEInt<Type, 2> constexpr operator Type () const { #if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \ - ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)) && \ defined(__BYTE_ORDER) && \ - (__BYTE_ORDER == __LITTLE_ENDIAN || __BYTE_ORDER == __BIG_ENDIAN) + (__BYTE_ORDER == __BIG_ENDIAN || \ + (__BYTE_ORDER == __LITTLE_ENDIAN && \ + hb_has_builtin(__builtin_bswap16))) /* Spoon-feed the compiler a big-endian integer with alignment 1. * https://github.com/harfbuzz/harfbuzz/pull/1398 */ #if __BYTE_ORDER == __LITTLE_ENDIAN @@ -155,9 +156,10 @@ struct BEInt<Type, 4> struct __attribute__((packed)) packed_uint32_t { uint32_t v; }; constexpr operator Type () const { #if defined(__OPTIMIZE__) && !defined(HB_NO_PACKED) && \ - ((defined(__GNUC__) && __GNUC__ >= 5) || defined(__clang__)) && \ defined(__BYTE_ORDER) && \ - (__BYTE_ORDER == __LITTLE_ENDIAN || __BYTE_ORDER == __BIG_ENDIAN) + (__BYTE_ORDER == __BIG_ENDIAN || \ + (__BYTE_ORDER == __LITTLE_ENDIAN && \ + hb_has_builtin(__builtin_bswap32))) /* Spoon-feed the compiler a big-endian integer with alignment 1. * https://github.com/harfbuzz/harfbuzz/pull/1398 */ #if __BYTE_ORDER == __LITTLE_ENDIAN @@ -598,13 +600,17 @@ template <typename T> static inline unsigned int hb_popcount (T v) { -#if (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) +#if hb_has_builtin(__builtin_popcount) if (sizeof (T) <= sizeof (unsigned int)) return __builtin_popcount (v); +#endif +#if hb_has_builtin(__builtin_popcountl) if (sizeof (T) <= sizeof (unsigned long)) return __builtin_popcountl (v); +#endif +#if hb_has_builtin(__builtin_popcountll) if (sizeof (T) <= sizeof (unsigned long long)) return __builtin_popcountll (v); #endif @@ -641,13 +647,17 @@ hb_bit_storage (T v) { if (unlikely (!v)) return 0; -#if (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) +#if hb_has_builtin(__builtin_clz) if (sizeof (T) <= sizeof (unsigned int)) return sizeof (unsigned int) * 8 - __builtin_clz (v); +#endif +#if hb_has_builtin(__builtin_clzl) if (sizeof (T) <= sizeof (unsigned long)) return sizeof (unsigned long) * 8 - __builtin_clzl (v); +#endif +#if hb_has_builtin(__builtin_clzll) if (sizeof (T) <= sizeof (unsigned long long)) return sizeof (unsigned long long) * 8 - __builtin_clzll (v); #endif @@ -715,13 +725,17 @@ hb_ctz (T v) { if (unlikely (!v)) return 8 * sizeof (T); -#if (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) +#if hb_has_builtin(__builtin_ctz) if (sizeof (T) <= sizeof (unsigned int)) return __builtin_ctz (v); +#endif +#if hb_has_builtin(__builtin_ctzl) if (sizeof (T) <= sizeof (unsigned long)) return __builtin_ctzl (v); +#endif +#if hb_has_builtin(__builtin_ctzll) if (sizeof (T) <= sizeof (unsigned long long)) return __builtin_ctzll (v); #endif @@ -875,7 +889,7 @@ hb_in_ranges (T u, T lo1, T hi1, Ts... ds) static inline bool hb_unsigned_mul_overflows (unsigned int count, unsigned int size, unsigned *result = nullptr) { -#if (defined(__GNUC__) && (__GNUC__ >= 4)) || (defined(__clang__) && (__clang_major__ >= 8)) +#if hb_has_builtin(__builtin_mul_overflow) unsigned stack_result; if (!result) result = &stack_result; @@ -1330,4 +1344,62 @@ struct HB_FUNCOBJ (hb_dec); +/* Adapted from kurbo implementation with extra parameters added, + * and finding for a particular range instead of 0. + * + * For documentation and implementation see: + * + * [ITP method]: https://en.wikipedia.org/wiki/ITP_Method + * [An Enhancement of the Bisection Method Average Performance Preserving Minmax Optimality]: https://dl.acm.org/doi/10.1145/3423597 + * https://docs.rs/kurbo/0.8.1/kurbo/common/fn.solve_itp.html + * https://github.com/linebender/kurbo/blob/fd839c25ea0c98576c7ce5789305822675a89938/src/common.rs#L162-L248 + */ +template <typename func_t> +double solve_itp (func_t f, + double a, double b, + double epsilon, + double min_y, double max_y, + double &ya, double &yb, double &y) +{ + unsigned n1_2 = (unsigned) (hb_max (ceil (log2 ((b - a) / epsilon)) - 1.0, 0.0)); + const unsigned n0 = 1; // Hardwired + const double k1 = 0.2 / (b - a); // Hardwired. + unsigned nmax = n0 + n1_2; + double scaled_epsilon = epsilon * double (1llu << nmax); + double _2_epsilon = 2.0 * epsilon; + while (b - a > _2_epsilon) + { + double x1_2 = 0.5 * (a + b); + double r = scaled_epsilon - 0.5 * (b - a); + double xf = (yb * a - ya * b) / (yb - ya); + double sigma = x1_2 - xf; + double b_a = b - a; + // This has k2 = 2 hardwired for efficiency. + double b_a_k2 = b_a * b_a; + double delta = k1 * b_a_k2; + int sigma_sign = sigma >= 0 ? +1 : -1; + double xt = delta <= fabs (x1_2 - xf) ? xf + delta * sigma_sign : x1_2; + double xitp = fabs (xt - x1_2) <= r ? xt : x1_2 - r * sigma_sign; + double yitp = f (xitp); + if (yitp > max_y) + { + b = xitp; + yb = yitp; + } + else if (yitp < min_y) + { + a = xitp; + ya = yitp; + } + else + { + y = yitp; + return xitp; + } + scaled_epsilon *= 0.5; + } + return 0.5 * (a + b); +} + + #endif /* HB_ALGS_HH */ diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.h b/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.h index 4eb42314da328adffb509019dd1255d162eb4dfb..db50067e164f2dd3135c8face29cdc9187f938ed 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.h +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-blob.h @@ -63,7 +63,7 @@ HB_BEGIN_DECLS * HarfBuzz and doing that just once (no reuse!), * * - If the font is mmap()ed, it's okay to use - * @HB_MEMORY_READONLY_MAY_MAKE_WRITABLE, however, using that mode + * @HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE, however, using that mode * correctly is very tricky. Use @HB_MEMORY_MODE_READONLY instead. **/ typedef enum { diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer-deserialize-text-glyphs.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer-deserialize-text-glyphs.hh index ea81273b31ca3b086b2425df0046ff3b524893fd..5fe75659b49c4b82bc8168a685f16f0fb57e3160 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer-deserialize-text-glyphs.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-buffer-deserialize-text-glyphs.hh @@ -32,7 +32,7 @@ #include "hb.hh" -#line 36 "hb-buffer-deserialize-text-glyphs.hh" +#line 33 "hb-buffer-deserialize-text-glyphs.hh" static const unsigned char _deserialize_text_glyphs_trans_keys[] = { 0u, 0u, 48u, 57u, 45u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 57u, 43u, 124u, 9u, 124u, 9u, 124u, @@ -349,12 +349,12 @@ _hb_buffer_deserialize_text_glyphs (hb_buffer_t *buffer, hb_glyph_info_t info = {0}; hb_glyph_position_t pos = {0}; -#line 353 "hb-buffer-deserialize-text-glyphs.hh" +#line 346 "hb-buffer-deserialize-text-glyphs.hh" { cs = deserialize_text_glyphs_start; } -#line 358 "hb-buffer-deserialize-text-glyphs.hh" +#line 349 "hb-buffer-deserialize-text-glyphs.hh" { int _slen; int _trans; @@ -550,7 +550,7 @@ _resume: *end_ptr = p; } break; -#line 554 "hb-buffer-deserialize-text-glyphs.hh" +#line 516 "hb-buffer-deserialize-text-glyphs.hh" } _again: @@ -667,7 +667,7 @@ _again: *end_ptr = p; } break; -#line 671 "hb-buffer-deserialize-text-glyphs.hh" +#line 616 "hb-buffer-deserialize-text-glyphs.hh" } } diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh index 047518b87d4885a5b1b01f232d26217b3d09a28b..52adaad4384c0049113983c42a213655c6633775 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-config.hh @@ -136,6 +136,10 @@ #define HB_NO_SUBSET_CFF #endif +#ifdef HB_NO_DRAW +#define HB_NO_OUTLINE +#endif + #ifdef HB_NO_GETENV #define HB_NO_UNISCRIBE_BUG_COMPATIBLE #endif diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-debug.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-debug.hh index efab374646b814cceb23552d19d2f2d7577da763..0ac4515fa855c040018900f1d892e16525c293eb 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-debug.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-debug.hh @@ -373,6 +373,10 @@ struct hb_no_trace_t { #define HB_DEBUG_FT (HB_DEBUG+0) #endif +#ifndef HB_DEBUG_JUSTIFY +#define HB_DEBUG_JUSTIFY (HB_DEBUG+0) +#endif + #ifndef HB_DEBUG_OBJECT #define HB_DEBUG_OBJECT (HB_DEBUG+0) #endif diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc b/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc index 3868863105f9ecda2e55907d67cbfaf1cfa7d36a..1b345a9447cb23ece5d0f7a1b6fcd0927dfff3c2 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-font.cc @@ -2649,6 +2649,79 @@ hb_font_set_variations (hb_font_t *font, _hb_font_adopt_var_coords (font, normalized, design_coords, coords_length); } +/** + * hb_font_set_variation: + * @font: #hb_font_t to work upon + * @tag: The #hb_tag_t tag of the variation-axis name + * @value: The value of the variation axis + * + * Change the value of one variation axis on the font. + * + * Note: This function is expensive to be called repeatedly. + * If you want to set multiple variation axes at the same time, + * use hb_font_set_variations() instead. + * + * Since: 7.1.0 + */ +void +hb_font_set_variation (hb_font_t *font, + hb_tag_t tag, + float value) +{ + if (hb_object_is_immutable (font)) + return; + + font->serial_coords = ++font->serial; + + // TODO Share some of this code with set_variations() + + const OT::fvar &fvar = *font->face->table.fvar; + auto axes = fvar.get_axes (); + const unsigned coords_length = axes.length; + + int *normalized = coords_length ? (int *) hb_calloc (coords_length, sizeof (int)) : nullptr; + float *design_coords = coords_length ? (float *) hb_calloc (coords_length, sizeof (float)) : nullptr; + + if (unlikely (coords_length && !(normalized && design_coords))) + { + hb_free (normalized); + hb_free (design_coords); + return; + } + + /* Initialize design coords. */ + if (font->design_coords) + { + assert (coords_length == font->num_coords); + for (unsigned int i = 0; i < coords_length; i++) + design_coords[i] = font->design_coords[i]; + } + else + { + for (unsigned int i = 0; i < coords_length; i++) + design_coords[i] = axes[i].get_default (); + if (font->instance_index != HB_FONT_NO_VAR_NAMED_INSTANCE) + { + unsigned count = coords_length; + /* This may fail if index is out-of-range; + * That's why we initialize design_coords from fvar above + * unconditionally. */ + hb_ot_var_named_instance_get_design_coords (font->face, font->instance_index, + &count, design_coords); + } + } + + for (unsigned axis_index = 0; axis_index < coords_length; axis_index++) + if (axes[axis_index].axisTag == tag) + design_coords[axis_index] = value; + + font->face->table.avar->map_coords (normalized, coords_length); + + hb_ot_var_normalize_coords (font->face, coords_length, design_coords, normalized); + _hb_font_adopt_var_coords (font, normalized, design_coords, coords_length); + +} + /** * hb_font_set_var_coords_design: * @font: #hb_font_t to work upon diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-font.h b/source/libs/harfbuzz/harfbuzz-src/src/hb-font.h index 69457da5770b81afcfb07833aa46b0bddb4424b6..f3b589bd0d8df913000fc78bc36dc34d814d961c 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-font.h +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-font.h @@ -1150,6 +1150,11 @@ hb_font_set_variations (hb_font_t *font, const hb_variation_t *variations, unsigned int variations_length); +HB_EXTERN void +hb_font_set_variation (hb_font_t *font, + hb_tag_t tag, + float value); + HB_EXTERN void hb_font_set_var_coords_design (hb_font_t *font, const float *coords, diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc b/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc index 4bc10e06202bff64ce07bb344f9c87e94f4f848b..1105862fbc9f31c270f73f39ba6c76a025f91815 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-ft.cc @@ -85,7 +85,7 @@ */ -using hb_ft_advance_cache_t = hb_cache_t<16, 8, 8, false>; +using hb_ft_advance_cache_t = hb_cache_t<16, 24, 8, false>; struct hb_ft_font_t { diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-map.cc b/source/libs/harfbuzz/harfbuzz-src/src/hb-map.cc index 0014570e8e5d8c8730beaae209ed2ac7af8390cd..5d67cd9a12d7e0842a5ba115f379d0174226b402 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-map.cc +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-map.cc @@ -399,7 +399,7 @@ void hb_map_keys (const hb_map_t *map, hb_set_t *keys) { - map->keys (*keys); + hb_copy (map->keys() , *keys); } /** @@ -415,5 +415,5 @@ void hb_map_values (const hb_map_t *map, hb_set_t *values) { - map->values (*values); + hb_copy (map->values() , *values); } diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh index 615d1825edd6250e228d066fd2b6fcc3c6165565..552b4066518f75d3c187eb37cf471f1d96e1e0ee 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-map.hh @@ -317,16 +317,6 @@ struct hb_hashmap_t hb_copy (other, *this); } - void keys (hb_set_t &keys_) const - { - hb_copy (keys() , keys_); - } - - void values (hb_set_t &values_) const - { - hb_copy (values() , values_); - } - /* * Iterator */ diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-face-table-list.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-face-table-list.hh index c9da36c1bb5ba188703cc12b182228604b136532..b552dfdd9daed6331eaab737281f5105c79cc4e8 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-face-table-list.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-face-table-list.hh @@ -93,6 +93,7 @@ HB_OT_ACCELERATOR (OT, cff2) #ifndef HB_NO_VAR HB_OT_CORE_TABLE (OT, fvar) HB_OT_CORE_TABLE (OT, avar) +HB_OT_CORE_TABLE (OT, cvar) HB_OT_ACCELERATOR (OT, gvar) HB_OT_CORE_TABLE (OT, MVAR) #endif diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-post-table.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-post-table.hh index e0eb77094870f2e21db4dc287141875004291b53..042fa611adf691b5b64883ebbea3798c250c13f9 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-post-table.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-post-table.hh @@ -99,6 +99,10 @@ struct post post *post_prime = c->serializer->start_embed<post> (); if (unlikely (!post_prime)) return_trace (false); + bool glyph_names = c->plan->flags & HB_SUBSET_FLAGS_GLYPH_NAMES; + if (!serialize (c->serializer, glyph_names)) + return_trace (false); + #ifndef HB_NO_VAR if (c->plan->normalized_coords) { @@ -110,10 +114,6 @@ struct post } #endif - bool glyph_names = c->plan->flags & HB_SUBSET_FLAGS_GLYPH_NAMES; - if (!serialize (c->serializer, glyph_names)) - return_trace (false); - if (c->plan->user_axes_location.has (HB_TAG ('s','l','n','t')) && !c->plan->pinned_at_default) { diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.hh index f7b456b11f67afc145086fb79dfa7ea684aa26a9..809f6eefb0238dd17ccfd948b7a3809b91d83abb 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-shaper-myanmar-machine.hh @@ -50,7 +50,7 @@ enum myanmar_syllable_type_t { }; -#line 54 "hb-ot-shaper-myanmar-machine.hh" +#line 51 "hb-ot-shaper-myanmar-machine.hh" #define myanmar_syllable_machine_ex_A 9u #define myanmar_syllable_machine_ex_As 32u #define myanmar_syllable_machine_ex_C 1u @@ -77,7 +77,7 @@ enum myanmar_syllable_type_t { #define myanmar_syllable_machine_ex_ZWNJ 5u -#line 81 "hb-ot-shaper-myanmar-machine.hh" +#line 76 "hb-ot-shaper-myanmar-machine.hh" static const unsigned char _myanmar_syllable_machine_trans_keys[] = { 1u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u, 5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u, @@ -443,7 +443,7 @@ find_syllables_myanmar (hb_buffer_t *buffer) int cs; hb_glyph_info_t *info = buffer->info; -#line 447 "hb-ot-shaper-myanmar-machine.hh" +#line 436 "hb-ot-shaper-myanmar-machine.hh" { cs = myanmar_syllable_machine_start; ts = 0; @@ -459,7 +459,7 @@ find_syllables_myanmar (hb_buffer_t *buffer) unsigned int syllable_serial = 1; -#line 463 "hb-ot-shaper-myanmar-machine.hh" +#line 448 "hb-ot-shaper-myanmar-machine.hh" { int _slen; int _trans; @@ -473,7 +473,7 @@ _resume: #line 1 "NONE" {ts = p;} break; -#line 477 "hb-ot-shaper-myanmar-machine.hh" +#line 460 "hb-ot-shaper-myanmar-machine.hh" } _keys = _myanmar_syllable_machine_trans_keys + (cs<<1); @@ -519,7 +519,7 @@ _eof_trans: #line 113 "hb-ot-shaper-myanmar-machine.rl" {te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }} break; -#line 523 "hb-ot-shaper-myanmar-machine.hh" +#line 498 "hb-ot-shaper-myanmar-machine.hh" } _again: @@ -528,7 +528,7 @@ _again: #line 1 "NONE" {ts = 0;} break; -#line 532 "hb-ot-shaper-myanmar-machine.hh" +#line 505 "hb-ot-shaper-myanmar-machine.hh" } if ( ++p != pe ) diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-common.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-common.hh index 4997c2e2e893763a8580154ee75ac78b5e813814..cdc6a274ce1100f467f480c684d01152114a2e05 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-common.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-common.hh @@ -237,6 +237,333 @@ struct VarStoreInstancer hb_array_t<int> coords; }; +/* https://docs.microsoft.com/en-us/typography/opentype/spec/otvarcommonformats#tuplevariationheader */ +struct TupleVariationHeader +{ + unsigned get_size (unsigned axis_count) const + { return min_size + get_all_tuples (axis_count).get_size (); } + + unsigned get_data_size () const { return varDataSize; } + + const TupleVariationHeader &get_next (unsigned axis_count) const + { return StructAtOffset<TupleVariationHeader> (this, get_size (axis_count)); } + + float calculate_scalar (hb_array_t<int> coords, unsigned int coord_count, + const hb_array_t<const F2DOT14> shared_tuples) const + { + hb_array_t<const F2DOT14> peak_tuple; + + if (has_peak ()) + peak_tuple = get_peak_tuple (coord_count); + else + { + unsigned int index = get_index (); + if (unlikely (index * coord_count >= shared_tuples.length)) + return 0.f; + peak_tuple = shared_tuples.sub_array (coord_count * index, coord_count); + } + + hb_array_t<const F2DOT14> start_tuple; + hb_array_t<const F2DOT14> end_tuple; + if (has_intermediate ()) + { + start_tuple = get_start_tuple (coord_count); + end_tuple = get_end_tuple (coord_count); + } + + float scalar = 1.f; + for (unsigned int i = 0; i < coord_count; i++) + { + int v = coords[i]; + int peak = peak_tuple[i].to_int (); + if (!peak || v == peak) continue; + + if (has_intermediate ()) + { + int start = start_tuple[i].to_int (); + int end = end_tuple[i].to_int (); + if (unlikely (start > peak || peak > end || + (start < 0 && end > 0 && peak))) continue; + if (v < start || v > end) return 0.f; + if (v < peak) + { if (peak != start) scalar *= (float) (v - start) / (peak - start); } + else + { if (peak != end) scalar *= (float) (end - v) / (end - peak); } + } + else if (!v || v < hb_min (0, peak) || v > hb_max (0, peak)) return 0.f; + else + scalar *= (float) v / peak; + } + return scalar; + } + + bool has_peak () const { return tupleIndex & TuppleIndex::EmbeddedPeakTuple; } + bool has_intermediate () const { return tupleIndex & TuppleIndex::IntermediateRegion; } + bool has_private_points () const { return tupleIndex & TuppleIndex::PrivatePointNumbers; } + unsigned get_index () const { return tupleIndex & TuppleIndex::TupleIndexMask; } + + protected: + struct TuppleIndex : HBUINT16 + { + enum Flags { + EmbeddedPeakTuple = 0x8000u, + IntermediateRegion = 0x4000u, + PrivatePointNumbers = 0x2000u, + TupleIndexMask = 0x0FFFu + }; + + DEFINE_SIZE_STATIC (2); + }; + + hb_array_t<const F2DOT14> get_all_tuples (unsigned axis_count) const + { return StructAfter<UnsizedArrayOf<F2DOT14>> (tupleIndex).as_array ((has_peak () + has_intermediate () * 2) * axis_count); } + hb_array_t<const F2DOT14> get_peak_tuple (unsigned axis_count) const + { return get_all_tuples (axis_count).sub_array (0, axis_count); } + hb_array_t<const F2DOT14> get_start_tuple (unsigned axis_count) const + { return get_all_tuples (axis_count).sub_array (has_peak () * axis_count, axis_count); } + hb_array_t<const F2DOT14> get_end_tuple (unsigned axis_count) const + { return get_all_tuples (axis_count).sub_array (has_peak () * axis_count + axis_count, axis_count); } + + HBUINT16 varDataSize; /* The size in bytes of the serialized + * data for this tuple variation table. */ + TuppleIndex tupleIndex; /* A packed field. The high 4 bits are flags (see below). + The low 12 bits are an index into a shared tuple + records array. */ + /* UnsizedArrayOf<F2DOT14> peakTuple - optional */ + /* Peak tuple record for this tuple variation table — optional, + * determined by flags in the tupleIndex value. + * + * Note that this must always be included in the 'cvar' table. */ + /* UnsizedArrayOf<F2DOT14> intermediateStartTuple - optional */ + /* Intermediate start tuple record for this tuple variation table — optional, + determined by flags in the tupleIndex value. */ + /* UnsizedArrayOf<F2DOT14> intermediateEndTuple - optional */ + /* Intermediate end tuple record for this tuple variation table — optional, + * determined by flags in the tupleIndex value. */ + public: + DEFINE_SIZE_MIN (4); +}; + +struct TupleVariationData +{ + bool sanitize (hb_sanitize_context_t *c) const + { + TRACE_SANITIZE (this); + // here check on min_size only, TupleVariationHeader and var data will be + // checked while accessing through iterator. + return_trace (c->check_struct (this)); + } + + unsigned get_size (unsigned axis_count) const + { + unsigned total_size = min_size; + unsigned count = tupleVarCount; + const TupleVariationHeader& tuple_var_header = get_tuple_var_header(); + for (unsigned i = 0; i < count; i++) + total_size += tuple_var_header.get_size (axis_count) + tuple_var_header.get_data_size (); + + return total_size; + } + + const TupleVariationHeader &get_tuple_var_header (void) const + { return StructAfter<TupleVariationHeader> (data); } + + struct tuple_iterator_t + { + void init (hb_bytes_t var_data_bytes_, unsigned int axis_count_, const void *table_base_) + { + var_data_bytes = var_data_bytes_; + var_data = var_data_bytes_.as<TupleVariationData> (); + index = 0; + axis_count = axis_count_; + current_tuple = &var_data->get_tuple_var_header (); + data_offset = 0; + table_base = table_base_; + } + + bool get_shared_indices (hb_vector_t<unsigned int> &shared_indices /* OUT */) + { + if (var_data->has_shared_point_numbers ()) + { + const HBUINT8 *base = &(table_base+var_data->data); + const HBUINT8 *p = base; + if (!unpack_points (p, shared_indices, (const HBUINT8 *) (var_data_bytes.arrayZ + var_data_bytes.length))) return false; + data_offset = p - base; + } + return true; + } + + bool is_valid () const + { + return (index < var_data->tupleVarCount.get_count ()) && + var_data_bytes.check_range (current_tuple, TupleVariationHeader::min_size) && + var_data_bytes.check_range (current_tuple, hb_max (current_tuple->get_data_size (), + current_tuple->get_size (axis_count))); + } + + bool move_to_next () + { + data_offset += current_tuple->get_data_size (); + current_tuple = ¤t_tuple->get_next (axis_count); + index++; + return is_valid (); + } + + const HBUINT8 *get_serialized_data () const + { return &(table_base+var_data->data) + data_offset; } + + private: + const TupleVariationData *var_data; + unsigned int index; + unsigned int axis_count; + unsigned int data_offset; + const void *table_base; + + public: + hb_bytes_t var_data_bytes; + const TupleVariationHeader *current_tuple; + }; + + static bool get_tuple_iterator (hb_bytes_t var_data_bytes, unsigned axis_count, + const void *table_base, + hb_vector_t<unsigned int> &shared_indices /* OUT */, + tuple_iterator_t *iterator /* OUT */) + { + iterator->init (var_data_bytes, axis_count, table_base); + if (!iterator->get_shared_indices (shared_indices)) + return false; + return iterator->is_valid (); + } + + bool has_shared_point_numbers () const { return tupleVarCount.has_shared_point_numbers (); } + + static bool unpack_points (const HBUINT8 *&p /* IN/OUT */, + hb_vector_t<unsigned int> &points /* OUT */, + const HBUINT8 *end) + { + enum packed_point_flag_t + { + POINTS_ARE_WORDS = 0x80, + POINT_RUN_COUNT_MASK = 0x7F + }; + + if (unlikely (p + 1 > end)) return false; + + unsigned count = *p++; + if (count & POINTS_ARE_WORDS) + { + if (unlikely (p + 1 > end)) return false; + count = ((count & POINT_RUN_COUNT_MASK) << 8) | *p++; + } + if (unlikely (!points.resize (count, false))) return false; + + unsigned n = 0; + unsigned i = 0; + while (i < count) + { + if (unlikely (p + 1 > end)) return false; + unsigned control = *p++; + unsigned run_count = (control & POINT_RUN_COUNT_MASK) + 1; + if (unlikely (i + run_count > count)) return false; + unsigned j; + if (control & POINTS_ARE_WORDS) + { + if (unlikely (p + run_count * HBUINT16::static_size > end)) return false; + for (j = 0; j < run_count; j++, i++) + { + n += *(const HBUINT16 *)p; + points.arrayZ[i] = n; + p += HBUINT16::static_size; + } + } + else + { + if (unlikely (p + run_count > end)) return false; + for (j = 0; j < run_count; j++, i++) + { + n += *p++; + points.arrayZ[i] = n; + } + } + } + return true; + } + + static bool unpack_deltas (const HBUINT8 *&p /* IN/OUT */, + hb_vector_t<int> &deltas /* IN/OUT */, + const HBUINT8 *end) + { + enum packed_delta_flag_t + { + DELTAS_ARE_ZERO = 0x80, + DELTAS_ARE_WORDS = 0x40, + DELTA_RUN_COUNT_MASK = 0x3F + }; + + unsigned i = 0; + unsigned count = deltas.length; + while (i < count) + { + if (unlikely (p + 1 > end)) return false; + unsigned control = *p++; + unsigned run_count = (control & DELTA_RUN_COUNT_MASK) + 1; + if (unlikely (i + run_count > count)) return false; + unsigned j; + if (control & DELTAS_ARE_ZERO) + { + for (j = 0; j < run_count; j++, i++) + deltas.arrayZ[i] = 0; + } + else if (control & DELTAS_ARE_WORDS) + { + if (unlikely (p + run_count * HBUINT16::static_size > end)) return false; + for (j = 0; j < run_count; j++, i++) + { + deltas.arrayZ[i] = * (const HBINT16 *) p; + p += HBUINT16::static_size; + } + } + else + { + if (unlikely (p + run_count > end)) return false; + for (j = 0; j < run_count; j++, i++) + { + deltas.arrayZ[i] = * (const HBINT8 *) p++; + } + } + } + return true; + } + + bool has_data () const { return tupleVarCount; } + + protected: + struct TupleVarCount : HBUINT16 + { + bool has_shared_point_numbers () const { return ((*this) & SharedPointNumbers); } + unsigned int get_count () const { return (*this) & CountMask; } + + protected: + enum Flags + { + SharedPointNumbers= 0x8000u, + CountMask = 0x0FFFu + }; + public: + DEFINE_SIZE_STATIC (2); + }; + + TupleVarCount tupleVarCount; /* A packed field. The high 4 bits are flags, and the + * low 12 bits are the number of tuple variation tables + * for this glyph. The number of tuple variation tables + * can be any number between 1 and 4095. */ + Offset16To<HBUINT8> + data; /* Offset from the start of the base table + * to the serialized data. */ + /* TupleVariationHeader tupleVariationHeaders[] *//* Array of tuple variation headers. */ + public: + DEFINE_SIZE_MIN (4); +}; } /* namespace OT */ diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-cvar-table.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-cvar-table.hh new file mode 100644 index 0000000000000000000000000000000000000000..bdb2b6b23bd6c158f33581c8f6138d8500f91e04 --- /dev/null +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-cvar-table.hh @@ -0,0 +1,158 @@ +/* + * Copyright © 2023 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + */ + +#ifndef HB_OT_VAR_CVAR_TABLE_HH +#define HB_OT_VAR_CVAR_TABLE_HH + +#include "hb-ot-var-common.hh" + + +namespace OT { +/* + * cvar -- control value table (CVT) Variations + * https://docs.microsoft.com/en-us/typography/opentype/spec/cvar + */ +#define HB_OT_TAG_cvar HB_TAG('c','v','a','r') + +struct cvar +{ + static constexpr hb_tag_t tableTag = HB_OT_TAG_cvar; + + bool sanitize (hb_sanitize_context_t *c) const + { + TRACE_SANITIZE (this); + return_trace (c->check_struct (this) && + version.sanitize (c) && likely (version.major == 1) && + tupleVariationData.sanitize (c)); + } + + const TupleVariationData* get_tuple_var_data (void) const + { return &tupleVariationData; } + + static bool calculate_cvt_deltas (unsigned axis_count, + hb_array_t<int> coords, + unsigned num_cvt_item, + const TupleVariationData *tuple_var_data, + const void *base, + hb_vector_t<float>& cvt_deltas /* OUT */) + { + if (!coords) return true; + hb_vector_t<unsigned> shared_indices; + TupleVariationData::tuple_iterator_t iterator; + unsigned var_data_length = tuple_var_data->get_size (axis_count); + hb_bytes_t var_data_bytes = hb_bytes_t (reinterpret_cast<const char*> (tuple_var_data), var_data_length); + if (!TupleVariationData::get_tuple_iterator (var_data_bytes, axis_count, base, + shared_indices, &iterator)) + return true; /* isn't applied at all */ + + hb_array_t<const F2DOT14> shared_tuples = hb_array<F2DOT14> (); + hb_vector_t<unsigned> private_indices; + hb_vector_t<int> unpacked_deltas; + + do + { + float scalar = iterator.current_tuple->calculate_scalar (coords, axis_count, shared_tuples); + if (scalar == 0.f) continue; + const HBUINT8 *p = iterator.get_serialized_data (); + unsigned int length = iterator.current_tuple->get_data_size (); + if (unlikely (!iterator.var_data_bytes.check_range (p, length))) + return false; + + const HBUINT8 *end = p + length; + + bool has_private_points = iterator.current_tuple->has_private_points (); + if (has_private_points && + !TupleVariationData::unpack_points (p, private_indices, end)) + return false; + const hb_vector_t<unsigned int> &indices = has_private_points ? private_indices : shared_indices; + + bool apply_to_all = (indices.length == 0); + unsigned num_deltas = apply_to_all ? num_cvt_item : indices.length; + if (unlikely (!unpacked_deltas.resize (num_deltas, false))) return false; + if (unlikely (!TupleVariationData::unpack_deltas (p, unpacked_deltas, end))) return false; + + for (unsigned int i = 0; i < num_deltas; i++) + { + unsigned int idx = apply_to_all ? i : indices[i]; + if (unlikely (idx >= num_cvt_item)) continue; + if (scalar != 1.0f) cvt_deltas[idx] += unpacked_deltas[i] * scalar ; + else cvt_deltas[idx] += unpacked_deltas[i]; + } + } while (iterator.move_to_next ()); + + return true; + } + + static bool add_cvt_and_apply_deltas (hb_subset_plan_t *plan, + const TupleVariationData *tuple_var_data, + const void *base) + { + const hb_tag_t cvt = HB_TAG('c','v','t',' '); + hb_blob_t *cvt_blob = hb_face_reference_table (plan->source, cvt); + hb_blob_t *cvt_prime_blob = hb_blob_copy_writable_or_fail (cvt_blob); + hb_blob_destroy (cvt_blob); + + if (unlikely (!cvt_prime_blob)) + return false; + + unsigned cvt_blob_length = hb_blob_get_length (cvt_prime_blob); + unsigned num_cvt_item = cvt_blob_length / FWORD::static_size; + + hb_vector_t<float> cvt_deltas; + if (unlikely (!cvt_deltas.resize (num_cvt_item))) + { + hb_blob_destroy (cvt_prime_blob); + return false; + } + hb_memset (cvt_deltas.arrayZ, 0, cvt_deltas.get_size ()); + + if (!calculate_cvt_deltas (plan->normalized_coords.length, plan->normalized_coords.as_array (), + num_cvt_item, tuple_var_data, base, cvt_deltas)) + { + hb_blob_destroy (cvt_prime_blob); + return false; + } + + FWORD *cvt_prime = (FWORD *) hb_blob_get_data_writable (cvt_prime_blob, nullptr); + for (unsigned i = 0; i < num_cvt_item; i++) + cvt_prime[i] += (int) roundf (cvt_deltas[i]); + + bool success = plan->add_table (cvt, cvt_prime_blob); + hb_blob_destroy (cvt_prime_blob); + return success; + } + + protected: + FixedVersion<>version; /* Version of the CVT variation table + * initially set to 0x00010000u */ + TupleVariationData tupleVariationData; /* TupleVariationDate for cvar table */ + public: + DEFINE_SIZE_MIN (8); +}; + +} /* namespace OT */ + + +#endif /* HB_OT_VAR_CVAR_TABLE_HH */ diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-gvar-table.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-gvar-table.hh index 1eae6a35324e1dddacc37c0d5e3eed660930a6a0..d707a463338b46e73f854e9add305264926652b6 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-gvar-table.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-var-gvar-table.hh @@ -29,6 +29,7 @@ #define HB_OT_VAR_GVAR_TABLE_HH #include "hb-open-type.hh" +#include "hb-ot-var-common.hh" /* * gvar -- Glyph Variation Table @@ -90,311 +91,8 @@ struct contour_point_vector_t : hb_vector_t<contour_point_t> } }; -/* https://docs.microsoft.com/en-us/typography/opentype/spec/otvarcommonformats#tuplevariationheader */ -struct TupleVariationHeader -{ - unsigned get_size (unsigned axis_count) const - { return min_size + get_all_tuples (axis_count).get_size (); } - - unsigned get_data_size () const { return varDataSize; } - - const TupleVariationHeader &get_next (unsigned axis_count) const - { return StructAtOffset<TupleVariationHeader> (this, get_size (axis_count)); } - - float calculate_scalar (hb_array_t<int> coords, unsigned int coord_count, - const hb_array_t<const F2DOT14> shared_tuples) const - { - hb_array_t<const F2DOT14> peak_tuple; - - if (has_peak ()) - peak_tuple = get_peak_tuple (coord_count); - else - { - unsigned int index = get_index (); - if (unlikely (index * coord_count >= shared_tuples.length)) - return 0.f; - peak_tuple = shared_tuples.sub_array (coord_count * index, coord_count); - } - - hb_array_t<const F2DOT14> start_tuple; - hb_array_t<const F2DOT14> end_tuple; - if (has_intermediate ()) - { - start_tuple = get_start_tuple (coord_count); - end_tuple = get_end_tuple (coord_count); - } - - float scalar = 1.f; - for (unsigned int i = 0; i < coord_count; i++) - { - int v = coords[i]; - int peak = peak_tuple[i].to_int (); - if (!peak || v == peak) continue; - - if (has_intermediate ()) - { - int start = start_tuple[i].to_int (); - int end = end_tuple[i].to_int (); - if (unlikely (start > peak || peak > end || - (start < 0 && end > 0 && peak))) continue; - if (v < start || v > end) return 0.f; - if (v < peak) - { if (peak != start) scalar *= (float) (v - start) / (peak - start); } - else - { if (peak != end) scalar *= (float) (end - v) / (end - peak); } - } - else if (!v || v < hb_min (0, peak) || v > hb_max (0, peak)) return 0.f; - else - scalar *= (float) v / peak; - } - return scalar; - } - - bool has_peak () const { return tupleIndex & TuppleIndex::EmbeddedPeakTuple; } - bool has_intermediate () const { return tupleIndex & TuppleIndex::IntermediateRegion; } - bool has_private_points () const { return tupleIndex & TuppleIndex::PrivatePointNumbers; } - unsigned get_index () const { return tupleIndex & TuppleIndex::TupleIndexMask; } - - protected: - struct TuppleIndex : HBUINT16 - { - enum Flags { - EmbeddedPeakTuple = 0x8000u, - IntermediateRegion = 0x4000u, - PrivatePointNumbers = 0x2000u, - TupleIndexMask = 0x0FFFu - }; - - DEFINE_SIZE_STATIC (2); - }; - - hb_array_t<const F2DOT14> get_all_tuples (unsigned axis_count) const - { return StructAfter<UnsizedArrayOf<F2DOT14>> (tupleIndex).as_array ((has_peak () + has_intermediate () * 2) * axis_count); } - hb_array_t<const F2DOT14> get_peak_tuple (unsigned axis_count) const - { return get_all_tuples (axis_count).sub_array (0, axis_count); } - hb_array_t<const F2DOT14> get_start_tuple (unsigned axis_count) const - { return get_all_tuples (axis_count).sub_array (has_peak () * axis_count, axis_count); } - hb_array_t<const F2DOT14> get_end_tuple (unsigned axis_count) const - { return get_all_tuples (axis_count).sub_array (has_peak () * axis_count + axis_count, axis_count); } - - HBUINT16 varDataSize; /* The size in bytes of the serialized - * data for this tuple variation table. */ - TuppleIndex tupleIndex; /* A packed field. The high 4 bits are flags (see below). - The low 12 bits are an index into a shared tuple - records array. */ - /* UnsizedArrayOf<F2DOT14> peakTuple - optional */ - /* Peak tuple record for this tuple variation table — optional, - * determined by flags in the tupleIndex value. - * - * Note that this must always be included in the 'cvar' table. */ - /* UnsizedArrayOf<F2DOT14> intermediateStartTuple - optional */ - /* Intermediate start tuple record for this tuple variation table — optional, - determined by flags in the tupleIndex value. */ - /* UnsizedArrayOf<F2DOT14> intermediateEndTuple - optional */ - /* Intermediate end tuple record for this tuple variation table — optional, - * determined by flags in the tupleIndex value. */ - public: - DEFINE_SIZE_MIN (4); -}; - -struct GlyphVariationData -{ - const TupleVariationHeader &get_tuple_var_header (void) const - { return StructAfter<TupleVariationHeader> (data); } - - struct tuple_iterator_t - { - void init (hb_bytes_t var_data_bytes_, unsigned int axis_count_) - { - var_data_bytes = var_data_bytes_; - var_data = var_data_bytes_.as<GlyphVariationData> (); - index = 0; - axis_count = axis_count_; - current_tuple = &var_data->get_tuple_var_header (); - data_offset = 0; - } - - bool get_shared_indices (hb_vector_t<unsigned int> &shared_indices /* OUT */) - { - if (var_data->has_shared_point_numbers ()) - { - const HBUINT8 *base = &(var_data+var_data->data); - const HBUINT8 *p = base; - if (!unpack_points (p, shared_indices, (const HBUINT8 *) (var_data_bytes.arrayZ + var_data_bytes.length))) return false; - data_offset = p - base; - } - return true; - } - - bool is_valid () const - { - return (index < var_data->tupleVarCount.get_count ()) && - var_data_bytes.check_range (current_tuple, TupleVariationHeader::min_size) && - var_data_bytes.check_range (current_tuple, hb_max (current_tuple->get_data_size (), - current_tuple->get_size (axis_count))); - } - - bool move_to_next () - { - data_offset += current_tuple->get_data_size (); - current_tuple = ¤t_tuple->get_next (axis_count); - index++; - return is_valid (); - } - - const HBUINT8 *get_serialized_data () const - { return &(var_data+var_data->data) + data_offset; } - - private: - const GlyphVariationData *var_data; - unsigned int index; - unsigned int axis_count; - unsigned int data_offset; - - public: - hb_bytes_t var_data_bytes; - const TupleVariationHeader *current_tuple; - }; - - static bool get_tuple_iterator (hb_bytes_t var_data_bytes, unsigned axis_count, - hb_vector_t<unsigned int> &shared_indices /* OUT */, - tuple_iterator_t *iterator /* OUT */) - { - iterator->init (var_data_bytes, axis_count); - if (!iterator->get_shared_indices (shared_indices)) - return false; - return iterator->is_valid (); - } - - bool has_shared_point_numbers () const { return tupleVarCount.has_shared_point_numbers (); } - - static bool unpack_points (const HBUINT8 *&p /* IN/OUT */, - hb_vector_t<unsigned int> &points /* OUT */, - const HBUINT8 *end) - { - enum packed_point_flag_t - { - POINTS_ARE_WORDS = 0x80, - POINT_RUN_COUNT_MASK = 0x7F - }; - - if (unlikely (p + 1 > end)) return false; - - unsigned count = *p++; - if (count & POINTS_ARE_WORDS) - { - if (unlikely (p + 1 > end)) return false; - count = ((count & POINT_RUN_COUNT_MASK) << 8) | *p++; - } - if (unlikely (!points.resize (count, false))) return false; - - unsigned n = 0; - unsigned i = 0; - while (i < count) - { - if (unlikely (p + 1 > end)) return false; - unsigned control = *p++; - unsigned run_count = (control & POINT_RUN_COUNT_MASK) + 1; - if (unlikely (i + run_count > count)) return false; - unsigned j; - if (control & POINTS_ARE_WORDS) - { - if (unlikely (p + run_count * HBUINT16::static_size > end)) return false; - for (j = 0; j < run_count; j++, i++) - { - n += *(const HBUINT16 *)p; - points.arrayZ[i] = n; - p += HBUINT16::static_size; - } - } - else - { - if (unlikely (p + run_count > end)) return false; - for (j = 0; j < run_count; j++, i++) - { - n += *p++; - points.arrayZ[i] = n; - } - } - } - return true; - } - - static bool unpack_deltas (const HBUINT8 *&p /* IN/OUT */, - hb_vector_t<int> &deltas /* IN/OUT */, - const HBUINT8 *end) - { - enum packed_delta_flag_t - { - DELTAS_ARE_ZERO = 0x80, - DELTAS_ARE_WORDS = 0x40, - DELTA_RUN_COUNT_MASK = 0x3F - }; - - unsigned i = 0; - unsigned count = deltas.length; - while (i < count) - { - if (unlikely (p + 1 > end)) return false; - unsigned control = *p++; - unsigned run_count = (control & DELTA_RUN_COUNT_MASK) + 1; - if (unlikely (i + run_count > count)) return false; - unsigned j; - if (control & DELTAS_ARE_ZERO) - { - for (j = 0; j < run_count; j++, i++) - deltas.arrayZ[i] = 0; - } - else if (control & DELTAS_ARE_WORDS) - { - if (unlikely (p + run_count * HBUINT16::static_size > end)) return false; - for (j = 0; j < run_count; j++, i++) - { - deltas.arrayZ[i] = * (const HBINT16 *) p; - p += HBUINT16::static_size; - } - } - else - { - if (unlikely (p + run_count > end)) return false; - for (j = 0; j < run_count; j++, i++) - { - deltas.arrayZ[i] = * (const HBINT8 *) p++; - } - } - } - return true; - } - - bool has_data () const { return tupleVarCount; } - - protected: - struct TupleVarCount : HBUINT16 - { - bool has_shared_point_numbers () const { return ((*this) & SharedPointNumbers); } - unsigned int get_count () const { return (*this) & CountMask; } - - protected: - enum Flags - { - SharedPointNumbers= 0x8000u, - CountMask = 0x0FFFu - }; - public: - DEFINE_SIZE_STATIC (2); - }; - - TupleVarCount tupleVarCount; /* A packed field. The high 4 bits are flags, and the - * low 12 bits are the number of tuple variation tables - * for this glyph. The number of tuple variation tables - * can be any number between 1 and 4095. */ - Offset16To<HBUINT8> - data; /* Offset from the start of the GlyphVariationData table - * to the serialized data. */ - /* TupleVariationHeader tupleVariationHeaders[] *//* Array of tuple variation headers. */ - public: - DEFINE_SIZE_MIN (4); -}; +struct GlyphVariationData : TupleVariationData +{}; struct gvar { @@ -561,6 +259,7 @@ struct gvar hb_vector_t<unsigned int> shared_indices; GlyphVariationData::tuple_iterator_t iterator; if (!GlyphVariationData::get_tuple_iterator (var_data_bytes, table->axisCount, + var_data_bytes.arrayZ, shared_indices, &iterator)) return true; /* so isn't applied at all */ diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-outline.cc b/source/libs/harfbuzz/harfbuzz-src/src/hb-outline.cc index 184e48cfb7a998136169fd81cbc13baadb9f3d57..0657e0e1d3dfcd1fb906f2400ad6f410929dbe11 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-outline.cc +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-outline.cc @@ -85,7 +85,7 @@ void hb_outline_t::replay (hb_draw_funcs_t *pen, void *pen_data) const } } -float hb_outline_t::area () const +float hb_outline_t::control_area () const { float a = 0; unsigned first = 0; @@ -118,7 +118,7 @@ void hb_outline_t::embolden (float x_strength, float y_strength, x_strength /= 2.f; y_strength /= 2.f; - bool orientation_negative = area () < 0; + bool orientation_negative = control_area () < 0; signed first = 0; for (unsigned c = 0; c < contours.length; c++) diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-outline.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-outline.hh index c463993cfbb78c9a10db7a4435f58aa7664daeb7..c43c06596bb29c96e041aa500c64a4d50745b92f 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-outline.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-outline.hh @@ -68,7 +68,7 @@ struct hb_outline_t void reset () { points.shrink (0, false); contours.resize (0); } HB_INTERNAL void replay (hb_draw_funcs_t *pen, void *pen_data) const; - HB_INTERNAL float area () const; + HB_INTERNAL float control_area () const; HB_INTERNAL void embolden (float x_strength, float y_strength, float x_shift, float y_shift); diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-sanitize.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-sanitize.hh index eb907c6b2af6ae82fb5885771bc61c045d349e53..5259891b7e0dd379970c5d747d2aa702f8fab95b 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-sanitize.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-sanitize.hh @@ -228,6 +228,18 @@ struct hb_sanitize_context_t : unsigned get_edit_count () { return edit_count; } + + bool check_ops(unsigned count) + { + /* Avoid underflow */ + if (unlikely (this->max_ops < 0 || count >= (unsigned) this->max_ops)) + { + this->max_ops = -1; + return false; + } + return (this->max_ops -= (int) count) > 0; + } + bool check_range (const void *base, unsigned int len) const { diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.cc b/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.cc index 7b5bf2c5ef7763605c8673762bb4476dba01c157..89d354fc012289d0896e38c566c55b735a4d0bf1 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.cc +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.cc @@ -196,4 +196,238 @@ hb_shape (hb_font_t *font, } +#ifdef HB_EXPERIMENTAL_API + +static float +buffer_advance (hb_buffer_t *buffer) +{ + float a = 0; + auto *pos = buffer->pos; + unsigned count = buffer->len; + if (HB_DIRECTION_IS_HORIZONTAL (buffer->props.direction)) + for (unsigned i = 0; i < count; i++) + a += pos[i].x_advance; + else + for (unsigned i = 0; i < count; i++) + a += pos[i].y_advance; + return a; +} + +static void +reset_buffer (hb_buffer_t *buffer, + hb_array_t<const hb_glyph_info_t> text) +{ + assert (buffer->ensure (text.length)); + buffer->have_positions = false; + buffer->len = text.length; + memcpy (buffer->info, text.arrayZ, text.length * sizeof (buffer->info[0])); + hb_buffer_set_content_type (buffer, HB_BUFFER_CONTENT_TYPE_UNICODE); +} + +/** + * hb_shape_justify: + * @font: a mutable #hb_font_t to use for shaping + * @buffer: an #hb_buffer_t to shape + * @features: (array length=num_features) (nullable): an array of user + * specified #hb_feature_t or `NULL` + * @num_features: the length of @features array + * @shaper_list: (array zero-terminated=1) (nullable): a `NULL`-terminated + * array of shapers to use or `NULL` + * @min_target_advance: Minimum advance width/height to aim for. + * @max_target_advance: Maximum advance width/height to aim for. + * @advance: (inout): Input/output advance width/height of the buffer. + * @var_tag: (out): Variation-axis tag used for justification. + * @var_value: (out): Variation-axis value used to reach target justification. + * + * See hb_shape_full() for basic details. If @shaper_list is not `NULL`, the specified + * shapers will be used in the given order, otherwise the default shapers list + * will be used. + * + * In addition, justify the shaping results such that the shaping results reach + * the target advance width/height, depending on the buffer direction. + * + * If the advance of the buffer shaped with hb_shape_full() is already known, + * put that in *advance. Otherwise set *advance to zero. + * + * This API is currently experimental and will probably change in the future. + * + * Return value: false if all shapers failed, true otherwise + * + * XSince: EXPERIMENTAL + **/ +hb_bool_t +hb_shape_justify (hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features, + const char * const *shaper_list, + float min_target_advance, + float max_target_advance, + float *advance, /* IN/OUT */ + hb_tag_t *var_tag, /* OUT */ + float *var_value /* OUT */) +{ + // TODO Negative font scales? + + /* If default advance already matches target, nothing to do. Shape and return. */ + if (min_target_advance <= *advance && *advance <= max_target_advance) + return hb_shape_full (font, buffer, + features, num_features, + shaper_list); + + hb_face_t *face = font->face; + + /* Choose variation tag to use for justification. */ + + hb_tag_t tag = HB_TAG_NONE; + hb_ot_var_axis_info_t axis_info; + + hb_tag_t tags[] = + { + HB_TAG ('j','s','t','f'), + HB_TAG ('w','d','t','h'), + }; + for (unsigned i = 0; i < ARRAY_LENGTH (tags); i++) + if (hb_ot_var_find_axis_info (face, tags[i], &axis_info)) + { + tag = *var_tag = tags[i]; + break; + } + + /* If no suitable variation axis found, can't justify. Just shape and return. */ + if (!tag) + { + if (hb_shape_full (font, buffer, + features, num_features, + shaper_list)) + { + *advance = buffer_advance (buffer); + return true; + } + else + return false; + } + + /* Copy buffer text as we need it so we can shape multiple times. */ + unsigned text_len = buffer->len; + auto *text_info = (hb_glyph_info_t *) hb_malloc (text_len * sizeof (buffer->info[0])); + if (unlikely (text_len && !text_info)) + return false; + hb_memcpy (text_info, buffer->info, text_len * sizeof (buffer->info[0])); + auto text = hb_array<const hb_glyph_info_t> (text_info, text_len); + + /* If default advance was not provided to us, calculate it. */ + if (!*advance) + { + hb_font_set_variation (font, tag, axis_info.default_value); + if (!hb_shape_full (font, buffer, + features, num_features, + shaper_list)) + return false; + *advance = buffer_advance (buffer); + } + + /* If default advance already matches target, nothing to do. Shape and return. + * Do this again, in case advance was just calculated. + */ + if (min_target_advance <= *advance && *advance <= max_target_advance) + return true; + + /* Prepare for running the solver. */ + double a, b, ya, yb; + if (*advance < min_target_advance) + { + /* Need to expand. */ + ya = (double) *advance; + a = (double) axis_info.default_value; + b = (double) axis_info.max_value; + + /* Shape buffer for maximum expansion to use as other + * starting point for the solver. */ + hb_font_set_variation (font, tag, (float) b); + reset_buffer (buffer, text); + if (!hb_shape_full (font, buffer, + features, num_features, + shaper_list)) + return false; + yb = (double) buffer_advance (buffer); + /* If the maximum expansion is less than max target, + * there's nothing to solve for. Just return it. */ + if (yb <= (double) max_target_advance) + { + *advance = (float) yb; + return true; + } + } + else + { + /* Need to shrink. */ + yb = (double) *advance; + a = (double) axis_info.min_value; + b = (double) axis_info.default_value; + + /* Shape buffer for maximum shrinkate to use as other + * starting point for the solver. */ + hb_font_set_variation (font, tag, (float) a); + reset_buffer (buffer, text); + if (!hb_shape_full (font, buffer, + features, num_features, + shaper_list)) + return false; + ya = (double) buffer_advance (buffer); + /* If the maximum shrinkate is more than min target, + * there's nothing to solve for. Just return it. */ + if (ya >= (double) min_target_advance) + { + *advance = (float) ya; + return true; + } + } + + /* Run the solver to find a var axis value that hits + * the desired width. */ + + double epsilon = (b - a) / (1<<14); + bool failed = false; + + auto f = [&] (double x) + { + hb_font_set_variation (font, tag, (float) x); + reset_buffer (buffer, text); + if (unlikely (!hb_shape_full (font, buffer, + features, num_features, + shaper_list))) + { + failed = true; + return (double) min_target_advance; + } + + double w = (double) buffer_advance (buffer); + DEBUG_MSG (JUSTIFY, nullptr, "Trying '%c%c%c%c' axis parameter %f. Advance %g. Target: min %g max %g", + HB_UNTAG (tag), x, w, + (double) min_target_advance, (double) max_target_advance); + return w; + }; + + double y = 0; + double itp = solve_itp (f, + a, b, + epsilon, + (double) min_target_advance, (double) max_target_advance, + ya, yb, y); + + hb_free (text_info); + + if (failed) + return false; + + *var_value = (float) itp; + *advance = (float) y; + + return true; +} + +#endif + + #endif diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.h b/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.h index 922f8c011ec31fb9742498a11310abfe37d56e87..d4d4fdfd267a76efbaf20dd1341cb02e4ee5246f 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.h +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-shape.h @@ -53,6 +53,18 @@ hb_shape_full (hb_font_t *font, unsigned int num_features, const char * const *shaper_list); +HB_EXTERN hb_bool_t +hb_shape_justify (hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features, + const char * const *shaper_list, + float min_target_advance, + float max_target_advance, + float *advance, /* IN/OUT */ + hb_tag_t *var_tag, /* OUT */ + float *var_value /* OUT */); + HB_EXTERN const char ** hb_shape_list_shapers (void); diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-shaper-list.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb-shaper-list.hh index 0d63933a7667ebcbb41ac385274f029309b7e945..4158b7094c9e7189127bbe03e6b37e8811ad4ad0 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-shaper-list.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-shaper-list.hh @@ -39,7 +39,7 @@ HB_SHAPER_IMPLEMENT (graphite2) #endif #ifndef HB_NO_OT_SHAPE -HB_SHAPER_IMPLEMENT (ot) /* <--- This is our main OpenType shaper. */ +HB_SHAPER_IMPLEMENT (ot) /* <--- This is our main shaper. */ #endif #ifdef HAVE_UNISCRIBE diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-input.cc b/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-input.cc index ca59de79a2be2e7af6223d2ff82ee624ddeec749..5f001ac25110686332921724da02d463ec1b6ad0 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-input.cc +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-subset-input.cc @@ -71,7 +71,6 @@ hb_subset_input_t::hb_subset_input_t () hb_tag_t default_no_subset_tables[] = { HB_TAG ('a', 'v', 'a', 'r'), HB_TAG ('g', 'a', 's', 'p'), - HB_TAG ('c', 'v', 't', ' '), HB_TAG ('f', 'p', 'g', 'm'), HB_TAG ('p', 'r', 'e', 'p'), HB_TAG ('V', 'D', 'M', 'X'), diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc b/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc index 82df3386f5d2b47d6351e0127f5772ab13e1bb04..e0b1ed644250292ea164ce762836d975fc71a8e7 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb-subset.cc @@ -50,6 +50,7 @@ #include "hb-ot-name-table.hh" #include "hb-ot-layout-gsub-table.hh" #include "hb-ot-layout-gpos-table.hh" +#include "hb-ot-var-cvar-table.hh" #include "hb-ot-var-fvar-table.hh" #include "hb-ot-var-gvar-table.hh" #include "hb-ot-var-hvar-table.hh" @@ -478,6 +479,16 @@ _subset_table (hb_subset_plan_t *plan, if (plan->all_axes_pinned) return _subset<const OT::STAT> (plan, buf); else return _passthrough (plan, tag); + case HB_TAG ('c', 'v', 't', ' '): +#ifndef HB_NO_VAR + if (_is_table_present (plan->source, HB_OT_TAG_cvar) && + plan->normalized_coords && !plan->pinned_at_default) + { + auto &cvar = *plan->source->table.cvar; + return OT::cvar::add_cvt_and_apply_deltas (plan, cvar.get_tuple_var_data (), &cvar); + } +#endif + return _passthrough (plan, tag); default: if (plan->flags & HB_SUBSET_FLAGS_PASSTHROUGH_UNRECOGNIZED) return _passthrough (plan, tag); diff --git a/source/libs/harfbuzz/harfbuzz-src/src/hb.hh b/source/libs/harfbuzz/harfbuzz-src/src/hb.hh index 857571b42fdba99221535fbe1c28710bfec0f793..d09849e5653933fc7efa793505040e41301a73c7 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/hb.hh +++ b/source/libs/harfbuzz/harfbuzz-src/src/hb.hh @@ -246,7 +246,15 @@ extern "C" void hb_free_impl(void *ptr); * Compiler attributes */ -#if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE__) +// gcc 10 has __has_builtin but not earlier versions. Sanction any gcc >= 5 +// clang defines it so no need. +#ifdef __has_builtin +#define hb_has_builtin __has_builtin +#else +#define hb_has_builtin(x) ((defined(__GNUC__) && __GNUC__ >= 5)) +#endif + +#if defined(__OPTIMIZE__) && hb_has_builtin(__builtin_expect) #define likely(expr) (__builtin_expect (!!(expr), 1)) #define unlikely(expr) (__builtin_expect (!!(expr), 0)) #else diff --git a/source/libs/harfbuzz/harfbuzz-src/src/meson.build b/source/libs/harfbuzz/harfbuzz-src/src/meson.build index 435201c28c4533ce6fa10ae067348ef8ea914780..93991abd9f7d09fed31a49d5430447480b3e4f9a 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/meson.build +++ b/source/libs/harfbuzz/harfbuzz-src/src/meson.build @@ -226,6 +226,7 @@ hb_base_sources = files( 'hb-ot-tag.cc', 'hb-ot-var-avar-table.hh', 'hb-ot-var-common.hh', + 'hb-ot-var-cvar-table.hh', 'hb-ot-var-fvar-table.hh', 'hb-ot-var-gvar-table.hh', 'hb-ot-var-hvar-table.hh', diff --git a/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc b/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc index a0a59cbcd1b13d836b9b0bd556c4228c7d7e8012..61cc8bfb32f19bbe44cff3bbe72857868059ad35 100644 --- a/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc +++ b/source/libs/harfbuzz/harfbuzz-src/src/test-map.cc @@ -344,8 +344,8 @@ main (int argc, char **argv) hb_set_t keys; hb_set_t values; - m.keys (keys); - m.values (values); + hb_copy (m.keys (), keys); + hb_copy (m.values (), values); assert (keys.is_equal (hb_set_t ({1, 2, 3, 4, 5, 6}))); assert (values.is_equal (hb_set_t ({1, 1, 2, 3, 5, 8}))); diff --git a/source/libs/harfbuzz/version.ac b/source/libs/harfbuzz/version.ac index c5ecaabc8c1ebc4371fd11b47d512365d99291b3..8d98b1fa32e9e9dcbc61812e92e2e7469b5c0742 100644 --- a/source/libs/harfbuzz/version.ac +++ b/source/libs/harfbuzz/version.ac @@ -8,4 +8,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current harfbuzz version -m4_define([harfbuzz_version], [7.0.1]) +m4_define([harfbuzz_version], [7.1.0]) diff --git a/source/texk/configure b/source/texk/configure index b13d5ff4a0f084de6a206e560c93bcb15a7f9660..255c0c560c8a63245c8be36a5e16fb3e32042f25 100755 --- a/source/texk/configure +++ b/source/texk/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for TeX Live texk 2023. +# Generated by GNU Autoconf 2.71 for TeX Live texk 2024. # # Report bugs to <tex-live@tug.org>. # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='TeX Live texk' PACKAGE_TARNAME='tex-live-texk' -PACKAGE_VERSION='2023' -PACKAGE_STRING='TeX Live texk 2023' +PACKAGE_VERSION='2024' +PACKAGE_STRING='TeX Live texk 2024' PACKAGE_BUGREPORT='tex-live@tug.org' PACKAGE_URL='' @@ -1355,7 +1355,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures TeX Live texk 2023 to adapt to many kinds of systems. +\`configure' configures TeX Live texk 2024 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1426,7 +1426,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TeX Live texk 2023:";; + short | recursive ) echo "Configuration of TeX Live texk 2024:";; esac cat <<\_ACEOF @@ -1611,7 +1611,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TeX Live texk configure 2023 +TeX Live texk configure 2024 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1734,7 +1734,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by TeX Live texk $as_me 2023, which was +It was created by TeX Live texk $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -5242,7 +5242,7 @@ fi # Define the identity of the package. PACKAGE='tex-live-texk' - VERSION='2023' + VERSION='2024' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -6175,7 +6175,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TeX Live texk $as_me 2023, which was +This file was extended by TeX Live texk $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6234,7 +6234,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -TeX Live texk config.status 2023 +TeX Live texk config.status 2024 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/source/texk/kpathsea/c-auto.in b/source/texk/kpathsea/c-auto.in index d011f8d24f1a8df520c43375fa83888978487465..dc3154b192e74d8108f84dfd24355a1c731c2de0 100644 --- a/source/texk/kpathsea/c-auto.in +++ b/source/texk/kpathsea/c-auto.in @@ -23,7 +23,7 @@ #define KPATHSEA_C_AUTO_H /* kpathsea: the version string. */ -#define KPSEVERSION "kpathsea version 6.3.5" +#define KPSEVERSION "kpathsea version 6.3.6/dev" /* Define to 1 if the `closedir' function returns void instead of int. */ #undef CLOSEDIR_VOID diff --git a/source/texk/kpathsea/configure b/source/texk/kpathsea/configure index 1ff71e82ed882b8753020b48017a1d169a8109cb..b227dc324899d231a4a89a35d43cfe4c51029136 100755 --- a/source/texk/kpathsea/configure +++ b/source/texk/kpathsea/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Kpathsea 6.3.5. +# Generated by GNU Autoconf 2.71 for Kpathsea 6.3.6/dev. # # Report bugs to <tex-k@tug.org>. # @@ -621,8 +621,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Kpathsea' PACKAGE_TARNAME='kpathsea' -PACKAGE_VERSION='6.3.5' -PACKAGE_STRING='Kpathsea 6.3.5' +PACKAGE_VERSION='6.3.6/dev' +PACKAGE_STRING='Kpathsea 6.3.6/dev' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1377,7 +1377,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Kpathsea 6.3.5 to adapt to many kinds of systems. +\`configure' configures Kpathsea 6.3.6/dev to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1448,7 +1448,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Kpathsea 6.3.5:";; + short | recursive ) echo "Configuration of Kpathsea 6.3.6/dev:";; esac cat <<\_ACEOF @@ -1576,7 +1576,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Kpathsea configure 6.3.5 +Kpathsea configure 6.3.6/dev generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2332,7 +2332,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Kpathsea $as_me 6.3.5, which was +It was created by Kpathsea $as_me 6.3.6/dev, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3092,14 +3092,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -KPSEVERSION=6.3.5 +KPSEVERSION=6.3.6/dev -KPSE_LT_VERSINFO=9:5:3 +KPSE_LT_VERSINFO=9:6:3 - WEB2CVERSION=" (TeX Live 2023)" + WEB2CVERSION=" (TeX Live 2024)" am__api_version='1.16' @@ -8783,7 +8783,7 @@ fi # Define the identity of the package. PACKAGE='kpathsea' - VERSION='6.3.5' + VERSION='6.3.6/dev' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -15549,7 +15549,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Kpathsea $as_me 6.3.5, which was +This file was extended by Kpathsea $as_me 6.3.6/dev, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15617,7 +15617,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Kpathsea config.status 6.3.5 +Kpathsea config.status 6.3.6/dev configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/source/texk/kpathsea/version.ac b/source/texk/kpathsea/version.ac index ada0b816dbbcff6f706e23260714728823b6b72b..b2c0003968143184417659045e955a5d63ddbb88 100644 --- a/source/texk/kpathsea/version.ac +++ b/source/texk/kpathsea/version.ac @@ -1,4 +1,4 @@ -dnl $Id: version.ac 65770 2023-02-09 21:26:50Z karl $ +dnl $Id: version.ac 66596 2023-03-19 22:16:03Z karl $ dnl Copyright 2016-2023 Karl Berry <tex-live@tug.org> dnl Copyright 2011-2015 Peter Breitenlohner <tex-live@tug.org> dnl @@ -16,8 +16,9 @@ dnl Modifying or revoking interfaces (not backwards compatible) dnl a.b.c => a+1.0.0 dnl dnl After a release: -dnl append "dev", to distinguish binaries built between releases. +dnl increment and append "dev", to distinguish binaries built between +dnl releases. dnl -------------------------------------------------------- dnl dnl This file is m4-included from configure.ac. -m4_define([kpse_version], [6.3.5]) +m4_define([kpse_version], [6.3.6/dev]) diff --git a/source/texk/texlive/configure b/source/texk/texlive/configure index efe8a709761397260d78f975006abc5b2ebbe430..4cb1d4cd7df4901b1cdbbf625c392dbef3b39d62 100755 --- a/source/texk/texlive/configure +++ b/source/texk/texlive/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for TeX Live Scripts 2023. +# Generated by GNU Autoconf 2.71 for TeX Live Scripts 2024. # # Report bugs to <tex-k@tug.org>. # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='TeX Live Scripts' PACKAGE_TARNAME='tex-live-scripts' -PACKAGE_VERSION='2023' -PACKAGE_STRING='TeX Live Scripts 2023' +PACKAGE_VERSION='2024' +PACKAGE_STRING='TeX Live Scripts 2024' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1281,7 +1281,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures TeX Live Scripts 2023 to adapt to many kinds of systems. +\`configure' configures TeX Live Scripts 2024 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1349,7 +1349,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TeX Live Scripts 2023:";; + short | recursive ) echo "Configuration of TeX Live Scripts 2024:";; esac cat <<\_ACEOF @@ -1445,7 +1445,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TeX Live Scripts configure 2023 +TeX Live Scripts configure 2024 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1521,7 +1521,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by TeX Live Scripts $as_me 2023, which was +It was created by TeX Live Scripts $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2786,7 +2786,7 @@ fi # Define the identity of the package. PACKAGE='tex-live-scripts' - VERSION='2023' + VERSION='2024' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -4914,7 +4914,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TeX Live Scripts $as_me 2023, which was +This file was extended by TeX Live Scripts $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -4973,7 +4973,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -TeX Live Scripts config.status 2023 +TeX Live Scripts config.status 2024 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/source/texk/web2c/ChangeLog b/source/texk/web2c/ChangeLog index bda62667c65143fbf18189a1a8e3c05d0a21abf8..a341eb42d74d1fee50b878fbaa7d467daf97258e 100644 --- a/source/texk/web2c/ChangeLog +++ b/source/texk/web2c/ChangeLog @@ -1,3 +1,10 @@ +2023-03-29 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * tests/fn-generate.perl: + Skip tests for Shift_JIS & EUC-JP if conversion failed. + Report from Ken Moffat. + https://tug.org/pipermail/tex-k/2023-March/003911.html + 2023-02-14 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> * tests/fn-generate.perl: diff --git a/source/texk/web2c/configure b/source/texk/web2c/configure index f9606de431850c7bc388b74464973c0fbefa2bc2..eeed7fc1841ccd9837610a5828b97e1bddf99956 100755 --- a/source/texk/web2c/configure +++ b/source/texk/web2c/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Web2C 2023. +# Generated by GNU Autoconf 2.71 for Web2C 2024. # # Report bugs to <tex-k@tug.org>. # @@ -629,8 +629,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Web2C' PACKAGE_TARNAME='web2c' -PACKAGE_VERSION='2023' -PACKAGE_STRING='Web2C 2023' +PACKAGE_VERSION='2024' +PACKAGE_STRING='Web2C 2024' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1676,7 +1676,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Web2C 2023 to adapt to many kinds of systems. +\`configure' configures Web2C 2024 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1751,7 +1751,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Web2C 2023:";; + short | recursive ) echo "Configuration of Web2C 2024:";; esac cat <<\_ACEOF @@ -1977,7 +1977,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Web2C configure 2023 +Web2C configure 2024 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2967,7 +2967,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Web2C $as_me 2023, which was +It was created by Web2C $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3943,7 +3943,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -WEB2CVERSION=2023 +WEB2CVERSION=2024 am__api_version='1.16' @@ -9627,7 +9627,7 @@ fi # Define the identity of the package. PACKAGE='web2c' - VERSION='2023' + VERSION='2024' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -25512,7 +25512,7 @@ Usage: $0 [OPTIONS] Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ -Web2C config.lt 2023 +Web2C config.lt 2024 configured by $0, generated by GNU Autoconf 2.71. Copyright (C) 2011 Free Software Foundation, Inc. @@ -29275,7 +29275,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Web2C $as_me 2023, which was +This file was extended by Web2C $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -29347,7 +29347,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Web2C config.status 2023 +Web2C config.status 2024 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/source/texk/web2c/lib/ChangeLog b/source/texk/web2c/lib/ChangeLog index 3856f75fc470d2ea8b1e4f0d08e509ae01c08144..4163e168756d98829e2f7c6df87face1bfa078fd 100644 --- a/source/texk/web2c/lib/ChangeLog +++ b/source/texk/web2c/lib/ChangeLog @@ -1,3 +1,7 @@ +2023-03-20 Akira Kakuto <kakuto@jcom.zaq.ne.jp> + + * texmfmp.c: Typo, missing !IS_pTeX in ipcpage(). + 2023-03-09 Karl Berry <karl@tug.org> * TL'23 release. diff --git a/source/texk/web2c/lib/texmfmp.c b/source/texk/web2c/lib/texmfmp.c index 5bb7032242b0162a5d462cf6f6c3a2b3d37976a3..e7379c60c049efdb66ca5fe653253093145b11a8 100644 --- a/source/texk/web2c/lib/texmfmp.c +++ b/source/texk/web2c/lib/texmfmp.c @@ -1505,7 +1505,7 @@ ipcpage (int is_eof) strstartar[outputfilename - 65536L]; #endif name = xmalloc (len + 1); -#if !defined(Aleph) +#if !defined(Aleph) && !IS_pTeX strncpy (name, (string)&strpool[strstart[outputfilename]], len); #else { diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h index 76d929807b2bacedde41cba55e3d52f9cd87ff77..01365ad681a0556771b0ae12d31787677a66478b 100644 --- a/source/texk/web2c/luatexdir/luatex_svnversion.h +++ b/source/texk/web2c/luatexdir/luatex_svnversion.h @@ -1,4 +1,4 @@ #ifndef luatex_svn_revision_h #define luatex_svn_revision_h -#define luatex_svn_revision 7569 +#define luatex_svn_revision 7570 #endif diff --git a/source/texk/web2c/web2c/configure b/source/texk/web2c/web2c/configure index c7459e66b5117f1d57d407bd4cfce146d681c43a..0d567016db19d71db6882fb0a1e72d83d0292967 100755 --- a/source/texk/web2c/web2c/configure +++ b/source/texk/web2c/web2c/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Web2C Tools 2023. +# Generated by GNU Autoconf 2.71 for Web2C Tools 2024. # # Report bugs to <tex-k@tug.org>. # @@ -621,8 +621,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Web2C Tools' PACKAGE_TARNAME='web2c-tools' -PACKAGE_VERSION='2023' -PACKAGE_STRING='Web2C Tools 2023' +PACKAGE_VERSION='2024' +PACKAGE_STRING='Web2C Tools 2024' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -1366,7 +1366,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Web2C Tools 2023 to adapt to many kinds of systems. +\`configure' configures Web2C Tools 2024 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1437,7 +1437,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Web2C Tools 2023:";; + short | recursive ) echo "Configuration of Web2C Tools 2024:";; esac cat <<\_ACEOF @@ -1560,7 +1560,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Web2C Tools configure 2023 +Web2C Tools configure 2024 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2316,7 +2316,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Web2C Tools $as_me 2023, which was +It was created by Web2C Tools $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -8757,7 +8757,7 @@ fi # Define the identity of the package. PACKAGE='web2c-tools' - VERSION='2023' + VERSION='2024' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -15504,7 +15504,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Web2C Tools $as_me 2023, which was +This file was extended by Web2C Tools $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15572,7 +15572,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Web2C Tools config.status 2023 +Web2C Tools config.status 2024 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/source/utils/configure b/source/utils/configure index 50cfa7885434c364c33d5d1e48a45b76682df257..7d69229ee39af4ab4f101fca8554ebc54917e1ad 100755 --- a/source/utils/configure +++ b/source/utils/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for TeX Live utils 2023. +# Generated by GNU Autoconf 2.71 for TeX Live utils 2024. # # Report bugs to <tex-k@tug.org>. # @@ -610,8 +610,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='TeX Live utils' PACKAGE_TARNAME='tex-live-utils' -PACKAGE_VERSION='2023' -PACKAGE_STRING='TeX Live utils 2023' +PACKAGE_VERSION='2024' +PACKAGE_STRING='TeX Live utils 2024' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' @@ -729,23 +729,6 @@ enable_native_texlive_build enable_multiplatform enable_cxx_runtime_hack enable_libtool_hack -enable_autosp -enable_axodraw2 -enable_devnag -enable_lacheck -enable_m_tx -enable_pmx -enable_ps2eps -enable_t1utils -enable_texdoctk -enable_tpic2pdftex -enable_vlna -enable_xindy -enable_xindy_rules -enable_xindy_docs -with_clisp_runtime -enable_xml2pmx -enable_xpdfopen enable_web2c with_banner_add with_editor @@ -794,84 +777,15 @@ enable_tektronixwin enable_unitermwin enable_web_progs enable_synctex -enable_afm2pl -enable_bibtex_x -enable_bibtex8 -enable_bibtexu -enable_chktex -enable_cjkutils -enable_detex -enable_dtl -enable_dvi2tty -enable_dvidvi -enable_dviljk -enable_dviout_util -enable_dvipdfm_x -enable_dvipng -enable_debug -enable_timing -with_gs -enable_dvipos -enable_dvipsk -enable_dvisvgm -enable_gregorio -enable_gsftopk -enable_lcdf_typetools -enable_cfftot1 -enable_mmafm -enable_mmpfb -enable_otfinfo -enable_otftotfm -enable_t1dotlessj -enable_t1lint -enable_t1rawafm -enable_t1reencode -enable_t1testpage -enable_ttftotype42 -enable_updmap -enable_makeindexk -enable_makejvf -enable_mendexk -enable_musixtnt -enable_ps2pk -enable_psutils -enable_seetexk -enable_tex4htk -enable_ttf2pk2 -enable_ttfdump -enable_upmendex -enable_xdvik -with_xdvi_x_toolkit enable_texlive enable_linked_scripts with_system_harfbuzz -with_system_icu -with_system_teckit with_system_graphite2 with_system_zziplib -with_system_mpfr -with_mpfr_includes -with_mpfr_libdir -with_system_gmp -with_gmp_includes -with_gmp_libdir -with_system_cairo -with_system_pixman -with_system_gd -with_gd_includes -with_gd_libdir -with_system_potrace -with_potrace_includes -with_potrace_libdir -with_system_freetype2 with_system_libpng -with_system_libpaper -with_libpaper_includes -with_libpaper_libdir with_system_zlib with_zlib_includes with_zlib_libdir -with_system_ptexenc with_system_kpathsea enable_mktexmf_default enable_mktexpk_default @@ -1441,7 +1355,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures TeX Live utils 2023 to adapt to many kinds of systems. +\`configure' configures TeX Live utils 2024 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1512,7 +1426,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of TeX Live utils 2023:";; + short | recursive ) echo "Configuration of TeX Live utils 2024:";; esac cat <<\_ACEOF @@ -1529,22 +1443,6 @@ Optional Features: lib/PLATFORM --enable-cxx-runtime-hack link C++ runtime statically --enable-libtool-hack ignore libtool dependency_libs - --disable-autosp do not build the autosp package - --disable-axodraw2 do not build the axodraw2 package - --disable-devnag do not build the devnag package - --disable-lacheck do not build the lacheck package - --disable-m-tx do not build the m-tx package - --disable-pmx do not build the pmx package - --disable-ps2eps do not build the ps2eps package - --disable-t1utils do not build the t1utils package - --disable-texdoctk do not build the texdoctk package - --disable-tpic2pdftex do not build the tpic2pdftex package - --disable-vlna do not build the vlna package - --enable-xindy build the xindy package - --enable-xindy-rules build and install make-rules package - --enable-xindy-docs build and install documentation - --disable-xml2pmx do not build the xml2pmx package - --disable-xpdfopen do not build the xpdfopen package --disable-web2c do not build the web2c (TeX & Co.) package --enable-auto-core cause TeX&MF to dump core, given a certain filename @@ -1593,57 +1491,6 @@ Optional Features: --enable-unitermwin include Uniterm window support --disable-web-progs do not build WEB programs bibtex ... weave --disable-synctex do not build the SyncTeX library and tool - --disable-afm2pl do not build the afm2pl package - --disable-bibtex-x do not build the bibtex-x package - --disable-bibtex8 do not build the bibtex8 program - --disable-bibtexu do not build the bibtexu program - --disable-chktex do not build the chktex package - --disable-cjkutils do not build the cjkutils package - --disable-detex do not build the detex package - --disable-dtl do not build the dtl package - --disable-dvi2tty do not build the dvi2tty package - --disable-dvidvi do not build the dvidvi package - --disable-dviljk do not build the dviljk package - --disable-dviout-util do not build the dviout-util package - --disable-dvipdfm-x do not build the dvipdfm-x package - --disable-dvipng do not build the dvipng package - --disable-debug Compile without debug (-d) option - --enable-timing Output execution time of dvipng - --disable-dvipos do not build the dvipos package - --disable-dvipsk do not build the dvipsk package - --disable-dvisvgm do not build the dvisvgm package - --disable-gregorio do not build the gregorio package - --disable-gsftopk do not build the gsftopk package - --disable-lcdf-typetools - do not build the lcdf-typetools package - --disable-cfftot1 do not build the cfftot1 program - --disable-mmafm do not build the mmafm program - --disable-mmpfb do not build the mmpfb program - --disable-otfinfo do not build the otfinfo program - --disable-otftotfm do not build the otftotfm program - --disable-t1dotlessj do not build the t1dotlessj program - --disable-t1lint do not build the t1lint program - --disable-t1rawafm do not build the t1rawafm program - --disable-t1reencode do not build the t1reencode program - --disable-t1testpage do not build the t1testpage program - --disable-ttftotype42 do not build the ttftotype42 program - --disable-auto-cfftot1 disable running cfftot1 from otftotfm - --disable-auto-t1dotlessj disable running t1dotlessj from otftotfm - --disable-auto-ttftotype42 - disable running ttftotype42 from otftotfm - --disable-auto-updmap disable running updmap from otftotfm - --disable-makeindexk do not build the makeindexk package - --disable-makejvf do not build the makejvf package - --disable-mendexk do not build the mendexk package - --disable-musixtnt do not build the musixtnt package - --disable-ps2pk do not build the ps2pk package - --disable-psutils do not build the psutils package - --disable-seetexk do not build the seetexk package - --disable-tex4htk do not build the tex4htk package - --disable-ttf2pk2 do not build the ttf2pk2 package - --disable-ttfdump do not build the ttfdump package - --disable-upmendex do not build the upmendex package - --disable-xdvik do not build the xdvik package --disable-texlive do not build the texlive (TeX Live scripts) package --disable-linked-scripts do not install the linked scripts --disable-mktexmf-default do not run mktexmf if MF source missing @@ -1669,62 +1516,22 @@ Optional Features: Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-clisp-runtime=PATH - pathname of clisp runtime to install for `xindy', - `default' to derive from clisp, or `system' to use - installed version --with-banner-add=STR add STR to version string appended to banner lines --with-editor=CMD invoke CMD from the `e' option [vi +%d '%s'] or [texworks --position=%d "%s"] --with-mf-x-toolkit use X toolkit for METAFONT - --with-gs=/PATH/TO/gs Hard-wire the location of GhostScript - --with-xdvi-x-toolkit=KIT - Use toolkit KIT (xaw/motif/xaw3d/neXtaw) for xdvi - [default: Xaw] --with-system-harfbuzz use installed harfbuzz headers and library (requires pkg-config) - --with-system-icu use installed ICU headers and libraries (requires - pkg-config or icu-config) - --with-system-teckit use installed teckit headers and library (requires - pkg-config) --with-system-graphite2 use installed graphite2 headers and library (requires pkg-config) --with-system-zziplib use installed zziplib headers and library (requires pkg-config) - --with-system-mpfr use installed mpfr headers and library - --with-mpfr-includes=DIR - mpfr headers installed in DIR - --with-mpfr-libdir=DIR mpfr library installed in DIR - --with-system-gmp use installed gmp headers and library - --with-gmp-includes=DIR gmp headers installed in DIR - --with-gmp-libdir=DIR gmp library installed in DIR - --with-system-cairo use installed cairo headers and library (requires - pkg-config) - --with-system-pixman use installed pixman headers and library (requires - pkg-config) - --with-system-gd use installed gd headers and library - --with-gd-includes=DIR gd headers installed in DIR - --with-gd-libdir=DIR gd library installed in DIR - --with-system-potrace use installed potrace headers and library - --with-potrace-includes=DIR - potrace headers installed in DIR - --with-potrace-libdir=DIR - potrace library installed in DIR - --with-system-freetype2 use installed freetype2 headers and library - (requires freetype-config) --with-system-libpng use installed libpng headers and library (requires pkg-config) - --with-system-libpaper use installed libpaper headers and library - --with-libpaper-includes=DIR - libpaper headers installed in DIR - --with-libpaper-libdir=DIR - libpaper library installed in DIR --with-system-zlib use installed zlib headers and library --with-zlib-includes=DIR zlib headers installed in DIR --with-zlib-libdir=DIR zlib library installed in DIR - --with-system-ptexenc use installed ptexenc headers and library (requires - pkg-config) --with-system-kpathsea use installed kpathsea headers and library (requires pkg-config) @@ -1804,7 +1611,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -TeX Live utils configure 2023 +TeX Live utils configure 2024 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1927,7 +1734,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by TeX Live utils $as_me 2023, which was +It was created by TeX Live utils $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4052,332 +3859,6 @@ printf "%s\n" "$as_me: $host -> \`--disable-mfluajit-nowin'" >&6;} esac ;; esac -## utils/autosp/ac/withenable.ac: configure.ac fragment for Tl subdir -## configure options and TL libraries required for autosp. -# Check whether --enable-autosp was given. -if test ${enable_autosp+y} -then : - enableval=$enable_autosp; -fi -case $enable_autosp in #( - yes|no) : - ;; #( - *) : - - enable_autosp=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-autosp=$enable_autosp'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-autosp=$enable_autosp'" >&6;} - ac_configure_args="$ac_configure_args '--enable-autosp=$enable_autosp'" - ;; -esac - -## utils/axodraw2/ac/withenable.ac: configure.ac fragment for TL subdir -## configure options and TL libraries for axodraw2. -# Check whether --enable-axodraw2 was given. -if test ${enable_axodraw2+y} -then : - enableval=$enable_axodraw2; -fi -case $enable_axodraw2 in #( - yes|no) : - ;; #( - *) : - - enable_axodraw2=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-axodraw2=$enable_axodraw2'" >&6;} - ac_configure_args="$ac_configure_args '--enable-axodraw2=$enable_axodraw2'" - ;; -esac - -## utils/devnag/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/devnag/ -## configure options and TL libraries required for devnag -# Check whether --enable-devnag was given. -if test ${enable_devnag+y} -then : - enableval=$enable_devnag; -fi -case $enable_devnag in #( - yes|no) : - ;; #( - *) : - - enable_devnag=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-devnag=$enable_devnag'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-devnag=$enable_devnag'" >&6;} - ac_configure_args="$ac_configure_args '--enable-devnag=$enable_devnag'" - ;; -esac - -## utils/lacheck/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/lacheck/ -## configure options and TL libraries required for lacheck -# Check whether --enable-lacheck was given. -if test ${enable_lacheck+y} -then : - enableval=$enable_lacheck; -fi -case $enable_lacheck in #( - yes|no) : - ;; #( - *) : - - enable_lacheck=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-lacheck=$enable_lacheck'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-lacheck=$enable_lacheck'" >&6;} - ac_configure_args="$ac_configure_args '--enable-lacheck=$enable_lacheck'" - ;; -esac - -## utils/m-tx/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/m-tx/ -## configure options and TL libraries required for mtx -# Check whether --enable-m-tx was given. -if test ${enable_m_tx+y} -then : - enableval=$enable_m_tx; -fi -case $enable_m_tx in #( - yes|no) : - ;; #( - *) : - - enable_m_tx=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-m-tx=$enable_m_tx'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-m-tx=$enable_m_tx'" >&6;} - ac_configure_args="$ac_configure_args '--enable-m-tx=$enable_m_tx'" - ;; -esac - -## utils/pmx/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/pmx/ -## configure options and TL libraries required for pmx -# Check whether --enable-pmx was given. -if test ${enable_pmx+y} -then : - enableval=$enable_pmx; -fi -case $enable_pmx in #( - yes|no) : - ;; #( - *) : - - enable_pmx=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-pmx=$enable_pmx'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-pmx=$enable_pmx'" >&6;} - ac_configure_args="$ac_configure_args '--enable-pmx=$enable_pmx'" - ;; -esac - -## utils/ps2eps/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/ps2eps/ -## configure options and TL libraries required for ps2eps -# Check whether --enable-ps2eps was given. -if test ${enable_ps2eps+y} -then : - enableval=$enable_ps2eps; -fi -case $enable_ps2eps in #( - yes|no) : - ;; #( - *) : - - enable_ps2eps=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-ps2eps=$enable_ps2eps'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-ps2eps=$enable_ps2eps'" >&6;} - ac_configure_args="$ac_configure_args '--enable-ps2eps=$enable_ps2eps'" - ;; -esac - -## utils/t1utils/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/t1utils/ -## configure options and TL libraries required for t1utils -# Check whether --enable-t1utils was given. -if test ${enable_t1utils+y} -then : - enableval=$enable_t1utils; -fi -case $enable_t1utils in #( - yes|no) : - ;; #( - *) : - - enable_t1utils=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-t1utils=$enable_t1utils'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-t1utils=$enable_t1utils'" >&6;} - ac_configure_args="$ac_configure_args '--enable-t1utils=$enable_t1utils'" - ;; -esac - -## utils/texdoctk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/texdoctk/ -## configure options and TL libraries required for texdoctk -# Check whether --enable-texdoctk was given. -if test ${enable_texdoctk+y} -then : - enableval=$enable_texdoctk; -fi -case $enable_texdoctk in #( - yes|no) : - ;; #( - *) : - - enable_texdoctk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-texdoctk=$enable_texdoctk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-texdoctk=$enable_texdoctk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-texdoctk=$enable_texdoctk'" - ;; -esac - -## utils/tpic2pdftex/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/tpic2pdftex/ -## configure options and TL libraries required for tpic2pdftex -# Check whether --enable-tpic2pdftex was given. -if test ${enable_tpic2pdftex+y} -then : - enableval=$enable_tpic2pdftex; -fi -case $enable_tpic2pdftex in #( - yes|no) : - ;; #( - *) : - - enable_tpic2pdftex=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-tpic2pdftex=$enable_tpic2pdftex'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-tpic2pdftex=$enable_tpic2pdftex'" >&6;} - ac_configure_args="$ac_configure_args '--enable-tpic2pdftex=$enable_tpic2pdftex'" - ;; -esac - -## utils/vlna/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/vlna/ -## configure options and TL libraries required for vlna -# Check whether --enable-vlna was given. -if test ${enable_vlna+y} -then : - enableval=$enable_vlna; -fi -case $enable_vlna in #( - yes|no) : - ;; #( - *) : - - enable_vlna=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-vlna=$enable_vlna'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-vlna=$enable_vlna'" >&6;} - ac_configure_args="$ac_configure_args '--enable-vlna=$enable_vlna'" - ;; -esac - -## utils/xindy/ac/withenable.ac: configure.ac fragment for TL subdir -## configure options and TL libraries required for xindy. -# Check whether --enable-xindy was given. -if test ${enable_xindy+y} -then : - enableval=$enable_xindy; -fi -case $enable_xindy in #( - yes|no) : - ;; #( - *) : - - enable_xindy=no - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-xindy=$enable_xindy'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-xindy=$enable_xindy'" >&6;} - ac_configure_args="$ac_configure_args '--enable-xindy=$enable_xindy'" - ;; -esac - -## utils/xindy/ac/xindy.ac: configure.ac fragment for the TeX Live subdirectory utils/xindy/ -## configure options for xindy -# Check whether --enable-xindy-rules was given. -if test ${enable_xindy_rules+y} -then : - enableval=$enable_xindy_rules; -fi -# Check whether --enable-xindy-docs was given. -if test ${enable_xindy_docs+y} -then : - enableval=$enable_xindy_docs; -fi - -# Check whether --with-clisp-runtime was given. -if test ${with_clisp_runtime+y} -then : - withval=$with_clisp_runtime; -fi - -## utils/xindy/ac/clisp.ac: configure.ac fragment for the TeX Live subdirectory utils/xindy/ -## configure checks for xindy and clisp -case $with_clisp_runtime in #( - default) : - ;; #( - system) : - if test "x$enable_native_texlive_build" = xyes -then : - as_fn_error $? "you can not use the installed clisp for a native TeX Live build" "$LINENO" 5 -fi ;; #( - "") : - if test "x$enable_native_texlive_build" = xyes -then : - with_clisp_runtime=default -else $as_nop - with_clisp_runtime=system -fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--with-clisp-runtime=$with_clisp_runtime'" >&5 -printf "%s\n" "$as_me: Assuming \`--with-clisp-runtime=$with_clisp_runtime'" >&6;} - ac_configure_args="$ac_configure_args '--with-clisp-runtime=$with_clisp_runtime'" ;; #( - *) : - if test ! -f "$with_clisp_runtime" -then : - as_fn_error $? "no such file: \"$with_clisp_runtime\"" "$LINENO" 5 -fi ;; -esac - -## utils/xml2pmx/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/xml2pmx/ -## configure options and TL libraries required for xml2pmx -# Check whether --enable-xml2pmx was given. -if test ${enable_xml2pmx+y} -then : - enableval=$enable_xml2pmx; -fi -case $enable_xml2pmx in #( - yes|no) : - ;; #( - *) : - - enable_xml2pmx=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-xml2pmx=$enable_xml2pmx'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-xml2pmx=$enable_xml2pmx'" >&6;} - ac_configure_args="$ac_configure_args '--enable-xml2pmx=$enable_xml2pmx'" - ;; -esac - -## utils/xpdfopen/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory utils/xpdfopen/ -## configure options and TL libraries required for xpdfopen -# Check whether --enable-xpdfopen was given. -if test ${enable_xpdfopen+y} -then : - enableval=$enable_xpdfopen; -fi -if test "x$with_x" = xno -then : - case $enable_xpdfopen in #( - "") : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \`--without-x' -> \`--disable-xpdfopen'" >&5 -printf "%s\n" "$as_me: \`--without-x' -> \`--disable-xpdfopen'" >&6;} - enable_xpdfopen=no - ac_configure_args="$ac_configure_args '--disable-xpdfopen'" ;; #( - yes) : - as_fn_error $? "Sorry, incompatible options \`--without-x' and \`--enable-xpdfopen'" "$LINENO" 5 ;; #( - *) : - ;; -esac -fi -case $enable_xpdfopen in #( - yes|no) : - ;; #( - *) : - - enable_xpdfopen=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-xpdfopen=$enable_xpdfopen'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-xpdfopen=$enable_xpdfopen'" >&6;} - ac_configure_args="$ac_configure_args '--enable-xpdfopen=$enable_xpdfopen'" - ;; -esac - ## texk/web2c/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/web2c/ ## configure options and TL libraries required for web2c @@ -4900,999 +4381,88 @@ then : fi -## texk/afm2pl/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/afm2pl/ -## configure options and TL libraries required for afm2pl -# Check whether --enable-afm2pl was given. -if test ${enable_afm2pl+y} +## texk/texlive/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/texlive/ +## configure options and TL libraries required for texlive +# Check whether --enable-texlive was given. +if test ${enable_texlive+y} then : - enableval=$enable_afm2pl; + enableval=$enable_texlive; fi -case $enable_afm2pl in #( +case $enable_texlive in #( yes|no) : ;; #( *) : - enable_afm2pl=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-afm2pl=$enable_afm2pl'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-afm2pl=$enable_afm2pl'" >&6;} - ac_configure_args="$ac_configure_args '--enable-afm2pl=$enable_afm2pl'" + enable_texlive=$enable_all_pkgs + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-texlive=$enable_texlive'" >&5 +printf "%s\n" "$as_me: Assuming \`--enable-texlive=$enable_texlive'" >&6;} + ac_configure_args="$ac_configure_args '--enable-texlive=$enable_texlive'" ;; esac -test "x$enable_afm2pl" = xno || { - need_kpathsea=yes -} - -## texk/bibtex-x/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/bibtex-x/ -## configure options and TL libraries required for bibtex-x -# Check whether --enable-bibtex-x was given. -if test ${enable_bibtex_x+y} +## texk/texlive/ac/texlive.ac: configure.ac fragment for the TeX Live subdirectory texk/texlive/ +## configure options for texlive +# Check whether --enable-linked-scripts was given. +if test ${enable_linked_scripts+y} then : - enableval=$enable_bibtex_x; + enableval=$enable_linked_scripts; fi -case $enable_bibtex_x in #( - yes|no) : - ;; #( - *) : - enable_bibtex_x=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-bibtex-x=$enable_bibtex_x'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-bibtex-x=$enable_bibtex_x'" >&6;} - ac_configure_args="$ac_configure_args '--enable-bibtex-x=$enable_bibtex_x'" - ;; -esac -test "x$enable_bibtex_x" = xno || { - need_kpathsea=yes -} +## libs/pplib/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/pplib/ +## configure options and TL libraries required for pplib -## texk/bibtex-x/ac/bibtex-x.ac: configure.ac fragment for the TeX Live subdirectory texk/bibtex-x/ -## configure options for bibtex-x -# Check whether --enable-bibtex8 was given. -if test ${enable_bibtex8+y} -then : - enableval=$enable_bibtex8; -fi +## libs/harfbuzz/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/harfbuzz/ +## configure options and TL libraries required for harfbuzz -case $enable_bibtex8 in #( - yes | no) : - ;; #( - *) : - enable_bibtex8=yes ;; -esac -# Check whether --enable-bibtexu was given. -if test ${enable_bibtexu+y} +# Check whether --with-system-harfbuzz was given. +if test ${with_system_harfbuzz+y} then : - enableval=$enable_bibtexu; + withval=$with_system_harfbuzz; fi - -case $enable_bibtexu in #( - yes | no) : - ;; #( - *) : - enable_bibtexu=yes ;; -esac - -test "x$enable_bibtex_x:$enable_bibtexu" = xyes:yes && need_icu=yes - -## texk/chktex/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/chktex/ -## configure options and TL libraries required for chktex -# Check whether --enable-chktex was given. -if test ${enable_chktex+y} -then : - enableval=$enable_chktex; +if test "x$with_system_harfbuzz" = x; then + if test -f $srcdir/../libs/harfbuzz/configure; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`harfbuzz' headers and library from TL tree" >&5 +printf "%s\n" "$as_me: Assuming \`harfbuzz' headers and library from TL tree" >&6;} + with_system_harfbuzz=no + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`harfbuzz' headers and library" >&5 +printf "%s\n" "$as_me: Assuming installed \`harfbuzz' headers and library" >&6;} + with_system_harfbuzz=yes + fi + ac_configure_args="$ac_configure_args '--with-system-harfbuzz=$with_system_harfbuzz'" +fi +if test "x$with_system_harfbuzz" = xyes; then + if test "x$with_system_graphite2" = x; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`graphite2' headers and library" >&5 +printf "%s\n" "$as_me: -> installed \`graphite2' headers and library" >&6;} + with_system_graphite2=yes + ac_configure_args="$ac_configure_args '--with-system-graphite2'" + elif test "x$with_system_graphite2" != xyes; then + as_fn_error $? "Sorry, \`--with-system-harfbuzz' requires \`--with-system-graphite2'" "$LINENO" 5 + fi + if test "x$with_system_icu" = x; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`icu' headers and library" >&5 +printf "%s\n" "$as_me: -> installed \`icu' headers and library" >&6;} + with_system_icu=yes + ac_configure_args="$ac_configure_args '--with-system-icu'" + elif test "x$with_system_icu" != xyes; then + as_fn_error $? "Sorry, \`--with-system-harfbuzz' requires \`--with-system-icu'" "$LINENO" 5 + fi fi -case $enable_chktex in #( - yes|no) : - ;; #( - *) : - - enable_chktex=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-chktex=$enable_chktex'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-chktex=$enable_chktex'" >&6;} - ac_configure_args="$ac_configure_args '--enable-chktex=$enable_chktex'" - ;; -esac -test "x$enable_chktex" = xno || { - need_kpathsea=yes +test "x$need_harfbuzz" = xyes && { + need_graphite2=yes + need_icu=yes } -## texk/cjkutils/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/cjkutils/ -## configure options and TL libraries required for cjkutils -# Check whether --enable-cjkutils was given. -if test ${enable_cjkutils+y} +## libs/graphite2/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/graphite2/ +## configure options and TL libraries required for graphite2 + +# Check whether --with-system-graphite2 was given. +if test ${with_system_graphite2+y} then : - enableval=$enable_cjkutils; -fi -case $enable_cjkutils in #( - yes|no) : - ;; #( - *) : - - enable_cjkutils=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-cjkutils=$enable_cjkutils'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-cjkutils=$enable_cjkutils'" >&6;} - ac_configure_args="$ac_configure_args '--enable-cjkutils=$enable_cjkutils'" - ;; -esac - -test "x$enable_cjkutils" = xno || { - need_kpathsea=yes -} - -## texk/detex/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/detex/ -## configure options and TL libraries required for detex -# Check whether --enable-detex was given. -if test ${enable_detex+y} -then : - enableval=$enable_detex; -fi -case $enable_detex in #( - yes|no) : - ;; #( - *) : - - enable_detex=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-detex=$enable_detex'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-detex=$enable_detex'" >&6;} - ac_configure_args="$ac_configure_args '--enable-detex=$enable_detex'" - ;; -esac - -test "x$enable_detex" = xno || { - need_kpathsea=yes -} - -## texk/dtl/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dtl/ -## configure options and TL libraries required for dtl -# Check whether --enable-dtl was given. -if test ${enable_dtl+y} -then : - enableval=$enable_dtl; -fi -case $enable_dtl in #( - yes|no) : - ;; #( - *) : - - enable_dtl=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dtl=$enable_dtl'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dtl=$enable_dtl'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dtl=$enable_dtl'" - ;; -esac - -test "x$enable_dtl" = xno || { - need_kpathsea=yes -} - -## texk/dvi2tty/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dvi2tty/ -## configure options and TL libraries required for dvi2tty -# Check whether --enable-dvi2tty was given. -if test ${enable_dvi2tty+y} -then : - enableval=$enable_dvi2tty; -fi -case $enable_dvi2tty in #( - yes|no) : - ;; #( - *) : - - enable_dvi2tty=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dvi2tty=$enable_dvi2tty'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dvi2tty=$enable_dvi2tty'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dvi2tty=$enable_dvi2tty'" - ;; -esac - -test "x$enable_dvi2tty" = xno || { - need_ptexenc=yes -} - -## texk/dvidvi/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dvidvi/ -## configure options and TL libraries required for dvidvi -# Check whether --enable-dvidvi was given. -if test ${enable_dvidvi+y} -then : - enableval=$enable_dvidvi; -fi -case $enable_dvidvi in #( - yes|no) : - ;; #( - *) : - - enable_dvidvi=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dvidvi=$enable_dvidvi'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dvidvi=$enable_dvidvi'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dvidvi=$enable_dvidvi'" - ;; -esac - -test "x$enable_dvidvi" = xno || { - need_kpathsea=yes -} - -## texk/dviljk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dviljk/ -## configure options and TL libraries required for dviljk -# Check whether --enable-dviljk was given. -if test ${enable_dviljk+y} -then : - enableval=$enable_dviljk; -fi -case $enable_dviljk in #( - yes|no) : - ;; #( - *) : - - enable_dviljk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dviljk=$enable_dviljk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dviljk=$enable_dviljk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dviljk=$enable_dviljk'" - ;; -esac - -test "x$enable_dviljk" = xno || { - need_kpathsea=yes -} - -## texk/dviout-util/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dviout-util/ -## configure options and TL libraries required for dviout-util -# Check whether --enable-dviout-util was given. -if test ${enable_dviout_util+y} -then : - enableval=$enable_dviout_util; -fi -case $enable_dviout_util in #( - yes|no) : - ;; #( - *) : - - enable_dviout_util=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dviout-util=$enable_dviout_util'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dviout-util=$enable_dviout_util'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dviout-util=$enable_dviout_util'" - ;; -esac - -test "x$enable_dviout_util" = xno || { - need_ptexenc=yes -} - -## texk/dvipdfm-x/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dvipdfm-x/ -## configure options and TL libraries required for dvipdfm-x -# Check whether --enable-dvipdfm-x was given. -if test ${enable_dvipdfm_x+y} -then : - enableval=$enable_dvipdfm_x; -fi -case $enable_dvipdfm_x in #( - yes|no) : - ;; #( - *) : - - enable_dvipdfm_x=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dvipdfm-x=$enable_dvipdfm_x'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dvipdfm-x=$enable_dvipdfm_x'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dvipdfm-x=$enable_dvipdfm_x'" - ;; -esac - -test "x$enable_dvipdfm_x" = xno || { - need_kpathsea=yes - need_libpng=yes - need_libpaper=yes -} - -## texk/dvipng/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dvipng/ -## configure options and TL libraries required for dvipng -# Check whether --enable-dvipng was given. -if test ${enable_dvipng+y} -then : - enableval=$enable_dvipng; -fi -case $enable_dvipng in #( - yes|no) : - ;; #( - *) : - - enable_dvipng=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dvipng=$enable_dvipng'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dvipng=$enable_dvipng'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dvipng=$enable_dvipng'" - ;; -esac - -test "x$enable_dvipng" = xno || { - need_kpathsea=yes - need_gd=yes -} - -## texk/dvipng/ac/dvipng.ac: configure.ac fragment for the TeX Live subdirectory texk/dvipng/ -## configure options for dvipng -# Check whether --enable-debug was given. -if test ${enable_debug+y} -then : - enableval=$enable_debug; -fi - -# Check whether --enable-timing was given. -if test ${enable_timing+y} -then : - enableval=$enable_timing; -fi - - -# Check whether --with-gs was given. -if test ${with_gs+y} -then : - withval=$with_gs; -fi - - -## texk/dvipos/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dvipos/ -## configure options and TL libraries required for dvipos -# Check whether --enable-dvipos was given. -if test ${enable_dvipos+y} -then : - enableval=$enable_dvipos; -fi -case $enable_dvipos in #( - yes|no) : - ;; #( - *) : - - enable_dvipos=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dvipos=$enable_dvipos'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dvipos=$enable_dvipos'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dvipos=$enable_dvipos'" - ;; -esac - -test "x$enable_dvipos" = xno || { - need_kpathsea=yes -} - -## texk/dvipsk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/dvipsk/ -## configure options and TL libraries required for dvipsk -# Check whether --enable-dvipsk was given. -if test ${enable_dvipsk+y} -then : - enableval=$enable_dvipsk; -fi -case $enable_dvipsk in #( - yes|no) : - ;; #( - *) : - - enable_dvipsk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dvipsk=$enable_dvipsk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dvipsk=$enable_dvipsk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dvipsk=$enable_dvipsk'" - ;; -esac - -test "x$enable_dvipsk" = xno || { - need_kpathsea=yes -} - -# texk/dvisvgm/ac/withenable.ac: configure.ac fragment -## configure options and TL libraries required for dvisvgm -# Check whether --enable-dvisvgm was given. -if test ${enable_dvisvgm+y} -then : - enableval=$enable_dvisvgm; -fi -case $enable_dvisvgm in #( - yes|no) : - ;; #( - *) : - - enable_dvisvgm=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-dvisvgm=$enable_dvisvgm'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-dvisvgm=$enable_dvisvgm'" >&6;} - ac_configure_args="$ac_configure_args '--enable-dvisvgm=$enable_dvisvgm'" - ;; -esac - -test "x$enable_dvisvgm" = xno || { - need_kpathsea=yes - need_potrace=yes - need_freetype2=yes - need_zlib=yes -} - -## texk/gregorio/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/gregorio/ -## configure options and TL libraries required for gregorio -# Check whether --enable-gregorio was given. -if test ${enable_gregorio+y} -then : - enableval=$enable_gregorio; -fi -case $enable_gregorio in #( - yes|no) : - ;; #( - *) : - - enable_gregorio=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-gregorio=$enable_gregorio'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-gregorio=$enable_gregorio'" >&6;} - ac_configure_args="$ac_configure_args '--enable-gregorio=$enable_gregorio'" - ;; -esac - -test "x$enable_gregorio" = xno || { - need_kpathsea=yes -} - -## texk/gsftopk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/gsftopk/ -## configure options and TL libraries required for gsftopk -# Check whether --enable-gsftopk was given. -if test ${enable_gsftopk+y} -then : - enableval=$enable_gsftopk; -fi -case $enable_gsftopk in #( - yes|no) : - ;; #( - *) : - - enable_gsftopk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-gsftopk=$enable_gsftopk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-gsftopk=$enable_gsftopk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-gsftopk=$enable_gsftopk'" - ;; -esac - -test "x$enable_gsftopk" = xno || { - need_kpathsea=yes -} - -## texk/lcdf-typetools/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/lcdf-typetools/ -## configure options and TL libraries required for lcdf-typetools -# Check whether --enable-lcdf-typetools was given. -if test ${enable_lcdf_typetools+y} -then : - enableval=$enable_lcdf_typetools; -fi -case $enable_lcdf_typetools in #( - yes|no) : - ;; #( - *) : - - enable_lcdf_typetools=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-lcdf-typetools=$enable_lcdf_typetools'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-lcdf-typetools=$enable_lcdf_typetools'" >&6;} - ac_configure_args="$ac_configure_args '--enable-lcdf-typetools=$enable_lcdf_typetools'" - ;; -esac - -test "x$enable_lcdf_typetools" = xno || { - need_kpathsea=yes -} - -## Define configure options for lcdf-typetools. Extracted from configure.ac -## for ease of building TeX Live. -# Check whether --enable-cfftot1 was given. -if test ${enable_cfftot1+y} -then : - enableval=$enable_cfftot1; -fi -# Check whether --enable-mmafm was given. -if test ${enable_mmafm+y} -then : - enableval=$enable_mmafm; -fi -# Check whether --enable-mmpfb was given. -if test ${enable_mmpfb+y} -then : - enableval=$enable_mmpfb; -fi -# Check whether --enable-otfinfo was given. -if test ${enable_otfinfo+y} -then : - enableval=$enable_otfinfo; -fi -# Check whether --enable-otftotfm was given. -if test ${enable_otftotfm+y} -then : - enableval=$enable_otftotfm; -fi -# Check whether --enable-t1dotlessj was given. -if test ${enable_t1dotlessj+y} -then : - enableval=$enable_t1dotlessj; -fi -# Check whether --enable-t1lint was given. -if test ${enable_t1lint+y} -then : - enableval=$enable_t1lint; -fi -# Check whether --enable-t1rawafm was given. -if test ${enable_t1rawafm+y} -then : - enableval=$enable_t1rawafm; -fi -# Check whether --enable-t1reencode was given. -if test ${enable_t1reencode+y} -then : - enableval=$enable_t1reencode; -fi -# Check whether --enable-t1testpage was given. -if test ${enable_t1testpage+y} -then : - enableval=$enable_t1testpage; -fi -# Check whether --enable-ttftotype42 was given. -if test ${enable_ttftotype42+y} -then : - enableval=$enable_ttftotype42; -fi - -# Check whether --enable-cfftot1 was given. -if test ${enable_cfftot1+y} -then : - enableval=$enable_cfftot1; -fi -# Check whether --enable-t1dotlessj was given. -if test ${enable_t1dotlessj+y} -then : - enableval=$enable_t1dotlessj; -fi -# Check whether --enable-ttftotype42 was given. -if test ${enable_ttftotype42+y} -then : - enableval=$enable_ttftotype42; -fi -# Check whether --enable-updmap was given. -if test ${enable_updmap+y} -then : - enableval=$enable_updmap; -fi - - -## texk/makeindexk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/makeindexk/ -## configure options and TL libraries required for makeindexk -# Check whether --enable-makeindexk was given. -if test ${enable_makeindexk+y} -then : - enableval=$enable_makeindexk; -fi -case $enable_makeindexk in #( - yes|no) : - ;; #( - *) : - - enable_makeindexk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-makeindexk=$enable_makeindexk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-makeindexk=$enable_makeindexk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-makeindexk=$enable_makeindexk'" - ;; -esac - -test "x$enable_makeindexk" = xno || { - need_kpathsea=yes -} - -## texk/makejvf/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/makejvf/ -## configure options and TL libraries required for makejvf -# Check whether --enable-makejvf was given. -if test ${enable_makejvf+y} -then : - enableval=$enable_makejvf; -fi -case $enable_makejvf in #( - yes|no) : - ;; #( - *) : - - enable_makejvf=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-makejvf=$enable_makejvf'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-makejvf=$enable_makejvf'" >&6;} - ac_configure_args="$ac_configure_args '--enable-makejvf=$enable_makejvf'" - ;; -esac - -test "x$enable_makejvf" = xno || { - need_ptexenc=yes -} - -## texk/mendexk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/mendexk/ -## configure options and TL libraries required for mendexk -# Check whether --enable-mendexk was given. -if test ${enable_mendexk+y} -then : - enableval=$enable_mendexk; -fi -case $enable_mendexk in #( - yes|no) : - ;; #( - *) : - - enable_mendexk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-mendexk=$enable_mendexk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-mendexk=$enable_mendexk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-mendexk=$enable_mendexk'" - ;; -esac - -test "x$enable_mendexk" = xno || { - need_ptexenc=yes -} - -## texk/musixtnt/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/musixtnt/ -## configure options and TL libraries required for musixtnt -# Check whether --enable-musixtnt was given. -if test ${enable_musixtnt+y} -then : - enableval=$enable_musixtnt; -fi -case $enable_musixtnt in #( - yes|no) : - ;; #( - *) : - - enable_musixtnt=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-musixtnt=$enable_musixtnt'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-musixtnt=$enable_musixtnt'" >&6;} - ac_configure_args="$ac_configure_args '--enable-musixtnt=$enable_musixtnt'" - ;; -esac - -test "x$enable_musixtnt" = xno || { - need_kpathsea=yes -} - -## texk/ps2pk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/ps2pk/ -## configure options and TL libraries required for ps2pk -# Check whether --enable-ps2pk was given. -if test ${enable_ps2pk+y} -then : - enableval=$enable_ps2pk; -fi -case $enable_ps2pk in #( - yes|no) : - ;; #( - *) : - - enable_ps2pk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-ps2pk=$enable_ps2pk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-ps2pk=$enable_ps2pk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-ps2pk=$enable_ps2pk'" - ;; -esac - -test "x$enable_ps2pk" = xno || { - need_kpathsea=yes -} - -## texk/psutils/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/psutils/ -## configure options and TL libraries required for psutils -# Check whether --enable-psutils was given. -if test ${enable_psutils+y} -then : - enableval=$enable_psutils; -fi -case $enable_psutils in #( - yes|no) : - ;; #( - *) : - - enable_psutils=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-psutils=$enable_psutils'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-psutils=$enable_psutils'" >&6;} - ac_configure_args="$ac_configure_args '--enable-psutils=$enable_psutils'" - ;; -esac - -test "x$enable_psutils" = xno || { - need_kpathsea=yes - need_libpaper=yes -} - -## texk/seetexk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/seetexk/ -## configure options and TL libraries required for seetexk -# Check whether --enable-seetexk was given. -if test ${enable_seetexk+y} -then : - enableval=$enable_seetexk; -fi -case $enable_seetexk in #( - yes|no) : - ;; #( - *) : - - enable_seetexk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-seetexk=$enable_seetexk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-seetexk=$enable_seetexk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-seetexk=$enable_seetexk'" - ;; -esac - -test "x$enable_seetexk" = xno || { - need_kpathsea=yes -} - -## texk/tex4htk/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/tex4htk/ -## configure options and TL libraries required for tex4htk -# Check whether --enable-tex4htk was given. -if test ${enable_tex4htk+y} -then : - enableval=$enable_tex4htk; -fi -case $enable_tex4htk in #( - yes|no) : - ;; #( - *) : - - enable_tex4htk=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-tex4htk=$enable_tex4htk'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-tex4htk=$enable_tex4htk'" >&6;} - ac_configure_args="$ac_configure_args '--enable-tex4htk=$enable_tex4htk'" - ;; -esac - -test "x$enable_tex4htk" = xno || { - need_kpathsea=yes -} - -## texk/ttf2pk2/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/ttf2pk2/ -## configure options and TL libraries required for ttf2pk -# Check whether --enable-ttf2pk2 was given. -if test ${enable_ttf2pk2+y} -then : - enableval=$enable_ttf2pk2; -fi -case $enable_ttf2pk2 in #( - yes|no) : - ;; #( - *) : - - enable_ttf2pk2=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-ttf2pk2=$enable_ttf2pk2'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-ttf2pk2=$enable_ttf2pk2'" >&6;} - ac_configure_args="$ac_configure_args '--enable-ttf2pk2=$enable_ttf2pk2'" - ;; -esac - -test "x$enable_ttf2pk2" = xno || { - need_kpathsea=yes - need_freetype2=yes -} - -## texk/ttfdump/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/ttfdump/ -## configure options and TL libraries required for ttfdump -# Check whether --enable-ttfdump was given. -if test ${enable_ttfdump+y} -then : - enableval=$enable_ttfdump; -fi -case $enable_ttfdump in #( - yes|no) : - ;; #( - *) : - - enable_ttfdump=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-ttfdump=$enable_ttfdump'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-ttfdump=$enable_ttfdump'" >&6;} - ac_configure_args="$ac_configure_args '--enable-ttfdump=$enable_ttfdump'" - ;; -esac - -test "x$enable_ttfdump" = xno || { - need_kpathsea=yes -} - -## texk/upmendex/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/upmendex/ -## configure options and TL libraries required for upmendex -# Check whether --enable-upmendex was given. -if test ${enable_upmendex+y} -then : - enableval=$enable_upmendex; -fi -case $enable_upmendex in #( - yes|no) : - ;; #( - *) : - - enable_upmendex=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-upmendex=$enable_upmendex'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-upmendex=$enable_upmendex'" >&6;} - ac_configure_args="$ac_configure_args '--enable-upmendex=$enable_upmendex'" - ;; -esac - -test "x$enable_upmendex" = xno || { - need_kpathsea=yes - need_icu=yes -} - -## texk/xdvik/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/xdvik/ -## configure options and TL libraries required for xdvik -# Check whether --enable-xdvik was given. -if test ${enable_xdvik+y} -then : - enableval=$enable_xdvik; -fi -if test "x$with_x" = xno -then : - case $enable_xdvik in #( - "") : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \`--without-x' -> \`--disable-xdvik'" >&5 -printf "%s\n" "$as_me: \`--without-x' -> \`--disable-xdvik'" >&6;} - enable_xdvik=no - ac_configure_args="$ac_configure_args '--disable-xdvik'" ;; #( - yes) : - as_fn_error $? "Sorry, incompatible options \`--without-x' and \`--enable-xdvik'" "$LINENO" 5 ;; #( - *) : - ;; -esac -fi -case $enable_xdvik in #( - yes|no) : - ;; #( - *) : - - enable_xdvik=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-xdvik=$enable_xdvik'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-xdvik=$enable_xdvik'" >&6;} - ac_configure_args="$ac_configure_args '--enable-xdvik=$enable_xdvik'" - ;; -esac - -test "x$enable_xdvik" = xno || { - need_kpathsea=yes - need_freetype2=yes -} - -## texk/xdvik/ac/xdvik.ac: configure.ac fragment for the TeX Live subdirectory texk/xdvik/ -## configure options for xdvik - -# Check whether --with-xdvi-x-toolkit was given. -if test ${with_xdvi_x_toolkit+y} -then : - withval=$with_xdvi_x_toolkit; -fi - - -## texk/texlive/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/texlive/ -## configure options and TL libraries required for texlive -# Check whether --enable-texlive was given. -if test ${enable_texlive+y} -then : - enableval=$enable_texlive; -fi -case $enable_texlive in #( - yes|no) : - ;; #( - *) : - - enable_texlive=$enable_all_pkgs - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-texlive=$enable_texlive'" >&5 -printf "%s\n" "$as_me: Assuming \`--enable-texlive=$enable_texlive'" >&6;} - ac_configure_args="$ac_configure_args '--enable-texlive=$enable_texlive'" - ;; -esac - -## texk/texlive/ac/texlive.ac: configure.ac fragment for the TeX Live subdirectory texk/texlive/ -## configure options for texlive -# Check whether --enable-linked-scripts was given. -if test ${enable_linked_scripts+y} -then : - enableval=$enable_linked_scripts; -fi - - -## libs/pplib/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/pplib/ -## configure options and TL libraries required for pplib - -## libs/harfbuzz/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/harfbuzz/ -## configure options and TL libraries required for harfbuzz - -# Check whether --with-system-harfbuzz was given. -if test ${with_system_harfbuzz+y} -then : - withval=$with_system_harfbuzz; -fi -if test "x$with_system_harfbuzz" = x; then - if test -f $srcdir/../libs/harfbuzz/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`harfbuzz' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`harfbuzz' headers and library from TL tree" >&6;} - with_system_harfbuzz=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`harfbuzz' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`harfbuzz' headers and library" >&6;} - with_system_harfbuzz=yes - fi - ac_configure_args="$ac_configure_args '--with-system-harfbuzz=$with_system_harfbuzz'" -fi -if test "x$with_system_harfbuzz" = xyes; then - if test "x$with_system_graphite2" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`graphite2' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`graphite2' headers and library" >&6;} - with_system_graphite2=yes - ac_configure_args="$ac_configure_args '--with-system-graphite2'" - elif test "x$with_system_graphite2" != xyes; then - as_fn_error $? "Sorry, \`--with-system-harfbuzz' requires \`--with-system-graphite2'" "$LINENO" 5 - fi - if test "x$with_system_icu" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`icu' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`icu' headers and library" >&6;} - with_system_icu=yes - ac_configure_args="$ac_configure_args '--with-system-icu'" - elif test "x$with_system_icu" != xyes; then - as_fn_error $? "Sorry, \`--with-system-harfbuzz' requires \`--with-system-icu'" "$LINENO" 5 - fi -fi - -test "x$need_harfbuzz" = xyes && { - need_graphite2=yes - need_icu=yes -} - -## libs/icu/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/icu/ -## configure options and TL libraries required for icu (modified for XeTeX) - -# Check whether --with-system-icu was given. -if test ${with_system_icu+y} -then : - withval=$with_system_icu; -fi -if test "x$with_system_icu" = x; then - if test -f $srcdir/../libs/icu/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`icu' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`icu' headers and library from TL tree" >&6;} - with_system_icu=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`icu' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`icu' headers and library" >&6;} - with_system_icu=yes - fi - ac_configure_args="$ac_configure_args '--with-system-icu=$with_system_icu'" -fi - -## libs/teckit/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/teckit/ -## configure options and TL libraries required for teckit - -# Check whether --with-system-teckit was given. -if test ${with_system_teckit+y} -then : - withval=$with_system_teckit; -fi -if test "x$with_system_teckit" = x; then - if test -f $srcdir/../libs/teckit/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`teckit' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`teckit' headers and library from TL tree" >&6;} - with_system_teckit=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`teckit' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`teckit' headers and library" >&6;} - with_system_teckit=yes - fi - ac_configure_args="$ac_configure_args '--with-system-teckit=$with_system_teckit'" -fi -if test "x$with_system_teckit" = xyes; then - if test "x$with_system_zlib" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`zlib' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`zlib' headers and library" >&6;} - with_system_zlib=yes - ac_configure_args="$ac_configure_args '--with-system-zlib'" - elif test "x$with_system_zlib" != xyes; then - as_fn_error $? "Sorry, \`--with-system-teckit' requires \`--with-system-zlib'" "$LINENO" 5 - fi -fi - -test "x$need_teckit" = xyes && { - need_zlib=yes -} - -## libs/graphite2/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/graphite2/ -## configure options and TL libraries required for graphite2 - -# Check whether --with-system-graphite2 was given. -if test ${with_system_graphite2+y} -then : - withval=$with_system_graphite2; + withval=$with_system_graphite2; fi if test "x$with_system_graphite2" = x; then if test -f $srcdir/../libs/graphite2/configure; then @@ -5942,282 +4512,6 @@ test "x$need_zziplib" = xyes && { need_zlib=yes } -## libs/xpdf/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/xpdf/ -## configure options and TL libraries required for xpdf -: "kpse_xpdf_options - no-op" -if test "x$with_system_xpdf" = x; then - if test -f $srcdir/../libs/xpdf/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`xpdf' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`xpdf' headers and library from TL tree" >&6;} - with_system_xpdf=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`xpdf' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`xpdf' headers and library" >&6;} - with_system_xpdf=yes - fi - ac_configure_args="$ac_configure_args '--with-system-xpdf=$with_system_xpdf'" -fi - -## libs/mpfr/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/mpfr/ -## configure options and TL libraries required for mpfr - -# Check whether --with-system-mpfr was given. -if test ${with_system_mpfr+y} -then : - withval=$with_system_mpfr; -fi - -# Check whether --with-mpfr-includes was given. -if test ${with_mpfr_includes+y} -then : - withval=$with_mpfr_includes; -fi - -# Check whether --with-mpfr-libdir was given. -if test ${with_mpfr_libdir+y} -then : - withval=$with_mpfr_libdir; -fi -if test "x$with_system_mpfr" = x; then - if test -f $srcdir/../libs/mpfr/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`mpfr' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`mpfr' headers and library from TL tree" >&6;} - with_system_mpfr=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`mpfr' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`mpfr' headers and library" >&6;} - with_system_mpfr=yes - fi - ac_configure_args="$ac_configure_args '--with-system-mpfr=$with_system_mpfr'" -fi -if test "x$with_system_mpfr" = xyes; then - if test "x$with_system_gmp" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`gmp' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`gmp' headers and library" >&6;} - with_system_gmp=yes - ac_configure_args="$ac_configure_args '--with-system-gmp'" - elif test "x$with_system_gmp" != xyes; then - as_fn_error $? "Sorry, \`--with-system-mpfr' requires \`--with-system-gmp'" "$LINENO" 5 - fi -fi - -test "x$need_mpfr" = xyes && { - need_gmp=yes -} - -## libs/gmp/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/gmp/ -## configure options and TL libraries required for gmp - -# Check whether --with-system-gmp was given. -if test ${with_system_gmp+y} -then : - withval=$with_system_gmp; -fi - -# Check whether --with-gmp-includes was given. -if test ${with_gmp_includes+y} -then : - withval=$with_gmp_includes; -fi - -# Check whether --with-gmp-libdir was given. -if test ${with_gmp_libdir+y} -then : - withval=$with_gmp_libdir; -fi -if test "x$with_system_gmp" = x; then - if test -f $srcdir/../libs/gmp/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`gmp' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`gmp' headers and library from TL tree" >&6;} - with_system_gmp=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`gmp' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`gmp' headers and library" >&6;} - with_system_gmp=yes - fi - ac_configure_args="$ac_configure_args '--with-system-gmp=$with_system_gmp'" -fi - -## libs/cairo/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/cairo/ -## configure options and TL libraries required for cairo - -# Check whether --with-system-cairo was given. -if test ${with_system_cairo+y} -then : - withval=$with_system_cairo; -fi -if test "x$with_system_cairo" = x; then - if test -f $srcdir/../libs/cairo/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`cairo' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`cairo' headers and library from TL tree" >&6;} - with_system_cairo=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`cairo' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`cairo' headers and library" >&6;} - with_system_cairo=yes - fi - ac_configure_args="$ac_configure_args '--with-system-cairo=$with_system_cairo'" -fi -if test "x$with_system_cairo" = xyes; then - if test "x$with_system_pixman" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`pixman' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`pixman' headers and library" >&6;} - with_system_pixman=yes - ac_configure_args="$ac_configure_args '--with-system-pixman'" - elif test "x$with_system_pixman" != xyes; then - as_fn_error $? "Sorry, \`--with-system-cairo' requires \`--with-system-pixman'" "$LINENO" 5 - fi -fi - -test "x$need_cairo" = xyes && { - need_pixman=yes -} - -## libs/pixman/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/pixman/ -## configure options and TL libraries required for pixman - -# Check whether --with-system-pixman was given. -if test ${with_system_pixman+y} -then : - withval=$with_system_pixman; -fi -if test "x$with_system_pixman" = x; then - if test -f $srcdir/../libs/pixman/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`pixman' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`pixman' headers and library from TL tree" >&6;} - with_system_pixman=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`pixman' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`pixman' headers and library" >&6;} - with_system_pixman=yes - fi - ac_configure_args="$ac_configure_args '--with-system-pixman=$with_system_pixman'" -fi - -## libs/gd/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/gd/ -## configure options and TL libraries required for gd - -# Check whether --with-system-gd was given. -if test ${with_system_gd+y} -then : - withval=$with_system_gd; -fi - -# Check whether --with-gd-includes was given. -if test ${with_gd_includes+y} -then : - withval=$with_gd_includes; -fi - -# Check whether --with-gd-libdir was given. -if test ${with_gd_libdir+y} -then : - withval=$with_gd_libdir; -fi -if test "x$with_system_gd" = x; then - if test -f $srcdir/../libs/gd/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`gd' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`gd' headers and library from TL tree" >&6;} - with_system_gd=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`gd' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`gd' headers and library" >&6;} - with_system_gd=yes - fi - ac_configure_args="$ac_configure_args '--with-system-gd=$with_system_gd'" -fi -if test "x$with_system_gd" = xyes; then - if test "x$with_system_libpng" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`libpng' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`libpng' headers and library" >&6;} - with_system_libpng=yes - ac_configure_args="$ac_configure_args '--with-system-libpng'" - elif test "x$with_system_libpng" != xyes; then - as_fn_error $? "Sorry, \`--with-system-gd' requires \`--with-system-libpng'" "$LINENO" 5 - fi - if test "x$with_system_freetype2" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`freetype2' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`freetype2' headers and library" >&6;} - with_system_freetype2=yes - ac_configure_args="$ac_configure_args '--with-system-freetype2'" - elif test "x$with_system_freetype2" != xyes; then - as_fn_error $? "Sorry, \`--with-system-gd' requires \`--with-system-freetype2'" "$LINENO" 5 - fi -fi - -test "x$need_gd" = xyes && { - need_libpng=yes - need_freetype2=yes -} - -## libs/potrace/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/potrace/ -## configure options and TL libraries required for potrace - -# Check whether --with-system-potrace was given. -if test ${with_system_potrace+y} -then : - withval=$with_system_potrace; -fi - -# Check whether --with-potrace-includes was given. -if test ${with_potrace_includes+y} -then : - withval=$with_potrace_includes; -fi - -# Check whether --with-potrace-libdir was given. -if test ${with_potrace_libdir+y} -then : - withval=$with_potrace_libdir; -fi -if test "x$with_system_potrace" = x; then - if test -f $srcdir/../libs/potrace/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`potrace' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`potrace' headers and library from TL tree" >&6;} - with_system_potrace=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`potrace' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`potrace' headers and library" >&6;} - with_system_potrace=yes - fi - ac_configure_args="$ac_configure_args '--with-system-potrace=$with_system_potrace'" -fi - -## libs/freetype2/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/freetype2/ -## configure options and TL libraries required for freetype2 - -# Check whether --with-system-freetype2 was given. -if test ${with_system_freetype2+y} -then : - withval=$with_system_freetype2; -fi -if test "x$with_system_freetype2" = x; then - if test -f $srcdir/../libs/freetype2/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`freetype2' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`freetype2' headers and library from TL tree" >&6;} - with_system_freetype2=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`freetype2' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`freetype2' headers and library" >&6;} - with_system_freetype2=yes - fi - ac_configure_args="$ac_configure_args '--with-system-freetype2=$with_system_freetype2'" -fi -if test "x$with_system_freetype2" = xyes; then - if test "x$with_system_zlib" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`zlib' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`zlib' headers and library" >&6;} - with_system_zlib=yes - ac_configure_args="$ac_configure_args '--with-system-zlib'" - elif test "x$with_system_zlib" != xyes; then - as_fn_error $? "Sorry, \`--with-system-freetype2' requires \`--with-system-zlib'" "$LINENO" 5 - fi -fi - -test "x$need_freetype2" = xyes && { - need_zlib=yes -} - ## libs/libpng/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/libpng/ ## configure options and TL libraries required for libpng @@ -6253,39 +4547,6 @@ test "x$need_libpng" = xyes && { need_zlib=yes } -## libs/libpaper/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/libpaper/ -## configure options and TL libraries required for libpaper - -# Check whether --with-system-libpaper was given. -if test ${with_system_libpaper+y} -then : - withval=$with_system_libpaper; -fi - -# Check whether --with-libpaper-includes was given. -if test ${with_libpaper_includes+y} -then : - withval=$with_libpaper_includes; -fi - -# Check whether --with-libpaper-libdir was given. -if test ${with_libpaper_libdir+y} -then : - withval=$with_libpaper_libdir; -fi -if test "x$with_system_libpaper" = x; then - if test -f $srcdir/../libs/libpaper/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`libpaper' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`libpaper' headers and library from TL tree" >&6;} - with_system_libpaper=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`libpaper' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`libpaper' headers and library" >&6;} - with_system_libpaper=yes - fi - ac_configure_args="$ac_configure_args '--with-system-libpaper=$with_system_libpaper'" -fi - ## libs/luajit/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory libs/luajit/ ## configure options and TL libraries required for luajit @@ -6326,41 +4587,6 @@ printf "%s\n" "$as_me: Assuming installed \`zlib' headers and library" >&6;} fi -## texk/ptexenc/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/ptexenc/ -## configure options and TL libraries required for ptexenc - -# Check whether --with-system-ptexenc was given. -if test ${with_system_ptexenc+y} -then : - withval=$with_system_ptexenc; -fi -if test "x$with_system_ptexenc" = x; then - if test -f $srcdir/../texk/ptexenc/configure; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`ptexenc' headers and library from TL tree" >&5 -printf "%s\n" "$as_me: Assuming \`ptexenc' headers and library from TL tree" >&6;} - with_system_ptexenc=no - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming installed \`ptexenc' headers and library" >&5 -printf "%s\n" "$as_me: Assuming installed \`ptexenc' headers and library" >&6;} - with_system_ptexenc=yes - fi - ac_configure_args="$ac_configure_args '--with-system-ptexenc=$with_system_ptexenc'" -fi -if test "x$with_system_ptexenc" = xyes; then - if test "x$with_system_kpathsea" = x; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: -> installed \`kpathsea' headers and library" >&5 -printf "%s\n" "$as_me: -> installed \`kpathsea' headers and library" >&6;} - with_system_kpathsea=yes - ac_configure_args="$ac_configure_args '--with-system-kpathsea'" - elif test "x$with_system_kpathsea" != xyes; then - as_fn_error $? "Sorry, \`--with-system-ptexenc' requires \`--with-system-kpathsea'" "$LINENO" 5 - fi -fi - -test "x$need_ptexenc" = xyes && { - need_kpathsea=yes -} - ## texk/kpathsea/ac/withenable.ac: configure.ac fragment for the TeX Live subdirectory texk/kpathsea/ ## configure options and TL libraries required for kpathsea @@ -7016,7 +5242,7 @@ fi # Define the identity of the package. PACKAGE='tex-live-utils' - VERSION='2023' + VERSION='2024' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -7367,90 +5593,6 @@ printf %s "checking for Utils programs to build... " >&6; } echo 'tldbg:_KPSE_RECURSE called: list=utils, text=Utils programs, cond=test "x$enable_[]Kpse_pkg" = xyes, prefix=.' >&5 MAKE_SUBDIRS= CONF_SUBDIRS= -if test -x $srcdir/autosp/configure; then - test "x$enable_autosp" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS autosp" - CONF_SUBDIRS="$CONF_SUBDIRS autosp" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/autosp/configure' >&5 -fi -if test -x $srcdir/axodraw2/configure; then - test "x$enable_axodraw2" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS axodraw2" - CONF_SUBDIRS="$CONF_SUBDIRS axodraw2" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/axodraw2/configure' >&5 -fi -if test -x $srcdir/devnag/configure; then - test "x$enable_devnag" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS devnag" - CONF_SUBDIRS="$CONF_SUBDIRS devnag" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/devnag/configure' >&5 -fi -if test -x $srcdir/lacheck/configure; then - test "x$enable_lacheck" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS lacheck" - CONF_SUBDIRS="$CONF_SUBDIRS lacheck" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/lacheck/configure' >&5 -fi -if test -x $srcdir/m-tx/configure; then - test "x$enable_m_tx" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS m-tx" - CONF_SUBDIRS="$CONF_SUBDIRS m-tx" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/m-tx/configure' >&5 -fi -if test -x $srcdir/pmx/configure; then - test "x$enable_pmx" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS pmx" - CONF_SUBDIRS="$CONF_SUBDIRS pmx" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/pmx/configure' >&5 -fi -if test -x $srcdir/ps2eps/configure; then - test "x$enable_ps2eps" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS ps2eps" - CONF_SUBDIRS="$CONF_SUBDIRS ps2eps" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/ps2eps/configure' >&5 -fi -if test -x $srcdir/t1utils/configure; then - test "x$enable_t1utils" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS t1utils" - CONF_SUBDIRS="$CONF_SUBDIRS t1utils" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/t1utils/configure' >&5 -fi -if test -x $srcdir/texdoctk/configure; then - test "x$enable_texdoctk" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS texdoctk" - CONF_SUBDIRS="$CONF_SUBDIRS texdoctk" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/texdoctk/configure' >&5 -fi -if test -x $srcdir/tpic2pdftex/configure; then - test "x$enable_tpic2pdftex" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS tpic2pdftex" - CONF_SUBDIRS="$CONF_SUBDIRS tpic2pdftex" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/tpic2pdftex/configure' >&5 -fi -if test -x $srcdir/vlna/configure; then - test "x$enable_vlna" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS vlna" - CONF_SUBDIRS="$CONF_SUBDIRS vlna" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/vlna/configure' >&5 -fi -if test -x $srcdir/xindy/configure; then - test "x$enable_xindy" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS xindy" - CONF_SUBDIRS="$CONF_SUBDIRS xindy" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/xindy/configure' >&5 -fi -if test -x $srcdir/xml2pmx/configure; then - test "x$enable_xml2pmx" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS xml2pmx" - CONF_SUBDIRS="$CONF_SUBDIRS xml2pmx" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/xml2pmx/configure' >&5 -fi -if test -x $srcdir/xpdfopen/configure; then - test "x$enable_xpdfopen" = xyes && MAKE_SUBDIRS="$MAKE_SUBDIRS xpdfopen" - CONF_SUBDIRS="$CONF_SUBDIRS xpdfopen" -else - echo 'tldbg:_KPSE_RECURSE skipping subdir, no (executable) configure: '"$srcdir"'/xpdfopen/configure' >&5 -fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAKE_SUBDIRS" >&5 printf "%s\n" "$MAKE_SUBDIRS" >&6; } @@ -8021,7 +6163,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by TeX Live utils $as_me 2023, which was +This file was extended by TeX Live utils $as_me 2024, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -8080,7 +6222,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -TeX Live utils config.status 2023 +TeX Live utils config.status 2024 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/source/version.ac b/source/version.ac index 8e83756c3ebf7b4b1eb31ea1792be76ac4061c2b..06139bc236e47580ae9bddaf1ec39259bb24909f 100644 --- a/source/version.ac +++ b/source/version.ac @@ -1,4 +1,4 @@ -dnl $Id: version.ac 65770 2023-02-09 21:26:50Z karl $ +dnl $Id: version.ac 66596 2023-03-19 22:16:03Z karl $ dnl Copyright 2016-2023 Karl Berry <tex-live@tug.org> dnl Copyright 2010-2015 Peter Breitenlohner <tex-live@tug.org> dnl @@ -9,4 +9,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current TeX Live version -m4_define([tex_live_version], [2023]) +m4_define([tex_live_version], [2024])