From 1aef67362fc72f394c679e9131a484071393f548 Mon Sep 17 00:00:00 2001
From: Lluis Batlle <viriketo@gmail.com>
Date: Tue, 2 Apr 2013 18:02:03 +0200
Subject: [PATCH] guile: adding a patch to allow guile builds without chroots

Otherwise, the NSS troubles may make a test fail.

Patch suggested by ludo.
---
 .../interpreters/guile/default.nix            |  2 +-
 .../interpreters/guile/eai_system.patch       | 24 +++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/development/interpreters/guile/eai_system.patch

diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index d09e995e95c0..45793b25d25b 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -29,7 +29,7 @@
 
   enableParallelBuilding = true;
 
-  patches = [ ./disable-gc-sensitive-tests.patch ] ++
+  patches = [ ./disable-gc-sensitive-tests.patch ./eai_system.patch ] ++
     (stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
 
   # Explicitly link against libgcc_s, to work around the infamous
diff --git a/pkgs/development/interpreters/guile/eai_system.patch b/pkgs/development/interpreters/guile/eai_system.patch
new file mode 100644
index 000000000000..b0eb7ac44dae
--- /dev/null
+++ b/pkgs/development/interpreters/guile/eai_system.patch
@@ -0,0 +1,24 @@
+Building nixpkgs in non-chroot, NSS modules may fail
+and that will report EAI_SYSTEM in getaddrinfo.
+https://bugzilla.novell.com/show_bug.cgi?id=794696
+
+Index: guile-2.0.7/test-suite/tests/net-db.test
+===================================================================
+--- guile-2.0.7.orig/test-suite/tests/net-db.test
++++ guile-2.0.7/test-suite/tests/net-db.test
+@@ -79,6 +79,7 @@
+                      (and (defined? 'EAI_NODATA)  ; GNU extension
+                           (= errcode EAI_NODATA))
+                      (= errcode EAI_AGAIN)
++                     (= errcode EAI_SYSTEM)
+                      (begin
+                        (format #t "unexpected error code: ~a ~s~%"
+                                errcode (gai-strerror errcode))
+@@ -105,6 +106,7 @@
+             ;; `EAI_NONAME'.)
+             (and (or (= errcode EAI_SERVICE)
+                      (= errcode EAI_NONAME)
++                     (= errcode EAI_SYSTEM)
+                      (and (defined? 'EAI_NODATA)
+                           (= errcode EAI_NODATA)))
+                  (string? (gai-strerror errcode))))))))