summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--gnu/packages/glib.scm31
-rw-r--r--gnu/packages/patches/glib-tests-desktop.patch27
-rw-r--r--gnu/packages/patches/glib-tests-homedir.patch24
-rw-r--r--gnu/packages/patches/glib-tests-timezone.patch41
5 files changed, 49 insertions, 75 deletions
diff --git a/Makefile.am b/Makefile.am
index 9f106a27fb..a98bcd3573 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -236,7 +236,6 @@ dist_patch_DATA =						\
   gnu/packages/patches/glib-tests-desktop.patch			\
   gnu/packages/patches/glib-tests-homedir.patch			\
   gnu/packages/patches/glib-tests-prlimit.patch			\
-  gnu/packages/patches/glib-tests-timezone.patch		\
   gnu/packages/patches/glibc-bootstrap-system.patch		\
   gnu/packages/patches/glibc-no-ld-so-cache.patch		\
   gnu/packages/patches/grub-gets-undeclared.patch		\
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index f951fe7b71..2e8f40a6b1 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -33,7 +33,8 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages bash))
 
 (define-public dbus
   (package
@@ -74,14 +75,14 @@ shared NFS home directories.")
 (define-public glib
   (package
    (name "glib")
-   (version "2.34.3")
+   (version "2.37.1")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnome/sources/"
                                 name "/2.34/"
                                 name "-" version ".tar.xz"))
             (sha256
-             (base32 "19sq4rhl2vr8ikjvl8qh51vr38yqfhbkb3imi2s6ac5rgkwcnpw5"))))
+             (base32 "1lp705q0g9jlfj24x8fpgjh7awmmara5iyj9kz5lhd49sr9s813k"))))
    (build-system gnu-build-system)
    (outputs '("out"                        ; everything
               "doc"))                      ; 20 MiB of GTK-Doc reference
@@ -94,9 +95,9 @@ shared NFS home directories.")
       ("zlib" ,zlib)
       ("perl" ,perl)                              ; needed by GIO tests
       ("dbus" ,dbus)                              ; for GDBus tests
+      ("bash" ,bash)
+      ("tzdata" ,tzdata)                          ; for tests/gdatetime.c
 
-      ("patch/tests-tzdata"
-       ,(search-patch "glib-tests-timezone.patch"))
       ("patch/tests-homedir"
        ,(search-patch "glib-tests-homedir.patch"))
       ("patch/tests-desktop"
@@ -104,17 +105,31 @@ shared NFS home directories.")
       ("patch/tests-prlimit"
        ,(search-patch "glib-tests-prlimit.patch"))))
    (arguments
-    '(#:patches (list (assoc-ref %build-inputs "patch/tests-tzdata")
-                      (assoc-ref %build-inputs "patch/tests-homedir")
+    '(#:patches (list (assoc-ref %build-inputs "patch/tests-homedir")
                       (assoc-ref %build-inputs "patch/tests-desktop")
                       (assoc-ref %build-inputs "patch/tests-prlimit"))
       #:phases (alist-cons-before
                 'build 'pre-build
                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                  ;; For tests/gdatetime.c.
+                  (setenv "TZDIR"
+                          (string-append (assoc-ref inputs "tzdata")
+                                         "/share/zoneinfo"))
+
+                  ;; Some tests want write access there.
+                  (setenv "XDG_CACHE_HOME" (getcwd))
+
                   (substitute* '("glib/gspawn.c"
                                  "glib/tests/utils.c"
                                  "tests/spawn-test.c")
-                    (("/bin/sh") (which "sh"))))
+                    (("/bin/sh")
+                     (string-append (assoc-ref inputs "bash") "/bin/sh")))
+
+                  ;; Honor $(TESTS_ENVIRONMENT).
+                  (substitute* (find-files "." "^Makefile(\\.in)?$")
+                    (("^GTESTER[[:blank:]]*=(.*)$" _ rest)
+                     (string-append "GTESTER = $(TESTS_ENVIRONMENT) "
+                                    rest))))
                 %standard-phases)
 
       ;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch
