Browse Source

gnu: glib: Work around test failure in 'gio/tests/network-address.c'.

* gnu/packages/patches/glib-tests-newnet.patch: New file.
* gnu/packages/glib.scm (glib): Use it.
* gnu-system.am (dist_patch_DATA): Add it.
gn-latest-20200428
Ludovic Courtès 7 years ago
parent
commit
93a3d8f609
3 changed files with 33 additions and 1 deletions
  1. +1
    -0
      gnu-system.am
  2. +2
    -1
      gnu/packages/glib.scm
  3. +30
    -0
      gnu/packages/patches/glib-tests-newnet.patch

+ 1
- 0
gnu-system.am View File

@@ -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 \


+ 2
- 1
gnu/packages/glib.scm View File

@@ -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


+ 30
- 0
gnu/packages/patches/glib-tests-newnet.patch View File

@@ -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
}

Loading…
Cancel
Save