aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/tools/misc/texinfo
diff options
context:
space:
mode:
authorJan Malakhovski <oxij@oxij.org>2018-09-05 00:28:02 +0000
committerJan Malakhovski <oxij@oxij.org>2018-09-05 16:39:36 +0000
commit2ad99bcc82050fc9cdcfca7b582386394c30b316 (patch)
treeb7856d7a91403d7e004170133bf21e1173d4de9f /pkgs/development/tools/misc/texinfo
parentbf2a90298ab8a5dcd2596f7fabaad431c6709afd (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.nix3
-rw-r--r--pkgs/development/tools/misc/texinfo/perl.patch43
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",