changeset 1190:821fabe85a36

upgrade packages: glib gtk. new package: gdk-pixbuf
author Mark Brand <mabrand@mabrand.nl>
date Fri, 24 Sep 2010 16:33:16 +0200
parents 07a641411170
children 1acdcff4d88a
files src/gdk-pixbuf.mk src/glib-1-fixes.patch src/glib-1-no-gtk-doc-check.patch src/glib-2-optional-gettext.patch src/glib-3-fix-tool-paths.patch src/glib-4-fix-dependency-libs.patch src/glib-5-fix-stray-commas.patch src/glib.mk src/gtk-1-fixes.patch src/gtk.mk
diffstat 10 files changed, 596 insertions(+), 229 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gdk-pixbuf.mk	Fri Sep 24 16:33:16 2010 +0200
@@ -0,0 +1,31 @@
+# This file is part of mingw-cross-env.
+# See doc/index.html for further information.
+
+# GDK-pixbuf
+PKG             := gdk-pixbuf
+$(PKG)_IGNORE   :=
+$(PKG)_VERSION  := 2.22.0
+$(PKG)_CHECKSUM := 80c25eaa08b22ebab24b98e88883ff615240d7cf
+$(PKG)_SUBDIR   := gdk-pixbuf-$($(PKG)_VERSION)
+$(PKG)_FILE     := gdk-pixbuf-$($(PKG)_VERSION).tar.bz2
+$(PKG)_WEBSITE  := http://www.gdk-pixbuf.org/
+$(PKG)_URL      := http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
+$(PKG)_DEPS     := gcc glib libpng jpeg tiff jasper libiconv
+
+define $(PKG)_UPDATE
+    wget -q -O- 'http://git.gnome.org/browse/gdk-pixbuf+/refs/tags' | \
+    grep '<a href=' | \
+    $(SED) -n 's,.*<a[^>]*>\([0-9]*\.[0-9]*[02468]\.[^<]*\)<.*,\1,p' | \
+    grep -v '^2\.9' | \
+    head -1
+endef
+
+define $(PKG)_BUILD
+    # wine confuses the cross-compiling detection, so set it explicitly
+    $(SED) -i 's,cross_compiling=no,cross_compiling=yes,' '$(1)/configure'
+    cd '$(1)' && ./configure \
+        --host='$(TARGET)' \
+        --disable-shared \
+        --prefix='$(PREFIX)/$(TARGET)'
+    $(MAKE) -C '$(1)' -j '$(JOBS)' install
+endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/glib-1-fixes.patch	Fri Sep 24 16:33:16 2010 +0200
@@ -0,0 +1,118 @@
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+commit 637620b33c175676972419ae674806825a390734
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Thu Sep 23 21:36:04 2010 +0200
+
+    no gtk doc check
+
+diff --git a/configure.ac b/configure.ac
+index a821267..2e541d2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2741,8 +2741,6 @@ dnl **************************
+ dnl *** Checks for gtk-doc ***
+ dnl **************************
+ 
+-GTK_DOC_CHECK([1.15])
+-
+ AC_ARG_ENABLE(man,
+               [AC_HELP_STRING([--enable-man],
+                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
+
+commit 8f4fde8f0ab605720ef0baf7ef8080479b34af63
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Thu Sep 23 21:41:51 2010 +0200
+
+    optional gettext
+
+diff --git a/configure.ac b/configure.ac
+index 2e541d2..18c2dea 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -464,8 +464,8 @@ AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
+ GLIB_GNU_GETTEXT
+ 
+ if test "$gt_cv_have_gettext" != "yes" ; then
+-  AC_MSG_ERROR([
+-*** You must have either have gettext support in your C library, or use the 
++  AC_MSG_WARN([
++*** You should have either have gettext support in your C library, or use the
+ *** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html
+ ])
+ fi
+diff --git a/glib/gi18n.h b/glib/gi18n.h
+index c710046..269bfdf 100644
+--- a/glib/gi18n.h
++++ b/glib/gi18n.h
+@@ -22,7 +22,12 @@
+ 
+ #include <glib.h>
+ 
++#ifdef ENABLE_NLS
+ #include <libintl.h>
++#else
++#define gettext(String) (String)
++#endif
++
+ #include <string.h>
+ 
+ #define  _(String) gettext (String)
+
+commit 0a998b24fdb3ae5397ff5ad498260165300a4393
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Thu Sep 23 21:42:46 2010 +0200
+
+    fix tool paths
+
+diff --git a/glib-2.0.pc.in b/glib-2.0.pc.in
+index 3d1ac12..58e1ecf 100644
+--- a/glib-2.0.pc.in
++++ b/glib-2.0.pc.in
+@@ -3,9 +3,9 @@ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+ includedir=@includedir@
+ 
+-glib_genmarshal=glib-genmarshal
+-gobject_query=gobject-query
+-glib_mkenums=glib-mkenums
++glib_genmarshal=@bindir@/glib-genmarshal
++gobject_query=@bindir@/gobject-query
++glib_mkenums=@bindir@/glib-mkenums
+ 
+ Name: GLib
+ Description: C Utility Library
+
+commit 7ddbe18ccce7aede0cef972c6035058151c3ce10
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Thu Sep 23 21:45:50 2010 +0200
+
+    fix dependency libs
+
+diff --git a/configure.ac b/configure.ac
+index 18c2dea..e472768 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2698,7 +2698,7 @@ case $host in
+ 	G_LIBS_EXTRA="-luser32 -lkernel32"
+     ;;
+   *-*-mingw*)
+-	G_LIBS_EXTRA="-lws2_32 -lole32"
++	G_LIBS_EXTRA="-lws2_32 -lole32 -lshlwapi"
+     ;;
+   *)
+ 	G_LIBS_EXTRA=""
+diff --git a/glib-2.0.pc.in b/glib-2.0.pc.in
+index 58e1ecf..17b2133 100644
+--- a/glib-2.0.pc.in
++++ b/glib-2.0.pc.in
+@@ -11,5 +11,5 @@ Name: GLib
+ Description: C Utility Library
+ Version: @VERSION@
+ Libs: -L${libdir} -lglib-2.0 @INTLLIBS@
+-Libs.private: @ICONV_LIBS@
++Libs.private: @G_THREAD_LIBS@ @G_LIBS_EXTRA@ @PCRE_LIBS@ @INTLLIBS@ @ICONV_LIBS@
+ Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include @GLIB_EXTRA_CFLAGS@
--- a/src/glib-1-no-gtk-doc-check.patch	Thu Sep 23 21:32:19 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-This file is part of mingw-cross-env.
-See doc/index.html for further information.
-
-diff -r eabdfe3e0f05 configure.in
---- a/configure.in	Sun May 16 15:52:08 2010 +0200
-+++ b/configure.in	Sun May 16 15:54:07 2010 +0200
-@@ -2748,8 +2748,6 @@
- dnl *** Checks for gtk-doc ***
- dnl **************************
- 
--GTK_DOC_CHECK([1.11])
--
- AC_ARG_ENABLE(man,
-               [AC_HELP_STRING([--enable-man],
-                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
--- a/src/glib-2-optional-gettext.patch	Thu Sep 23 21:32:19 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-This file is part of mingw-cross-env.
-See doc/index.html for further information.
-
-This patch has been taken from:
-https://bugzilla.gnome.org/show_bug.cgi?id=617004#c8
-
-diff -r 3241a43cfc79 configure.in
---- a/configure.in	Sun May 16 16:38:34 2010 +0200
-+++ b/configure.in	Sun May 16 17:02:59 2010 +0200
-@@ -477,8 +477,8 @@
- GLIB_GNU_GETTEXT
- 
- if test "$gt_cv_have_gettext" != "yes" ; then
--  AC_MSG_ERROR([
--*** You must have either have gettext support in your C library, or use the 
-+  AC_MSG_WARN([
-+*** You should either have gettext support in your C library, or use the
- *** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html
- ])
- fi
-diff -r 3241a43cfc79 glib/gi18n.h
---- a/glib/gi18n.h	Sun May 16 16:38:34 2010 +0200
-+++ b/glib/gi18n.h	Sun May 16 17:02:59 2010 +0200
-@@ -22,7 +22,12 @@
- 
- #include <glib.h>
- 
-+#ifdef ENABLE_NLS
- #include <libintl.h>
-+#else
-+#define gettext(String) (String)
-+#endif
-+
- #include <string.h>
- 
- #define  _(String) gettext (String)
--- a/src/glib-3-fix-tool-paths.patch	Thu Sep 23 21:32:19 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-This file is part of mingw-cross-env.
-See doc/index.html for further information.
-
-This patch has been taken from:
-https://bugzilla.gnome.org/show_bug.cgi?id=610865
-
-diff -r ed58be46e216 glib-2.0.pc.in
---- a/glib-2.0.pc.in	Sun May 16 16:07:16 2010 +0200
-+++ b/glib-2.0.pc.in	Sun May 16 16:07:35 2010 +0200
-@@ -3,9 +3,9 @@
- libdir=@libdir@
- includedir=@includedir@
- 
--glib_genmarshal=glib-genmarshal
--gobject_query=gobject-query
--glib_mkenums=glib-mkenums
-+glib_genmarshal=@bindir@/glib-genmarshal
-+gobject_query=@bindir@/gobject-query
-+glib_mkenums=@bindir@/glib-mkenums
- 
- Name: GLib
- Description: C Utility Library
--- a/src/glib-4-fix-dependency-libs.patch	Thu Sep 23 21:32:19 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-This file is part of mingw-cross-env.
-See doc/index.html for further information.
-
-This patch has been taken from:
-https://bugzilla.gnome.org/show_bug.cgi?id=619126
-
-diff -r 1168b72613ae configure.in
---- a/configure.in      Wed May 19 20:15:53 2010 +0200
-+++ b/configure.in      Wed May 19 21:11:17 2010 +0200
-@@ -2711,7 +2711,7 @@
- 	G_LIBS_EXTRA="-luser32 -lkernel32"
-     ;;
-   *-*-mingw*)
--	G_LIBS_EXTRA="-lws2_32 -lole32"
-+	G_LIBS_EXTRA="-lws2_32 -lole32 -lshlwapi"
-     ;;
-   *)
- 	G_LIBS_EXTRA=""
-diff -r 1168b72613ae glib-2.0.pc.in
---- a/glib-2.0.pc.in	Wed May 19 20:15:53 2010 +0200
-+++ b/glib-2.0.pc.in	Wed May 19 20:17:05 2010 +0200
-@@ -11,5 +11,5 @@
- Description: C Utility Library
- Version: @VERSION@
- Libs: -L${libdir} -lglib-2.0 @INTLLIBS@
--Libs.private: @ICONV_LIBS@
-+Libs.private: @G_THREAD_LIBS@ @G_LIBS_EXTRA@ @PCRE_LIBS@ @INTLLIBS@ @ICONV_LIBS@
- Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include @GLIB_EXTRA_CFLAGS@
--- a/src/glib-5-fix-stray-commas.patch	Thu Sep 23 21:32:19 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-This file is part of mingw-cross-env.
-See doc/index.html for further information.
-
-This patch has been taken from:
-http://git.gnome.org/browse/glib/commit/?id=07b5cee2a8273d7fdd20371b5494ecd320c3cd1c
-
-From 07b5cee2a8273d7fdd20371b5494ecd320c3cd1c Mon Sep 17 00:00:00 2001
-From: Murray Cumming <murrayc@murrayc.com>
-Date: Fri, 04 Jun 2010 15:07:05 +0000
-Subject: Gio: gioenums.h: Remove trailing commas to avoid C++ warnings.
-
----
-diff --git a/gio/gioenums.h b/gio/gioenums.h
-index 936f991..efd08d5 100644
---- a/gio/gioenums.h
-+++ b/gio/gioenums.h
-@@ -195,7 +195,7 @@ typedef enum {
-  * @G_FILE_CREATE_REPLACE_DESTINATION: Replace the destination
-  *    as if it didn't exist before. Don't try to keep any old
-  *    permissions, replace instead of following links. This
-- *    is generally useful if you're doing a "copy over" 
-+ *    is generally useful if you're doing a "copy over"
-  *    rather than a "save new version of" replace operation.
-  *    You can think of it as "unlink destination" before
-  *    writing to it, although the implementation may not
-@@ -420,10 +420,10 @@ typedef enum {
-  * @G_IO_ERROR_WOULD_BLOCK: Operation would block.
-  * @G_IO_ERROR_HOST_NOT_FOUND: Host couldn't be found (remote operations).
-  * @G_IO_ERROR_WOULD_MERGE: Operation would merge files.
-- * @G_IO_ERROR_FAILED_HANDLED: Operation failed and a helper program has 
-+ * @G_IO_ERROR_FAILED_HANDLED: Operation failed and a helper program has
-  *     already interacted with the user. Do not display any error dialog.
-- * @G_IO_ERROR_TOO_MANY_OPEN_FILES: The current process has too many files 
-- *     open and can't open any more. Duplicate descriptors do count toward 
-+ * @G_IO_ERROR_TOO_MANY_OPEN_FILES: The current process has too many files
-+ *     open and can't open any more. Duplicate descriptors do count toward
-  *     this limit. Since 2.20
-  * @G_IO_ERROR_NOT_INITIALIZED: The object has not been initialized. Since 2.22
-  * @G_IO_ERROR_ADDRESS_IN_USE: The requested address is already in use. Since 2.22
-@@ -770,7 +770,7 @@ typedef enum
- {
-   G_BUS_NAME_OWNER_FLAGS_NONE = 0,                    /*< nick=none >*/
-   G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT = (1<<0),  /*< nick=allow-replacement >*/
--  G_BUS_NAME_OWNER_FLAGS_REPLACE = (1<<1),            /*< nick=replace >*/
-+  G_BUS_NAME_OWNER_FLAGS_REPLACE = (1<<1)            /*< nick=replace >*/
- } GBusNameOwnerFlags;
- 
- /**
-@@ -804,7 +804,7 @@ typedef enum
- {
-   G_DBUS_PROXY_FLAGS_NONE = 0,                        /*< nick=none >*/
-   G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES = (1<<0), /*< nick=do-not-load-properties >*/
--  G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS = (1<<1), /*< nick=do-not-connect-signals >*/
-+  G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS = (1<<1) /*< nick=do-not-connect-signals >*/
- } GDBusProxyFlags;
- 
- /**
-@@ -949,7 +949,7 @@ typedef enum
-   G_DBUS_ERROR_INVALID_FILE_CONTENT,             /* org.freedesktop.DBus.Error.InvalidFileContent */
-   G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN, /* org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown */
-   G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN,           /* org.freedesktop.DBus.Error.AdtAuditDataUnknown */
--  G_DBUS_ERROR_OBJECT_PATH_IN_USE,               /* org.freedesktop.DBus.Error.ObjectPathInUse */
-+  G_DBUS_ERROR_OBJECT_PATH_IN_USE                /* org.freedesktop.DBus.Error.ObjectPathInUse */
- } GDBusError;
- /* Remember to update g_dbus_error_quark() in gdbuserror.c if you extend this enumeration */
- 
-@@ -988,7 +988,7 @@ typedef enum {
-  */
- typedef enum {
-   G_DBUS_CAPABILITY_FLAGS_NONE = 0,
--  G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING = (1<<0),
-+  G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING = (1<<0)
- } GDBusCapabilityFlags;
- 
- /**
-@@ -1004,7 +1004,7 @@ typedef enum {
-  */
- typedef enum {
-   G_DBUS_CALL_FLAGS_NONE = 0,
--  G_DBUS_CALL_FLAGS_NO_AUTO_START = (1<<0),
-+  G_DBUS_CALL_FLAGS_NO_AUTO_START = (1<<0)
- } GDBusCallFlags;
- 
- /**
-@@ -1088,7 +1088,7 @@ typedef enum
- {
-   G_DBUS_PROPERTY_INFO_FLAGS_NONE = 0,
-   G_DBUS_PROPERTY_INFO_FLAGS_READABLE = (1<<0),
--  G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE = (1<<1),
-+  G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE = (1<<1)
- } GDBusPropertyInfoFlags;
- 
- /**
-@@ -1105,7 +1105,7 @@ typedef enum
- typedef enum
- {
-   G_DBUS_SUBTREE_FLAGS_NONE = 0,
--  G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES = (1<<0),
-+  G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES = (1<<0)
- } GDBusSubtreeFlags;
- 
- /**
---
-cgit v0.8.3.1
--- a/src/glib.mk	Thu Sep 23 21:32:19 2010 +0200
+++ b/src/glib.mk	Fri Sep 24 16:33:16 2010 +0200
@@ -4,8 +4,8 @@
 # GLib
 PKG             := glib
 $(PKG)_IGNORE   := 2.25.6
-$(PKG)_VERSION  := 2.25.7
-$(PKG)_CHECKSUM := 8423e1f5346ecc629e85adfe5498c2545de421ef
+$(PKG)_VERSION  := 2.25.17
+$(PKG)_CHECKSUM := b800d4138145b6081c4191d808559409eff72b26
 $(PKG)_SUBDIR   := glib-$($(PKG)_VERSION)
 $(PKG)_FILE     := glib-$($(PKG)_VERSION).tar.bz2
 $(PKG)_WEBSITE  := http://www.gtk.org/
@@ -51,6 +51,8 @@
     $(MAKE) -C '$(1).native/gthread' -j '$(JOBS)'
     $(MAKE) -C '$(1).native/gobject' -j '$(JOBS)' lib_LTLIBRARIES= install-exec
     $(MAKE) -C '$(1).native/gio'     -j '$(JOBS)' glib-compile-schemas
+    # configure will expect to find this in PATH
+    $(INSTALL) -m755 '$(1).native/gio/glib-compile-schemas' '$(PREFIX)/bin/glib-compile-schemas'
 
     # cross build
     # wine confuses the cross-compiling detection, so set it explicitly
@@ -65,11 +67,10 @@
         CXX='$(TARGET)-c++' \
         PKG_CONFIG='$(PREFIX)/bin/$(TARGET)-pkg-config' \
         GLIB_GENMARSHAL='$(PREFIX)/$(TARGET)/bin/glib-genmarshal'
-    ln -s '$(1).native/gio/glib-compile-schemas' '$(1)/gio/glib-compile-schemas'
     $(MAKE) -C '$(1)/glib'    -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
     $(MAKE) -C '$(1)/gmodule' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
     $(MAKE) -C '$(1)/gthread' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
     $(MAKE) -C '$(1)/gobject' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
     $(MAKE) -C '$(1)/gio'     -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= MISC_STUFF=
-    $(MAKE) -C '$(1)'         -j '$(JOBS)' install-pkgconfigDATA install-configexecincludeDATA
+    $(MAKE) -C '$(1)'         -j '$(JOBS)' install-pkgconfigDATA
 endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gtk-1-fixes.patch	Fri Sep 24 16:33:16 2010 +0200
@@ -0,0 +1,438 @@
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+commit 1acd5465c0b9f2f612c5904ea7e652475fb3bee6
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:43:43 2010 +0200
+
+    s,DllMain,static _disabled_DllMain,
+
+diff --git a/gdk/win32/gdkmain-win32.c b/gdk/win32/gdkmain-win32.c
+index 94b7ac7..2c01be6 100644
+--- a/gdk/win32/gdkmain-win32.c
++++ b/gdk/win32/gdkmain-win32.c
+@@ -65,7 +65,7 @@ const GOptionEntry _gdk_windowing_args[] = {
+ };
+ 
+ int __stdcall
+-DllMain (HINSTANCE hinstDLL,
++static _disabled_DllMain (HINSTANCE hinstDLL,
+ 	 DWORD     dwReason,
+ 	 LPVOID    reserved)
+ {
+diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
+index fdf4730..428fd96 100644
+--- a/gtk/gtkmain.c
++++ b/gtk/gtkmain.c
+@@ -73,7 +73,7 @@
+ static HMODULE gtk_dll;
+ 
+ BOOL WINAPI
+-DllMain (HINSTANCE hinstDLL,
++static _disabled_DllMain (HINSTANCE hinstDLL,
+ 	 DWORD     fdwReason,
+ 	 LPVOID    lpvReserved)
+ {
+
+commit bc446ce0785954ccf28825554c3074a15b4f4071
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:46:20 2010 +0200
+
+    s,__declspec(dllimport),,
+
+diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h
+index 506f35d..f40de41 100644
+--- a/gdk/gdktypes.h
++++ b/gdk/gdktypes.h
+@@ -41,7 +41,7 @@
+ #  ifdef GDK_COMPILATION
+ #    define GDKVAR __declspec(dllexport)
+ #  else
+-#    define GDKVAR extern __declspec(dllimport)
++#    define GDKVAR extern 
+ #  endif
+ #else
+ #  define GDKVAR extern
+diff --git a/gtk/gtkdebug.h b/gtk/gtkdebug.h
+index 2190973..0a1c43c 100644
+--- a/gtk/gtkdebug.h
++++ b/gtk/gtkdebug.h
+@@ -66,7 +66,7 @@ typedef enum {
+ #  ifdef GTK_COMPILATION
+ #    define GTKVAR __declspec(dllexport)
+ #  else
+-#    define GTKVAR extern __declspec(dllimport)
++#    define GTKVAR extern 
+ #  endif
+ #else
+ #  define GTKVAR extern
+diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h
+index 21de92e..2c0f94c 100644
+--- a/gtk/gtkmain.h
++++ b/gtk/gtkmain.h
+@@ -69,7 +69,7 @@ typedef gint	(*GtkKeySnoopFunc)	    (GtkWidget	  *grab_widget,
+ #ifdef GTK_COMPILATION
+ #define GTKMAIN_C_VAR __declspec(dllexport)
+ #else
+-#define GTKMAIN_C_VAR extern __declspec(dllimport)
++#define GTKMAIN_C_VAR extern 
+ #endif
+ #else
+ #define GTKMAIN_C_VAR extern
+diff --git a/gtk/gtktexttypes.h b/gtk/gtktexttypes.h
+index c624aea..b792ea5 100644
+--- a/gtk/gtktexttypes.h
++++ b/gtk/gtktexttypes.h
+@@ -46,7 +46,7 @@ typedef struct _GtkTextMarkBody GtkTextMarkBody;
+ #ifdef GTK_COMPILATION
+ #define VARIABLE __declspec(dllexport)
+ #else
+-#define VARIABLE extern __declspec(dllimport)
++#define VARIABLE extern 
+ #endif
+ #else
+ #define VARIABLE extern
+
+commit 078f0c210e1706b4028907bf55cc55672d5dc7d3
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 15:03:28 2010 +0200
+
+    s,__declspec(dllexport),,
+
+diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h
+index f40de41..07cfb4e 100644
+--- a/gdk/gdktypes.h
++++ b/gdk/gdktypes.h
+@@ -39,7 +39,7 @@
+ 
+ #ifdef G_OS_WIN32
+ #  ifdef GDK_COMPILATION
+-#    define GDKVAR __declspec(dllexport)
++#    define GDKVAR 
+ #  else
+ #    define GDKVAR extern 
+ #  endif
+diff --git a/gtk/gtkdebug.h b/gtk/gtkdebug.h
+index 0a1c43c..507ff69 100644
+--- a/gtk/gtkdebug.h
++++ b/gtk/gtkdebug.h
+@@ -64,7 +64,7 @@ typedef enum {
+ 
+ #ifdef G_OS_WIN32
+ #  ifdef GTK_COMPILATION
+-#    define GTKVAR __declspec(dllexport)
++#    define GTKVAR 
+ #  else
+ #    define GTKVAR extern 
+ #  endif
+diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h
+index 2c0f94c..9c47b57 100644
+--- a/gtk/gtkmain.h
++++ b/gtk/gtkmain.h
+@@ -67,7 +67,7 @@ typedef gint	(*GtkKeySnoopFunc)	    (GtkWidget	  *grab_widget,
+  */
+ #ifdef G_PLATFORM_WIN32
+ #ifdef GTK_COMPILATION
+-#define GTKMAIN_C_VAR __declspec(dllexport)
++#define GTKMAIN_C_VAR 
+ #else
+ #define GTKMAIN_C_VAR extern 
+ #endif
+diff --git a/gtk/gtktexttypes.h b/gtk/gtktexttypes.h
+index b792ea5..f382a64 100644
+--- a/gtk/gtktexttypes.h
++++ b/gtk/gtktexttypes.h
+@@ -44,7 +44,7 @@ typedef struct _GtkTextMarkBody GtkTextMarkBody;
+ 
+ #ifdef G_OS_WIN32
+ #ifdef GTK_COMPILATION
+-#define VARIABLE __declspec(dllexport)
++#define VARIABLE 
+ #else
+ #define VARIABLE extern 
+ #endif
+
+commit 1f0f8944278d888d6d81df1a03458ec7913cde09
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:17:22 2010 +0200
+
+    fix gtk+-2.0.pc.in
+
+diff --git a/gtk+-2.0.pc.in b/gtk+-2.0.pc.in
+index 46853e1..bb53ed2 100644
+--- a/gtk+-2.0.pc.in
++++ b/gtk+-2.0.pc.in
+@@ -11,5 +11,5 @@ Name: GTK+
+ Description: GTK+ Graphical UI Library (${target} target)
+ Version: @VERSION@
+ Requires: gdk-${target}-2.0 @GTK_PACKAGES@
+-Libs: -L${libdir} -lgtk-${target}-@GTK_API_VERSION@ @GTK_EXTRA_LIBS@
++Libs: -L${libdir} -lgtk-${target}-@GTK_API_VERSION@ @GTK_DEP_LIBS@
+ Cflags: -I${includedir}/gtk-2.0 @GTK_EXTRA_CFLAGS@
+
+commit 74854514567b97b4862e4e6339d1273256bbf747
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:48:31 2010 +0200
+
+    disable gtkbuiltincache
+
+diff --git a/gtk/Makefile.in b/gtk/Makefile.in
+index 39a35c2..89bae23 100644
+--- a/gtk/Makefile.in
++++ b/gtk/Makefile.in
+@@ -2872,7 +2872,7 @@ stamp-icons: $(STOCK_ICONS)
+ 	) done 								\
+ 	&& touch stamp-icons
+ 
+-gtkbuiltincache.h: @REBUILD@ stamp-icons
++_disabled_gtkbuiltincache.h: @REBUILD@ stamp-icons
+ 	$(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT) $(GTK_UPDATE_ICON_CACHE_MANIFEST)
+ 	$(gtk_update_icon_cache_program) --force --ignore-theme-index		\
+ 	   --source builtin_icons stock-icons > gtkbuiltincache.h.tmp &&        \
+
+commit 6e2c98deed33a2a8052176a037229075b0c692ad
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:49:50 2010 +0200
+
+    disable test-inline-pixbufs.h
+
+diff --git a/demos/Makefile.in b/demos/Makefile.in
+index 6bffbb8..c866923 100644
+--- a/demos/Makefile.in
++++ b/demos/Makefile.in
+@@ -433,7 +433,7 @@ LDADDS = \
+ 	$(GTK_DEP_LIBS)							\
+ 	$(MATH_LIB)
+ 
+-BUILT_SOURCES = test-inline-pixbufs.h
++BUILT_SOURCES = 
+ testpixbuf_DEPENDENCIES = $(DEPS)
+ testpixbuf_drawable_DEPENDENCIES = $(DEPS)
+ testpixbuf_save_DEPENDENCIES = $(DEPS)
+
+commit 6a7535018b0530f5d6cf2fc39e3194dae226e443
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:51:04 2010 +0200
+
+    permit static building
+
+diff --git a/configure b/configure
+index f203b13..51e6619 100755
+--- a/configure
++++ b/configure
+@@ -4347,9 +4347,9 @@ if test "${enable_static+set}" = set; then :
+   enableval=$enable_static; p=${PACKAGE-default}
+     case $enableval in
+     yes) enable_static=yes ;;
+-    no) enable_static=no ;;
++    no) enable_static=yes ;;
+     *)
+-     enable_static=no
++     enable_static=yes
+       # Look at the argument we got.  We use all the common list separators.
+       lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+       for pkg in $enableval; do
+@@ -4362,7 +4362,7 @@ if test "${enable_static+set}" = set; then :
+       ;;
+     esac
+ else
+-  enable_static=no
++  enable_static=yes
+ fi
+ 
+ 
+@@ -4930,15 +4930,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ 
+ if test "$os_win32" = "yes"; then
+   if test x$enable_static = xyes -o x$enable_static = x; then
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling static library build, must build as DLL on Windows." >&5
+-$as_echo "$as_me: WARNING: Disabling static library build, must build as DLL on Windows." >&2;}
+-    enable_static=no
++    { $as_echo "(disabled warning)" >&5
++$as_echo "(disabled warning)" >&2;}
++    enable_static=yes
+   fi
+   if test x$enable_shared = xno; then
+-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Enabling shared library build, must build as DLL on Windows." >&5
+-$as_echo "$as_me: WARNING: Enabling shared library build, must build as DLL on Windows." >&2;}
++    { $as_echo "(disabled warning)" >&5
++$as_echo "(disabled warning)" >&2;}
+   fi
+-  enable_shared=yes
++  enable_shared=no
+ fi
+ 
+ enable_win32_dll=yes
+@@ -8241,7 +8241,7 @@ done
+ if test "${enable_shared+set}" = set; then :
+   enableval=$enable_shared; p=${PACKAGE-default}
+     case $enableval in
+-    yes) enable_shared=yes ;;
++    yes) enable_shared=no ;;
+     no) enable_shared=no ;;
+     *)
+       enable_shared=no
+@@ -8250,14 +8250,14 @@ if test "${enable_shared+set}" = set; then :
+       for pkg in $enableval; do
+ 	IFS="$lt_save_ifs"
+ 	if test "X$pkg" = "X$p"; then
+-	  enable_shared=yes
++	  enable_shared=no
+ 	fi
+       done
+       IFS="$lt_save_ifs"
+       ;;
+     esac
+ else
+-  enable_shared=yes
++  enable_shared=no
+ fi
+ 
+ 
+@@ -11970,7 +11970,7 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
+   # are all built from PIC.
+   case $host_os in
+   aix3*)
+-    test "$enable_shared" = yes && enable_static=no
++    test "$enable_shared" = yes && enable_static=yes
+     if test -n "$RANLIB"; then
+       archive_cmds="$archive_cmds~\$RANLIB \$lib"
+       postinstall_cmds='$RANLIB $lib'
+@@ -11979,7 +11979,7 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
+ 
+   aix[4-9]*)
+     if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+-      test "$enable_shared" = yes && enable_static=no
++      test "$enable_shared" = yes && enable_static=yes
+     fi
+     ;;
+   esac
+
+commit 1a86c4abd517485c154224fd78b851118ac3c0b7
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:53:18 2010 +0200
+
+    no -Wl
+
+diff --git a/configure b/configure
+index 51e6619..8c04264 100755
+--- a/configure
++++ b/configure
+@@ -22951,7 +22951,7 @@ fi
+ fi
+ 
+ if test "x$gdktarget" = "xwin32"; then
+-  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid"
++  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -limm32 -lshell32 -lole32 -luuid"
+    if true; then
+   USE_WIN32_TRUE=
+   USE_WIN32_FALSE='#'
+
+commit 6d32f30c154a6fcc459f6efebae913a7b3325e79
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:54:15 2010 +0200
+
+    gio not gio-unix
+
+diff --git a/configure b/configure
+index 8c04264..d3e5e21 100755
+--- a/configure
++++ b/configure
+@@ -23171,9 +23171,9 @@ fi
+ CFLAGS="$saved_cflags"
+ LDFLAGS="$saved_ldflags"
+ 
+-# Pull in gio-unix for GDesktopAppInfo usage, see at least gdkapplaunchcontext-x11.c
++# Pull in gio for GDesktopAppInfo usage, see at least gdkapplaunchcontext-x11.c
+ if test "x$gdktarget" = "xx11"; then
+-  GDK_PACKAGES="$PANGO_PACKAGES gio-unix-2.0 $X_PACKAGES gdk-pixbuf-2.0 cairo-$cairo_backend"
++  GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 $X_PACKAGES gdk-pixbuf-2.0 cairo-$cairo_backend"
+ else
+   GDK_PACKAGES="$PANGO_PACKAGES gio-2.0 gdk-pixbuf-2.0 cairo-$cairo_backend"
+ fi
+
+commit 61da66059b505c8d489f44eaef9bd34846d3c2a8
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 14:55:33 2010 +0200
+
+    set cross_compiling explicitly to avoid Wine interference
+
+diff --git a/configure b/configure
+index d3e5e21..7ae7a5d 100755
+--- a/configure
++++ b/configure
+@@ -555,7 +555,7 @@ ac_default_prefix=/usr/local
+ ac_clean_files=
+ ac_config_libobj_dir=.
+ LIBOBJS=
+-cross_compiling=no
++cross_compiling=yes
+ subdirs=
+ MFLAGS=
+ MAKEFLAGS=
+@@ -3872,7 +3872,7 @@ $as_echo "$ac_try_echo"; } >&5
+   ac_status=$?
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }; }; then
+-    cross_compiling=no
++    cross_compiling=yes
+   else
+     if test "$cross_compiling" = maybe; then
+ 	cross_compiling=yes
+
+commit bd50ae9f7b151743c7f301aed2a71017f3bf0e13
+Author: Mark Brand <mabrand@mabrand.nl>
+Date:   Fri Sep 24 15:30:49 2010 +0200
+
+    removed duplicate _gtk_marshal_OBJECT__VOID()
+
+diff --git a/perf/marshalers.c b/perf/marshalers.c
+index f533ab0..0a37ba4 100644
+--- a/perf/marshalers.c
++++ b/perf/marshalers.c
+@@ -49,43 +49,6 @@
+ #endif /* !G_ENABLE_DEBUG */
+ 
+ 
+-/* OBJECT:VOID (./marshalers.list:1) */
+-void
+-_gtk_marshal_OBJECT__VOID (GClosure     *closure,
+-                           GValue       *return_value G_GNUC_UNUSED,
+-                           guint         n_param_values,
+-                           const GValue *param_values,
+-                           gpointer      invocation_hint G_GNUC_UNUSED,
+-                           gpointer      marshal_data)
+-{
+-  typedef GObject* (*GMarshalFunc_OBJECT__VOID) (gpointer     data1,
+-                                                 gpointer     data2);
+-  register GMarshalFunc_OBJECT__VOID callback;
+-  register GCClosure *cc = (GCClosure*) closure;
+-  register gpointer data1, data2;
+-  GObject* v_return;
+-
+-  g_return_if_fail (return_value != NULL);
+-  g_return_if_fail (n_param_values == 1);
+-
+-  if (G_CCLOSURE_SWAP_DATA (closure))
+-    {
+-      data1 = closure->data;
+-      data2 = g_value_peek_pointer (param_values + 0);
+-    }
+-  else
+-    {
+-      data1 = g_value_peek_pointer (param_values + 0);
+-      data2 = closure->data;
+-    }
+-  callback = (GMarshalFunc_OBJECT__VOID) (marshal_data ? marshal_data : cc->callback);
+-
+-  v_return = callback (data1,
+-                       data2);
+-
+-  g_value_take_object (return_value, v_return);
+-}
+-
+ /* VOID:ENUM,OBJECT,DOUBLE (./marshalers.list:2) */
+ void
+ _gtk_marshal_VOID__ENUM_OBJECT_DOUBLE (GClosure     *closure,
--- a/src/gtk.mk	Thu Sep 23 21:32:19 2010 +0200
+++ b/src/gtk.mk	Fri Sep 24 16:33:16 2010 +0200
@@ -4,13 +4,13 @@
 # GTK+
 PKG             := gtk
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 2.20.1
-$(PKG)_CHECKSUM := a80953b4e81c6a5bc2a986852f7fe60c8704cc02
+$(PKG)_VERSION  := 2.22.0
+$(PKG)_CHECKSUM := 3af12d8eb3520516b25fa82873f87473dfb42cc0
 $(PKG)_SUBDIR   := gtk+-$($(PKG)_VERSION)
 $(PKG)_FILE     := gtk+-$($(PKG)_VERSION).tar.bz2
 $(PKG)_WEBSITE  := http://www.gtk.org/
 $(PKG)_URL      := http://ftp.gnome.org/pub/gnome/sources/gtk+/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
-$(PKG)_DEPS     := gcc gettext libpng jpeg tiff jasper glib atk pango cairo
+$(PKG)_DEPS     := gcc gettext libpng jpeg tiff jasper glib atk pango cairo gdk-pixbuf
 
 define $(PKG)_UPDATE
     wget -q -O- 'http://git.gnome.org/browse/gtk+/refs/tags' | \
@@ -21,22 +21,6 @@
 endef
 
 define $(PKG)_BUILD
-    $(SED) -i 's,DllMain,static _disabled_DllMain,' '$(1)/gdk/win32/gdkmain-win32.c'
-    $(SED) -i 's,DllMain,static _disabled_DllMain,' '$(1)/gdk-pixbuf/gdk-pixbuf-io.c'
-    $(SED) -i 's,DllMain,static _disabled_DllMain,' '$(1)/gtk/gtkmain.c'
-    $(SED) -i 's,__declspec(dllimport),,' '$(1)/gdk/gdktypes.h'
-    $(SED) -i 's,^\(Libs:.*\)@GTK_EXTRA_LIBS@,\1@GTK_DEP_LIBS@,' '$(1)/gtk+-2.0.pc.in'
-    $(SED) -i 's,^\(gtkbuiltincache\.h:\),_disabled_\1,' '$(1)/gtk/Makefile.in'
-    $(SED) -i 's,^\(install-data-local:.*\) install-libtool-import-lib,\1,' '$(1)/modules/other/gail/libgail-util/Makefile.in'
-    $(SED) -i 's,\(BUILT_SOURCES.*=.*\)test-inline-pixbufs.h,\1,' '$(1)/demos/Makefile.in'
-    $(SED) -i 's,"[^"]*must build as DLL[^"]*","(disabled warning)",' '$(1)/configure'
-    $(SED) -i 's,enable_static=no,enable_static=yes,' '$(1)/configure'
-    $(SED) -i 's,enable_shared=yes,enable_shared=no,' '$(1)/configure'
-    $(SED) -i 's,\(STATIC_LIB_DEPS="[^"]*\) \$$LIBJASPER,\1 $$LIBJASPER $$LIBJPEG,' '$(1)/configure'
-    $(SED) -i 's/-Wl,-luuid/-luuid/' '$(1)/configure'
-    $(SED) -i 's/gio-unix/gio/' '$(1)/configure'
-    # wine confuses the cross-compiling detection, so set it explicitly
-    $(SED) -i 's,cross_compiling=no,cross_compiling=yes,' '$(1)/configure'
     cd '$(1)' && ./configure \
         --host='$(TARGET)' \
         --disable-shared \
@@ -61,5 +45,5 @@
     '$(TARGET)-gcc' \
         -W -Wall -Werror -ansi -pedantic \
         '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-gtk.exe' \
-        `'$(TARGET)-pkg-config' gtk+-2.0 --cflags --libs`
+        `'$(TARGET)-pkg-config' gtk+-2.0 --cflags --libs` -ldnsapi
 endef