Subject: bug#26575: [PATCH] gnu: pcre: Fix Check for Hurd systems.

From: rennes <[email-masked]>
Date: Thu, 20 Apr 2017 00:12:13 -0500

Hello,
This patch fix the Check phase on GNU/Hurd.
Built in Linux and Hurd.

Additional, I have a doubt regarding the outputs of the package, after  
build shows:
/gnu/store/9bx00n7mpxiyp9nyjz5qas53kc3wid5i-pcre-8.40-bin
/gnu/store/qb2mbv1wj3b18ix88blfidyy0yzrzggz-pcre-8.40-doc
/gnu/store/v8ma5z2d1m78f64c9m3dp6s3359w02h0-pcre-8.40

The outputs have different hash, is this correct?

From 051df2ff88138039bfe007f724d983ff9172e264 Mon Sep 17 00:00:00 2001
From: rennes <[email-masked]>
Date: Thu, 20 Apr 2017 00:05:35 -0500
Subject: [PATCH] gnu: pcre: Fix Check for Hurd systems.

* gnu/packages/pcre.scm (pcre)[arguments]: Add "--disable-stack-for-recursion".
---
 gnu/packages/pcre.scm | 41 ++++++++++++++++++++++++++++++++---------
 1 file changed, 32 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 1946f5229..c92267a90 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Leo Famulari <[email-masked]>
 ;;; Copyright © 2017 Marius Bakke <[email-masked]>
 ;;; Copyright © 2017 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2017 Rene Saavedra <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
 (define-module (gnu packages pcre)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages hurd)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages)
   #:use-module (guix packages)
@@ -54,15 +56,36 @@
              ("readline" ,readline)
              ("zlib" ,zlib)))
    (arguments
-    '(#:disallowed-references ("doc")
-      #:configure-flags '("--enable-utf"
-                          "--enable-pcregrep-libz"
-                          "--enable-pcregrep-libbz2"
-                          "--enable-pcretest-libreadline"
-                          "--enable-unicode-properties"
-                          "--enable-pcre16"
-                          "--enable-pcre32"
-                          "--enable-jit")))
+    `(#:disallowed-references ("doc")
+      #:phases
+      (modify-phases %standard-phases
+        (replace 'configure
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (bin (assoc-ref outputs "bin"))
+                          (doc (assoc-ref outputs "doc")))
+                     (setenv "CONFIG_SHELL" (which "bash"))
+                     (zero?
+                      (system* "./configure"
+                               (string-append "--prefix=" out)
+                               (string-append "--bindir=" bin)
+                               (string-append "--docdir=" doc)
+                               "--enable-utf"
+                               "--enable-pcregrep-libz"
+                               "--enable-pcregrep-libbz2"
+                               "--enable-pcretest-libreadline"
+                               "--enable-unicode-properties"
+                               "--enable-pcre16"
+                               "--enable-pcre32"
+                               "--enable-jit"
+                               ;; On GNU/Hurd systems FAIL 'RunTest' with 'segmentation
+                               ;; fault' in Check phase, to pass the test we can disable
+                               ;; "--enable-jit" or set "--disable-stack-for-recursion"
+                               ;; argument.
+                               ,@(if (hurd-triplet? ((or %current-system
+                                                         %current-target-system)))
+                                     '("--disable-stack-for-recursion")
+                                     '())))))))))
    (synopsis "Perl Compatible Regular Expressions")
    (description
     "The PCRE library is a set of functions that implement regular expression
-- 
2.12.0