summary refs log tree commit diff
path: root/gnu/packages/glib.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-15 11:29:02 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-15 11:43:21 -0400
commit4920f6e634eeecb37b501bdc024dfe0aab849ed0 (patch)
treec7dd5859715071cb602133b67449a29488027f70 /gnu/packages/glib.scm
parent513091dbd2eeba138b558f5f9bb1ee6e68eee01d (diff)
parent3d297a0017210f1dd135592efb10846840a8af88 (diff)
downloadguix-4920f6e634eeecb37b501bdc024dfe0aab849ed0.tar.gz
Merge branch 'staging' into core-updates
Conflicts resolved in:
	gnu/local.mk
	gnu/packages/cmake.scm
	gnu/packages/glib.scm
	gnu/packages/gnome.scm
	gnu/packages/gtk.scm
	gnu/packages/sdl.scm

pango-next, vala-next and librsvg-bootstrap were removed in the process.
Diffstat (limited to 'gnu/packages/glib.scm')
-rw-r--r--gnu/packages/glib.scm79
1 files changed, 79 insertions, 0 deletions
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 75439c54c2..7d3cdc7877 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -48,6 +48,7 @@
   #:use-module (gnu packages enlightenment)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages graphviz)
@@ -374,6 +375,64 @@ functions for strings and common data structures.")
     (license license:lgpl2.1+)
     (properties '((hidden? . #t)))))
 
+(define-public glib-next
+  (package
+    (inherit glib)
+    (name "glib")
+    (version "2.73.3")
+    (source
+     (origin
+       (inherit (package-source glib))
+       (uri
+        (string-append "mirror://gnome/sources/"
+                       name "/" (string-take version 4) "/"
+                       name "-" version ".tar.xz"))
+       (snippet
+        '(substitute* "glib/tests/spawn-test.c"
+           (("/bin/sh") "sh")))
+       (sha256
+        (base32 "1bgfch7zj1pq4rkqcibfky1470ijljyrx5pn5s5v9mk72s22n6nz"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments glib)
+       ((#:test-options test-options ''())
+        ;; Skip flaky or slow tests.
+        `(cons* "--no-suite=slow" "--no-suite=flaky" ,test-options))
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (replace 'disable-failing-tests
+             (lambda _
+               (with-directory-excursion "glib/tests"
+                 (substitute* '("unix.c" "utils.c")
+                   (("[ \t]*g_test_add_func.*;") "")))
+               ;; The "glib:gio / file" test fails with the error "No
+               ;; application is registered as handling this file" (see:
+               ;; https://gitlab.gnome.org/GNOME/glib/-/issues/2742).
+               (with-directory-excursion "gio/tests"
+                 (substitute* '("appinfo.c"
+                                "contenttype.c"
+                                "desktop-app-info.c"
+                                "file.c"
+                                "gdbus-address-get-session.c"
+                                "gdbus-peer.c")
+                   (("[ \t]*g_test_add_func.*;") "")))
+
+               ,@(if (target-x86-32?)
+                     ;; Comment out parts of timer.c that fail on i686 due to
+                     ;; excess precision when building with GCC 10:
+                     ;; <https://gitlab.gnome.org/GNOME/glib/-/issues/820>.
+                     '((substitute* "glib/tests/timer.c"
+                         (("^  g_assert_cmpuint \\(micros.*" all)
+                          (string-append "//" all "\n"))
+                         (("^  g_assert_cmpfloat \\(elapsed, ==.*" all)
+                          (string-append "//" all "\n"))))
+                     '())))))))
+    (native-inputs
+     (modify-inputs (package-native-inputs glib)
+       (append desktop-file-utils)))
+    (propagated-inputs
+     (modify-inputs (package-propagated-inputs glib)
+       (replace "pcre" pcre2)))))
+
 (define-public glib-with-documentation
   ;; glib's doc must be built in a separate package since it requires gtk-doc,
   ;; which in turn depends on glib.
@@ -535,6 +594,26 @@ provide bindings to call into the C library.")
       ;; For tools.
       license:gpl2+))))
 
+(define-public gobject-introspection-next
+  (package
+    (inherit gobject-introspection)
+    (name "gobject-introspection")
+    (version "1.73.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/"
+                                  "gobject-introspection/" (version-major+minor version)
+                                  "/gobject-introspection-" version ".tar.xz"))
+              (sha256
+               (base32 "1gkbx32as3v2286w7k3j24fwhkxj6brr49881m2zavxamfwxdm34"))
+              (patches (search-patches
+                        "gobject-introspection-cc-1.72.patch"
+                        "gobject-introspection-girepository.patch"
+                        "gobject-introspection-absolute-shlib-path-1.72.patch"))))
+    (propagated-inputs
+     (modify-inputs (package-propagated-inputs gobject-introspection)
+       (replace "glib" glib-next)))))
+
 (define intltool
   (package
     (name "intltool")