summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-libs/gtk+/files')
-rw-r--r--x11-libs/gtk+/files/gtk+-1.2-locale_fix.patch19
-rw-r--r--x11-libs/gtk+/files/gtk+-1.2.10-as-needed.patch696
-rw-r--r--x11-libs/gtk+/files/gtk+-1.2.10-automake-1.13.patch16
-rw-r--r--x11-libs/gtk+/files/gtk+-1.2.10-automake.patch126
-rw-r--r--x11-libs/gtk+/files/gtk+-1.2.10-cleanup.patch13
-rw-r--r--x11-libs/gtk+/files/gtk+-1.2.10-m4.patch9
-rw-r--r--x11-libs/gtk+/files/gtk+-2.24.20-darwin-quartz-pasteboard.patch15
-rw-r--r--x11-libs/gtk+/files/gtk+-2.24.24-out-of-source.patch33
-rw-r--r--x11-libs/gtk+/files/gtk+-2.24.27-update-icon-cache.patch64
-rw-r--r--x11-libs/gtk+/files/gtk+-3.12.2-darwin10.6.patch39
-rw-r--r--x11-libs/gtk+/files/gtk+-3.16.2-remove_update-icon-cache.patch24
-rw-r--r--x11-libs/gtk+/files/gtk+-non-bash-support.patch56
-rw-r--r--x11-libs/gtk+/files/gtkrc39
-rw-r--r--x11-libs/gtk+/files/settings.ini4
14 files changed, 1153 insertions, 0 deletions
diff --git a/x11-libs/gtk+/files/gtk+-1.2-locale_fix.patch b/x11-libs/gtk+/files/gtk+-1.2-locale_fix.patch
new file mode 100644
index 000000000000..a3fd198b6904
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-1.2-locale_fix.patch
@@ -0,0 +1,19 @@
+--- gtk/gtkrc.c.~1.40.2.17.~ 2001-07-10 20:06:35.000000000 +0200
++++ gtk/gtkrc.c 2003-03-05 16:56:10.000000000 +0100
+@@ -453,7 +453,7 @@
+
+ if (!initted)
+ {
+- char *locale = setlocale (LC_CTYPE, NULL);
++ char *locale = g_strdup (setlocale (LC_CTYPE, NULL));
+ char *p;
+
+ initted = TRUE;
+@@ -558,6 +558,7 @@
+
+ if (tmp) g_free (tmp);
+ }
++ g_free (locale);
+ }
+
+ i = 0;
diff --git a/x11-libs/gtk+/files/gtk+-1.2.10-as-needed.patch b/x11-libs/gtk+/files/gtk+-1.2.10-as-needed.patch
new file mode 100644
index 000000000000..aa295f257851
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-1.2.10-as-needed.patch
@@ -0,0 +1,696 @@
+--- gtk+-1.2.10/acinclude.m4.orig 2006-05-24 23:23:51.000000000 -0700
++++ gtk+-1.2.10/acinclude.m4 2006-05-24 23:23:19.000000000 -0700
+@@ -672,7 +672,7 @@
+ AC_DEFINE(HAVE_STPCPY)
+ fi
+
+- AM_LC_MESSAGES
++ gt_LC_MESSAGES
+ AM_GTK_WITH_NLS
+
+ if test "x$CATOBJEXT" != "x"; then
+--- gtk+-1.2.10/gtk.m4.orig 2006-05-24 23:32:00.000000000 -0700
++++ gtk+-1.2.10/gtk.m4 2006-05-24 23:36:16.000000000 -0700
+@@ -1,6 +1,11 @@
+ # Configure paths for GTK+
+ # Owen Taylor 97-11-3
+-
++AC_DEFUN([GTK_AC_DIVERT_BEFORE_HELP],
++[ifdef([m4_divert_text], [m4_divert_text([NOTICE],[$1])],
++ [ifdef([AC_DIVERT], [AC_DIVERT([NOTICE],[$1])],
++ [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
++$1
++AC_DIVERT_POP()])])])
+ dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+ dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+ dnl
+--- gtk+-1.2.10/configure.in.orig 2006-05-25 05:45:06.000000000 -0700
++++ gtk+-1.2.10/configure.in 2006-05-25 05:44:08.000000000 -0700
+@@ -1,6 +1,8 @@
++builtin(include,gtk.m4)
++
++
+ # Process this file with autoconf to produce a configure script.
+ AC_INIT(gdk/gdktypes.h)
+-
+ # In the following, there are a the following variants
+ # of GLib cflags and libs variables
+ #
+@@ -12,12 +14,11 @@
+ # glib_thread_cflags: cflags to store in gtk-config for gtk-config gthread
+ # glib_thread_libs: libs to store in gtk-config for gtk-config gthread
+
++AC_CANONICAL_TARGET
+ # Save this value here, since automake will set cflags later
+ cflags_set=${CFLAGS+set}
+
+-dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
+-dnl are available for $ac_help expansion (don't we all *love* autoconf?)
+-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
++GTK_AC_DIVERT_BEFORE_HELP([
+ #
+ # Making releases:
+ # GTK_MICRO_VERSION += 1;
+@@ -32,9 +33,8 @@
+ GTK_MICRO_VERSION=10
+ GTK_INTERFACE_AGE=1
+ GTK_BINARY_AGE=10
+-GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
+-dnl
+-AC_DIVERT_POP()dnl
++GTK_VERSION="$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION"
++])
+
+ AC_SUBST(GTK_MAJOR_VERSION)
+ AC_SUBST(GTK_MINOR_VERSION)
+@@ -44,9 +44,9 @@
+ AC_SUBST(GTK_VERSION)
+
+ # libtool versioning
+-LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
++LT_RELEASE="$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION"
+ LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
+-LT_REVISION=$GTK_INTERFACE_AGE
++LT_REVISION="$GTK_INTERFACE_AGE"
+ LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
+ AC_SUBST(LT_RELEASE)
+ AC_SUBST(LT_CURRENT)
+@@ -54,11 +54,8 @@
+ AC_SUBST(LT_AGE)
+
+ # For automake.
+-VERSION=$GTK_VERSION
+-PACKAGE=gtk+
+-
+-# Save this value here, since automake will set cflags later
+-cflags_set=${CFLAGS+set}
++VERSION="$GTK_VERSION"
++PACKAGE="gtk+"
+
+ dnl Initialize automake stuff
+ AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
+@@ -67,42 +64,40 @@
+ AM_CONFIG_HEADER(config.h)
+
+ dnl Initialize libtool
+-AM_PROG_LIBTOOL
++AC_PROG_LIBTOOL
+
+ dnl Initialize maintainer mode
+ AM_MAINTAINER_MODE
+
+-AC_CANONICAL_HOST
+-
+ dnl figure debugging default, prior to $ac_help setup
+-dnl
+-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
++
++GTK_AC_DIVERT_BEFORE_HELP([
+ if test `expr $GTK_MINOR_VERSION \% 2` = 1 ; then
+- debug_default=yes
++ debug_default="yes"
+ else
+- debug_default=minimum
++ debug_default="minimum"
+ fi
+-AC_DIVERT_POP()dnl
+-
++])
+ dnl declare --enable-* args and collect ac_help strings
+-AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
++AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,
++ [enable_debug="$debug_default"])
+ AC_ARG_ENABLE(shm, [ --enable-shm support shared memory if available [default=yes]],
+- echo $enable_shm, enable_shm="yes")
+-AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]],
+- , enable_ansi=no)
++ [echo "$enable_shm"],[enable_shm="yes"])
++AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]],,[enable_ansi="no"])
+ AC_ARG_WITH(glib, [ --with-glib=DIR Use uninstalled copy of glib])
+-AC_ARG_ENABLE(xim, [ --enable-xim support XIM [default=yes]],
+- , enable_xim="yes")
+-AC_ARG_ENABLE(xim_inst, [ --disable-xim-inst does not use xim instantiate callback],
+- , enable_xim_inst="maybe")
+-AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogeneration rules],,enable_rebuilds=yes)
++AC_ARG_ENABLE(xim, [ --enable-xim support XIM [default=yes]],,[enable_xim="yes"])
++AC_ARG_ENABLE(xim_inst, [ --disable-xim-inst does not use xim instantiate callback],,
++ [enable_xim_inst="maybe"])
++AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogeneration rules],,
++ [enable_rebuilds="yes"])
+ AC_ARG_WITH(locale, [ --with-locale=LOCALE locale name you want to use ])
+-
+ AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ])
+-AC_ARG_WITH(native_locale, [ --with-native-locale=[yes/no] Use native locale support [default=no]],,with_native_locale=no)
++AC_ARG_WITH(native_locale, [ --with-native-locale=[yes/no] Use native locale support [default=no]],,
++ [with_native_locale="no"])
++
+
+ if test "x$enable_debug" = "xyes"; then
+- test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
++ test "$cflags_set" = "set" || CFLAGS="$CFLAGS -g"
+ GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
+ else
+ if test "x$enable_debug" = "xno"; then
+@@ -113,16 +108,14 @@
+ fi
+
+ AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
+-
+ # Build time sanity check...
+ AM_SANITY_CHECK
+
+ # Checks for programs.
+ AC_PROG_CC
+ AC_ISC_POSIX
+-AM_PROG_CC_STDC
++AC_PROG_CC_STDC
+ AC_PROG_INSTALL
+-AC_PROG_MAKE_SET
+
+ changequote(,)dnl
+ if test "x$GCC" = "xyes"; then
+@@ -144,7 +137,6 @@
+ fi
+ fi
+ changequote([,])dnl
+-
+ # Honor aclocal flags
+ ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
+
+@@ -158,8 +150,7 @@
+ AC_CHECK_PROG(INDENT, indent, indent)
+
+ REBUILD=\#
+-if test "x$enable_rebuilds" = "xyes" && \
+- test -n "$PERL" && \
++if test "x$enable_rebuilds" = "xyes" && test -n "$PERL" && \
+ $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
+ test -n "$AWK" ; then
+ REBUILD=
+@@ -194,55 +185,58 @@
+
+ dnl Check for nl_langinfo and CODESET
+ AC_MSG_CHECKING([for nl_langinfo (CODESET)])
+-AC_TRY_COMPILE([#include <langinfo.h>],
++AC_TRY_COMPILE([#include <langinfo.h>
++ ],
+ [char *codeset = nl_langinfo (CODESET);],
+ AC_DEFINE(HAVE_CODESET,1,[Have nl_langinfo (CODESET)])
+- have_codeset=yes,
+- have_codeset=no)
++ have_codeset="yes",
++ have_codeset="no"
++)
+ AC_MSG_RESULT($have_codeset)
+
+ dnl The DU4 header files don't provide library prototypes unless
+ dnl -std1 is given to the native cc.
+ AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
+
+-gtk_save_LIBS=$LIBS
++gtk_save_LIBS="$LIBS"
+ LIBS="$LIBS -lm"
+ AC_TRY_RUN([#include <math.h>
+ int main (void) { return (log(1) != log(1.)); }],
+ AC_MSG_RESULT(none needed),
+- gtk_save_CFLAGS=$CFLAGS
++ [gtk_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -std1"
+ AC_TRY_RUN([#include <math.h>
+ int main (void) { return (log(1) != log(1.)); }],
+ AC_MSG_RESULT(-std1),
+ AC_MSG_RESULT()
+- CFLAGS=$gtk_save_CFLAGS
+- AC_MSG_WARN(
+- [No ANSI prototypes found in library. (-std1 didn't work.)]),
+- true
+- ),
++ CFLAGS="$gtk_save_CFLAGS"
++ AC_MSG_WARN([No ANSI prototypes found in library. (-std1 didn't work.)]),
++ true)],
+ AC_MSG_RESULT(none needed)
+ )
+-LIBS=$gtk_save_LIBS
++LIBS="$gtk_save_LIBS"
+
+ dnl NeXTStep cc seems to need this
+ AC_MSG_CHECKING([for extra flags for POSIX compliance])
+-AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
++AC_TRY_COMPILE([#include <dirent.h>
++ ],[DIR *dir;],
+ AC_MSG_RESULT(none needed),
+- gtk_save_CFLAGS=$CFLAGS
++ [gtk_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -posix"
+- AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
++ AC_TRY_COMPILE([#include <dirent.h>
++ ],[DIR *dir;],
+ AC_MSG_RESULT(-posix),
+ AC_MSG_RESULT()
+- CFLAGS=$gtk_save_CFLAGS
+- AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
++ CFLAGS="$gtk_save_CFLAGS"
++ AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])]))
+
+-if test x$with_glib = xyes ; then
+- AC_MSG_ERROR([
+-*** Directory must be specified for --with-glib])
++
++
++if test "x$with_glib" = "xyes" ; then
++ AC_MSG_ERROR([*** Directory must be specified for --with-glib])
+ fi
+
+-if test x$with_glib = x ; then
++if test "x$with_glib" = "x" ; then
+ # Look for separately installed glib
+
+ AM_PATH_GLIB(1.2.8,,
+@@ -261,7 +255,7 @@
+ else
+ # Use uninstalled glib (assume they got the version right)
+
+- GLIB_CONFIG=$with_glib/glib-config
++ GLIB_CONFIG="$with_glib/glib-config"
+ if test -x $GLIB_CONFIG ; then
+ :
+ else
+@@ -277,9 +271,9 @@
+ glib_release=`$GLIB_CONFIG --version | sed 's%\\.[[0-9]]*$%%'`
+
+ # canonicalize relative paths
+- case $with_glib in
++ case "$with_glib" in
+ /*)
+- glib_dir=$with_glib
++ glib_dir="$with_glib"
+ ;;
+ *)
+ glib_dir="\$(top_builddir)/$with_glib"
+@@ -312,61 +306,56 @@
+ saved_ldflags="$LDFLAGS"
+
+ CFLAGS="$CFLAGS $X_CFLAGS"
+-LDFLAGS="$LDFLAGS $X_LDFLAGS $X_LIBS"
++LDFLAGS="$LDFLAGS $X_LDFLAGS"
+
+ if test "x$no_x" = "xyes"; then
+ AC_MSG_ERROR([
+ *** X libraries or include files not found. Check 'config.log' for
+ *** more details.])
+ fi
+-
+ # Checks for libraries.
+ # Check for the X11 library
+-AC_CHECK_LIB(X11, XOpenDisplay, x_libs="-lX11 $X_EXTRA_LIBS",
++AC_CHECK_LIB(X11,XOpenDisplay,
++ x_libs="-lX11 $X_EXTRA_LIBS",
+ AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
+- $X_EXTRA_LIBS)
+-
++ $X_EXTRA_LIBS
++)
+ if test "x$enable_shm" = "xyes"; then
+ # Check for the Xext library (needed for XShm extention)
+ AC_CHECK_LIB(Xext, XShmAttach,
+ x_libs="-lXext $x_libs",
+ # On AIX, it is in XextSam instead, but we still need -lXext
+- AC_CHECK_LIB(XextSam, XShmAttach,
++ [AC_CHECK_LIB(XextSam, XShmAttach,
+ x_libs="-lXextSam -lXext $x_libs",
+- no_xext_lib=yes, $x_libs),
+- $x_libs)
++ no_xext_lib="yes",
++ $x_libs
++ )],
++ $x_libs
++ )
+ fi
+-
+ # Check for shaped window extension
+-
+ AC_CHECK_LIB(Xext, XShapeCombineMask,
+- if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
++ if test -z "`echo $x_libs | grep \-lXext 2> /dev/null`"; then
+ x_libs="-lXext $x_libs"
+ fi
+- AC_DEFINE(HAVE_SHAPE_EXT),
+- ,
+- $x_libs)
+-
++ AC_DEFINE(HAVE_SHAPE_EXT),,
++ $x_libs
++)
+ # Check for XConvertCase (X11R6 specific)
+-
+ AC_CHECK_LIB(X11, XConvertCase,
+- AC_DEFINE(HAVE_XCONVERTCASE),
+- ,
+- $x_libs)
+-
++ AC_DEFINE(HAVE_XCONVERTCASE),,
++ $x_libs
++)
+ # Check for XIM support.
+-
+-AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,
+- : ,
++AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,,
+ enable_xim_inst="no",
+- $x_libs)
+-
++ $x_libs
++)
+ # On Solaris, calling XRegisterIMInstantiateCallback seems to
+ # cause an immediate segfault, so we disable it, unless
+ # the user specifically forces it to be on.
+-
+-if test x$enable_xim_inst = xmaybe ; then
+- case host in
++if test "x$enable_xim_inst" = "xmaybe" ; then
++ case "$host" in
+ *-*-solaris*)
+ enable_xim_inst="no"
+ ;;
+@@ -384,16 +373,15 @@
+ fi
+
+ x_cflags="$X_CFLAGS"
+-x_ldflags="$X_LDFLAGS $X_LIBS"
++x_ldflags="$X_LDFLAGS"
+
+ # set up things for XInput
+-
+ if test "x$with_xinput" = "xgxi"; then
+ AC_MSG_WARN([
+ *** The generic XInput support has not been tested for several years
+ *** and is not known to work with any currently available X servers])
+ AC_DEFINE(XINPUT_GXI)
+- xinput_progs=gxid
++ xinput_progs="gxid"
+ x_libs="-lXi $x_libs"
+ elif test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
+ AC_DEFINE(XINPUT_XFREE)
+@@ -413,77 +401,72 @@
+
+ if test "x$enable_shm" = "xyes"; then
+ # Check for shared memory
+- AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
+- AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
++ AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc="yes")
++ AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm="yes")
+
+ # Check for the X shared memory extension header file
+ AC_MSG_CHECKING(X11/extensions/XShm.h)
+ if test "x$no_xext_lib" = "xyes"; then
+ AC_MSG_RESULT(no)
+- no_xshm=yes
++ no_xshm="yes"
+ else
+ if test -f "$x_includes/X11/extensions/XShm.h"; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_XSHM_H)
+ else
+ AC_MSG_RESULT(no)
+- no_xshm=yes
++ no_xshm="yes"
+ fi
+ fi
+ fi
+-
+ # Check if X_LOCALE definition is necessary
+-
+ AC_MSG_CHECKING(need -DX_LOCALE)
+
+ AC_TRY_RUN([
+ #include <stdio.h>
+ #include <locale.h>
+-
+-int
+-main ()
++ int main ()
+ {
+ return setlocale (LC_ALL, "${with_locale}") == NULL;
+ }],
+-need_x_locale=no,
+-need_x_locale=yes,
+-need_x_locale=no)
++ need_x_locale="no",
++ need_x_locale="yes",
++ need_x_locale="no"
++)
+ AC_MSG_RESULT($need_x_locale)
+
+-use_native_locale=no
+-if test $need_x_locale = yes; then
++use_native_locale="no"
++if test "$need_x_locale" = "yes"; then
+ GTK_LOCALE_FLAGS="-DX_LOCALE"
+ else
+- if test x$with_native_locale = xyes ; then
++ if test "x$with_native_locale" = "xyes" ; then
+ AC_MSG_CHECKING(functioning locale support)
+
+- AC_TRY_COMPILE([#include <stdlib.h>],[
+- char c;
++ AC_TRY_COMPILE([#include <stdlib.h>],
++ [char c;
+ if (MB_CUR_MAX == 1) {
+ wctomb(&c, 42);
+- }
+- ],use_native_locale=yes,)
+-
++ }],
++ use_native_locale="yes"
++ )
+ AC_MSG_RESULT($use_native_locale)
+ fi
+ fi
+
+-if test x$use_native_locale = xyes ; then
++if test "x$use_native_locale" = "xyes" ; then
+ AC_MSG_CHECKING(if sizeof(wchar_t) == 4)
+
+- AC_TRY_RUN([
+- #include <stdlib.h>
+-
+- int
+- main ()
++ AC_TRY_RUN([#include <stdlib.h>
++ int main ()
+ {
+ return (sizeof(wchar_t) == 4) ? 0 : 1;
+- }],
+- ,use_native_locale=no,:)
++ }],,
++ use_native_locale="no"
++ )
+ AC_MSG_RESULT($use_native_locale)
+ fi
+
+-if test $use_native_locale = yes ; then
++if test "$use_native_locale" = "yes" ; then
+ AC_DEFINE(USE_NATIVE_LOCALE)
+ fi
+
+@@ -502,13 +485,17 @@
+
+ # Check if <sys/select.h> needs to be included for fd_set
+ AC_MSG_CHECKING([for fd_set])
+-AC_TRY_COMPILE([#include <sys/types.h>],
+- [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
+-if test $gtk_ok = yes; then
++AC_TRY_COMPILE([#include <sys/types.h>
++ ],
++ [fd_set readMask, writeMask;],
++ gtk_ok="yes",
++ gtk_ok="no"
++)
++if test "$gtk_ok" = "yes"; then
+ AC_MSG_RESULT([yes, found in sys/types.h])
+ else
+- AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
+- if test $gtk_ok = yes; then
++ AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok="yes")
++ if test "$gtk_ok" = "yes"; then
+ AC_DEFINE(HAVE_SYS_SELECT_H)
+ AC_MSG_RESULT([yes, found in sys/select.h])
+ else
+@@ -520,30 +507,35 @@
+ # Duplicate `widechar' tests from `glib'.
+ # Check for wchar.h
+ AC_MSG_CHECKING(for wchar.h)
+-AC_TRY_CPP([#include <wchar.h>], gtk_ok=yes, gtk_ok=no)
+-if test $gtk_ok = yes; then
++AC_TRY_CPP([#include <wchar.h>
++ ],
++ gtk_ok="yes",
++ gtk_ok="no"
++)
++if test "$gtk_ok" = "yes"; then
+ AC_DEFINE(HAVE_WCHAR_H,1,[Define if wchar.h exists])
+ fi
+ AC_MSG_RESULT($gtk_ok)
+
+ # Check for wctype.h (for iswalnum)
+ AC_MSG_CHECKING(for wctype.h)
+-AC_TRY_CPP([#include <wctype.h>], gtk_ok=yes, gtk_ok=no)
+-if test $gtk_ok = yes; then
++AC_TRY_CPP([#include <wctype.h>], gtk_ok="yes", gtk_ok="no")
++if test "$gtk_ok" = "yes"; then
+ AC_DEFINE(HAVE_WCTYPE_H,1,[Define if wctype.h exists])
+ fi
+ AC_MSG_RESULT($gtk_ok)
+
+ # in Solaris 2.5, `iswalnum' is in -lw
+ GDK_WLIBS=
+-AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
++AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS="-lw")])
+
+ # The following is necessary for Linux libc-5.4.38
+ oLIBS="$LIBS"
+ LIBS="$LIBS $GDK_WLIBS"
+ AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
+-AC_TRY_LINK([#include <stdlib.h>],[
+-#if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
++AC_TRY_LINK([#include <stdlib.h>
++ ],
++ [#if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
+ # ifdef HAVE_WCTYPE_H
+ # include <wctype.h>
+ # else
+@@ -554,11 +546,13 @@
+ #else
+ # define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
+ #endif
+-iswalnum((wchar_t) 0);
+-], gtk_ok=yes, gtk_ok=no)
++ iswalnum((wchar_t) 0);],
++ gtk_ok="yes",
++ gtk_ok="no"
++)
+ LIBS="$oLIBS"
+
+-if test $gtk_ok = no; then
++if test "$gtk_ok" = "no"; then
+ AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Define if the wctype function is broken])
+ GDK_WLIBS=
+ fi
+@@ -580,5 +574,5 @@
+ gtk/Makefile
+ gtk/gtkfeatures.h
+ gdk.pc
+-gtk+.pc
+-], [chmod +x gtk-config])
++gtk+.pc],
++[chmod +x gtk-config])
+--- gtk+-1.2.10/gdk/Makefile.am.orig 2006-05-19 02:41:18.000000000 -0700
++++ gtk+-1.2.10/gdk/Makefile.am 2006-05-19 02:11:54.000000000 -0700
+@@ -21,12 +21,11 @@
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+ -release $(LT_RELEASE) \
+ -export-dynamic \
+- @GLIB_DEPLIBS@ \
+ @x_ldflags@ \
+- @x_libs@ \
+- -lm \
+ @STRIP_END@
+
++libgdk_la_LIBADD = @GLIB_DEPLIBS@ @x_libs@ -lm
++
+ #
+ # setup source file variables
+ #
+@@ -104,14 +103,13 @@
+ EXTRA_PROGRAMS = gxid
+ bin_PROGRAMS = @xinput_progs@
+ LDADDS = @STRIP_BEGIN@ \
+- @x_ldflags@ \
+ @x_libs@ \
+ @GLIB_LIBS@ \
+ -lm \
+ @STRIP_END@
+ gxid_SOURCES = gxid.c
+ gxid_LDADD = $(LDADDS)
+-
++gxid_LDFLAGS = @x_ldflags@
+
+ .PHONY: files
+
+--- gtk+-1.2.10/gtk/Makefile.am.orig 2006-05-25 07:40:45.000000000 -0700
++++ gtk+-1.2.10/gtk/Makefile.am 2006-05-25 07:43:20.000000000 -0700
+@@ -27,13 +27,15 @@
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+ -release $(LT_RELEASE) \
+ -export-dynamic \
+- @GLIB_DEPLIBS@ \
+ @x_ldflags@ \
+- @x_libs@ \
+- -lm \
+ @STRIP_END@
+-# $(top_builddir)/gdk/libgdk.la
+-
++libgtk_la_LIBADD = @STRIP_BEGIN@ \
++ $(top_builddir)/gdk/libgdk.la \
++ @x_libs@ \
++ @GDK_WLIBS@ \
++ @GLIB_LIBS@ \
++ -lm \
++ @STRIP_END@
+
+ #
+ # setup source file variables
+@@ -374,14 +376,17 @@
+
+
+ gtkconfdir = $(sysconfdir)/gtk
+-gtkconf_DATA = gtkrc.az gtkrc.he gtkrc.hy gtkrc.ja \
++# removed references to non-existent gtkrc files - tsh
++gtkconf_DATA = \
++ gtkrc.az gtkrc.he gtkrc.hy gtkrc.ja \
+ gtkrc.ko gtkrc.ru gtkrc.th gtkrc.uk \
+- gtkrc.utf-8 gtkrc.iso-8859-2 \
+- gtkrc.iso-8859-3 gtkrc.iso-8859-5 gtkrc.iso-8859-7 \
+- gtkrc.iso-8859-9 gtkrc.iso-8859-13 gtkrc.iso-8859-14 \
+- gtkrc.iso-8859-15 gtkrc.zh_CN gtkrc.zh_TW.big5 \
+- gtkrc.ka_GE.georgianacademy gtkrc.ka_GE.georgianps \
+- gtkrc.vi_VN.tcvn gtkrc.vi_VN.viscii gtkrc.cp1251 gtkrc.cp1255
++ gtkrc.iso-8859-2 gtkrc.iso-8859-5 \
++ gtkrc.iso-8859-13 gtkrc.iso-8859-14 \
++ gtkrc.iso-8859-15 gtkrc.zh_TW.big5 \
++ gtkrc.zh_CN gtkrc.cp1251 gtkrc.cp1255 \
++ gtkrc.ka_GE.georgianacademy \
++ gtkrc.ka_GE.georgianps \
++ gtkrc.vi_VN.tcvn gtkrc.vi_VN.viscii
+
+ # We create a dummy theme for the default GTK+ theme
+ install-data-local:
+@@ -428,7 +433,6 @@
+ LDADDS = @STRIP_BEGIN@ \
+ libgtk.la \
+ $(top_builddir)/gdk/libgdk.la \
+- @x_ldflags@ \
+ @x_libs@ \
+ @GDK_WLIBS@ \
+ @GLIB_LIBS@ \
+@@ -441,12 +445,20 @@
+ testdnd_DEPENDENCIES = $(DEPS)
+ simple_DEPENDENCIES = $(DEPS)
+ #testthreads_DEPENDENCIES = $(DEPS)
++
+ testgtk_LDADD = $(LDADDS)
++testgtk_LDFLAGS=@x_ldflags@
+ testinput_LDADD = $(LDADDS)
++testinput_LDFLAGS = @x_ldflags@
+ testselection_LDADD = $(LDADDS)
++testselection_LDFLAGS = @x_ldflags@
+ testrgb_LDADD = $(LDADDS)
++testrgb_LDFLAGS = @x_ldflags@
+ testdnd_LDADD = $(LDADDS)
++testdnd_LDFLAGS = @x_ldflags@
+ simple_LDADD = $(LDADDS)
++simple_LDFLAGS = @x_ldflags@
++
+ #testthreads_LDADD = $(LDADDS)
+
+ .PHONY: files test test-debug
diff --git a/x11-libs/gtk+/files/gtk+-1.2.10-automake-1.13.patch b/x11-libs/gtk+/files/gtk+-1.2.10-automake-1.13.patch
new file mode 100644
index 000000000000..6df2032c1b7a
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-1.2.10-automake-1.13.patch
@@ -0,0 +1,16 @@
+Fix build failure with automake-1.13; fixed upstream in >=2.24.15 and >=3.0
+https://bugs.gentoo.org/467520
+
+diff --git a/configure.in b/configure.in
+index 27294c8..798a259 100644
+--- a/configure.in
++++ b/configure.in
+@@ -61,7 +61,7 @@ dnl Initialize automake stuff
+ AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
+
+ # Specify a configuration file
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADERS([config.h])
+
+ dnl Initialize libtool
+ AC_PROG_LIBTOOL
diff --git a/x11-libs/gtk+/files/gtk+-1.2.10-automake.patch b/x11-libs/gtk+/files/gtk+-1.2.10-automake.patch
new file mode 100644
index 000000000000..e7b4474618bd
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-1.2.10-automake.patch
@@ -0,0 +1,126 @@
+--- docs/Makefile.am
++++ docs/Makefile.am
+@@ -166,7 +166,7 @@
+ echo $$p; \
+ done
+
+-EXTRA_DIST += \
++EXTRA_DIST = \
+ Changes-1.2.txt \
+ debugging.txt \
+ developers.txt \
+--- gdk/Makefile.am
++++ gdk/Makefile.am
+@@ -30,7 +30,7 @@
+ # setup source file variables
+ #
+ # GDK header files for public installation (non-generated)
+-gdk_public_h_sources = @STRIP_BEGIN@ \
++gdk_public_h_sources = \
+ gdk.h \
+ gdkcursors.h \
+ gdkrgb.h \
+@@ -38,9 +38,8 @@
+ gdkkeysyms.h \
+ gdkprivate.h \
+ gdktypes.h \
+- gdkx.h \
+-@STRIP_END@
+-gdk_c_sources = @STRIP_BEGIN@ \
++ gdkx.h
++gdk_c_sources = \
+ gdk.c \
+ gdkcc.c \
+ gdkcolor.c \
+@@ -71,8 +70,7 @@
+ MwmUtil.h \
+ gxid_lib.h \
+ gxid_proto.h \
+- gxid_lib.c \
+-@STRIP_END@
++ gxid_lib.c
+
+ #
+ # setup GDK sources and their dependancies
+@@ -79,10 +79,6 @@
+ #
+ libgdkinclude_HEADERS = $(gdk_public_h_sources)
+ libgdk_la_SOURCES = $(gdk_c_sources)
+-MAINTAINERCLEANFILES +=
+-EXTRA_HEADERS +=
+-EXTRA_DIST +=
+-EXTRA_DIST +=
+
+ #
+ # rules to generate built sources
+--- gtk/Makefile.am
++++ gtk/Makefile.am
+@@ -41,7 +41,7 @@
+ # setup source file variables
+ #
+ # GTK+ header files for public installation (non-generated)
+-gtk_public_h_sources = @STRIP_BEGIN@ \
++gtk_public_h_sources = \
+ gtk.h \
+ gtkaccelgroup.h \
+ gtkaccellabel.h \
+@@ -150,13 +150,12 @@
+ gtkvscrollbar.h \
+ gtkvseparator.h \
+ gtkwidget.h \
+- gtkwindow.h \
+-@STRIP_END@
++ gtkwindow.h
+ # GTK+ header files that don't get installed
+ gtk_private_h_sources = @STRIP_BEGIN@ \
+ @STRIP_END@
+ # GTK+ C sources to build the library from
+-gtk_c_sources = @STRIP_BEGIN@ \
++gtk_c_sources = \
+ gtkaccelgroup.c \
+ gtkaccellabel.c \
+ gtkadjustment.c \
+@@ -264,8 +263,7 @@
+ gtkwidget.c \
+ gtkwindow.c \
+ fnmatch.c \
+- fnmatch.h \
+-@STRIP_END@
++ fnmatch.h
+ # we use our own built_sources variable rules to avoid automake's
+ # BUILT_SOURCES oddities
+ # we generate frequently rebuild files piggyback on a stamp file, so sources
+@@ -284,10 +282,9 @@
+ gtk.defs \
+ @STRIP_END@
+ # built sources that get installed with the header files
+-gtk_built_public_sources = @STRIP_BEGIN@ \
++gtk_built_public_sources = \
+ gtkmarshal.h \
+- gtktypebuiltins.h \
+-@STRIP_END@
++ gtktypebuiltins.h
+ # non-header sources (headers should be specified in the above variables)
+ # that don't serve as direct make target sources, i.e. they don't have
+ # their own .lo rules and don't get publically installed
+@@ -313,9 +313,8 @@
+ #
+ libgtkinclude_HEADERS = $(gtk_public_h_sources) $(gtk_built_public_sources) gtkfeatures.h
+ libgtk_la_SOURCES = $(gtk_c_sources)
+-MAINTAINERCLEANFILES += $(gtk_built_public_sources) $(gtk_built_sources)
+-EXTRA_HEADERS +=
+-EXTRA_DIST += $(gtk_private_h_sources)
++MAINTAINERCLEANFILES = $(gtk_built_public_sources) $(gtk_built_sources)
++EXTRA_DIST = $(gtk_private_h_sources)
+ EXTRA_DIST += $(gtk_built_sources) $(gtk_built_public_sources) $(gtk_extra_sources)
+
+ #
+@@ -323,7 +322,7 @@
+ #
+ # setup autogeneration dependancies
+ gen_sources = xgen-gdef xgen-gtbh xgen-gtbvc xgen-gtbic xgen-gtbec xgen-gmh xgen-gmc
+-CLEANFILES += $(gen_sources)
++CLEANFILES = $(gen_sources)
+ COPYING: $(gtk_built_public_sources) $(gtk_built_sources)
+ $(OBJECTS): COPYING # this is our oldest-source-stamp
+ # initial creation of the real stamp-* files
diff --git a/x11-libs/gtk+/files/gtk+-1.2.10-cleanup.patch b/x11-libs/gtk+/files/gtk+-1.2.10-cleanup.patch
new file mode 100644
index 000000000000..7846c17aad0c
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-1.2.10-cleanup.patch
@@ -0,0 +1,13 @@
+pull in string prototypes
+
+--- gdk/gdkinputcommon.h
++++ gdk/gdkinputcommon.h
+@@ -24,6 +24,8 @@
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ */
+
++#include <string.h>
++
+ #if defined(XINPUT_GXI) || defined(XINPUT_XFREE)
+
+ /* Forward declarations */
diff --git a/x11-libs/gtk+/files/gtk+-1.2.10-m4.patch b/x11-libs/gtk+/files/gtk+-1.2.10-m4.patch
new file mode 100644
index 000000000000..37fb7c263096
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-1.2.10-m4.patch
@@ -0,0 +1,9 @@
+Fix aclocal warnings:
+/usr/share/aclocal/gtk.m4:7: warning: underquoted definition of AM_PATH_GTK
+--- gtk+-1.2.10/gtk.m4
++++ gtk+-1.2.10/gtk.m4
+@@ -6,3 +6,3 @@
+ dnl
+-AC_DEFUN(AM_PATH_GTK,
++AC_DEFUN([AM_PATH_GTK],
+ [dnl
diff --git a/x11-libs/gtk+/files/gtk+-2.24.20-darwin-quartz-pasteboard.patch b/x11-libs/gtk+/files/gtk+-2.24.20-darwin-quartz-pasteboard.patch
new file mode 100644
index 000000000000..a07e6537d22e
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-2.24.20-darwin-quartz-pasteboard.patch
@@ -0,0 +1,15 @@
+gdk_quartz_target_to_pasteboard_type_libgtk_only was moved in
+a269c2f8d26a588c4b61ad605ef496e89759cc03
+https://mail.gnome.org/archives/commits-list/2013-March/msg20203.html
+https://bugzilla.gnome.org/show_bug.cgi?id=704766
+
+--- gtk/gtkclipboard-quartz.c
++++ gtk/gtkclipboard-quartz.c
+@@ -33,6 +33,7 @@
+ #include "gtktextbuffer.h"
+ #include "gtkquartz.h"
+ #include "gtkalias.h"
++#include "quartz/gdkquartz.h"
+
+ enum {
+ OWNER_CHANGE,
diff --git a/x11-libs/gtk+/files/gtk+-2.24.24-out-of-source.patch b/x11-libs/gtk+/files/gtk+-2.24.24-out-of-source.patch
new file mode 100644
index 000000000000..451233ca812f
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-2.24.24-out-of-source.patch
@@ -0,0 +1,33 @@
+From 9e0f33144aff8d792ab105927cf686eda0afd25e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 18 May 2014 10:50:05 +0200
+Subject: [PATCH] aliasfilecheck: check for sources both in builddir & srcdir.
+
+The $gtk_all_c_sources variable contains both supplied and generated
+sources. The former reside in $srcdir, the latter in the build directory
+(cwd).
+
+In order to handle both kinds properly, first try to find each source
+file in cwd, and then fallback to $srcdir. This makes it possible to use
+out-of-source builds, and guarantees that fresh-built source files will
+be used rather than pre-generated copies included in the distribution
+tarball.
+---
+ gtk/aliasfilescheck.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gtk/aliasfilescheck.sh b/gtk/aliasfilescheck.sh
+index 31b49d4..3636a82 100755
+--- a/gtk/aliasfilescheck.sh
++++ b/gtk/aliasfilescheck.sh
+@@ -6,6 +6,6 @@ if test "x$gtk_all_c_sources" = x; then
+ fi
+
+ grep 'IN_FILE' ${srcdir-.}/gtk.symbols | sed 's/.*(//;s/).*//' | grep __ | sort -u > expected-files
+-{ cd ${srcdir-.}; grep '^ *# *define __' $gtk_all_c_sources; } | sed 's/.*define //;s/ *$//' | sort > actual-files
++{ for f in $gtk_all_c_sources; do if test -f ${f}; then grep '^ *# *define __' ${f}; else grep '^ *# *define __' "${srcdir-.}"/${f}; fi; done } | sed 's/.*define //;s/ *$//' | sort > actual-files
+
+ diff expected-files actual-files && rm -f expected-files actual-files
+--
+1.9.3
+
diff --git a/x11-libs/gtk+/files/gtk+-2.24.27-update-icon-cache.patch b/x11-libs/gtk+/files/gtk+-2.24.27-update-icon-cache.patch
new file mode 100644
index 000000000000..f88e02e53500
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-2.24.27-update-icon-cache.patch
@@ -0,0 +1,64 @@
+From 2537d97e4685767ce22834c0dd24d37ba715fb52 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sat, 9 May 2015 23:30:58 +0200
+Subject: [PATCH] Always use external gtk-update-icon-cache
+
+---
+ configure.ac | 8 +++-----
+ gtk/Makefile.am | 13 ++-----------
+ 2 files changed, 5 insertions(+), 16 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2671a3d..fa46004 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -913,11 +913,9 @@ dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
+
+ AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
+
+-if test $cross_compiling = yes; then
+- AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
+- if test x$GTK_UPDATE_ICON_CACHE = xno; then
+- REBUILD_PNGS=#
+- fi
++AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
++if test x$GTK_UPDATE_ICON_CACHE = xno; then
++ REBUILD_PNGS=#
+ fi
+
+ AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
+diff --git a/gtk/Makefile.am b/gtk/Makefile.am
+index 248220d..42e4c23 100644
+--- a/gtk/Makefile.am
++++ b/gtk/Makefile.am
+@@ -1039,8 +1039,7 @@ endif
+ # Installed tools
+ #
+ bin_PROGRAMS = \
+- gtk-query-immodules-2.0 \
+- gtk-update-icon-cache
++ gtk-query-immodules-2.0
+
+ bin_SCRIPTS = gtk-builder-convert
+
+@@ -1390,16 +1389,8 @@ stamp-icons: $(STOCK_ICONS)
+ ) done \
+ && touch stamp-icons
+
+-if CROSS_COMPILING
+-gtk_update_icon_cache_program = $(GTK_UPDATE_ICON_CACHE)
+-else
+-gtk_update_icon_cache_program = \
+- ./gtk-update-icon-cache
+-endif
+-
+ gtkbuiltincache.h: @REBUILD@ stamp-icons
+- $(MAKE) $(AM_MAKEFLAGS) gtk-update-icon-cache$(EXEEXT)
+- $(gtk_update_icon_cache_program) --force --ignore-theme-index \
++ $(GTK_UPDATE_ICON_CACHE) --force --ignore-theme-index \
+ --include-image-data \
+ --source builtin_icons stock-icons > gtkbuiltincache.h.tmp && \
+ mv gtkbuiltincache.h.tmp gtkbuiltincache.h
+--
+2.3.6
+
diff --git a/x11-libs/gtk+/files/gtk+-3.12.2-darwin10.6.patch b/x11-libs/gtk+/files/gtk+-3.12.2-darwin10.6.patch
new file mode 100644
index 000000000000..3955677f4c35
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-3.12.2-darwin10.6.patch
@@ -0,0 +1,39 @@
+Fix for Mac Os 10.7
+
+src_compile:
+gtkapplication-quartz-menu.c:265: error: incompatible type for argument 1 of 'roundf'
+make[4]: *** [libgtk_3_la-gtkapplication-quartz-menu.lo] Error 1
+
+More info:
+https://trac.macports.org/ticket/43283
+https://bugzilla.gnome.org/show_bug.cgi?id=727366
+https://bugs.gentoo.org/show_bug.cgi?id=519058
+
+--- gtk/gtkapplication-quartz-menu.c.orig 2014-05-08 01:40:39.000000000 +0200
++++ gtk/gtkapplication-quartz-menu.c 2014-05-15 11:16:09.000000000 +0200
+@@ -30,6 +30,16 @@
+
+ #import <Cocoa/Cocoa.h>
+
++#if !defined(MAC_OS_X_VERSION_10_7) || \
++MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
++
++@interface NSScreen (LionAPI)
++- (CGFloat)backingScaleFactor;
++- (NSRect)convertRectToBacking:(NSRect)aRect;
++@end
++
++#endif // 10.7
++
+ #define ICON_SIZE 16
+
+ #define BLACK "#000000"
+@@ -262,7 +272,7 @@
+ }
+
+ theme = gtk_icon_theme_get_default ();
+- scale = roundf ([[NSScreen mainScreen] backingScaleFactor]);
++ scale = [[NSScreen mainScreen] respondsToSelector:@selector(backingScaleFactor)] ? roundf ([[NSScreen mainScreen] backingScaleFactor]) : 1.;
+ info = gtk_icon_theme_lookup_by_gicon_for_scale (theme, icon, ICON_SIZE, scale, GTK_ICON_LOOKUP_USE_BUILTIN);
+
+ if (info != NULL)
diff --git a/x11-libs/gtk+/files/gtk+-3.16.2-remove_update-icon-cache.patch b/x11-libs/gtk+/files/gtk+-3.16.2-remove_update-icon-cache.patch
new file mode 100644
index 000000000000..b121dd57281f
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-3.16.2-remove_update-icon-cache.patch
@@ -0,0 +1,24 @@
+From d83443d10381a53637226b937094454951de44c1 Mon Sep 17 00:00:00 2001
+From: Ole Reifschneider <tranquility@gentoo.org>
+Date: Thu, 16 Apr 2015 23:51:51 +0200
+Subject: [PATCH] Remove update-icon-cache from bin_PROGRAMS
+
+---
+ gtk/Makefile.am | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/gtk/Makefile.am b/gtk/Makefile.am
+index 83dfe31..a5afc03 100644
+--- a/gtk/Makefile.am
++++ b/gtk/Makefile.am
+@@ -1380,7 +1380,6 @@ endif
+ #
+ bin_PROGRAMS = \
+ gtk-query-immodules-3.0 \
+- gtk-update-icon-cache \
+ gtk-encode-symbolic-svg \
+ gtk-launch
+
+--
+2.0.5
+
diff --git a/x11-libs/gtk+/files/gtk+-non-bash-support.patch b/x11-libs/gtk+/files/gtk+-non-bash-support.patch
new file mode 100644
index 000000000000..a1aac42c9f91
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-non-bash-support.patch
@@ -0,0 +1,56 @@
+From 43a4a28cdc60ac7347bb89f84cf049cb3401621d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Cardona?= <remi@gentoo.org>
+Date: Sun, 26 Oct 2014 01:59:33 +0400
+Subject: [PATCH] gtk/Makefile.am: Remove bashisms
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+- improve portability of ECHO
+- remove use of shopt
+
+https://bugzilla.gnome.org/show_bug.cgi?id=738835
+
+From: Alexander Tsoy <alexander@tsoy.me>
+Signed-off-by: Rémi Cardona <remi@gentoo.org>
+---
+ gtk/Makefile.am | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+diff --git a/gtk/Makefile.am b/gtk/Makefile.am
+index 96c651a..b1478ce 100644
+--- a/gtk/Makefile.am
++++ b/gtk/Makefile.am
+@@ -19,11 +19,7 @@ GTK_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %
+ endif
+
+ SUBDIRS = inspector native .
+-if OS_DARWIN
+- ECHO="echo"
+-else
+- ECHO=echo -e
+-endif
++ECHO=printf '%b\n'
+
+ if HAVE_CLOUDPRINT
+ if HAVE_PAPI_CUPS
+@@ -1405,12 +1401,13 @@ gtk.gresource.xml: Makefile.am
+ n=`basename $$f`; \
+ $(ECHO) " <file compressed=\"true\">ui/$$n</file>" >> $@; \
+ done; \
+- shopt -s nullglob; \
+ for s in 16x16 22x22 24x24 32x32 48x48; do \
+ for c in actions status; do \
+ for f in $(srcdir)/resources/icons/$$s/$$c/*.png; do \
+- n=`basename $$f`; \
+- $(ECHO) " <file>icons/$$s/$$c/$$n</file>" >> $@; \
++ if [ -e "$$f" ] ; then \
++ n=`basename $$f`; \
++ $(ECHO) " <file>icons/$$s/$$c/$$n</file>" >> $@; \
++ fi; \
+ done; \
+ done; \
+ done; \
+--
+2.3.0
+
diff --git a/x11-libs/gtk+/files/gtkrc b/x11-libs/gtk+/files/gtkrc
new file mode 100644
index 000000000000..8d1783431d9c
--- /dev/null
+++ b/x11-libs/gtk+/files/gtkrc
@@ -0,0 +1,39 @@
+style "default"
+
+{
+ font = "-*-lucida-medium-r-normal-*-*-100-*-*-*-*-*-*"
+}
+
+style "button" = "default"
+
+{
+ bg[PRELIGHT] = { 0.7, 0.7, 0.9 }
+}
+
+style "treeitem"
+{
+bg[ACTIVE] = { 0.7, 0.7, 0.9 }
+}
+
+style "scrollbar" = "button"
+{
+ bg[ACTIVE] = {0.6, 0.6, 0.6 }
+}
+
+style "status" {
+ bg[PRELIGHT] = { 0.3, 1.0, 0.3 }
+}
+
+style "gtk-tooltips" {
+ bg[NORMAL] = "#ffff60"
+}
+
+class "GtkWidget" style "default"
+class "GtkButton" style "button"
+class "GtkItem" style "button"
+class "GtkProgressBar" style "status"
+class "GtkScrollbar" style "scrollbar"
+class "GtkTreeItem" style "treeitem"
+widget "gtk-tooltips" style "gtk-tooltips"
+
+
diff --git a/x11-libs/gtk+/files/settings.ini b/x11-libs/gtk+/files/settings.ini
new file mode 100644
index 000000000000..a65c0a818dbc
--- /dev/null
+++ b/x11-libs/gtk+/files/settings.ini
@@ -0,0 +1,4 @@
+[Settings]
+gtk-theme-name = Adwaita
+gtk-icon-theme-name = gnome
+gtk-cursor-theme-name = Adwaita