summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeija2016-05-12 18:41:13 +0200
committerJeija2016-05-12 18:47:45 +0200
commit42a951684ea3572ef63902ca0d2d0cdd2da8bd70 (patch)
tree28278cda0dfebea90200a3286b24db38335fb5ec
parent9cd5e7748b16a1575fabece36aa7a8aba2521601 (diff)
downloadaur-42a951684ea3572ef63902ca0d2d0cdd2da8bd70.tar.gz
Update to GTK+ 3.20.4
Includes patch imported from upstream gtk3 package
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD19
-rw-r--r--gtk-query-immodules-3.0.hook11
-rw-r--r--gtk3.install15
-rw-r--r--trap_possible_X_error.diff30
5 files changed, 66 insertions, 24 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 94b7d01919d9..e2380e457357 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
# Generated by mksrcinfo v8
-# Wed Apr 13 18:55:00 UTC 2016
+# Thu May 12 16:40:13 UTC 2016
pkgbase = gtk3-typeahead
pkgdesc = GTK+ 3 with typeahead feature enabled for the file chooser widget
- pkgver = 3.20.3
+ pkgver = 3.20.4
pkgrel = 1
url = http://www.gtk.org/
install = gtk3.install
@@ -35,14 +35,19 @@ pkgbase = gtk3-typeahead
depends = librsvg
depends = gtk-update-icon-cache
depends = wayland-protocols
+ depends = desktop-file-utils
optdepends = libcanberra: gtk3-widget-factory demo
- provides = gtk3=3.20.3
+ provides = gtk3=3.20.4
conflicts = gtk3
- source = https://download.gnome.org/sources/gtk+/3.20/gtk+-3.20.3.tar.xz
+ source = https://download.gnome.org/sources/gtk+/3.20/gtk+-3.20.4.tar.xz
source = settings.ini
+ source = gtk-query-immodules-3.0.hook
+ source = trap_possible_X_error.diff
source = typeahead.patch
- sha256sums = 3834f3bf23b260b3e5ebfea41102e2026a8af29e36c3620edf4a5cf05e82f694
+ sha256sums = e7e3aaf54a54dd1c1ca0588939254abe31329e0bcd280a12290d5306b41ea03f
sha256sums = 01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202
+ sha256sums = de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845
+ sha256sums = 1204b67e45938304ce8500c4b9de52af5d2d90bcb4a2e28bc665f5b29803f28d
sha256sums = 5b3b9ba35378515359a25714e7c185783d15ec97c137e3564fcb1dbe658c941f
pkgname = gtk3-typeahead
diff --git a/PKGBUILD b/PKGBUILD
index f1363adf9e1a..623be31498a7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: twilinx <twilinx@mesecons.net>
pkgname=gtk3-typeahead
-pkgver=3.20.3
+pkgver=3.20.4
pkgrel=1
conflicts=(gtk3)
provides=("gtk3=$pkgver")
@@ -11,14 +11,19 @@ url="http://www.gtk.org/"
install=gtk3.install
depends=(atk cairo libcups libxcursor libxinerama libxrandr libxi libepoxy gdk-pixbuf2
libxcomposite libxdamage pango shared-mime-info colord at-spi2-atk wayland libxkbcommon
- adwaita-icon-theme json-glib rest librsvg gtk-update-icon-cache wayland-protocols)
+ adwaita-icon-theme json-glib rest librsvg gtk-update-icon-cache wayland-protocols desktop-file-utils)
optdepends=('libcanberra: gtk3-widget-factory demo')
makedepends=(gobject-introspection libcanberra gtk-doc)
license=(LGPL)
source=(https://download.gnome.org/sources/gtk+/${pkgver:0:4}/gtk+-$pkgver.tar.xz
- settings.ini typeahead.patch)
-sha256sums=('3834f3bf23b260b3e5ebfea41102e2026a8af29e36c3620edf4a5cf05e82f694'
+ settings.ini
+ gtk-query-immodules-3.0.hook
+ trap_possible_X_error.diff
+ typeahead.patch)
+sha256sums=('e7e3aaf54a54dd1c1ca0588939254abe31329e0bcd280a12290d5306b41ea03f'
'01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202'
+ 'de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845'
+ '1204b67e45938304ce8500c4b9de52af5d2d90bcb4a2e28bc665f5b29803f28d'
'5b3b9ba35378515359a25714e7c185783d15ec97c137e3564fcb1dbe658c941f')
prepare() {
@@ -28,6 +33,11 @@ prepare() {
patch gtk/gtkfilechooserwidget.c -i $srcdir/typeahead.patch
NOCONFIGURE=1 ./autogen.sh
+
+ # upstream fix for crashes with X servers not supporting XI2
+ # https://bugzilla.gnome.org/show_bug.cgi?id=766233
+ # https://github.com/GNOME/gtk/commit/7e7d7991cc8e7c7a2b50ce6530a8ebafd673516b
+ patch -Np1 -i ${srcdir}/trap_possible_X_error.diff
}
build() {
@@ -54,4 +64,5 @@ package() {
make DESTDIR="$pkgdir" install
rm $pkgdir/usr/bin/gtk-update-icon-cache
install -Dm644 ../settings.ini "$pkgdir/usr/share/gtk-3.0/settings.ini"
+ install -Dm644 ../gtk-query-immodules-3.0.hook "$pkgdir/usr/share/libalpm/hooks/gtk-query-immodules-3.0.hook"
}
diff --git a/gtk-query-immodules-3.0.hook b/gtk-query-immodules-3.0.hook
new file mode 100644
index 000000000000..c7703cf432c1
--- /dev/null
+++ b/gtk-query-immodules-3.0.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = File
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = usr/lib/gtk-3.0/3.0.0/immodules/*.so
+
+[Action]
+Description = Probing GTK3 input method modules...
+When = PostTransaction
+Exec = /usr/bin/gtk-query-immodules-3.0 --update-cache
diff --git a/gtk3.install b/gtk3.install
index f57b1bffaa96..c0c44539de6f 100644
--- a/gtk3.install
+++ b/gtk3.install
@@ -1,18 +1,3 @@
-post_install() {
- /usr/bin/gtk-query-immodules-3.0 --update-cache
- /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
- /usr/bin/gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
-}
-
-post_upgrade() {
- post_install
-}
-
pre_remove() {
rm -f /usr/lib/gtk-3.0/3.0.0/immodules.cache
}
-
-post_remove() {
- /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
- /usr/bin/gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
-}
diff --git a/trap_possible_X_error.diff b/trap_possible_X_error.diff
new file mode 100644
index 000000000000..373d80a43492
--- /dev/null
+++ b/trap_possible_X_error.diff
@@ -0,0 +1,30 @@
+diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
+index f7c79c4..ad65e29 100644
+--- a/gdk/x11/gdkdisplay-x11.c
++++ b/gdk/x11/gdkdisplay-x11.c
+@@ -2881,10 +2881,14 @@ gdk_x11_display_get_default_seat (GdkDisplay *display)
+ {
+ GList *seats, *l;
+ int device_id;
++ gboolean result = FALSE;
+
+ seats = gdk_display_list_seats (display);
+- XIGetClientPointer (GDK_DISPLAY_XDISPLAY (display),
+- None, &device_id);
++
++ gdk_x11_display_error_trap_push (display);
++ result = XIGetClientPointer (GDK_DISPLAY_XDISPLAY (display),
++ None, &device_id);
++ gdk_x11_display_error_trap_pop_ignored (display);
+
+ for (l = seats; l; l = l->next)
+ {
+@@ -2892,7 +2896,7 @@ gdk_x11_display_get_default_seat (GdkDisplay *display)
+
+ pointer = gdk_seat_get_pointer (l->data);
+
+- if (gdk_x11_device_get_id (pointer) == device_id)
++ if (gdk_x11_device_get_id (pointer) == device_id || !result)
+ {
+ GdkSeat *seat = l->data;
+ g_list_free (seats);