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"