diff options
author | Jan Malakhovski <oxij@oxij.org> | 2018-09-05 00:28:02 +0000 |
---|---|---|
committer | Jan Malakhovski <oxij@oxij.org> | 2018-09-05 16:39:36 +0000 |
commit | 2ad99bcc82050fc9cdcfca7b582386394c30b316 (patch) | |
tree | b7856d7a91403d7e004170133bf21e1173d4de9f /pkgs/development/tools/misc/texinfo | |
parent | bf2a90298ab8a5dcd2596f7fabaad431c6709afd (diff) |
texinfo: fix perl issues by applying patches from upstream
Diffstat (limited to 'pkgs/development/tools/misc/texinfo')
-rw-r--r-- | pkgs/development/tools/misc/texinfo/common.nix | 3 | ||||
-rw-r--r-- | pkgs/development/tools/misc/texinfo/perl.patch | 43 |
2 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix index 101298cd305..c6877ed4d1a 100644 --- a/pkgs/development/tools/misc/texinfo/common.nix +++ b/pkgs/development/tools/misc/texinfo/common.nix @@ -17,6 +17,9 @@ stdenv.mkDerivation rec { inherit sha256; }; + # TODO: fix on mass rebuild + ${if interactive then "patches" else null} = optional (version == "6.5") ./perl.patch; + # We need a native compiler to build perl XS extensions # when cross-compiling. depsBuildBuild = [ buildPackages.stdenv.cc perl ]; diff --git a/pkgs/development/tools/misc/texinfo/perl.patch b/pkgs/development/tools/misc/texinfo/perl.patch new file mode 100644 index 00000000000..e651b37371c --- /dev/null +++ b/pkgs/development/tools/misc/texinfo/perl.patch @@ -0,0 +1,43 @@ +Adapted from http://svn.savannah.gnu.org/viewvc/texinfo/ +Author: gavin +--- trunk/tp/Texinfo/Parser.pm 2018-06-04 19:51:36 UTC (rev 8006) ++++ trunk/tp/Texinfo/Parser.pm 2018-07-13 15:31:28 UTC (rev 8007) +@@ -5531,11 +5531,11 @@ + } + } 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->__( +--- trunk/tp/Texinfo/Convert/XSParagraph/xspara.c 2018-07-13 15:31:28 UTC (rev 8007) ++++ trunk/tp/Texinfo/Convert/XSParagraph/xspara.c 2018-07-13 15:39:29 UTC (rev 8008) +@@ -248,6 +248,11 @@ + + 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 @@ + { + 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", |