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
This commit is contained in:
OBS User autobuild 2010-08-24 20:32:30 +00:00 committed by Git OBS Bridge
commit 1ff05983ee
12 changed files with 801 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

12
README.SUSE Normal file
View File

@ -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

6
baselibs.conf Normal file
View File

@ -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"

3
gtk+-2.90.5.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8c3c2b461c5a9e0c07dcc320d6362728284e8294f2cd77428d51694c15681264
size 17028893

13
gtk3-GTK_PATH64.patch Normal file
View File

@ -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)

View File

@ -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)

View File

@ -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;
}

94
gtk3-path-local.patch Normal file
View File

@ -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)\" \

47
gtk3.changes Normal file
View File

@ -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

276
gtk3.spec Normal file
View File

@ -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

11
gtkrc Normal file
View File

@ -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"