diff options
-rw-r--r-- | gnu-system.am | 1 | ||||
-rw-r--r-- | gnu/packages/glib.scm | 3 | ||||
-rw-r--r-- | gnu/packages/patches/glib-tests-newnet.patch | 30 |
3 files changed, 33 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am index 076cd0da4e..4ba110624c 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -218,6 +218,7 @@ dist_patch_DATA = \ gnu/packages/patches/gcc-cross-environment-variables.patch \ gnu/packages/patches/glib-tests-desktop.patch \ gnu/packages/patches/glib-tests-homedir.patch \ + gnu/packages/patches/glib-tests-newnet.patch \ gnu/packages/patches/glib-tests-prlimit.patch \ gnu/packages/patches/glibc-bootstrap-system.patch \ gnu/packages/patches/glibc-ldd-x86_64.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 2fbc46892b..61ba0b944e 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -117,7 +117,8 @@ shared NFS home directories.") (base32 "0cpzqadqk6z6bmb79p04pykxc8x57rvshh33414cnk41bvgaf4vm")) (patches (list (search-patch "glib-tests-homedir.patch") (search-patch "glib-tests-desktop.patch") - (search-patch "glib-tests-prlimit.patch"))))) + (search-patch "glib-tests-prlimit.patch") + (search-patch "glib-tests-newnet.patch"))))) (build-system gnu-build-system) (outputs '("out" ; everything "doc")) ; 20 MiB of GTK-Doc reference diff --git a/gnu/packages/patches/glib-tests-newnet.patch b/gnu/packages/patches/glib-tests-newnet.patch new file mode 100644 index 0000000000..324b8ae68f --- /dev/null +++ b/gnu/packages/patches/glib-tests-newnet.patch @@ -0,0 +1,30 @@ +Since guix-daemon runs in a separate networking name space, the only +interface available is "lo". However its index is incremented by one +at each build, so it can end up being greater than 255, leading to an +assertion failure in 'find_ifname_and_index'. + +Work around that by directly querying the index of "lo". + +--- glib-2.38.0/gio/tests/network-address.c 2013-09-17 20:47:14.000000000 +0200 ++++ glib-2.38.0/gio/tests/network-address.c 2013-10-16 21:52:42.000000000 +0200 +@@ -117,7 +117,7 @@ test_parse_host (gconstpointer d) + #define SCOPE_ID_TEST_PORT 99 + + #ifdef HAVE_IF_INDEXTONAME +-static char SCOPE_ID_TEST_IFNAME[IF_NAMESIZE]; ++static char SCOPE_ID_TEST_IFNAME[] = "lo"; + static int SCOPE_ID_TEST_INDEX; + #else + #define SCOPE_ID_TEST_IFNAME "1" +@@ -131,11 +131,7 @@ find_ifname_and_index (void) + return; + + #ifdef HAVE_IF_INDEXTONAME +- for (SCOPE_ID_TEST_INDEX = 1; SCOPE_ID_TEST_INDEX < 255; SCOPE_ID_TEST_INDEX++) { +- if (if_indextoname (SCOPE_ID_TEST_INDEX, SCOPE_ID_TEST_IFNAME)) +- break; +- } +- g_assert_cmpstr (SCOPE_ID_TEST_IFNAME, !=, ""); ++ SCOPE_ID_TEST_INDEX = if_nametoindex (SCOPE_ID_TEST_IFNAME); + #endif + } |