summaryrefslogtreecommitdiff
path: root/Build/source/utils/xindy/TLpatches
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/xindy/TLpatches')
-rw-r--r--Build/source/utils/xindy/TLpatches/ChangeLog233
-rw-r--r--Build/source/utils/xindy/TLpatches/TL-Changes16
-rw-r--r--Build/source/utils/xindy/TLpatches/patch-01-xindy-script133
-rw-r--r--Build/source/utils/xindy/TLpatches/patch-02-lbrace11
-rw-r--r--Build/source/utils/xindy/TLpatches/patch-03-echo-f34
-rw-r--r--Build/source/utils/xindy/TLpatches/patch-06-markup-range-attr137
-rw-r--r--Build/source/utils/xindy/TLpatches/patch-08-hyperref-seealso63
-rw-r--r--Build/source/utils/xindy/TLpatches/patch-10-doc-min-range48
8 files changed, 675 insertions, 0 deletions
diff --git a/Build/source/utils/xindy/TLpatches/ChangeLog b/Build/source/utils/xindy/TLpatches/ChangeLog
new file mode 100644
index 00000000000..79687fefef6
--- /dev/null
+++ b/Build/source/utils/xindy/TLpatches/ChangeLog
@@ -0,0 +1,233 @@
+2020-05-28 Karl Berry <karl@tug.org>
+
+ * patch-06-markup-range-attr,
+ * patch-08-hyperref-seealso,
+ * patch-10-doc-min-range: new patches from J\"urgen S.
+ https://tug.org/pipermail/tex-live/2020-May/045760.html
+
+2017-11-13 Karl Berry <karl@tug.org>
+
+ * patch-02-lbrace: new file.
+
+2016-07-07 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * patch-01-xindy-needs-language, patch-02-win32-paths-with-spaces:
+ Unify into patch-01-xindy-script.
+
+2015-08-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-win32-paths-with-spaces: Fix from Joachim Schrod.
+
+2015-08-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-win32-paths-with-spaces: Use File::Glob::bsd_glob().
+
+2015-06-30 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-win32-paths-with-spaces: Quotify lang_dir.
+
+2015-06-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-win32-paths-with-spaces: Sync with MikTeX.
+
+2015-06-27 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-win32-paths-with-spaces: Also quotify filter.
+
+2015-06-24 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-win32-paths-with-spaces (new): Patch from Akira.
+ See <http://tex.stackexchange.com/questions/251221/
+ miktex-and-xindy-problems>.
+
+2014-10-24 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-01-xindy-needs-language (new): It seems xindy requires
+ that language is set, patch from Akira.
+
+2014-09-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported xindy-2.5.1 source tree from
+ http://www.ctan.org/tex-archive/indexing/xindy/base/.
+
+ * patch-01-typo, patch-02-xelatex, patch-03-new_LaTeX2e
+ (removed): Now in distribution.
+
+2014-05-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-03-new_LaTeX2e (new): Allow to build utf8.xdy by using
+ also the new LaTeX2e.
+ From Heiko Oberdiek <heiko.oberdiek@googlemail.com>.
+
+2014-05-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-xelatex (new): Add support for "-I xelatex".
+ Also update doc/texindy.pdf and doc/xindy.pdf.
+ From Joachim Schrod <jschrod@acm.org>.
+
+2014-04-28 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported xindy-2.5.0 source tree from
+ http://www.ctan.org/tex-archive/indexing/xindy/base/.
+
+ * patch-01-never-interactive, patch-02-never-interactive,
+ patch-03-win32, patch-04-win32, patch-60-remove-unused,
+ patch-61-detect-TL, patch-62-bug-fix, patch-63-win32,
+ patch-64-do_not_rebuild, patch-65-win32, patch-70-persian
+ (removed): Now in distribution.
+ * patch-99-future-reorg: Omitted.
+
+2013-11-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-0[34]-win32: Adapt Win32 changes to MinGW.
+
+2013-10-23 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-70-persian: Use Makefile fragment.
+
+2013-10-18 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-70-persian: Update persian alphabet.
+
+2013-04-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-65-win32 (new): More Win32 changes (from Akira):
+ - r27491 2012-08-22: support spaces in TMPDIR.
+ - r27520 2012-08-25: use current directory for temporary files
+ on Windows.
+
+2012-09-27 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-0[34]-win32 (new): Various Win32 changes (from Akira).
+
+2012-06-21 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-0[12]-never-interactive (new): Added the never-interactive
+ option to prevent flex from creating a problematic prototype for
+ isatty().
+
+2011-11-04 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-70-persian (new): Add persian alphabet.
+ * patch-99-future-reorg: Adapt.
+
+2011-03-31 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-61-detect-TL: For TL the user commands are now built and
+ installed from the top level (proxy) Makefile.
+ * patch-64-symlinks (removed).
+
+2011-03-02 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-64-do_not_rebuild (new): Do not rebuild the distributed
+ file romanian/latin2.pl again and again.
+
+2010-12-23 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-64-symlinks (new): Check symlink creation.
+
+2010-06-21 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-63-win32 (new): Bug fix for Win32 from Akira.
+
+2010-06-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-62-bug-fix (new): Bug fix from Joachim Schrod.
+
+2010-05-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-61-detect-TL (new): Better detection of TL installation.
+
+2010-05-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported xindy-2.4.tar.gz source tree from:
+ http://dante.ctan.org/tex-archive/indexing/xindy/.
+ * patch-[0-3]?-*: Removed; have been integrated into xindy-2.4.
+
+ * patch-60-remove-unused (new): remove unused files.
+
+ * patch-50-reorg-* (removed): These changes are postponed ...
+ * patch-99-future-reorg (new): ... for future reorganization.
+
+2010-01-13 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * ../xindy/make-rules/alphabets/{mk-lang.sh,lang.defs}:
+ New files to automatically generate the
+ ../xindy/make-rules/alphabets/*/Makefile.am fragments.
+ * patch-50-reorg-alphabets: Reintroduce generated .pl files.
+ * patch-50-reorg-alphabets-generated (new): Generated fragments.
+
+2009-12-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-03-iconv-typo (new): Fix typo in iconv-or-recode patch.
+ * patch-50-reorg-alphabets: Remove generated and unused files.
+
+2009-12-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-20-TL-install-dirs: Declare install-links as PHONY.
+ * patch-22-TL-xindy_pl: Simplify the environment setup (for TL).
+
+2009-12-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-22-TL-xindy_pl: Verify input files exist (from TL2008).
+ * patch-26-TL-texindy_pl (new): Adapt texindy perl script for
+ use in TL, using code from Tomasz M. Trzeciak.
+
+2009-12-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-22-TL-xindy_pl: Invoke either 'xindy.run' or 'clisp'.
+ * patch-25-subst-in-texindy (new): Except for TL, substitute
+ @libdir@ also in texindy and adapt Makefile.am.
+
+2009-12-09 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-20-TL-install-dirs: For TL, do not substitute @libdir@.
+ * patch-22-TL-xindy_pl (new): Adapt xindy perl script for use
+ in TL (still incomplete). Adapting code from
+ Vladimir Volovich <vvv@vsu.ru> (TL2008/09 version) and
+ Tomasz M. Trzeciak <t34www@googlemail.com>.
+ * patch-23-drop-v2 (new): Completely drop xindy.v2.
+
+2009-12-07 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-21-TL-no-date (new): Avoid date in latin.xdy.
+
+2009-12-04 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-50-reorg-alphabets (new): Reorganize alphabets.
+
+2009-12-03 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported xindy-2.4-pre2 source tree from:
+ http://www.xindy.org/xindy-2.4-pre2.tar.gz.
+ * patch-0?-*, patch-11-parallel: Removed; have been integrated
+ into xindy-2.4-pre2.
+ * patch-20-TL-install-dirs, patch-30-warnings: Adjusted.
+ * patch-12-parallel (new): More parallel build problems.
+ * patch-13-gzip (new): Do not gzip xindy.mem for Win32.
+
+2009-11-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-10-superfluous (new): Remove superfluous part.
+ * patch-11-parallel (new): Dependencies for parallel make.
+ * patch-20-TL-install-dirs (new): Parametrize install dirs.
+ * patch-30-warnings (new): Avoid complier warnings.
+
+2009-11-27 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported xindy-2.4-rc1 source tree from:
+ http://www.xindy.org/xindy-2.4-SNAPSHOT.tar.gz
+
+ * TL-Changes (new): Describes modifications of source tree.
+
+ * patch-01-VPATH-and-more (new): Allow VPATH build.
+ * patch-02-VPATH-in-perl (new): More VPATH build.
+ * patch-03-iconv-or-recode (new): Allow to use recode.
+ * patch-04-versiondir (new): Fix installdir for VERSION.
+ * patch-05-notinstall-perl (new): Do not install .pl files.
+ * patch-06-distcheck (new): Allow 'make dist'.
+ * patch-07-perl-runtime (new): Use '/usr/bin/env perl'.
+ * patch-08-perl-build (new): Use $(PERL).
+ * patch-09-flex-1 (new): Use $(LEXLIB).
+ * patch-09-flex-2 (new): Drop use of (f)lex library.
+
diff --git a/Build/source/utils/xindy/TLpatches/TL-Changes b/Build/source/utils/xindy/TLpatches/TL-Changes
new file mode 100644
index 00000000000..d50cc079f48
--- /dev/null
+++ b/Build/source/utils/xindy/TLpatches/TL-Changes
@@ -0,0 +1,16 @@
+Changes applied to the xindy source tree as obtained from:
+ http://www.ctan.org/tex-archive/indexing/xindy/base/xindy-2.5.1.tar.gz.
+
+Removed:
+ aclocal.m4
+ config.guess
+ config.sub
+ configure
+ depcomp
+ install-sh
+ missing
+ ylwrap
+
+Removed execute permissions:
+ user-commands/texindy.in
+
diff --git a/Build/source/utils/xindy/TLpatches/patch-01-xindy-script b/Build/source/utils/xindy/TLpatches/patch-01-xindy-script
new file mode 100644
index 00000000000..226395213df
--- /dev/null
+++ b/Build/source/utils/xindy/TLpatches/patch-01-xindy-script
@@ -0,0 +1,133 @@
+diff -ur xindy-2.5.1.orig/user-commands/xindy.1 xindy-2.5.1/user-commands/xindy.1
+--- xindy-2.5.1.orig/user-commands/xindy.1 Fri May 30 05:26:05 2014
++++ xindy-2.5.1/user-commands/xindy.1 Fri Apr 14 06:50:56 2017
+@@ -1,4 +1,4 @@
+-.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
++.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
+ .\"
+ .\" Standard preamble:
+ .\" ========================================================================
+@@ -133,7 +133,7 @@
+ .\" ========================================================================
+ .\"
+ .IX Title "xindy 1"
+-.TH xindy 1 "2014-05-29" "Release 2.5.1" "xindy"
++.TH xindy 1 "2015-08-15" "Release 2.5.1" "xindy"
+ .\" For nroff, turn off justification. Always turn off hyphenation; it makes
+ .\" way too many mistakes in technical documents.
+ .if n .ad l
+@@ -165,7 +165,7 @@
+ .Ve
+ .SH "DESCRIPTION"
+ .IX Header "DESCRIPTION"
+-\&\fBxindy\fR is the formatter-indepedent command of xindy, the flexible
++\&\fBxindy\fR is the formatter-independent command of xindy, the flexible
+ indexing system. It takes a raw index as input, and produces a merged,
+ sorted and tagged index. Merging, sorting, and tagging is controlled
+ by xindy style files.
+@@ -432,7 +432,7 @@
+ Joachim Schrod
+ .SH "LEGALESE"
+ .IX Header "LEGALESE"
+-Copyright (c) 2004\-2014 by Joachim Schrod.
++Copyright (C) 2004\-2014 by Joachim Schrod.
+ .PP
+ \&\fBxindy\fR is free software; you can redistribute it and/or modify it
+ under the terms of the \s-1GNU\s0 General Public License as published by the
+diff -ur xindy-2.5.1.orig/user-commands/xindy.in xindy-2.5.1/user-commands/xindy.in
+--- xindy-2.5.1.orig/user-commands/xindy.in Sun May 11 22:45:44 2014
++++ xindy-2.5.1/user-commands/xindy.in Mon Mar 27 15:19:32 2017
+@@ -353,6 +353,7 @@
+
+ use Cwd;
+ use File::Basename;
++use File::Glob qw(bsd_glob);
+ use File::Spec;
+ use File::Temp qw(tempfile tmpnam);
+ use Getopt::Long qw(:config bundling);
+@@ -394,7 +395,7 @@
+ # FIXME: In standalone installations, modules are still placed in lib
+ # directory. This is not conformant to FHS.
+
+-if ( $is_TL ) { # TeX Live and MikTeX
++if ( $is_TL ) { # TeX Live, MiKTeX, or W32TeX
+
+ $modules_dir = Cwd::realpath("$cmd_dir/../../xindy/modules");
+ die "$cmd: Cannot locate xindy modules directory" unless -d $modules_dir;
+@@ -402,8 +403,12 @@
+ if ( $is_w32 ) {
+ if ( -d "$cmd_dir/../../../bin/win32" ) { # TeX Live
+ $cmd_dir = "$cmd_dir/../../../bin/win32";
+- } elsif ( -d "$cmd_dir/../../miktex/bin" ) { # MikTeX
+- $cmd_dir = "$cmd_dir/../../miktex/bin";
++ } elsif ( -d "$cmd_dir/../../miktex/bin/x64/internal" ) { # MiKTeX 64-bit
++ $cmd_dir = "$cmd_dir/../../miktex/bin/x64/internal";
++ } elsif ( -d "$cmd_dir/../../miktex/bin/internal" ) { # MiKTeX 32-bit
++ $cmd_dir = "$cmd_dir/../../miktex/bin/internal";
++ } elsif ( -d "$cmd_dir/../../../../bin" ) { # W32TeX
++ $cmd_dir = "$cmd_dir/../../../../bin";
+ } else {
+ die "$cmd: Cannot locate bin directory";
+ }
+@@ -626,7 +631,11 @@
+ usage(1);
+ }
+ my ($name, $path, $suffix) = fileparse ($ARGV[0], '\.[^\.]+');
++ if ($path eq ".\\") {
++ $outfile = "$name.ind";
++ } else {
+ $outfile = "$path$name.ind";
++ }
+ }
+
+ # FIXME: xindy wants a log file. Really?
+@@ -706,6 +715,7 @@
+ my $output = tmpnam();
+ push (@temp_files, $output);
+ $output=quotify($output);
++ $filter=quotify($filter);
+ print "Running filter: $filter <$input >$output\n" if $verbose;
+ system "$filter <$input >$output";
+ print "filtered xindy input file: $output\n" if $debug{script};
+@@ -732,6 +742,9 @@
+ #
+ # FIXME: I didn't see all languages. What's on with gypsy and
+ # hausa?
++ if ( !$language ) {
++ $language = "general";
++ }
+ if ( $language ) {
+ # If there is no language directory, this might be a variant.
+ # Language names and variants are separated by hyphens. The
+@@ -762,7 +775,7 @@
+ @codepages = qw(latin cp iso8859 ascii utf8) unless @codepages;
+ my @styles;
+ foreach my $cp ( @codepages ) {
+- @styles = glob("$lang_dir/$variant$cp*-lang.xdy");
++ @styles = bsd_glob("$lang_dir/$variant$cp*-lang.xdy");
+ last if @styles;
+ }
+ unless ( @styles ) {
+@@ -790,7 +803,21 @@
+ push (@temp_files, $style_file);
+ $style_file=quotify($style_file);
+ foreach my $module ( @modules ) {
+- print $sf "(require \"$module\")\n";
++ if (($module =~ /\//) || ($module =~ /\\/)) {
++ # If $module contains directory separators, the module must be a system
++ # module. So we don't call kpsewhich.
++ print $sf "(require \"$module\")\n";
++ } else {
++ # Here we call kpsewhich to search for a module. Thus modules can be under
++ # (anytexmf)/xindy/modules/
++ my $fnmodule=`kpsewhich -progname=xindy -format=othertext $module`;
++ if ($fnmodule) {
++ chomp($fnmodule);
++ print $sf "(require \"$fnmodule\")\n";
++ } else {
++ print $sf "(require \"$module\")\n";
++ }
++ }
+ }
+ close ($sf);
+ }
diff --git a/Build/source/utils/xindy/TLpatches/patch-02-lbrace b/Build/source/utils/xindy/TLpatches/patch-02-lbrace
new file mode 100644
index 00000000000..d638bcd6904
--- /dev/null
+++ b/Build/source/utils/xindy/TLpatches/patch-02-lbrace
@@ -0,0 +1,11 @@
+--- make-inp-rules.pl (revision 45762)
++++ make-inp-rules.pl (working copy)
+@@ -8,7 +8,7 @@
+
+
+ while (<STDIN>) {
+- if (/\\indexentry{(.+)--([8-9a-f][0-9a-f])\}\{1\}/) {
++ if (/\\indexentry\{(.+)--([8-9a-f][0-9a-f])\}\{1\}/) {
+ if (!($1 =~ /inputenc Error|\@inpenc\@undefined/)) {
+ $i = hex($2);
+ $macro = $1;
diff --git a/Build/source/utils/xindy/TLpatches/patch-03-echo-f b/Build/source/utils/xindy/TLpatches/patch-03-echo-f
new file mode 100644
index 00000000000..33c9b4f050d
--- /dev/null
+++ b/Build/source/utils/xindy/TLpatches/patch-03-echo-f
@@ -0,0 +1,34 @@
+ https://tug.org/pipermail/tex-live/2020-March/044966.html
+
+--- xindy-src/make-rules/alphabets/Makefile.am (revision 54151)
++++ xindy-src/make-rules/alphabets/Makefile.am (working copy)
+@@ -2,6 +2,7 @@
+ ## autoconf/automake files.
+ ## Or, call `automake Makefile' to create only Makefile.in.
+
++## Copyright 2020 by Karl Berry <tex-live@tug.org>
+ ## Copyright (C) 2004-2005 by Gour.
+ ##
+ ## This program is free software; you can redistribute it and/or
+@@ -245,7 +246,9 @@
+
+ alphabets-inc.tex : $(DOCS)
+ $(RM) $@
+- echo '\chapter{Latin scripts}' >>$@
++# zsh, dash, others make echo '\f' output a form feed. Likewise they
++# interpret \c (no further output). Sigh.
++ printf '\%s{Latin scripts}' "chapter" >>$@
+ echo '\ienc{cp1252}' >>$@
+ echo '\section{Codepage 1252}' >>$@
+ for i in $(DOCS_CP1252); do echo "\\input{$$i}" >>$@; done
+@@ -274,8 +277,8 @@
+ echo '\section{Codepage latin9}' >>$@
+ for i in $(DOCS_LATIN9); do echo "\\input{$$i}" >>$@; done
+ echo '\ienc{cp1251}' >>$@
+- echo '\fenc{T2A}' >>$@
+- echo '\chapter{Cyrillic scripts}' >>$@
++ printf '\%s{T2A}\n' "fenc" >>$@
++ printf '\%s{Cyrillic scripts}' "chapter" >>$@
+ echo '\section{Codepage 1251}' >>$@
+ for i in $(DOCS_CYR_1251); do echo "\\input{$$i}" >>$@; done
+ # echo '\ienc{iso-8859-7}' >>$@
diff --git a/Build/source/utils/xindy/TLpatches/patch-06-markup-range-attr b/Build/source/utils/xindy/TLpatches/patch-06-markup-range-attr
new file mode 100644
index 00000000000..6df9d6262a5
--- /dev/null
+++ b/Build/source/utils/xindy/TLpatches/patch-06-markup-range-attr
@@ -0,0 +1,137 @@
+ https://sourceforge.net/p/xindy/bugs/1/
+ https://tug.org/pipermail/tex-live/2020-May/045760.html
+
+Index: xindy-src/doc/manual-3.html
+===================================================================
+--- xindy-src/doc/manual-3.html (revision 55314)
++++ xindy-src/doc/manual-3.html (working copy)
+@@ -927,6 +927,7 @@ location references in a hierarchical form. With t
+ <PRE>
+ (markup-range [:open string] [:close string] [:sep string]
+ [:class locref-class]
++ [:attr attribute]
+ [:length num] [:ignore-end])
+ </PRE>
+ </CODE></BLOCKQUOTE>
+@@ -933,11 +934,9 @@ location references in a hierarchical form. With t
+ <P>A range consists of two location references. Markup can be specified
+ with the <CODE>:open</CODE> and <CODE>:close</CODE> arguments and one separator given
+ by the argument <CODE>:sep</CODE>.
+-<P>Since both location references are tagged with markup defined by the
+-command <CODE>markup-locref</CODE> a specialization on attributes or depth is
+-not necessary. Specialization is allowed on the class they belong to,
+-because the separator between two location refences may be different
+-for each location class. Argument <CODE>:length</CODE> can be used to define
++<P>The markup of the separator can be specified attributes via
++the<CODE>:attr</CODE> tag.
++<P>Argument <CODE>:length</CODE> can be used to define
+ different markup for different lengths. In conjunction with
+ <CODE>:length</CODE> is may be useful not to print the second location
+ reference at all. For example, one wishes to markup ranges of length 1
+Index: xindy-src/src/markup.lsp
+===================================================================
+--- xindy-src/src/markup.lsp (revision 55307)
++++ xindy-src/src/markup.lsp (working copy)
+@@ -409,7 +409,7 @@ T
+ (do-markup-list (get-members attribute-group)
+ :identifier LOCREF
+ :open-body (do-markup-locref-list-open loccls 0)
+- :elt-body (do-markup-locref LOCREF loccls 0)
++ :elt-body (do-markup-locref (get-catattr LOCREF) LOCREF loccls 0)
+ :sep-body (do-markup-locref-list-sep loccls 0)
+ :close-body (do-markup-locref-list-close loccls 0))
+
+@@ -429,7 +429,8 @@ T
+ (do-markup-default "LOCREF-LIST:CLOSE" (get-name loccls) depth))
+ :sep ((do-markup-default "LOCREF-LIST:SEP" (get-name loccls) depth)))
+ ;; line 808 "markup.nw"
+-(defmethod do-markup-locref ((locref location-reference)
++(defmethod do-markup-locref ((attr category-attribute)
++ (locref location-reference)
+ (loccls layered-location-class)
+ (depth number))
+ #+ASSERT! (assert! (and (typep locref 'layered-location-reference)
+@@ -455,7 +456,7 @@ T
+ (do-markup-list subrefs
+ :identifier LOCREF
+ :open-body (do-markup-locref-list-open loccls new-depth)
+- :elt-body (do-markup-locref LOCREF loccls new-depth)
++ :elt-body (do-markup-locref attr LOCREF loccls new-depth)
+ :sep-body (do-markup-locref-list-sep loccls new-depth)
+ :close-body (do-markup-locref-list-close loccls new-depth)))
+
+@@ -506,23 +507,24 @@ T
+ (do-markup-default "LOCREF:CLOSE"
+ (get-name attr) (get-name loccls) depth)))
+ ;; line 955 "markup.nw"
+-(defmethod do-markup-locref ((range location-range)
++(defmethod do-markup-locref ((attr category-attribute)
++ (range location-range)
+ (loccls layered-location-class)
+ (depth number))
+ (let ((length (get-length range)))
+- (do-markup-range-open loccls length)
+- (do-markup-locref (get-first range) loccls depth)
+- (do-markup-range-sep loccls length)
++ (do-markup-range-open attr loccls length)
++ (do-markup-locref attr (get-first range) loccls depth)
++ (do-markup-range-sep attr loccls length)
+ (when (markup-range-print-end-p loccls length)
+- (do-markup-locref (get-last range) loccls depth))
+- (do-markup-range-close loccls length)))
++ (do-markup-locref attr (get-last range) loccls depth))
++ (do-markup-range-close attr loccls length)))
+
+ (define-list-environment-methods do-markup-range
+- ((loccls layered-location-class) (length number))
+- :open ((do-markup-default "RANGE:OPEN" (get-name loccls) length)
++ ((attr category-attribute) (loccls layered-location-class) (length number))
++ :open ((do-markup-default "RANGE:OPEN" (get-name attr) (get-name loccls) length)
+ (do-markup-indent))
+ :close ((do-markup-outdent)
+- (do-markup-default "RANGE:CLOSE" (get-name loccls) length))
++ (do-markup-default "RANGE:CLOSE" (get-name attr) (get-name loccls) length))
+ :sep ((do-markup-default "RANGE:SEP" (get-name loccls) length)))
+
+ (defmethod markup-range-print-end-p ((loccls layered-location-class)
+@@ -947,7 +949,7 @@ T
+ ;; line 1002 "markup.nw"
+ (defmacro markup-range (&whole whole &rest args)
+ (destructuring-switch-bind (&key
+- open close sep class length
++ open close sep class attr length
+ &switch ignore-end)
+ args
+ (cond
+@@ -965,6 +967,10 @@ T
+ ((and class (progn (setq class (stringify class))
+ (not (lookup-locref-class *indexstyle* class))))
+ (nraw "parameter `~S' is not a location-reference class! (ignored)~%" class))
++;; line 294 "markup.nw"
++((and attr (progn (setq attr (stringify attr))
++ (not (lookup-catattr *indexstyle* attr))))
++ (nraw "parameter `~S' is not an attribute! (ignored)~%" attr))
+ ;; line 1009 "markup.nw"
+ ((and length (not (numberp length)))
+ (nraw "parameter `~S' is not a number! (ignored)~%" length))
+@@ -971,7 +977,10 @@ T
+ (t `(let ()
+ (markup::define-list-environment-methods
+ DO-MARKUP-RANGE
+- (,(if class
++ (,(if attr
++ `(attr (EQL ',(lookup-catattr *indexstyle* attr)))
++ '(attr category-attribute))
++ ,(if class
+ `(locrefcls (EQL ',(cdr (lookup-locref-class
+ *indexstyle* class))))
+ '(locrefcls layered-location-class))
+@@ -989,7 +998,7 @@ T
+ ,(if length
+ `(length (EQL ,length))
+ '(length number)))
+- :declare ((declare (ignore locrefcls length)))
++ :declare ((declare (ignore attr locrefcls length)))
+ :body (,(not ignore-end))))))))
+ ;; line 1064 "markup.nw"
+ (defmacro markup-crossref-list (&key open sep close class)
diff --git a/Build/source/utils/xindy/TLpatches/patch-08-hyperref-seealso b/Build/source/utils/xindy/TLpatches/patch-08-hyperref-seealso
new file mode 100644
index 00000000000..0ea8960fc8f
--- /dev/null
+++ b/Build/source/utils/xindy/TLpatches/patch-08-hyperref-seealso
@@ -0,0 +1,63 @@
+ https://sourceforge.net/p/xindy/bugs/62/
+ https://tug.org/pipermail/tex-live/2020-May/045753.html
+
+Index: xindy-src/modules/base/makeindex.xdy
+===================================================================
+--- xindy-src/modules/base/makeindex.xdy (revision 55307)
++++ xindy-src/modules/base/makeindex.xdy (working copy)
+@@ -17,6 +17,11 @@
+ (define-crossref-class "seealso")
+ (markup-crossref-list :class "seealso" :open "\seealso{" :sep "; " :close "}{}")
+
++;; \hyperindexformat is a wrapper to \see and \seealso added by hyperref.
++;; We treat it like \see and \seealso
++(define-crossref-class "hyperindexformat" :unverified)
++(markup-crossref-list :class "hyperindexformat" :open "\hyperindexformat{" :sep "; " :close "}{}")
++
+ ;; Subentries in cross references are seperated by comma for all
+ ;; crossref classes.
+ (markup-crossref-layer-list :sep ", ")
+Index: xindy-src/user-commands/texindy.in
+===================================================================
+--- xindy-src/user-commands/texindy.in (revision 55307)
++++ xindy-src/user-commands/texindy.in (working copy)
+@@ -308,15 +308,9 @@ behaviour.
+
+ For more complex usage, when C<bbb> is not an identifier, no such
+ compatibility definitions exist and may also not been created with
+-current B<xindy>. In particular, this means that by default the LaTeX
+-package C<hyperref> will create raw index files that cannot be
+-processed with B<xindy>. This is not a bug, this is the unfortunate
+-result of an intented incompatibility. It is currently not possible to
+-get both hyperref's index links and use B<xindy>.
++current B<xindy>. Such a situation is reported to exist for the
++C<memoir> LaTeX class.
+
+-A similar situation is reported to exist for the C<memoir> LaTeX
+-class.
+-
+ Programmers who know Common Lisp and Lex and want to work on a remedy
+ should please contact the author.
+
+Index: xindy-src/user-commands/xindy.in
+===================================================================
+--- xindy-src/user-commands/xindy.in (revision 55307)
++++ xindy-src/user-commands/xindy.in (working copy)
+@@ -260,15 +260,9 @@ behaviour.
+
+ For more complex usage, when C<bbb> is not an identifier, no such
+ compatibility definitions exist and may also not been created with
+-current B<xindy>. In particular, this means that by default the LaTeX
+-package C<hyperref> will create raw index files that cannot be
+-processed with B<xindy>. This is not a bug, this is the unfortunate
+-result of an intented incompatibility. It is currently not possible to
+-get both hyperref's index links and use B<xindy>.
++current B<xindy>. Such a situation is reported to exist for the
++C<memoir> LaTeX class.
+
+-A similar situation is reported to exist for the C<memoir> LaTeX
+-class.
+-
+ Programmers who know Common Lisp and Lex and want to work on a remedy
+ should please contact the author.
+
diff --git a/Build/source/utils/xindy/TLpatches/patch-10-doc-min-range b/Build/source/utils/xindy/TLpatches/patch-10-doc-min-range
new file mode 100644
index 00000000000..38dad8d61f2
--- /dev/null
+++ b/Build/source/utils/xindy/TLpatches/patch-10-doc-min-range
@@ -0,0 +1,48 @@
+ https://github.com/jschrod/xindy.ctan/issues/3
+ https://tug.org/pipermail/tex-live/2020-May/045760.html
+
+Index: xindy-src/doc/manual-3.html
+===================================================================
+--- xindy-src/doc/manual-3.html (revision 54835)
++++ xindy-src/doc/manual-3.html (working copy)
+@@ -185,8 +185,8 @@
+ keyword argument <CODE>:sep</CODE>. If the keyword <CODE>:min-range-length</CODE> is
+ specified we define the <EM>minimum range length</EM> to be used when
+ building ranges. The argument <CODE>num</CODE> must be a positive integer
+-number or the keyword <CODE>none</CODE> in which case the building of ranges
+-is disallowed. If the switch <CODE>:var</CODE> is specified the declared class
++number. Use a sufficiently large number (such as 10000) to disallow the building of ranges.
++If the switch <CODE>:var</CODE> is specified the declared class
+ is of type <EM>variable</EM>, i.e. it is a <EM>var-location-class</EM>. Since
+ building of ranges is currently only allowed for standard classes
+ <CODE>:var</CODE> and <CODE>:min-range-length</CODE> must not be used together. The
+@@ -198,7 +198,7 @@
+ <P>
+ <PRE>
+ (define-location-class "page-numbers" ("arabic-numbers")
+- :minimum-range-length 3)
++ :min-range-length 3)
+ </PRE>
+ <P>Defines the location class <CODE>page-numbers</CODE> consisting of one layer
+ which is the alphabet <CODE>arabic-numbers</CODE>. Since the minimum
+Index: xindy-src/doc/faq-4.html
+===================================================================
+--- xindy-src/doc/faq-4.html (revision 54835)
++++ xindy-src/doc/faq-4.html (working copy)
+@@ -460,11 +460,12 @@
+ the form
+ <P>
+ <PRE>
+- (define-location-class ... :min-range-length none)
++ (define-location-class ... :min-range-length 100000)
+ </PRE>
+-<P>The argument <CODE>:min-range-length none</CODE> avoids forming of ranges.
+-Arbitrary numbers instead of <CODE>none</CODE> define the minimum length of a
+-sequence of location references that are needed to form a range.
++<P>Arbitrary numbers define the minimum length of a sequence of location references that are needed to form a range.
++The use of a sufficiently large number (such as <CODE>:min-range-length 100000</CODE>) avoids forming of ranges
++(unless your document has more than 100.000 pages and an index entry spans all of them; in this unlikely case, just increase
++the number sufficiently).
+ <SF>xindy</SF>s default value is&nbsp;2.
+ <P>
+ <P>