Subject: Re: [PATCH] gnu: pcre: Fix Check for Hurd systems.

From: rennes <[email-masked]>
Date: Thu, 20 Apr 2017 14:31:51 -0500

Hi,
> Also this
> 
> >   ,@(if (hurd-triplet? ((or %current-system
> >                             %current-target-system)))
> 
> should be this
> 
> >   ,@(if (hurd-triplet? (or (%current-system)
> >                            (%current-target-system)))
> 

Fixed!

> Btw trying to build it with `./pre-inst-env guix build
> --target=i586-pc-gnu pcre' fails with
> 
> ** Cannot --enable-pcregrep-libz because zlib.h was not found
> 
> Maybe the inputs should become native-inputs?

I moved zlib and readline to 'native-inputs'.
Finally './pre-inst-env guix build pcre --target=i586-pc-gnu' built  
successfully.

From 5eb24c23eba8c5d259e3a4c39e19ae1321c59863 Mon Sep 17 00:00:00 2001
From: rennes <[email-masked]>
Date: Thu, 20 Apr 2017 13:58:57 -0500
Subject: [PATCH] gnu: pcre: Fix Check for Hurd systems.

* gnu/packages/pcre.scm (pcre)[arguments]: Add "--disable-stack-for-recursion".
(readline, zlib): Add 'native-inputs' field.
---
 gnu/packages/pcre.scm | 51 +++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 39 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 1946f5229..266f16ce5 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)
@@ -50,19 +52,44 @@
    (outputs '("out"           ;library & headers
               "bin"           ;depends on Readline (adds 20MiB to the closure)
               "doc"))         ;1.8 MiB of HTML
-   (inputs `(("bzip2" ,bzip2)
-             ("readline" ,readline)
-             ("zlib" ,zlib)))
+   (inputs `(("bzip2" ,bzip2)))
+   (native-inputs
+    `(;; When cross-compiling with target i586-pc-gnu does not detect
+      ;; zlib/readline packages as input, then we need the packages
+      ;; as native inputs.
+      ("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