index 85f2b06c9a..a92662886e 100644
--- a/gnu/packages/patches/glib-tests-desktop.patch
+++ b/gnu/packages/patches/glib-tests-desktop.patch
@@ -1,9 +1,9 @@
 Some GLib tests expect desktop things, such as an xterm, a MIME
 database, the `update-desktop-database' program, which we don't provide.
 
---- glib-2.34.3/gio/tests/appinfo.c	2013-01-16 18:20:00.000000000 +0100
-+++ glib-2.34.3/gio/tests/appinfo.c	2013-01-16 18:20:06.000000000 +0100
-@@ -384,14 +384,09 @@ main (int argc, char *argv[])
+--- glib-2.37.1/gio/tests/appinfo.c	2013-06-07 23:44:44.000000000 +0200
++++ glib-2.37.1/gio/tests/appinfo.c	2013-06-07 23:44:56.000000000 +0200
+@@ -497,16 +497,10 @@ main (int argc, char *argv[])
  
    g_test_add_func ("/appinfo/basic", test_basic);
    g_test_add_func ("/appinfo/text", test_text);
@@ -11,12 +11,15 @@ database, the `update-desktop-database' program, which we don't provide.
    g_test_add_func ("/appinfo/show-in", test_show_in);
    g_test_add_func ("/appinfo/commandline", test_commandline);
 -  g_test_add_func ("/appinfo/launch-context", test_launch_context);
+-  g_test_add_func ("/appinfo/launch-context-signals", test_launch_context_signals);
    g_test_add_func ("/appinfo/tryexec", test_tryexec);
 -  g_test_add_func ("/appinfo/associations", test_associations);
    g_test_add_func ("/appinfo/environment", test_environment);
 -  g_test_add_func ("/appinfo/startup-wm-class", test_startup_wm_class);
 -  g_test_add_func ("/appinfo/supported-types", test_supported_types);
    g_test_add_func ("/appinfo/from-keyfile", test_from_keyfile);
+ 
+   return g_test_run ();
 
 --- glib-2.34.3/gio/tests/contenttype.c	2013-01-16 21:22:29.000000000 +0100
 +++ glib-2.34.3/gio/tests/contenttype.c	2013-01-16 21:22:33.000000000 +0100
