mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
gnu: gtk+: Graft upstream fix for crashes in Emacs and IceCat.
Fixes <https://bugs.gnu.org/34454>. * gnu/packages/patches/gtk3-fix-deprecation-macro-use.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gtk.scm (gtk+/fixed): New variable. (gtk+)[replacement]: New field.
This commit is contained in:
parent
c948cf9092
commit
bc91562939
3 changed files with 43 additions and 1 deletions
|
@ -877,6 +877,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.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-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
|
||||||
%D%/packages/patches/gtk2-theme-paths.patch \
|
%D%/packages/patches/gtk2-theme-paths.patch \
|
||||||
|
%D%/packages/patches/gtk3-fix-deprecation-macro-use.patch \
|
||||||
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
|
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
|
||||||
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
|
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
|
||||||
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
|
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||||
|
@ -694,6 +694,7 @@ (define-public gtk+
|
||||||
;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
|
;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
|
||||||
;; mate.scm will also need to be updated.
|
;; mate.scm will also need to be updated.
|
||||||
(version "3.24.2")
|
(version "3.24.2")
|
||||||
|
(replacement gtk+/fixed)
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
|
@ -787,6 +788,18 @@ (define-public gtk+
|
||||||
(variable "GUIX_GTK3_PATH")
|
(variable "GUIX_GTK3_PATH")
|
||||||
(files '("lib/gtk-3.0")))))))
|
(files '("lib/gtk-3.0")))))))
|
||||||
|
|
||||||
|
;; Fixes a bug in Gtk that causes crashes in IceCat and Emacs.
|
||||||
|
;; See <https://bugs.gnu.org/34454>, <https://bugs.gnu.org/34658>,
|
||||||
|
;; and <https://gitlab.gnome.org/GNOME/gtk/issues/1523>.
|
||||||
|
(define gtk+/fixed
|
||||||
|
(package
|
||||||
|
(inherit gtk+)
|
||||||
|
(source (origin
|
||||||
|
(inherit (package-source gtk+))
|
||||||
|
(patches
|
||||||
|
(cons (search-patch "gtk3-fix-deprecation-macro-use.patch")
|
||||||
|
(origin-patches (package-source gtk+))))))))
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Guile bindings.
|
;;; Guile bindings.
|
||||||
;;;
|
;;;
|
||||||
|
|
28
gnu/packages/patches/gtk3-fix-deprecation-macro-use.patch
Normal file
28
gnu/packages/patches/gtk3-fix-deprecation-macro-use.patch
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
Copied from <https://gitlab.gnome.org/GNOME/gtk/commit/e3a1593a>.
|
||||||
|
Fixes upstream bugs <https://gitlab.gnome.org/GNOME/gtk/issues/1523>
|
||||||
|
and <https://gitlab.gnome.org/GNOME/gtk/issues/1280>.
|
||||||
|
|
||||||
|
diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
|
||||||
|
index 97ada6d73919fba3dfe192dd66929e90bc7677bb..764e39495f7edb0c3efe41cca25b8bee4778887d 100644
|
||||||
|
--- a/gdk/x11/gdkwindow-x11.c
|
||||||
|
+++ b/gdk/x11/gdkwindow-x11.c
|
||||||
|
@@ -2985,6 +2985,7 @@ gdk_window_x11_set_background (GdkWindow *window,
|
||||||
|
double r, g, b, a;
|
||||||
|
cairo_surface_t *surface;
|
||||||
|
cairo_matrix_t matrix;
|
||||||
|
+ cairo_pattern_t *parent_relative_pattern;
|
||||||
|
|
||||||
|
if (GDK_WINDOW_DESTROYED (window))
|
||||||
|
return;
|
||||||
|
@@ -2997,8 +2998,10 @@ gdk_window_x11_set_background (GdkWindow *window,
|
||||||
|
}
|
||||||
|
|
||||||
|
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||||
|
- if (pattern == gdk_x11_get_parent_relative_pattern ())
|
||||||
|
+ parent_relative_pattern = gdk_x11_get_parent_relative_pattern ();
|
||||||
|
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
+
|
||||||
|
+ if (pattern == parent_relative_pattern)
|
||||||
|
{
|
||||||
|
GdkWindow *parent;
|
||||||
|
|
Loading…
Reference in a new issue