diff options
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/glib.scm | 167 | ||||
-rw-r--r-- | gnu/packages/gnome.scm | 12 | ||||
-rw-r--r-- | gnu/packages/graphics.scm | 4 | ||||
-rw-r--r-- | gnu/packages/gstreamer.scm | 32 | ||||
-rw-r--r-- | gnu/packages/gtk.scm | 27 | ||||
-rw-r--r-- | gnu/packages/guile-xyz.scm | 2 | ||||
-rw-r--r-- | gnu/packages/patches/glib-skip-failing-test.patch | 3 | ||||
-rw-r--r-- | gnu/packages/patches/gtk2-harden-list-store.patch | 42 |
9 files changed, 155 insertions, 135 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 18e8235140..f32b2a0401 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1321,6 +1321,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/guile-emacs-fix-configure.patch \ %D%/packages/patches/gtk2-fix-builder-test.patch \ + %D%/packages/patches/gtk2-harden-list-store.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 1f3d3ef628..4cf9da3027 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -215,7 +215,7 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) (define glib (package (name "glib") - (version "2.72.3") + (version "2.76.1") (source (origin (method url-fetch) @@ -224,14 +224,14 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) name "/" (string-take version 4) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1w25sf2wxkkah2p2w189q58mza3zv8z1fh2q1m82sldq4kva4faa")) + (base32 "17x1zpr2avj8hjbpc6hp2sf2885lxac46v0kajsgan3929m0zp23")) (patches (search-patches "glib-appinfo-watch.patch" "glib-skip-failing-test.patch")) (modules '((guix build utils))) (snippet '(begin - (substitute* "tests/spawn-test.c" + (substitute* "glib/tests/spawn-test.c" (("/bin/sh") "sh")))))) (build-system meson-build-system) (outputs '("out" ;libraries, locales, etc @@ -256,6 +256,9 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) #$output:bin "/bin")) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-G_TEST_SRCDIR + (lambda _ + (setenv "G_TEST_SRCDIR" (string-append (getcwd) "/gio/tests")))) ;; Needed to pass the test phase on slower ARM and i686 machines. (add-after 'unpack 'increase-test-timeout (lambda _ @@ -271,9 +274,19 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) (substitute* '("unix.c" "utils.c") (("[ \t]*g_test_add_func.*;") ""))) (with-directory-excursion "gio/tests" - (substitute* '("contenttype.c" "gdbus-address-get-session.c" - "gdbus-peer.c" "appinfo.c" "desktop-app-info.c") - (("[ \t]*g_test_add_func.*;") ""))) + (substitute* '("contenttype.c" + "gdbus-address-get-session.c" + "gdbus-server-auth.c" + "gdbus-peer.c" + "appinfo.c" + "desktop-app-info.c") + (("[ \t]*g_test_add_func.*;") "")) + (unless (which "update-desktop-database") + (substitute* "file.c" + (("[ \t]*g_test_add_func.*query-default-handler.*;") ""))) + (substitute* '("portal-support-snap.c") + (("g_test_init .*") + "return EXIT_SUCCESS;"))) #$@(if (target-x86-32?) ;; Comment out parts of timer.c that fail on i686 due to @@ -351,10 +364,10 @@ information, refer to the @samp{dbus-daemon(1)} man page."))) python python-wrapper)) (propagated-inputs - (list libffi ;in the Requires.private field of gobject-2.0.pc - pcre ;in the Requires.private field of glib-2.0.pc - `(,util-linux "lib") ;for libmount - zlib)) ;in the Requires.private field of glib-2.0.pc + (list libffi ; in the Requires.private field of gobject-2.0.pc + pcre2 ; in the Requires.private field of glib-2.0.pc + `(,util-linux "lib") ;for libmount + zlib)) ; in the Requires.private field of glib-2.0.pc (native-search-paths ;; This variable is not really "owned" by GLib, but several related ;; packages refer to it: gobject-introspection's tools use it as a search @@ -378,92 +391,47 @@ 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. - (package/inherit glib - (properties (alist-delete 'hidden? (package-properties glib))) - (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference - (native-inputs - (modify-inputs (package-native-inputs glib) - (prepend docbook-xml-4.2 - docbook-xml - docbook-xsl - gtk-doc - libxml2 - libxslt))) - (arguments - (substitute-keyword-arguments (package-arguments glib) - ((#:configure-flags flags ''()) - #~(cons "-Dgtk_doc=true" - (delete "-Dman=false" #$flags))) - ((#:phases phases) - #~(modify-phases #$phases - (add-after 'install 'move-doc - (lambda _ - (let ((html "/share/gtk-doc")) - (mkdir-p (string-append #$output:doc "/share")) - (rename-file - (string-append #$output html) - (string-append #$output:doc html))))))))))) + (let ((base glib)) + (package/inherit base + (properties (alist-delete 'hidden? (package-properties base))) + (outputs (cons "doc" (package-outputs base))) ; 20 MiB of GTK-Doc reference + (native-inputs + `(("docbook-xml-4.2" ,docbook-xml-4.2) + ("docbook-xml-4.5" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl) + ("gtk-doc" ,gtk-doc) + ("libxml2" ,libxml2) + ("xsltproc" ,libxslt) + ,@(package-native-inputs base))) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:configure-flags flags ''()) + #~(cons "-Dgtk_doc=true" + (delete "-Dman=false" #$flags))) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs" + (substitute* (find-files "." "\\.xml$") + (("http://www.oasis-open.org/docbook/xml/4\\.5/") + (string-append (assoc-ref inputs "docbook-xml-4.5") + "/xml/dtd/docbook/")) + (("http://www.oasis-open.org/docbook/xml/4\\.2/") + (string-append (assoc-ref inputs "docbook-xml-4.2") + "/xml/dtd/docbook/")))))) + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (html (string-append "/share/gtk-doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out html) + (string-append doc html)))))))))))) (define (python-extension-suffix python triplet) "Determine the suffix for C extensions for PYTHON when compiled @@ -504,14 +472,14 @@ be used when cross-compiling." (define gobject-introspection (package (name "gobject-introspection") - (version "1.72.0") + (version "1.76.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 "1g5aps3b20ck96ahy7fjl4nhp9nabkd9rlqd0s1qzn3111cqxzh2")) + (base32 "1grq6wmbi2nbnwffgvsljd481zm6darnk12dvkf02m9lcjzphq8r")) (patches (search-patches "gobject-introspection-cc.patch" "gobject-introspection-girepository.patch" @@ -602,10 +570,7 @@ provide bindings to call into the C library.") (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))))) + "gobject-introspection-absolute-shlib-path-1.72.patch")))))) (define intltool (package @@ -934,7 +899,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.42.2") + (version "3.44.1") (source (origin (method url-fetch) @@ -943,7 +908,7 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "0my95gjnps093inzznbipkhf25cffbc32v9is2fq8wvh59g6ks5d")) + "042pmpyaz7bsbr68znnwdqyhs3j3cajib0k45v1hrs8v6b8has1w")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7df18f055f..dd0cff324d 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5077,7 +5077,7 @@ and the GLib main loop, to integrate well with GNOME applications.") (define-public libsoup-minimal-2 (package (inherit libsoup-minimal) - (version "2.74.2") + (version "2.74.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -5085,7 +5085,7 @@ and the GLib main loop, to integrate well with GNOME applications.") "libsoup-" version ".tar.xz")) (sha256 (base32 - "0n8is108n0dn4dw7nm2wq9rydcm1vy47w40wywfrxqazdrjjg97h")))) + "04rgv6hkyhgi7lak9865yxgbgky6gc635p7w6nhcbj64rx0prdz4")))) (arguments (substitute-keyword-arguments (package-arguments libsoup-minimal) ((#:phases phases) @@ -12906,7 +12906,7 @@ GObject introspection bindings.") (propagated-inputs (list polkit)) (inputs - (list glib-next + (list glib gtk json-glib libadwaita @@ -12915,7 +12915,7 @@ GObject introspection bindings.") polkit)) (native-inputs (list gettext-minimal - `(,glib-next "bin") ;for gdbus-codegen, etc. + `(,glib "bin") ;for gdbus-codegen, etc. itstool libxml2 pkg-config)) @@ -13183,7 +13183,7 @@ your data.") (substitute* "build-aux/meson/meson_post_install.py" (("gtk-update-icon-cache") (which "true")))))))) (native-inputs - (list `(,glib-next "bin") + (list `(,glib "bin") gettext-minimal itstool pkg-config)) @@ -13191,7 +13191,7 @@ your data.") (list json-glib jsonrpc-glib gettext-minimal - glib-next + glib gsettings-desktop-schemas gspell libgda diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 60db7543a6..9255e49f3a 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -865,9 +865,9 @@ exception-handling library.") (source (origin (method git-fetch) (uri (git-reference - (url "https://gitlab.com/inkscape/lib2geom.git") + (url "https://gitlab.com/inkscape/lib2geom") (commit version))) - (file-name (git-file-name name version)) + (file-name (git-file-name "lib2geom" version)) (sha256 (base32 "0dq981g894hmvhd6rmfl1w32mksg9hpvpjs1qvfxrnz87rhkknj8")))) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 8971c11479..8021e74265 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -461,7 +461,7 @@ the GStreamer multimedia framework.") (define-public gstreamer (package (name "gstreamer") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -470,7 +470,7 @@ the GStreamer multimedia framework.") version ".tar.xz")) (sha256 (base32 - "08cfz2vkf494rsg0bn75px26fxs3syvxnsc9lj5n074j0cvfgbxj")))) + "0x2rdl6vfpbr7wnh1nk0rllw28cgx0js4g9vxfank7rz0naspzlz")))) (build-system meson-build-system) (arguments (list #:disallowed-references (list python) @@ -542,7 +542,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -550,7 +550,7 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "0jcxcx4mgfjvfb3ixibwhx8j330mq3ap469w7hapm6z79q614rgb")))) + "1ww9xx6c4mwvgn9k56d1xfnd3i1jm4v8rfiy4f07686ll24n4n8w")))) (build-system meson-build-system) (propagated-inputs (list glib ;required by gstreamer-sdp-1.0.pc @@ -641,7 +641,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -650,7 +650,7 @@ for the GStreamer multimedia library.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1p8cpkk4dynglw0xswqyf57xl5fnxmb3xld71kv35cpj4nacb33w")))) + (base32 "0wq2f5q395vs7hnwjqpc2gysdvkgd4jmyfdszv9g9wrf795ib0dg")))) (build-system meson-build-system) (arguments (list @@ -760,14 +760,14 @@ model to base your own plug-in on, here it is.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "03rd09wsrf9xjianpnnvamb4n3lndhd4x31srqsqab20wcfaz3rx")) + "1n116sphawmlqyjp1b8sv07vz4rjk1zn07286w37y4l65pp8yyg1")) (modules '((guix build utils))) (snippet '(begin @@ -943,7 +943,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -951,7 +951,7 @@ par compared to the rest.") (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1486x08bwasq6l7kc75nph5az61siq9mbgkgpw4kf1mxn16z8c4g")))) + (base32 "0q53snvh7kr8g7qqxy4v5ska0d78kgc5bkp6qjrnhcr9qbaqxj9x")))) (build-system meson-build-system) (arguments (list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas @@ -1000,7 +1000,7 @@ think twice about shipping them.") (define-public gst-libav (package (name "gst-libav") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) @@ -1009,7 +1009,7 @@ think twice about shipping them.") "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 "1zfg7giwampmjxkqr5pqy66vck42b0akmwby661brwz8iy3zkapw")))) + (base32 "08x929yhjd2wpy05146fnqv6p2hw58ha079bwfkp2hwbh02wii9f")))) (build-system meson-build-system) (native-inputs (list perl pkg-config python-wrapper ruby)) (inputs (list ffmpeg)) @@ -1023,7 +1023,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") (define-public gst-editing-services (package (name "gst-editing-services") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) (uri (string-append @@ -1031,7 +1031,7 @@ decoders, muxers, and demuxers provided by FFmpeg.") "gst-editing-services-" version ".tar.xz")) (sha256 (base32 - "1gyfw11ns2la1cm6gvvvv5qj3q5gcvcypc3wk8kdwmrqzij18fs5")))) + "18nfq3av5ksz17048l2b4r4zbh11yd0yq2asx0jy3c894pkbr98m")))) (build-system meson-build-system) (arguments (list @@ -1091,7 +1091,7 @@ binary, but none of the actual plugins."))) (define-public python-gst (package (name "python-gst") - (version "1.22.2") + (version "1.22.3") (source (origin (method url-fetch) (uri (string-append @@ -1099,7 +1099,7 @@ binary, but none of the actual plugins."))) "gst-python-" version ".tar.xz")) (sha256 (base32 - "1bak46bj92gyz613m99mnl0yw0qhbhq5dfxifnvldgp45kcb7wmy")))) + "073kii36ncgsyq0b5njbsvprrg1k3kmydr3dxwiccjv3pvxd7gkh")))) (build-system meson-build-system) (arguments (list diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index ca41612e90..b957989689 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -366,7 +366,7 @@ applications.") (define-public pango (package (name "pango") - (version "1.50.10") + (version "1.50.14") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -375,7 +375,7 @@ applications.") (patches (search-patches "pango-skip-libthai-test.patch")) (sha256 (base32 - "0rj9sszflckk8gj47ppirpndpp3mzsx97l64lalj8kc580g2ypby")))) + "1s41sprfgkc944fva36zjmkmdpv8hn1bdpyg55xc4663pw2z4rqx")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas @@ -616,6 +616,11 @@ printing and other features typical of a source code editor.") ;; Tests require a running X server. (system (string-append Xvfb " :1 &")) (setenv "DISPLAY" ":1") + ;; Use an X11 setup to find the display. + (setenv "GDK_BACKEND" "x11") + ;; Avoid spawning (and failing to connect to) the accessiblity + ;; bus. + (setenv "GTK_A11Y" "none") ;; For the missing /etc/machine-id. (setenv "DBUS_FATAL_WARNINGS" "0"))))))) (native-inputs @@ -632,7 +637,7 @@ printing and other features typical of a source code editor.") ;; gtksourceview-5.pc refers to all these. (list fontconfig fribidi - glib-next + glib gtk libxml2 pango @@ -899,6 +904,7 @@ is part of the GNOME accessibility project.") "1nn6kks1zyvb5xikr9y2k7r9bwjy1g4b0m0s66532bclymbwfamc")) (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch" "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch" + "gtk2-harden-list-store.patch" "gtk2-theme-paths.patch" "gtk2-fix-builder-test.patch")))) (build-system gnu-build-system) @@ -1108,7 +1114,7 @@ application suites.") (define-public gtk (package (name "gtk") - (version "4.8.1") + (version "4.10.3") (source (origin (method url-fetch) @@ -1116,9 +1122,11 @@ application suites.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1za2nyqqs2lrbss61gfw17qba2f0w6a119m1xk4d0fx2k3gdis2w")) + (base32 "1aff06l9v40j16s4s0qvdbj8cs54qxnh41d7w2v7wdwyswd48ia5")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")) + (modules '((guix build utils))) + (snippet #~(begin (delete-file-recursively "subprojects/gi-docgen"))))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1142,6 +1150,8 @@ application suites.") ;; Use the same test options as upstream uses for ;; their CI. "--suite=gtk" + "--no-suite=failing" + "--no-suite=flaky" "--no-suite=gsk-compare-broadway") #:phases #~(modify-phases %standard-phases @@ -1248,6 +1258,7 @@ application suites.") cups ;for CUPS print-backend ffmpeg ;for ffmpeg media-backend fribidi + gi-docgen gstreamer ;for gstreamer media-backend gst-plugins-bad ;provides gstreamer-player gst-plugins-base ;provides gstreamer-gl @@ -2930,11 +2941,11 @@ Unix desktop environment under X11 as well as Wayland.") (substitute* "meson.build" (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false"))))))) - (native-inputs (list `(,glib-next "bin") + (native-inputs (list `(,glib "bin") gobject-introspection pkg-config vala)) - (inputs (list glib-next gtk libadwaita)) + (inputs (list glib gtk libadwaita)) (home-page "https://gitlab.gnome.org/GNOME/libpanel") (synopsis "Dock and panel library for GTK 4") (description "Libpanel provides a library to create IDE-like applications diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 92882eca3c..3fea5d6e42 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2325,7 +2325,7 @@ capabilities.") (setenv "DISPLAY" ":1") #t))))) (inputs - (list guile-3.0 guile-lib glib-next)) + (list guile-3.0 guile-lib glib)) (native-inputs (list autoconf automake diff --git a/gnu/packages/patches/glib-skip-failing-test.patch b/gnu/packages/patches/glib-skip-failing-test.patch index c7706aaa74..3fde5cb1e2 100644 --- a/gnu/packages/patches/glib-skip-failing-test.patch +++ b/gnu/packages/patches/glib-skip-failing-test.patch @@ -10,12 +10,13 @@ diff --git a/gio/tests/meson.build b/gio/tests/meson.build index a926ae0..4fdbe7a 100644 --- a/gio/tests/meson.build +++ b/gio/tests/meson.build -@@ -317,10 +317,6 @@ if host_machine.system() != 'windows' +@@ -317,11 +317,6 @@ if host_machine.system() != 'windows' 'extra_sources' : [extra_sources, gdbus_test_codegen_generated, gdbus_test_codegen_generated_interface_info], 'c_args' : ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32'], }, - 'gdbus-threading' : { - 'extra_sources' : extra_sources, +- 'extra_programs': extra_programs, - 'suite' : ['slow'], - }, 'gmenumodel' : { diff --git a/gnu/packages/patches/gtk2-harden-list-store.patch b/gnu/packages/patches/gtk2-harden-list-store.patch new file mode 100644 index 0000000000..f49dc3bc77 --- /dev/null +++ b/gnu/packages/patches/gtk2-harden-list-store.patch @@ -0,0 +1,42 @@ +Backport the implementation of gtk_list_store_iter_is_valid from gtk+-3. + +Index: gtk+-2.24.33/gtk/gtkliststore.c +=================================================================== +--- gtk+-2.24.33.orig/gtk/gtkliststore.c ++++ gtk+-2.24.33/gtk/gtkliststore.c +@@ -1195,16 +1195,31 @@ gboolean + gtk_list_store_iter_is_valid (GtkListStore *list_store, + GtkTreeIter *iter) + { ++ GSequenceIter *seq_iter; ++ + g_return_val_if_fail (GTK_IS_LIST_STORE (list_store), FALSE); + g_return_val_if_fail (iter != NULL, FALSE); + +- if (!VALID_ITER (iter, list_store)) +- return FALSE; ++ /* can't use VALID_ITER() here, because iter might point ++ * to random memory. ++ * ++ * We MUST NOT dereference it. ++ */ + +- if (g_sequence_iter_get_sequence (iter->user_data) != list_store->seq) ++ if (iter == NULL || ++ iter->user_data == NULL || ++ list_store->stamp != iter->stamp) + return FALSE; + +- return TRUE; ++ for (seq_iter = g_sequence_get_begin_iter (list_store->seq); ++ !g_sequence_iter_is_end (seq_iter); ++ seq_iter = g_sequence_iter_next (seq_iter)) ++ { ++ if (seq_iter == iter->user_data) ++ return TRUE; ++ } ++ ++ return FALSE; + } + + static gboolean real_gtk_list_store_row_draggable (GtkTreeDragSource *drag_source, |