diff -Nru caribou-0.4.21/debian/changelog caribou-0.4.21/debian/changelog --- caribou-0.4.21/debian/changelog 2018-12-23 18:18:21.000000000 -0500 +++ caribou-0.4.21/debian/changelog 2021-01-28 09:26:40.000000000 -0500 @@ -1,3 +1,10 @@ +caribou (0.4.21-7ubuntu0.1) groovy; urgency=high + + * Fix segfault with recent versions of Xorg that + causes cinnamon to crash (LP: #1912060) + + -- Joshua Peisach Thu, 28 Jan 2021 09:26:40 -0500 + caribou (0.4.21-7) unstable; urgency=medium * Restore -Wl,-O1 to our LDFLAGS diff -Nru caribou-0.4.21/debian/control caribou-0.4.21/debian/control --- caribou-0.4.21/debian/control 2018-12-23 18:18:21.000000000 -0500 +++ caribou-0.4.21/debian/control 2021-01-28 09:26:40.000000000 -0500 @@ -5,7 +5,8 @@ Source: caribou Section: libs Priority: optional -Maintainer: Debian GNOME Maintainers +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian GNOME Maintainers Uploaders: Jeremy Bicha , Laurent Bigonville , Michael Biebl , Rico Tzschichholz Build-Depends: debhelper (>= 11), dh-python, diff -Nru caribou-0.4.21/debian/control.in caribou-0.4.21/debian/control.in --- caribou-0.4.21/debian/control.in 2018-12-23 18:18:21.000000000 -0500 +++ caribou-0.4.21/debian/control.in 2021-01-28 09:26:40.000000000 -0500 @@ -1,7 +1,8 @@ Source: caribou Section: libs Priority: optional -Maintainer: Debian GNOME Maintainers +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian GNOME Maintainers Uploaders: @GNOME_TEAM@, Rico Tzschichholz Build-Depends: debhelper (>= 11), dh-python, diff -Nru caribou-0.4.21/debian/patches/fix-segfault-with-recent-versions-of-xorg.patch caribou-0.4.21/debian/patches/fix-segfault-with-recent-versions-of-xorg.patch --- caribou-0.4.21/debian/patches/fix-segfault-with-recent-versions-of-xorg.patch 1969-12-31 19:00:00.000000000 -0500 +++ caribou-0.4.21/debian/patches/fix-segfault-with-recent-versions-of-xorg.patch 2021-01-28 09:25:18.000000000 -0500 @@ -0,0 +1,61 @@ +Description: Fix segfault with recent versions of Xorg + Fix a segfault with recent versions of Xorg that + causes cinnamon to segfault (security issue). + . + Two commits: + xadapter.vala: Remove XkbKeyTypesMask and + fields from XKbChangeMap call. + "This was originally a workaround for xFree86 4.3 - + see: https://bugzilla.gnome.org/show_bug.cgi?id=673547 + .​ + As of https://gitlab.freedesktop.org/xorg/xserver/-/commit/87c64fc5b0 this + causes a BadLength error when attempting to use shifted characters. + .​" + Ref URL in caribou commit. + Second: Fix build with newer valac versions + Fix build with newer versions of valac. +Author: Clement Lefebvre , Michael Webster , Rico Tzschichholz +Origin: upstream, https://gitlab.gnome.org/GNOME/caribou/-/commit/d41c8e44b12222a290eaca16703406b113a630c6 https://gitlab.gnome.org/GNOME/caribou/-/commit/76fbd11575f918fc898cb0f5defe07f67c11ec38 +Bug: https://github.com/linuxmint/cinnamon-screensaver/issues/354 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/caribou/+bug/1912060 +Forwarded: no +Applied-Upstream: https://gitlab.gnome.org/GNOME/caribou/-/commit/d41c8e44b12222a290eaca16703406b113a630c6, https://gitlab.gnome.org/GNOME/caribou/-/commit/76fbd11575f918fc898cb0f5defe07f67c11ec38 +Reviewed-by: Joshua Peisach +Last-Update: 2021-01-28 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: caribou-0.4.21/libcaribou/key-model.vala +=================================================================== +--- caribou-0.4.21.orig/libcaribou/key-model.vala ++++ caribou-0.4.21/libcaribou/key-model.vala +@@ -101,7 +101,7 @@ namespace Caribou { + unichar uc; + while (text.get_next_char (ref index, out uc)) { + uint keyval = Gdk.unicode_to_keyval (uc); +- if (keyval != uc | 0x01000000) ++ if (keyval != (uc | 0x01000000)) + _keyvals += keyval; + } + } else { +Index: caribou-0.4.21/libcaribou/xadapter.vala +=================================================================== +--- caribou-0.4.21.orig/libcaribou/xadapter.vala ++++ caribou-0.4.21/libcaribou/xadapter.vala +@@ -195,15 +195,10 @@ namespace Caribou { + + Xkb.MapChanges changes = Xkb.MapChanges (); + +- // We don't touch key types here but include the +- // information in XkbSetMap request to the server, because +- // some X servers need the information to check the sanity +- // of the keysyms change. +- changes.changed = (ushort) (Xkb.KeySymsMask | Xkb.KeyTypesMask); ++ changes.changed = (ushort) Xkb.KeySymsMask; + changes.first_key_sym = (char) this.reserved_keycode; + changes.num_key_syms = this.xkbdesc.map.key_sym_map[this.reserved_keycode].width; +- changes.first_type = 0; +- changes.num_types = this.xkbdesc.map.num_types; ++ + Xkb.change_map (this.xdisplay, this.xkbdesc, changes); + + this.xdisplay.flush (); diff -Nru caribou-0.4.21/debian/patches/series caribou-0.4.21/debian/patches/series --- caribou-0.4.21/debian/patches/series 2018-12-23 18:18:21.000000000 -0500 +++ caribou-0.4.21/debian/patches/series 2021-01-28 09:12:56.000000000 -0500 @@ -1,2 +1,3 @@ autostart-set-nodisplay.patch fix-font-property-in-style.css.patch +fix-segfault-with-recent-versions-of-xorg.patch