commit 1ff05983eea1b294857093c565c5440f6acee523a6ba46d7e506d96a4dc123b5
Author: OBS User autobuild <null@suse.de>
Date:   Tue Aug 24 20:32:30 2010 +0000

    Accepting request 45092 from GNOME:Factory
    
    Copy from GNOME:Factory/gtk3 based on submit request 45092 from user vuntz
    
    OBS-URL: https://build.opensuse.org/request/show/45092
    OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gtk3?expand=0&rev=1

diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..9b03811
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,23 @@
+## Default LFS
+*.7z filter=lfs diff=lfs merge=lfs -text
+*.bsp filter=lfs diff=lfs merge=lfs -text
+*.bz2 filter=lfs diff=lfs merge=lfs -text
+*.gem filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.jar filter=lfs diff=lfs merge=lfs -text
+*.lz filter=lfs diff=lfs merge=lfs -text
+*.lzma filter=lfs diff=lfs merge=lfs -text
+*.obscpio filter=lfs diff=lfs merge=lfs -text
+*.oxt filter=lfs diff=lfs merge=lfs -text
+*.pdf filter=lfs diff=lfs merge=lfs -text
+*.png filter=lfs diff=lfs merge=lfs -text
+*.rpm filter=lfs diff=lfs merge=lfs -text
+*.tbz filter=lfs diff=lfs merge=lfs -text
+*.tbz2 filter=lfs diff=lfs merge=lfs -text
+*.tgz filter=lfs diff=lfs merge=lfs -text
+*.ttf filter=lfs diff=lfs merge=lfs -text
+*.txz filter=lfs diff=lfs merge=lfs -text
+*.whl filter=lfs diff=lfs merge=lfs -text
+*.xz filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.zst filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..57affb6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.osc
diff --git a/README.SUSE b/README.SUSE
new file mode 100644
index 0000000..559d012
--- /dev/null
+++ b/README.SUSE
@@ -0,0 +1,12 @@
+README for bi-architecture 64 bit platforms users
+=================================================
+
+The GTK_PATH64 environment variable is used instead of GTK_PATH
+for the 64 bit library. See the GTK+ documentation for how to use
+GTK_PATH.
+
+The GTK+ IM modules are different, based on the architecture of
+the package. To update the cache of IM modules, run:
+
+ + for 32 bit version: /usr/bin/gtk-query-immodules-3.0
+ + for 64 bit version: /usr/bin/gtk-query-immodules-3.0-64
diff --git a/baselibs.conf b/baselibs.conf
new file mode 100644
index 0000000..786831b
--- /dev/null
+++ b/baselibs.conf
@@ -0,0 +1,6 @@
+gtk3-tools
+  +/usr/bin/gtk-query-immodules-3.0(-64)?
+  post "if [ $1 == 1 ]; then test -d %{_libdir}/gtk-3.0/3.0.0; if test $? -eq 0; then %{_bindir}/gtk-query-immodules-3.0 --update-cache; fi; fi"
+libgtk-3_0-0
+  provides "gtk3-<targettype> = <version>"
+  post "test -f %{_bindir}/gtk-query-immodules-3.0 && %{_bindir}/gtk-query-immodules-3.0 --update-cache"
diff --git a/gtk+-2.90.5.tar.bz2 b/gtk+-2.90.5.tar.bz2
new file mode 100644
index 0000000..80aa863
--- /dev/null
+++ b/gtk+-2.90.5.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c3c2b461c5a9e0c07dcc320d6362728284e8294f2cd77428d51694c15681264
+size 17028893
diff --git a/gtk3-GTK_PATH64.patch b/gtk3-GTK_PATH64.patch
new file mode 100644
index 0000000..0750b7d
--- /dev/null
+++ b/gtk3-GTK_PATH64.patch
@@ -0,0 +1,13 @@
+Index: gtk+-2.90.5/gtk/gtkmodules.c
+===================================================================
+--- gtk+-2.90.5.orig/gtk/gtkmodules.c
++++ gtk+-2.90.5/gtk/gtkmodules.c
+@@ -67,7 +67,7 @@ get_module_path (void)
+   if (home_dir)
+     home_gtk_dir = g_build_filename (home_dir, ".gtk-3.0", NULL);
+ 
+-  module_path_env = g_getenv ("GTK_PATH");
++  module_path_env = g_getenv ("GTK_PATH64");
+   exe_prefix = g_getenv ("GTK_EXE_PREFIX");
+ 
+   if (exe_prefix)
diff --git a/gtk3-bnc129753-localize-font-style-name.patch b/gtk3-bnc129753-localize-font-style-name.patch
new file mode 100644
index 0000000..51e0a2a
--- /dev/null
+++ b/gtk3-bnc129753-localize-font-style-name.patch
@@ -0,0 +1,48 @@
+Index: gtk+-2.19.0/gtk/gtkfontbutton.c
+===================================================================
+--- gtk+-2.19.0.orig/gtk/gtkfontbutton.c
++++ gtk+-2.19.0/gtk/gtkfontbutton.c
+@@ -893,7 +893,7 @@ gtk_font_button_update_font_info (GtkFon
+   if (style == NULL || !g_ascii_strcasecmp (style, "Regular"))
+     family_style = g_strdup (family);
+   else
+-    family_style = g_strdup_printf ("%s %s", family, style);
++    family_style = g_strdup_printf ("%s %s", family, _(style));
+   
+   gtk_label_set_text (GTK_LABEL (font_button->priv->font_label), family_style);
+   
+Index: gtk+-2.19.0/gtk/gtkfontsel.c
+===================================================================
+--- gtk+-2.19.0.orig/gtk/gtkfontsel.c
++++ gtk+-2.19.0/gtk/gtkfontsel.c
+@@ -76,6 +76,21 @@
+ 
+ #define DEFAULT_FONT_NAME "Sans 10"
+ 
++/* These are the commonly used font styles, listed here only for
++   translations. */
++#define FONT_STYLE_ULTRA_LIGHT  N_("Ultra-Light")
++#define FONT_STYLE_LIGHT        N_("Light")
++#define FONT_STYLE_MEDIUM       N_("Medium")
++#define FONT_STYLE_NORMAL       N_("Normal")
++#define FONT_STYLE_REGULAR      N_("Regular")
++#define FONT_STYLE_ITALIC       N_("Italic")
++#define FONT_STYLE_OBLIQUE      N_("Oblique")
++#define FONT_STYLE_SEMI_BOLD    N_("Semi-Bold")
++#define FONT_STYLE_BOLD         N_("Bold")
++#define FONT_STYLE_ULTRA_BOLD   N_("Ultra-Bold")
++#define FONT_STYLE_HEAVY        N_("Heavy")
++#define FONT_STYLE_BOLD_ITALIC  N_("Bold Italic")
++
+ /* This is the initial and maximum height of the preview entry (it expands
+    when large font sizes are selected). Initial height is also the minimum. */
+ #define INITIAL_PREVIEW_HEIGHT 44
+@@ -869,7 +884,7 @@ gtk_font_selection_show_available_styles
+       gtk_list_store_append (model, &iter);
+       gtk_list_store_set (model, &iter,
+ 			  FACE_COLUMN, faces[i],
+-			  FACE_NAME_COLUMN, str,
++			  FACE_NAME_COLUMN, _(str),
+ 			  -1);
+ 
+       if (i == 0)
diff --git a/gtk3-bnc130159-bgo319483-async-font-selection.patch b/gtk3-bnc130159-bgo319483-async-font-selection.patch
new file mode 100644
index 0000000..668fbff
--- /dev/null
+++ b/gtk3-bnc130159-bgo319483-async-font-selection.patch
@@ -0,0 +1,267 @@
+Index: gtk+-2.16.0/gtk/gtkfontsel.c
+===================================================================
+--- gtk+-2.16.0.orig/gtk/gtkfontsel.c
++++ gtk+-2.16.0/gtk/gtkfontsel.c
+@@ -588,11 +588,24 @@ static void
+ gtk_font_selection_finalize (GObject *object)
+ {
+   GtkFontSelection *fontsel;
++  guint selection_timeout;
+   
+   g_return_if_fail (GTK_IS_FONT_SELECTION (object));
+   
+   fontsel = GTK_FONT_SELECTION (object);
+ 
++  selection_timeout = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "font-selection-timeout"));
++  if (selection_timeout)
++    g_source_remove (selection_timeout);
++
++  selection_timeout = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "style-selection-timeout"));
++  if (selection_timeout)
++    g_source_remove (selection_timeout);
++
++  selection_timeout = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "size-selection-timeout"));
++  if (selection_timeout)
++    g_source_remove (selection_timeout);
++
+   gtk_font_selection_ref_family (fontsel, NULL);
+   gtk_font_selection_ref_face (fontsel, NULL);
+ 
+@@ -631,6 +644,9 @@ gtk_font_selection_reload_fonts (GtkFont
+       PangoFontDescription *desc;
+       desc = gtk_font_selection_get_font_description (fontsel);
+ 
++       /* Disable selection timeout */ 
++       g_object_set_data (G_OBJECT (fontsel), "immediate-selection", GUINT_TO_POINTER (1));
++ 
+       gtk_font_selection_show_available_fonts (fontsel);
+       gtk_font_selection_show_available_sizes (fontsel, TRUE);
+       gtk_font_selection_show_available_styles (fontsel);
+@@ -638,6 +654,9 @@ gtk_font_selection_reload_fonts (GtkFont
+       gtk_font_selection_select_font_desc (fontsel, desc, NULL, NULL);
+       gtk_font_selection_scroll_to_selection (fontsel);
+ 
++      /* Enable selection timeout */ 
++      g_object_set_data (G_OBJECT (fontsel), "immediate-selection", GUINT_TO_POINTER (0));
++
+       pango_font_description_free (desc);
+     }
+ }
+@@ -714,10 +733,10 @@ gtk_font_selection_scroll_on_map (GtkWid
+ }
+ 
+ /* This is called when a family is selected in the list. */
+-static void
+-gtk_font_selection_select_font (GtkTreeSelection *selection,
+-				gpointer          data)
++static gboolean
++gtk_font_selection_real_select_font (gpointer data)
+ {
++  GtkTreeSelection *selection;
+   GtkFontSelection *fontsel;
+   GtkTreeModel *model;
+   GtkTreeIter iter;
+@@ -725,7 +744,11 @@ gtk_font_selection_select_font (GtkTreeS
+   const gchar *family_name;
+ #endif
+ 
++  if (!g_object_get_data (G_OBJECT (data), "immediate-selection"))
++    GDK_THREADS_ENTER ();
++
+   fontsel = GTK_FONT_SELECTION (data);
++  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (fontsel->family_list));
+ 
+   if (gtk_tree_selection_get_selected (selection, &model, &iter))
+     {
+@@ -747,6 +770,40 @@ gtk_font_selection_select_font (GtkTreeS
+ 
+       g_object_unref (family);
+     }
++
++  g_object_set_data (G_OBJECT (fontsel), "font-selection-timeout", GUINT_TO_POINTER (0));
++
++  if (!g_object_get_data (G_OBJECT (fontsel), "immediate-selection"))
++    GDK_THREADS_LEAVE ();
++
++  /* Remove ourselves */
++  return FALSE;
++}
++
++static void
++gtk_font_selection_select_font (GtkTreeSelection *selection,
++				gpointer          data)
++{
++  GtkFontSelection *fontsel;
++  guint selection_timeout = 0;
++  guint immediate_selection = 0;
++
++  fontsel = GTK_FONT_SELECTION (data);
++  selection_timeout = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "font-selection-timeout"));
++  immediate_selection = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "immediate-selection"));
++
++  if (selection_timeout)
++    g_source_remove (selection_timeout);
++
++  if (immediate_selection)
++    {
++      gtk_font_selection_real_select_font (data);
++    }
++  else
++    {
++      selection_timeout = g_timeout_add (200, gtk_font_selection_real_select_font, data);
++      g_object_set_data (G_OBJECT (fontsel), "font-selection-timeout", GUINT_TO_POINTER (selection_timeout));
++    }
+ }
+ 
+ static int
+@@ -949,14 +1006,20 @@ gtk_font_selection_select_best_style (Gt
+ 
+ 
+ /* This is called when a style is selected in the list. */
+-static void
+-gtk_font_selection_select_style (GtkTreeSelection *selection,
+-				 gpointer          data)
++static gboolean
++gtk_font_selection_real_select_style (gpointer data)
+ {
+-  GtkFontSelection *fontsel = GTK_FONT_SELECTION (data);
++  GtkTreeSelection *selection;
++  GtkFontSelection *fontsel;
+   GtkTreeModel *model;
+   GtkTreeIter iter;
+   
++  if (!g_object_get_data (G_OBJECT (data), "immediate-selection"))
++    GDK_THREADS_ENTER ();
++
++  fontsel = GTK_FONT_SELECTION (data);
++  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (fontsel->face_list));
++
+   if (gtk_tree_selection_get_selected (selection, &model, &iter))
+     {
+       PangoFontFace *face;
+@@ -968,6 +1031,40 @@ gtk_font_selection_select_style (GtkTree
+ 
+   gtk_font_selection_show_available_sizes (fontsel, FALSE);
+   gtk_font_selection_select_best_size (fontsel);
++
++  g_object_set_data (G_OBJECT (fontsel), "style-selection-timeout", GUINT_TO_POINTER (0));
++
++  if (!g_object_get_data (G_OBJECT (fontsel), "immediate-selection"))
++    GDK_THREADS_LEAVE ();
++
++  /* Remove ourselves */
++  return FALSE;
++}
++
++static void
++gtk_font_selection_select_style (GtkTreeSelection *selection,
++				 gpointer          data)
++{
++  GtkFontSelection *fontsel;
++  guint selection_timeout = 0;
++  guint immediate_selection = 0;
++
++  fontsel = GTK_FONT_SELECTION (data);
++  selection_timeout = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "style-selection-timeout"));
++  immediate_selection = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "immediate-selection"));
++
++  if (selection_timeout)
++    g_source_remove (selection_timeout);
++
++  if (immediate_selection)
++    {
++      gtk_font_selection_real_select_style (data);
++    }
++  else
++   {
++      selection_timeout = g_timeout_add (200, gtk_font_selection_real_select_style, data);
++      g_object_set_data (G_OBJECT (fontsel), "style-selection-timeout", GUINT_TO_POINTER (selection_timeout));
++   }
+ }
+ 
+ static void
+@@ -1100,22 +1197,60 @@ gtk_font_selection_size_focus_out (GtkWi
+ }
+ 
+ /* This is called when a size is selected in the list. */
+-static void
+-gtk_font_selection_select_size (GtkTreeSelection *selection,
+-				gpointer          data)
++static gboolean
++gtk_font_selection_real_select_size (gpointer data)
+ {
++  GtkTreeSelection *selection;
+   GtkFontSelection *fontsel;
+   GtkTreeModel *model;
+   GtkTreeIter iter;
+   gint new_size;
+   
++  if (!g_object_get_data (G_OBJECT (data), "immediate-selection"))
++    GDK_THREADS_ENTER ();
++
+   fontsel = GTK_FONT_SELECTION (data);
+-  
++  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (fontsel->size_list));
++
+   if (gtk_tree_selection_get_selected (selection, &model, &iter))
+     {
+       gtk_tree_model_get (model, &iter, SIZE_COLUMN, &new_size, -1);
+       gtk_font_selection_set_size (fontsel, new_size * PANGO_SCALE);
+     }
++
++  g_object_set_data (G_OBJECT (fontsel), "size-selection-timeout", GUINT_TO_POINTER (0));
++
++  if (!g_object_get_data (G_OBJECT (fontsel), "immediate-selection"))
++    GDK_THREADS_LEAVE ();
++
++  /* Remove ourselves */
++  return FALSE;
++}
++
++static void
++gtk_font_selection_select_size (GtkTreeSelection *selection,
++				gpointer          data)
++{
++  GtkFontSelection *fontsel;
++  guint selection_timeout = 0;
++  guint immediate_selection = 0;
++
++  fontsel = GTK_FONT_SELECTION (data);
++  selection_timeout = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "size-selection-timeout"));
++  immediate_selection = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (fontsel), "immediate-selection"));
++
++  if (selection_timeout)
++    g_source_remove (selection_timeout);
++
++  if (immediate_selection)
++    {
++      gtk_font_selection_real_select_size (data);
++    }
++  else
++    {
++      selection_timeout = g_timeout_add (200, gtk_font_selection_real_select_size, data);
++      g_object_set_data (G_OBJECT (fontsel), "size-selection-timeout", GUINT_TO_POINTER (selection_timeout));
++    }
+ }
+ 
+ static void
+@@ -1449,6 +1584,9 @@ gtk_font_selection_select_font_desc (Gtk
+   if (!new_family)
+     return FALSE;
+ 
++   /* Disable selection timeout */ 
++   g_object_set_data (G_OBJECT (fontsel), "immediate-selection", GUINT_TO_POINTER (1));
++ 
+   if (pfamily)
+     *pfamily = new_family;
+   else
+@@ -1499,6 +1637,9 @@ gtk_font_selection_select_font_desc (Gtk
+ 
+   gtk_font_selection_set_size (fontsel, pango_font_description_get_size (new_desc));
+ 
++  /* Enable selection timeout */ 
++  g_object_set_data (G_OBJECT (fontsel), "immediate-selection", GUINT_TO_POINTER (0));
++
+   return TRUE;
+ }
+ 
diff --git a/gtk3-path-local.patch b/gtk3-path-local.patch
new file mode 100644
index 0000000..78f252f
--- /dev/null
+++ b/gtk3-path-local.patch
@@ -0,0 +1,94 @@
+https://bugzilla.novell.com/show_bug.cgi?id=369696
+
+This patch adds support for /usr/local without setting of GTK_PATH.
+/usr/local path preference is a behavior expected by FHS.
+This patch cannot be upstreamed as is:
+- It needs to be platform dependent.
+- It needs to solve situation, when prefix != /usr (and maybe add /usr
+  to the search path, but after the default_dir).
+- There is no consensus for /usr/local/lib x /usr/local/lib64 yet.
+  Defaulting to /usr/local/lib64 may need /usr/local/share/config.site
+  file (bnc#382344).
+
+Note that the patch it does not provide solution for bi-arch path clash:
+http://bugzilla.gnome.org/show_bug.cgi?id=153848
+
+Index: gtk/gtkmodules.c
+===================================================================
+--- gtk/gtkmodules.c.orig
++++ gtk/gtkmodules.c
+@@ -58,6 +58,7 @@ get_module_path (void)
+   gchar *home_gtk_dir = NULL;
+   gchar *module_path;
+   gchar *default_dir;
++  gchar *local_dir;
+   static gchar **result = NULL;
+ 
+   if (result)
+@@ -71,25 +72,32 @@ get_module_path (void)
+   exe_prefix = g_getenv ("GTK_EXE_PREFIX");
+ 
+   if (exe_prefix)
++  {
+     default_dir = g_build_filename (exe_prefix, "lib", "gtk-3.0", NULL);
++    local_dir = g_build_filename ("/usr/local", "lib", "gtk-3.0", NULL);
++  }
+   else
++  {
+     default_dir = g_build_filename (GTK_LIBDIR, "gtk-3.0", NULL);
++    local_dir = g_build_filename ("/usr/local", SUSE_HACK_LIB, "gtk-3.0", NULL);
++  }
+ 
+   if (module_path_env && home_gtk_dir)
+     module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
+-				module_path_env, home_gtk_dir, default_dir, NULL);
++				module_path_env, home_gtk_dir, local_dir, default_dir, NULL);
+   else if (module_path_env)
+     module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
+-				module_path_env, default_dir, NULL);
++				module_path_env, local_dir, default_dir, NULL);
+   else if (home_gtk_dir)
+     module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
+-				home_gtk_dir, default_dir, NULL);
++				home_gtk_dir, local_dir, default_dir, NULL);
+   else
+     module_path = g_build_path (G_SEARCHPATH_SEPARATOR_S,
+-				default_dir, NULL);
++				local_dir, default_dir, NULL);
+ 
+   g_free (home_gtk_dir);
+   g_free (default_dir);
++  g_free (local_dir);
+ 
+   result = pango_split_file_list (module_path);
+   g_free (module_path);
+Index: gtk/Makefile.am
+===================================================================
+--- gtk/Makefile.am.orig
++++ gtk/Makefile.am
+@@ -32,8 +32,10 @@ endif
+ endif
+ endif
+ 
++suse_hack_lib=`echo $(libdir) | sed 's:.*/::'`
+ INCLUDES =						\
+ 	-DG_LOG_DOMAIN=\"Gtk\"				\
++	-DSUSE_HACK_LIB=\"$(suse_hack_lib)\"		\
+ 	-DGTK_LIBDIR=\"$(libdir)\"			\
+ 	-DGTK_DATADIR=\"$(datadir)\"			\
+ 	-DGTK_DATA_PREFIX=\"$(prefix)\"			\
+Index: gtk/Makefile.in
+===================================================================
+--- gtk/Makefile.in.orig
++++ gtk/Makefile.in
+@@ -926,8 +926,10 @@ DIST_SUBDIRS = theme-bits tests
+ @HAVE_CUPS_FALSE@@HAVE_PAPI_CUPS_FALSE@@HAVE_PAPI_TRUE@GTK_PRINT_BACKENDS = file,papi
+ @HAVE_CUPS_TRUE@@HAVE_PAPI_CUPS_FALSE@GTK_PRINT_BACKENDS = file,cups
+ @HAVE_PAPI_CUPS_TRUE@GTK_PRINT_BACKENDS = file,papi,cups
++suse_hack_lib=`echo $(libdir) | sed 's:.*/::'`
+ INCLUDES = \
+ 	-DG_LOG_DOMAIN=\"Gtk\"				\
++	-DSUSE_HACK_LIB=\"$(suse_hack_lib)\"		\
+ 	-DGTK_LIBDIR=\"$(libdir)\"			\
+ 	-DGTK_DATADIR=\"$(datadir)\"			\
+ 	-DGTK_DATA_PREFIX=\"$(prefix)\"			\
diff --git a/gtk3.changes b/gtk3.changes
new file mode 100644
index 0000000..edb3b00
--- /dev/null
+++ b/gtk3.changes
@@ -0,0 +1,47 @@
+-------------------------------------------------------------------
+Wed Jul 21 21:14:46 CEST 2010 - vuntz@opensuse.org
+
+- Clean up package.
+- Improve summaries and descriptions.
+- Remove _with_gobject define, which isn't needed anymore.
+- Add README.SUSE for biarch systems.
+- Add baselibs.conf.
+- Add missing cups-devel BuildRequires, as well as many explicit
+  pkgconfig() BuildRequires.
+- Rename gtk3 to gtk3-tools, and split some data files to
+  gtk3-data.
+- Make libgtk-3_0-0 provide gtk3, and add Requires for gtk3-tools
+  for the post/postun scriptlets. Also add Recommends for branding,
+  data and lang subpackages, as well as gvfs and hicolor-icon-theme
+  for improved user experience.
+- Add pyxml Requires to devel package, since it's needed by
+  gtk-builder-convert.
+- Remove hack on gtk-query-immodules-3.0 since there's no need to
+  make it parallel installable, and instead add back the change
+  from gtk2 needed for biarch, where gtk-query-immodules-3.0-64 is
+  used on 64bit systems.
+- Move %{_sysconfdir}/gtk-3.0/im-multipress.conf to libgtk-3_0-0
+  and gtk-builder-convert-3.0 to devel subpackage.
+- Add patches based on the gtk2 package:
+  + gtk3-GTK_PATH64.patch: contains the remaining part of
+    gtk64.patch, to use the GTK_PATH64 environment variable on
+    64bit systems
+  + gtk3-path-local.patch: based on gtk-path-local.patch
+  + gtk3-bnc129753-localize-font-style-name.patch: based on
+    bugzilla-129753-gtk+-2.8.9-localize-font-style-name.diff
+  + gtk3-bnc130159-bgo319483-async-font-selection.patch: based on
+    gtk2-bnc130159-bgo319483-async-selection-in-gtk-font-selection.diff
+- Add gnome-patch-translation support because of
+  gtk3-bnc129753-localize-font-style-name.patch.
+- Comments on patches not brought from the gtk2 package:
+  + bugzilla-131498-allow-xim-for-all-languages.patch: this was a
+    patch to make it possible to set input to Japanese characters
+    on 32bit applications running on a 64bit system. This is
+    needed because somehow, scim-32bit is not installed by default.
+    The right fix is to have scim-32bit installed by default, then.
+
+-------------------------------------------------------------------
+Wed Jul  7 13:29:32 UTC 2010 - dimstar@opensuse.org
+
+- Initial package of GTK+ 3.0
+
diff --git a/gtk3.spec b/gtk3.spec
new file mode 100644
index 0000000..2986af3
--- /dev/null
+++ b/gtk3.spec
@@ -0,0 +1,276 @@
+#
+# spec file for package gtk3 (Version 2.90.5)
+#
+# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2010 Dominique Leuenebrger, Amsterdam, Netherlands
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
+
+
+
+Name:           gtk3
+%define _name gtk+
+Version:        2.90.5
+Release:        1
+# FIXME: 2.90.5 doesn't compile with parallel build (bgo#624304). Check if this is still true for later versions.
+License:        LGPLv2.1+
+Summary:        The GTK+ toolkit library (version 3)
+Url:            http://www.gtk.org/
+Group:          System/Libraries
+Source:         ftp://ftp.gnome.org/pub/GNOME/sources/%{_name}/2.90/%{_name}-%{version}.tar.bz2
+Source1:        README.SUSE
+Source2:        gtkrc
+Source99:       baselibs.conf
+# PATCH-FIX-OPENSUSE gtk3-GTK_PATH64.patch sbrabec@novell.com - 64-bit dual install. Use GTK_PATH64 environment variable instead of GTK_PATH
+Patch0:         gtk3-GTK_PATH64.patch
+# PATCH-FIX-OPENSUSE gtk3-path-local.patch Search in /usr/local/%{_lib} by default. bnc369696 bgo534474
+Patch1:         gtk3-path-local.patch
+# PATCH-FEATURE-UPSTREAM gtk3-bnc129753-localize-font-style-name.patch bnc129753 bgo319484 mfabian@novell.com - Translate the font styles in the GUI
+Patch2:         gtk3-bnc129753-localize-font-style-name.patch
+# PATCH-FIX-UPSTREAM gtk3-bnc130159-bgo319483-async-font-selection.patch bnc130159 bgo319483 federico@novell.com - Load fonts asynchronously in GtkFontSelection to make it appear faster for CJK languages
+Patch3:         gtk3-bnc130159-bgo319483-async-font-selection.patch
+BuildRequires:  fdupes
+BuildRequires:  cups-devel
+BuildRequires:  gnome-patch-translation
+BuildRequires:  pkgconfig(atk)
+BuildRequires:  pkgconfig(cairo)
+BuildRequires:  pkgconfig(fontconfig)
+BuildRequires:  pkgconfig(gdk-pixbuf-2.0) >= 2.21.0
+BuildRequires:  pkgconfig(glib-2.0)
+BuildRequires:  pkgconfig(gobject-introspection-1.0)
+BuildRequires:  pkgconfig(pango)
+BuildRequires:  pkgconfig(x11)
+BuildRequires:  pkgconfig(xcomposite)
+BuildRequires:  pkgconfig(xcursor)
+BuildRequires:  pkgconfig(xdamage)
+BuildRequires:  pkgconfig(xext)
+BuildRequires:  pkgconfig(xfixes)
+BuildRequires:  pkgconfig(xi)
+BuildRequires:  pkgconfig(xinerama)
+BuildRequires:  pkgconfig(xrandr)
+BuildRequires:  pkgconfig(xrender)
+BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+
+%description
+GTK+ is a multi-platform toolkit for creating graphical user interfaces.
+Offering a complete set of widgets, GTK+ is suitable for projects
+ranging from small one-off projects to complete application suites.
+
+%package -n libgtk-3_0-0
+License:        LGPLv2.1+
+Summary:        The GTK+ toolkit library (version 3)
+Group:          System/Libraries
+# Provide %{name} to make the lang package installable
+Provides:       %{name} = %{version}
+Requires(post): %{name}-tools
+Requires(postun): %{name}-tools
+# gtk+ can work without branding/data/translations. Built in defaults will be used then.
+Recommends:     %{name}-branding
+Recommends:     %{name}-data = %{version}
+Recommends:     %{name}-lang = %{version}
+Recommends:     gvfs
+Recommends:     hicolor-icon-theme
+
+%description -n libgtk-3_0-0
+GTK+ is a multi-platform toolkit for creating graphical user interfaces.
+Offering a complete set of widgets, GTK+ is suitable for projects
+ranging from small one-off projects to complete application suites.
+
+%package tools
+License:        LGPLv2.1+
+Summary:        The GTK+ toolkit library (version 3) -- Tools
+Group:          System/Libraries
+
+%description tools
+GTK+ is a multi-platform toolkit for creating graphical user interfaces.
+Offering a complete set of widgets, GTK+ is suitable for projects
+ranging from small one-off projects to complete application suites.
+
+%package data
+License:        LGPLv2.1+
+Summary:        The GTK+ toolkit library (version 3) -- Data Files
+Group:          System/Libraries
+BuildArch:      noarch
+
+%description data
+GTK+ is a multi-platform toolkit for creating graphical user interfaces.
+Offering a complete set of widgets, GTK+ is suitable for projects
+ranging from small one-off projects to complete application suites.
+
+%package branding-upstream
+License:        LGPLv2.1+
+Summary:        The GTK+ toolkit library (version 3) -- Branding Files
+Group:          System/Libraries
+Provides:       %{name}-branding = %{version}
+Conflicts:      otherproviders(%{name}-branding)
+Supplements:    packageand(%{name}:branding-upstream)
+
+%description branding-upstream
+GTK+ is a multi-platform toolkit for creating graphical user interfaces.
+Offering a complete set of widgets, GTK+ is suitable for projects
+ranging from small one-off projects to complete application suites.
+
+%package devel
+License:        LGPLv2.1+
+Summary:        The GTK+ toolkit library (version 3) -- Development Files
+Group:          Development/Libraries/X11
+Requires:       libgtk-3_0-0 = %{version}
+# gtk-builder-convert needs this.
+Requires:       pyxml
+
+%description devel
+GTK+ is a multi-platform toolkit for creating graphical user interfaces.
+Offering a complete set of widgets, GTK+ is suitable for projects
+ranging from small one-off projects to complete application suites.
+
+This package contains the development files for GTK+ 3.x.
+
+%lang_package
+%prep
+%setup -q -n %{_name}-%{version}
+gnome-patch-translation-prepare
+%if "%_lib" == "lib64"
+cp -a %{S:1} .
+%patch0 -p1
+%endif
+%patch1 -p0
+%patch2 -p1
+%patch3 -p1
+gnome-patch-translation-update
+
+%build
+%configure \
+        --disable-static \
+        --enable-man \
+        --with-xinput=xfree \
+        --enable-introspection
+# building of gobject-introspection seems to fail with -j 'n>1' (see bgo#624304)
+#%{__make} %{?_smp_mflags}
+%{__make}
+
+%install
+%makeinstall
+find %{buildroot}%{_libdir} -name '*.la' -delete -print
+%find_lang gtk30
+%find_lang gtk30-properties
+install -m 644 -D %{S:2} %{buildroot}%{_sysconfdir}/gtk-3.0/gtkrc
+touch %{buildroot}%{_libdir}/gtk-3.0/3.0.0/immodules.cache
+%if "%_lib" == "lib64"
+  mv %{buildroot}%{_bindir}/gtk-query-immodules-3.0 %{buildroot}%{_bindir}/gtk-query-immodules-3.0-64
+  mv %{buildroot}%{_mandir}/man1/gtk-query-immodules-3.0.1 %{buildroot}%{_mandir}/man1/gtk-query-immodules-3.0-64.1
+%endif
+%fdupes %{buildroot}%{_datadir}
+%fdupes %{buildroot}%{_libdir}
+
+%clean
+rm -rf %{buildroot}
+
+# In case libgtk-3_0-0 gets installed before
+# gtk3-tools, we don't want to fail. So we make the call to
+# gtk-query-immodules-3.0 dependent on the existence of
+# the binary. This is why we also have a %post for
+# gtk3-tools.
+
+%post -n libgtk-3_0-0
+/sbin/ldconfig
+%if "%_lib" == "lib64"
+  test -f %{_bindir}/gtk-query-immodules-3.0-64 && %{_bindir}/gtk-query-immodules-3.0-64 --update-cache
+%else
+  test -f %{_bindir}/gtk-query-immodules-3.0 && %{_bindir}/gtk-query-immodules-3.0 --update-cache
+%endif
+
+# If we install gtk3-tools for the first time,
+# then we should run it in case libgtk-3_0-0 was installed
+# first (ie, if %{_libdir}/gtk-3.0/3.0.0 already exists) which means
+# gtk-query-immodules-3.0 couldn't run there.
+
+%post tools
+if [ $1 == 1 ]; then
+  test -d %{_libdir}/gtk-3.0/3.0.0
+  if test $? -eq 0; then
+    %if "%_lib" == "lib64"
+      %{_bindir}/gtk-query-immodules-3.0-64 --update-cache
+    %else
+      %{_bindir}/gtk-query-immodules-3.0 --update-cache
+    %endif
+  fi
+fi
+
+# No need to call gtk-query-immodules-3.0 in postun:
+# - if it's an upgrade, it will have been called in post
+# - if it's an uninstall, we don't care about this anymore
+
+%postun -n libgtk-3_0-0 -p /sbin/ldconfig
+
+%files -n libgtk-3_0-0
+%defattr(-, root, root)
+%doc AUTHORS COPYING README NEWS ChangeLog
+%if "%_lib" == "lib64"
+%doc README.SUSE
+%endif
+%config %{_sysconfdir}/gtk-3.0/im-multipress.conf
+%dir %{_libdir}/gtk-3.0
+%dir %{_libdir}/gtk-3.0/3.0.0
+%{_libdir}/gtk-3.0/modules/
+%{_libdir}/gtk-3.0/3.0.0/engines/
+%{_libdir}/gtk-3.0/3.0.0/immodules/
+%{_libdir}/gtk-3.0/3.0.0/printbackends/
+%ghost %{_libdir}/gtk-3.0/3.0.0/immodules.cache
+%{_libdir}/libgailutil-3.0.so.*
+%{_libdir}/libgdk-x11-3.0.so.*
+%{_libdir}/libgtk-x11-3.0.so.*
+%{_libdir}/girepository-1.0/*.typelib
+
+%files tools
+%defattr(-,root,root)
+%{_bindir}/gtk-query-immodules-3.0*
+%{_bindir}/gtk-update-icon-cache-3.0
+%{_mandir}/man1/gtk-query-immodules-3.0*.1*
+%{_mandir}/man1/gtk-update-icon-cache-3.0.1*
+
+%files data
+%defattr(-,root,root)
+%{_datadir}/themes/Default/gtk-3.0-key/gtkrc
+%{_datadir}/themes/Emacs/gtk-3.0-key/gtkrc
+%{_datadir}/themes/Raleigh/gtk-3.0/gtkrc
+
+%files branding-upstream
+%defattr(-,root,root)
+%config %{_sysconfdir}/gtk-3.0/gtkrc
+
+%files lang -f gtk30.lang -f gtk30-properties.lang
+
+%files devel
+%defattr(-,root,root)
+%doc %{_datadir}/gtk-doc/html/*
+%{_bindir}/gtk3-demo
+%{_bindir}/gtk-builder-convert-3.0
+%{_mandir}/man1/gtk-builder-convert-3.0.1*
+%{_datadir}/aclocal/gtk-3.0.m4
+%dir %{_datadir}/gtk-3.0
+%{_datadir}/gtk-3.0/demo/
+%{_datadir}/gir-1.0/*.gir
+%{_includedir}/gail-3.0/
+%{_includedir}/gtk-3.0/
+%{_libdir}/gtk-3.0/include/
+%{_libdir}/pkgconfig/gail-3.0.pc
+%{_libdir}/pkgconfig/gdk-3.0.pc
+%{_libdir}/pkgconfig/gdk-x11-3.0.pc
+%{_libdir}/pkgconfig/gtk+-3.0.pc
+%{_libdir}/pkgconfig/gtk+-unix-print-3.0.pc
+%{_libdir}/pkgconfig/gtk+-x11-3.0.pc
+%{_libdir}/libgailutil-3.0.so
+%{_libdir}/libgdk-x11-3.0.so
+%{_libdir}/libgtk-x11-3.0.so
+
+%changelog
diff --git a/gtkrc b/gtkrc
new file mode 100644
index 0000000..1f0d0d7
--- /dev/null
+++ b/gtkrc
@@ -0,0 +1,11 @@
+#
+# gtkrc file allows you to define system wide defaults for all GTK+ applications.
+# This file is branding specific.
+#
+# For complete list of available settings see the Resource Files chapter in the
+# GTK+ documentation.
+#
+# You most probably want:
+#gtk-theme-name = ""
+#gtk-icon-theme-name = ""
+#gtk-fallback-icon-theme = "gnome"