@@ -35,18 +38,16 @@ database, the `update-desktop-database' program, which we don't provide.
    return g_test_run ();
  }
 
---- glib-2.34.3/gio/tests/desktop-app-info.c	2013-01-16 21:30:00.000000000 +0100
-+++ glib-2.34.3/gio/tests/desktop-app-info.c	2013-01-16 21:30:02.000000000 +0100
-@@ -363,9 +363,5 @@ main (int   argc,
+--- glib-2.37.1/gio/tests/desktop-app-info.c	2013-06-07 23:46:28.000000000 +0200
++++ glib-2.37.1/gio/tests/desktop-app-info.c	2013-06-07 23:46:32.000000000 +0200
+@@ -385,6 +385,7 @@ main (int   argc,
    g_setenv ("XDG_DATA_HOME", basedir, TRUE);
    cleanup_subdirs (basedir);
    
--  g_test_add_func ("/desktop-app-info/delete", test_delete);
--  g_test_add_func ("/desktop-app-info/default", test_default);
--  g_test_add_func ("/desktop-app-info/fallback", test_fallback);
--  g_test_add_func ("/desktop-app-info/lastused", test_last_used);
- 
-   result = g_test_run ();
++  return 0;
+   g_test_add_func ("/desktop-app-info/delete", test_delete);
+   g_test_add_func ("/desktop-app-info/default", test_default);
+   g_test_add_func ("/desktop-app-info/fallback", test_fallback);
 
 
 -----------------------------
@@ -81,7 +82,7 @@ The test below depends on the availability /etc/passwd to dbus-daemon.
  {
    gint ret;
  
-+  exit (0);
++  return 0;
    setlocale (LC_ALL, "C");
  
    g_type_init ();
diff --git a/gnu/packages/patches/glib-tests-homedir.patch b/gnu/packages/patches/glib-tests-homedir.patch
index 9232ca5e77..cb9538ef8c 100644
--- a/gnu/packages/patches/glib-tests-homedir.patch
+++ b/gnu/packages/patches/glib-tests-homedir.patch
@@ -29,21 +29,21 @@ chroot build environment.  Thus, disable them.
  
    ret = g_test_run();
  
---- glib-2.34.3/gio/tests/gdbus-exit-on-close.c	2013-01-16 17:49:25.000000000 +0100
-+++ glib-2.34.3/gio/tests/gdbus-exit-on-close.c	2013-01-16 17:49:30.000000000 +0100
-@@ -206,13 +206,6 @@ main (int   argc,
-   g_type_init ();
+--- glib-2.37.1/gio/tests/gdbus-exit-on-close.c	2013-06-07 23:41:34.000000000 +0200
++++ glib-2.37.1/gio/tests/gdbus-exit-on-close.c	2013-06-07 23:41:40.000000000 +0200
+@@ -211,6 +211,7 @@ main (int   argc,
+ 
    g_test_init (&argc, &argv, NULL);
  
--  for (i = 0; cases[i].name != NULL; i++)
--    {
--      gchar *name = g_strdup_printf ("/gdbus/exit-on-close/%s", cases[i].name);
--
--      g_test_add_data_func (name, &cases[i], test_exit_on_close);
--      g_free (name);
--    }
++  return g_test_run();
+   for (i = 0; cases[i].name != NULL; i++)
+     {
+       gchar *name;
+@@ -224,5 +225,4 @@ main (int   argc,
+       g_free (name);
+     }
  
-   return g_test_run();
+-  return g_test_run();
  }
 
 --- glib-2.34.3/gio/tests/gdbus-non-socket.c	2013-01-16 18:13:25.000000000 +0100
diff --git a/gnu/packages/patches/glib-tests-timezone.patch b/gnu/packages/patches/glib-tests-timezone.patch
deleted file mode 100644
index 4b335c7ffb..0000000000
--- a/gnu/packages/patches/glib-tests-timezone.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Since glibc 2.17 doesn't install timezone data by default (see
-http://thread.gmane.org/gmane.comp.lib.glibc.alpha/17516), and since we
-don't have that around, shamelessly skip this test.
-
---- glib-2.34.3/glib/tests/gdatetime.c	2013-01-16 15:47:57.000000000 +0100
-+++ glib-2.34.3/glib/tests/gdatetime.c	2013-01-16 15:47:58.000000000 +0100
-@@ -186,14 +186,6 @@ test_GDateTime_equal (void)
-   g_assert (g_date_time_equal (dt1, dt2));
-   g_date_time_unref (dt1);
- 
--  /* America/Recife is in UTC-0300 */
--  tz = g_time_zone_new ("America/Recife");
--  dt1 = g_date_time_new (tz, 2010, 5, 24,  8, 0, 0);
--  g_time_zone_unref (tz);
--  g_assert_cmpint (g_date_time_get_utc_offset (dt1) / G_USEC_PER_SEC, ==, (-3 * 3600));
--  g_assert (g_date_time_equal (dt1, dt2));
--  g_date_time_unref (dt1);
--  g_date_time_unref (dt2);
- }
- 
- static void
-@@ -608,7 +608,6 @@ test_GDateTime_new_full (void)
-   g_assert_cmpint (8, ==, g_date_time_get_hour (dt));
-   g_assert_cmpint (4, ==, g_date_time_get_minute (dt));
-   g_assert_cmpint (0, ==, g_date_time_get_second (dt));
--  g_assert_cmpstr ("BRT", ==, g_date_time_get_timezone_abbreviation (dt));
-   g_assert (!g_date_time_is_daylight_savings (dt));
-   g_date_time_unref (dt);
- }
-@@ -1354,11 +1354,8 @@ main (gint   argc,
-   g_test_add_func ("/GDateTime/to_timeval", test_GDateTime_to_timeval);
-   g_test_add_func ("/GDateTime/to_utc", test_GDateTime_to_utc);
-   g_test_add_func ("/GDateTime/now_utc", test_GDateTime_now_utc);
--  g_test_add_func ("/GDateTime/dst", test_GDateTime_dst);
-   g_test_add_func ("/GDateTime/test_z", test_z);
-   g_test_add_func ("/GDateTime/test-all-dates", test_all_dates);
--  g_test_add_func ("/GTimeZone/find-interval", test_find_interval);
--  g_test_add_func ("/GTimeZone/adjust-time", test_adjust_time);
-   g_test_add_func ("/GTimeZone/no-header", test_no_header);
- 
-   return g_test_run ();