summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/gtk+2.0/APKBUILD108
-rw-r--r--user/gtk+2.0/automake.patch19
-rw-r--r--user/gtk+2.0/gtk+2.0.post-deinstall7
-rw-r--r--user/gtk+2.0/gtk+2.0.post-install5
-rw-r--r--user/gtk+2.0/gtk+2.0.post-upgrade5
-rw-r--r--user/gtk+2.0/gtk-update-icon-cache.trigger9
-rw-r--r--user/gtk+2.0/gtk2-fixdso.patch15
-rw-r--r--user/gtk+2.0/xid-collision-debug.patch15
8 files changed, 183 insertions, 0 deletions
diff --git a/user/gtk+2.0/APKBUILD b/user/gtk+2.0/APKBUILD
new file mode 100644
index 000000000..30346191a
--- /dev/null
+++ b/user/gtk+2.0/APKBUILD
@@ -0,0 +1,108 @@
+# Maintainer:
+pkgname=gtk+2.0
+pkgver=2.24.32
+pkgrel=0
+subpkg=gtk-update-icon-cache
+pkgdesc="The GTK+ Toolkit (v2)"
+url="https://www.gtk.org/"
+arch="all"
+options="!check" # Requires xvfb, resulting in eventual circular dependency
+license="LGPL-2.0+"
+depends="shared-mime-info gtk-update-icon-cache"
+
+replaces="gtk+"
+replaces_dev="gtk+-dev"
+replaces_doc="gtk+-doc"
+
+depends_dev="
+ atk-dev
+ cairo-dev
+ libxdamage-dev
+ pango-dev
+ "
+# we add hicolor-icon-theme because the subpackage gtk-update-icon-cache
+# needs it. We need to force hicolor-icon-cache to be built before gtk+.2.0
+makedepends="
+ autoconf automake libtool
+ $depends_dev
+ cups-dev
+ expat-dev
+ gdk-pixbuf-dev
+ glib-dev
+ gnutls-dev
+ gobject-introspection-dev
+ gtk-doc
+ hicolor-icon-theme
+ libice-dev
+ libx11-dev
+ libxcomposite-dev
+ libxcursor-dev
+ libxext-dev
+ libxfixes-dev
+ libxrandr-dev
+ libxi-dev
+ zlib-dev"
+source="https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz
+ xid-collision-debug.patch
+ gtk2-fixdso.patch
+ "
+
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
+triggers="$subpkg.trigger=/usr/share/icons/*"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $subpkg:icon_cache"
+langdir="/usr/lib/locale"
+builddir="$srcdir"/gtk+-$pkgver
+
+prepare() {
+ cd "$builddir"
+ default_prepare
+ libtoolize --force \
+ && aclocal -I m4 \
+ && autoconf \
+ && automake --add-missing
+}
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-xinput=yes \
+ --without-libjasper \
+ --with-included-loaders=png \
+ --with-gdktarget=x11 \
+ --enable-cups \
+ --enable-man
+ # https://bugzilla.gnome.org/show_bug.cgi?id=655517
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+dev() {
+ mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share/
+ mv "$pkgdir"/usr/share/gtk-2.0 "$subpkgdir"/usr/share/
+ default_dev
+ replaces="gtk+2.0"
+ mv "$pkgdir"/usr/bin/gtk-builder-convert \
+ "$pkgdir"/usr/bin/gtk-demo \
+ "$subpkgdir"/usr/bin
+}
+
+icon_cache() {
+ depends="hicolor-icon-theme"
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/"$subpkg" "$subpkgdir"/usr/bin
+}
+
+sha512sums="8e8fd9ae32f1d6fb544da260f00599f0f05090d910d767b06ef086ab4f1f8373a29bb0da9767761c9b5f4cfd51b5c45d0fa5d39b0428c839ddf0a579df806696 gtk+-2.24.32.tar.xz
+89e3223c86731a76b12d39245f1ec4cf8b4860ab1d11d74a10e5deb0db302f20b4bb5d9034da1d8aeb96369dbdeddcdd2f28943270dc501476c694562b960159 xid-collision-debug.patch
+95f28633a5164a2a9fec45ee1aa80bd1c07e0c5a7ac8d770b9c74af0909b7286b823eb634aa384cad609dc8799d2e6c9e8392c2732b9093076fdf94b4f6878b7 gtk2-fixdso.patch"
diff --git a/user/gtk+2.0/automake.patch b/user/gtk+2.0/automake.patch
new file mode 100644
index 000000000..106597974
--- /dev/null
+++ b/user/gtk+2.0/automake.patch
@@ -0,0 +1,19 @@
+--- ./configure.in.orig 2012-12-31 14:40:30.297439517 +0000
++++ ./configure.in 2012-12-31 14:40:51.587629835 +0000
+@@ -51,7 +51,7 @@
+ cflags_set=${CFLAGS+set}
+
+ AM_INIT_AUTOMAKE([no-define -Wno-portability dist-bzip2])
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADER(config.h)
+
+ # Support silent build rules, requires at least automake-1.11. Enable
+ # by either passing --enable-silent-rules to configure or passing V=0
+@@ -300,7 +300,6 @@
+
+ # Checks for programs.
+ AC_ISC_POSIX
+-AM_PROG_CC_STDC
+ AM_PROG_CC_C_O
+ AC_PROG_INSTALL
+ AC_PROG_MAKE_SET
diff --git a/user/gtk+2.0/gtk+2.0.post-deinstall b/user/gtk+2.0/gtk+2.0.post-deinstall
new file mode 100644
index 000000000..ea39aa8bf
--- /dev/null
+++ b/user/gtk+2.0/gtk+2.0.post-deinstall
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# since we depend on coreutils and busybox trigger has not yet run, we
+# use busybox directly as workaround
+/bin/busybox rm -f etc/gtk-2.0/gtk.immodules
+/bin/busybox rm -f etc/gtk-2.0/gdk-pixbuf.loaders
+
diff --git a/user/gtk+2.0/gtk+2.0.post-install b/user/gtk+2.0/gtk+2.0.post-install
new file mode 100644
index 000000000..80444cfb9
--- /dev/null
+++ b/user/gtk+2.0/gtk+2.0.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+usr/bin/gdk-pixbuf-query-loaders > etc/gtk-2.0/gdk-pixbuf.loaders
+
diff --git a/user/gtk+2.0/gtk+2.0.post-upgrade b/user/gtk+2.0/gtk+2.0.post-upgrade
new file mode 100644
index 000000000..80444cfb9
--- /dev/null
+++ b/user/gtk+2.0/gtk+2.0.post-upgrade
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+usr/bin/gdk-pixbuf-query-loaders > etc/gtk-2.0/gdk-pixbuf.loaders
+
diff --git a/user/gtk+2.0/gtk-update-icon-cache.trigger b/user/gtk+2.0/gtk-update-icon-cache.trigger
new file mode 100644
index 000000000..f24733593
--- /dev/null
+++ b/user/gtk+2.0/gtk-update-icon-cache.trigger
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+for i in "$@"; do
+ if ! [ -e "$i" ]; then
+ continue
+ fi
+ gtk-update-icon-cache -q -t -f $i
+done
+
diff --git a/user/gtk+2.0/gtk2-fixdso.patch b/user/gtk+2.0/gtk2-fixdso.patch
new file mode 100644
index 000000000..3ea784699
--- /dev/null
+++ b/user/gtk+2.0/gtk2-fixdso.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.24.8/gtk/Makefile.am.orig 2012-02-01 11:14:25.468115547 +0000
++++ gtk+-2.24.8/gtk/Makefile.am 2012-02-01 11:14:57.920116650 +0000
+@@ -904,10 +904,10 @@
+ libgtk_quartz_2_0_la_SOURCES = $(gtk_c_sources)
+ libgtk_directfb_2_0_la_SOURCES = $(gtk_c_sources)
+
+-libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts)
++libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts) -lgmodule-2.0
+ libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts) -Wl,-luuid
+ libgtk_quartz_2_0_la_LDFLAGS = $(libtool_opts)
+-libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts)
++libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts) -lgmodule-2.0
+
+ libgtk_x11_2_0_la_LIBADD = $(libadd)
+ libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32
diff --git a/user/gtk+2.0/xid-collision-debug.patch b/user/gtk+2.0/xid-collision-debug.patch
new file mode 100644
index 000000000..d61238c3b
--- /dev/null
+++ b/user/gtk+2.0/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200
++++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200
+@@ -56,10 +56,10 @@
+ if (!display_x11->xid_ht)
+ display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ (GEqualFunc) gdk_xid_equal);
+-
++/*
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
+-
++*/
+ g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
+