diff options
author | Pavel Vinogradov | 2018-08-03 00:07:08 -0400 |
---|---|---|
committer | Pavel Vinogradov | 2018-08-03 00:07:33 -0400 |
commit | 476701acd0f09066f7e7e8d7542dc3040eeb5b50 (patch) | |
tree | 2abf1497c38a7fb250371bc7866a378bd827124d /latex | |
parent | aeba8dd830342c9c71017011b7e3b6056970b50c (diff) |
latex/texinfo: fixed endless looping
Diffstat (limited to 'latex')
-rwxr-xr-x | latex/texinfo/DETAILS | 1 | ||||
-rw-r--r-- | latex/texinfo/HISTORY | 4 | ||||
-rwxr-xr-x | latex/texinfo/PRE_BUILD | 3 | ||||
-rw-r--r-- | latex/texinfo/patches/locales-and-braces.patch | 78 |
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 |