summaryrefslogtreecommitdiffstats
path: root/latex
diff options
context:
space:
mode:
authorPavel Vinogradov2018-08-03 00:07:08 -0400
committerPavel Vinogradov2018-08-03 00:07:33 -0400
commit476701acd0f09066f7e7e8d7542dc3040eeb5b50 (patch)
tree2abf1497c38a7fb250371bc7866a378bd827124d /latex
parentaeba8dd830342c9c71017011b7e3b6056970b50c (diff)
latex/texinfo: fixed endless looping
Diffstat (limited to 'latex')
-rwxr-xr-xlatex/texinfo/DETAILS1
-rw-r--r--latex/texinfo/HISTORY4
-rwxr-xr-xlatex/texinfo/PRE_BUILD3
-rw-r--r--latex/texinfo/patches/locales-and-braces.patch78
4 files changed, 86 insertions, 0 deletions
diff --git a/latex/texinfo/DETAILS b/latex/texinfo/DETAILS
index 9c1d96e024..a7a33b5eb4 100755
--- a/latex/texinfo/DETAILS
+++ b/latex/texinfo/DETAILS
@@ -1,5 +1,6 @@
SPELL=texinfo
VERSION=6.5
+ PATCHLEVEL=1
SOURCE=$SPELL-$VERSION.tar.xz
SOURCE2=$SOURCE.sig
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-${VERSION}"
diff --git a/latex/texinfo/HISTORY b/latex/texinfo/HISTORY
index fff930f901..a2574464c9 100644
--- a/latex/texinfo/HISTORY
+++ b/latex/texinfo/HISTORY
@@ -1,3 +1,7 @@
+2018-08-03 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS, PRE_BUILD, patches/locales-and-braces.patch: added patch to
+ fix endless looping in some info installatiions (for ex. glibc)
+
2017-09-13 Pavel Vinogradov <public@sourcemage.org>
* DETAILS: version 6.5
diff --git a/latex/texinfo/PRE_BUILD b/latex/texinfo/PRE_BUILD
new file mode 100755
index 0000000000..0cab101bf4
--- /dev/null
+++ b/latex/texinfo/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build &&
+cd "${SOURCE_DIRECTORY}" &&
+apply_patch_dir patches
diff --git a/latex/texinfo/patches/locales-and-braces.patch b/latex/texinfo/patches/locales-and-braces.patch
new file mode 100644
index 0000000000..0cc59a757f
--- /dev/null
+++ b/latex/texinfo/patches/locales-and-braces.patch
@@ -0,0 +1,78 @@
+From 9031aefb7f180f718db83aec5e2782079455a32f Mon Sep 17 00:00:00 2001
+From: Niko Tyni <nt...@debian.org>
+Date: Sat, 30 Jun 2018 16:51:13 +0100
+Subject: [PATCH] Update locale handling for Perl 5.28
+
+Perl 5.28 introduced thread-safe locales, where setlocale()
+only affects the locale of the current thread. External code
+like mbrtowc(3) isn't aware of this thread specific locale,
+so we need to explicitly modify the global one instead.
+
+Without this we could enter a busy loop in xspara__add_next()
+(Texinfo::Convert::XSParagraph) for UTF-8 documents when mbrtowc(3)
+returned -1.
+---
+ tp/Texinfo/Convert/XSParagraph/xspara.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/tp/Texinfo/Convert/XSParagraph/xspara.c b/tp/Texinfo/Convert/XSParagraph/xspara.c
+index 51eea4a..f2d6d1c 100644
+--- a/tp/Texinfo/Convert/XSParagraph/xspara.c
++++ b/tp/Texinfo/Convert/XSParagraph/xspara.c
+@@ -248,6 +248,11 @@ xspara_init (void)
+
+ dTHX;
+
++#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
++ /* needed due to thread-safe locale handling in newer perls */
++ switch_to_global_locale();
++#endif
++
+ if (setlocale (LC_CTYPE, "en_US.UTF-8")
+ || setlocale (LC_CTYPE, "en_US.utf8"))
+ goto success;
+@@ -320,6 +325,10 @@ failure:
+ {
+ success: ;
+ free (utf8_locale);
++#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
++ /* needed due to thread-safe locale handling in newer perls */
++ sync_locale();
++#endif
+ /*
+ fprintf (stderr, "tried to set LC_CTYPE to UTF-8.\n");
+ fprintf (stderr, "character encoding is: %s\n",
+--
+2.17.0
+
+>From 1f27900352e04ff4f19bec1c1e9635adad2be31c Mon Sep 17 00:00:00 2001
+From: Niko Tyni <nt...@debian.org>
+Date: Fri, 18 May 2018 10:40:00 +0100
+Subject: [PATCH] Fix unescaped left braces in regexps, deprecated since Perl
+ 5.27.8
+
+This fixes test failures on recent Perl versions.
+---
+ tp/Texinfo/Parser.pm | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tp/Texinfo/Parser.pm b/tp/Texinfo/Parser.pm
+index dc32ca2..c577aa9 100644
+--- a/tp/Texinfo/Parser.pm
++++ b/tp/Texinfo/Parser.pm
+@@ -5478,11 +5478,11 @@ sub _parse_special_misc_command($$$$)
+ }
+ } elsif ($command eq 'clickstyle') {
+ # REMACRO
+- if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*/) {
++ if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*/) {
+ $args = ['@'.$1];
+ $self->{'clickstyle'} = $1;
+ $remaining = $line;
+- $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
++ $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
+ $has_comment = 1 if (defined($4));
+ } else {
+ $self->line_error (sprintf($self->__(
+--
+2.17.0