1
0
mirror of https://github.com/gryf/gryf-overlay.git synced 2025-12-19 04:20:26 +01:00

GTK3 version bump

This commit is contained in:
2017-04-28 15:41:23 +02:00
parent 61036211eb
commit 1888ae07c8
5 changed files with 585 additions and 0 deletions

View File

@@ -4,7 +4,12 @@ AUX gtk+-2.24.31-update-icon-cache.patch 2504 SHA256 aff2bc60ebed09103d3f5d69a09
AUX gtk+-2.24.31_enable_paste_selection.patch 7677 SHA256 5f2ecda06f95d217c2d895f62d4a8c3f1d59f4b380b0d34c135cea91cd5e402d SHA512 4de343c43ad2d217ff9817410abd563a62a76c3da358859ada6d2b5b61af7ce9442543530f715f35bca969906b6742e5ace8bceea5686488938cae53623f5e00 WHIRLPOOL 230d79e7b857d4e59bdd082ec8076c6fb2144d80e0567dbc3decaac72ffd5d541e4cbc4f347810194fe5bbe3b27a051dcead88724cd1da39b615d1363bd5fc25
AUX gtk+-3.16.2-remove_update-icon-cache.patch 554 SHA256 8e188fca21a2a9c2118e754dbeb8f4bd8d8808de68bcf3a404a2e56684276388 SHA512 88396ca13baf46e77c37b94da57ac06edd525a1dee66150427866ed5d7a913481dcd0b664d6e98dec0a7d5b551bd49a4c29a712ed6fd2ec0d677ae2da65b468d WHIRLPOOL 23d2097c69b001b75595a9fff761445d3faf7c74f3e4728b8325eeeb971c2cfaedd28e5a53fea6502caacd96bf867842ad861d783c27c5aadb22483b84ab9004
AUX gtk+-3.20.09_enable_paste_selection.patch 7967 SHA256 005ec7437d9b4689c5bfec1a418f19ba6a5f94147226c622707b5199f54d533d SHA512 a01c1c1848e64f8e11bb7f973eee95120dc65bb52bbcac3538273a4f14da65626034171bb9013b5881160c8c8001a2b8adbe404b0dfd98dbde5328e8f54b6616 WHIRLPOOL 9030b7b8ef909f5524f4243d5b88fab4e91109d020ba120963a8010ad0c099b5c8aa28a2579bb73d704249d1b8ecb6f57685d8917aa43fbc9696b97413f87761
AUX gtk+-3.22.12_enable_paste_selection.patch 7862 SHA256 d3cbad3d65d5b98d783f38c4070f6a15a94b1e90411336c8f75c7c0121129391 SHA512 3fac1c6d1ee6f609fbe95378b41524b2230c5f49a818205b347598872ef2c88d79e78411c83390105a5c6baf1deb1c93d0c6fd53251634d16c34bd7180de37e0 WHIRLPOOL 9c8bd74504a479d10ad93f809421d487acede9b33bd6c057a94c1108a21b06820acfc286ae4b6fcf385d3051ac972e13318f2615106c30f1ea69aa24db52ab3b
AUX gtk+-3.22.2-update-icon-cache.patch 5474 SHA256 afc558b4763a68c5a3b0aa26da36e37abac66335b8256aa25b51576453dba172 SHA512 46ac52f18c0e74f5e35101ef978d7708c42abb05985894b65e8a7f7a76f1934015ff35a912628a5ae2c6333916ffd00570aa19230108aabe3a20adc5e31d958e WHIRLPOOL 8e9cf76e9236bc7e6282feb24e412d288d659c26731eb8fd8cc566ffaceb31c24cbb5cfe0ba22520e59ef88253abde4bff4ebcd7e3edf3cf458c4bc95ec6471d
AUX settings.ini 96 SHA256 a42c86c26b5bfa0da806961e28cdff21da6e2f7c35febf67c67d7f2667658163 SHA512 76eff45e3413ed7b2fb6bb557c363cd6d8a65ae505709cf5ce26d579470e38968d51e72615779f47fac2994937a3c64ac4143c6cbd2cf5a2db23a01bcd9b6418 WHIRLPOOL 64a2c11ef1a6eda0bca40555a182023229202bcf15d527e6da8c52703be2fca26629b78ed677522eb626de7b7f456a7c37ab7fc3fe41907f1a46d770edb1fd67
DIST gtk+-2.24.31.tar.xz 12805344 SHA256 68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658 SHA512 75b846661308d94b5236e7e1c367deabf57753792ca87e92f9769822dd5ec90e00cd8d5574adcc12162e3702e1ae6dc152278a1d218f9bd9e4d1c8dc1dd520c1 WHIRLPOOL 6f59d444b28910b0f4cd7d0d0bf04f8e442acd945205679c19e5adf7ca3f8e7406d4095e9ff9ca597882eb937a7551e19af63b6597e7b57c0babe5b061f9110e
DIST gtk+-3.20.9.tar.xz 17174872 SHA256 83a609ba2f3424b5509e73967c49c67833af466d6f91081b24ee5c64fce6ac17 SHA512 5848403959f76633511009231c80a814cfe24a7ba07c9429704f432191e51b54d3e6621ce5b578f79999f21993920af3a45c8d03dad6ba03af5f9a342b32626e WHIRLPOOL 7964b82dabf72b5d45a34565874ba02e0dda09b0f358f640ca0c602c3c7aa4618432829d047794f5f202424c34c837bbdc31ccb3c5457768e252f048afd30107
DIST gtk+-3.22.12.tar.xz 18236348 SHA256 84fae0cefb6a11ee2b4e86b8ac42fe46a3d30b4ad16661d5fc51e8ae03e2a98c SHA512 a37121dd4737c68f72f3172830ac3f26faeb09b4040f2a341b04a87cab26876b437777d512ed416a968d68d6a52e0401c045b78c2eac0f87b3b0bf8ef34e3ba9 WHIRLPOOL 075e48efa2a83d4bedef8b4f0ed5dd96fe41298e4b6c0cd9809d319ddc06e6522a667e72ca9a1218c7427449dd897f878e3bd575f527ded813e04b315e999b13
EBUILD gtk+-2.24.31-r99.ebuild 10251 SHA256 13c55ba76012af6cc9773a5bd64c49fd45a8fc6e0a78e599f9ffe9162efa420c SHA512 6b1647fa06e9535435572c34de03dc53551438d39e3edb58adcf203e16f6e94d40fe532c5c4c713595abf9150cdbb48e617d470455640c795b30eaf3932d2761 WHIRLPOOL 5f5f67cf78666bdd0a5021ed818fecf4c454c3c5f152fb0a10fcc149be9dc9870f193dea232834c44486799d0dada83ac4697a9567543c31351a07cc474dd4fe
EBUILD gtk+-3.20.9-r99.ebuild 7200 SHA256 4697f020555cf7e0485708a67699842c1ead1dc16dbc2ae366edbe5de6dc07a0 SHA512 230e920da9ff3f51f90fb1baf7e1dd2b078dedf6ca85a43eb00850424a55b8e8a05698e6b3d3528e94dc456ce09630b0405162f35d9f77699406895c9b5f5b7e WHIRLPOOL e60d7b9fbd4a735b93dd24910771653e8433b16b8eb0eea4d05d690e5828cd84a4882a2e3e13df4934653dfbb10885cc586df75a5d47afecd7441174ce305cf5
EBUILD gtk+-3.22.12-r99.ebuild 7084 SHA256 39f7375ffb8ae0e7e66a48035379cd7d31b7593026e114cc810ec050cfac5d8b SHA512 b37049ddef0e8a6792947df57fb4d5ba6978da200cc7766d0333399b3a437404f847e0b4c6b534da587e16a28bab279a0f49a7d768e98ab576a024b69a764325 WHIRLPOOL 5ab1d25e56d17f3e4fe66ae1c26d906f2b9722b4e739b70f05a4c0316890aedbf8816a35a28e4bc11318d541660d41edc079402455a7f70d27f474611620eb54

View File

@@ -0,0 +1,206 @@
diff -ur gtk+-3.22.12/gtk/gtkentry.c gtk+-3.22.12_patched/gtk/gtkentry.c
--- gtk+-3.22.12/gtk/gtkentry.c 2017-02-21 22:50:09.000000000 +0100
+++ gtk+-3.22.12_patched/gtk/gtkentry.c 2017-04-28 15:01:30.384981454 +0200
@@ -317,6 +317,7 @@
CUT_CLIPBOARD,
COPY_CLIPBOARD,
PASTE_CLIPBOARD,
+ PASTE_SELECTION,
TOGGLE_OVERWRITE,
ICON_PRESS,
ICON_RELEASE,
@@ -543,6 +544,8 @@
static void gtk_entry_cut_clipboard (GtkEntry *entry);
static void gtk_entry_copy_clipboard (GtkEntry *entry);
static void gtk_entry_paste_clipboard (GtkEntry *entry);
+static void gtk_entry_paste_selection (GtkEntry *entry,
+ const gchar *which);
static void gtk_entry_toggle_overwrite (GtkEntry *entry);
static void gtk_entry_select_all (GtkEntry *entry);
static void gtk_entry_real_activate (GtkEntry *entry);
@@ -807,6 +810,7 @@
class->cut_clipboard = gtk_entry_cut_clipboard;
class->copy_clipboard = gtk_entry_copy_clipboard;
class->paste_clipboard = gtk_entry_paste_clipboard;
+ class->paste_selection = gtk_entry_paste_selection;
class->toggle_overwrite = gtk_entry_toggle_overwrite;
class->activate = gtk_entry_real_activate;
class->get_text_area_size = gtk_entry_get_text_area_size;
@@ -1797,6 +1801,24 @@
G_TYPE_NONE, 0);
/**
+ * GtkEntry::paste-selection:
+ * @entry: the object which received the signal
+ *
+ * The ::paste-selection signal is a
+ * <link linkend="keybinding-signals">keybinding signal</link>
+ * which gets emitted to paste the contents of the given selection
+ * into the entry.
+ */
+ signals[PASTE_SELECTION] =
+ g_signal_new (I_("paste-selection"),
+ G_OBJECT_CLASS_TYPE (gobject_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GtkEntryClass, paste_selection),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 0);
+
+ /**
* GtkEntry::toggle-overwrite:
* @entry: the object which received the signal
*
@@ -5904,6 +5926,27 @@
}
static void
+gtk_entry_paste_selection (GtkEntry *entry,
+ const gchar *which)
+{
+ GtkEntryPrivate *priv = entry->priv;
+
+ if (priv->editable)
+ {
+ if (g_str_equal(which, "primary"))
+ gtk_entry_paste (entry, GDK_SELECTION_PRIMARY);
+ else if (g_str_equal(which, "secondary"))
+ gtk_entry_paste (entry, GDK_SELECTION_SECONDARY);
+ else if (g_str_equal(which, "clipboard"))
+ gtk_entry_paste (entry, GDK_SELECTION_CLIPBOARD);
+ else
+ gtk_widget_error_bell (GTK_WIDGET (entry));
+ }
+ else
+ gtk_widget_error_bell (GTK_WIDGET (entry));
+}
+
+static void
gtk_entry_delete_cb (GtkEntry *entry)
{
GtkEntryPrivate *priv = entry->priv;
diff -ur gtk+-3.22.12/gtk/gtkentry.h gtk+-3.22.12_patched/gtk/gtkentry.h
--- gtk+-3.22.12/gtk/gtkentry.h 2016-12-30 15:55:56.000000000 +0100
+++ gtk+-3.22.12_patched/gtk/gtkentry.h 2017-04-28 15:02:11.232982874 +0200
@@ -145,6 +145,8 @@
void (* cut_clipboard) (GtkEntry *entry);
void (* copy_clipboard) (GtkEntry *entry);
void (* paste_clipboard) (GtkEntry *entry);
+ void (* paste_selection) (GtkEntry *entry,
+ const gchar *which);
void (* toggle_overwrite) (GtkEntry *entry);
/* hooks to add other objects beside the entry (like in GtkSpinButton) */
@@ -168,7 +170,6 @@
void (*_gtk_reserved4) (void);
void (*_gtk_reserved5) (void);
void (*_gtk_reserved6) (void);
- void (*_gtk_reserved7) (void);
};
GDK_AVAILABLE_IN_ALL
diff -ur gtk+-3.22.12/gtk/gtktextview.c gtk+-3.22.12_patched/gtk/gtktextview.c
--- gtk+-3.22.12/gtk/gtktextview.c 2017-04-01 22:49:49.000000000 +0200
+++ gtk+-3.22.12_patched/gtk/gtktextview.c 2017-04-28 15:04:51.144988431 +0200
@@ -326,6 +326,7 @@
CUT_CLIPBOARD,
COPY_CLIPBOARD,
PASTE_CLIPBOARD,
+ PASTE_SELECTION,
TOGGLE_OVERWRITE,
MOVE_VIEWPORT,
SELECT_ALL,
@@ -495,6 +496,8 @@
static void gtk_text_view_cut_clipboard (GtkTextView *text_view);
static void gtk_text_view_copy_clipboard (GtkTextView *text_view);
static void gtk_text_view_paste_clipboard (GtkTextView *text_view);
+static void gtk_text_view_paste_selection (GtkTextView *text_view,
+ const gchar *which);
static void gtk_text_view_toggle_overwrite (GtkTextView *text_view);
static void gtk_text_view_toggle_cursor_visible (GtkTextView *text_view);
@@ -782,6 +785,7 @@
klass->cut_clipboard = gtk_text_view_cut_clipboard;
klass->copy_clipboard = gtk_text_view_copy_clipboard;
klass->paste_clipboard = gtk_text_view_paste_clipboard;
+ klass->paste_selection = gtk_text_view_paste_selection;
klass->toggle_overwrite = gtk_text_view_toggle_overwrite;
klass->create_buffer = gtk_text_view_create_buffer;
klass->extend_selection = gtk_text_view_extend_selection;
@@ -1302,6 +1306,24 @@
G_TYPE_NONE, 0);
/**
+ * GtkTextView::paste-selection:
+ * @text_view: the object which received the signal
+ *
+ * The ::paste-selection signal is a
+ * <link linkend="keybinding-signals">keybinding signal</link>
+ * which gets emitted to paste the contents of the given selection
+ * into the text view.
+ */
+ signals[PASTE_SELECTION] =
+ g_signal_new (I_("paste-selection"),
+ G_OBJECT_CLASS_TYPE (gobject_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (GtkTextViewClass, paste_selection),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 0);
+
+ /**
* GtkTextView::toggle-overwrite:
* @text_view: the object which received the signal
*
@@ -7185,6 +7207,31 @@
}
static void
+gtk_text_view_paste_selection (GtkTextView *text_view,
+ const gchar *which)
+{
+ GtkClipboard *clipboard = NULL;
+
+ if (g_str_equal (which, "primary"))
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET (text_view),
+ GDK_SELECTION_PRIMARY);
+ else if (g_str_equal (which, "secondary"))
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET (text_view),
+ GDK_SELECTION_SECONDARY);
+ else if (g_str_equal (which, "clipboard"))
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET (text_view),
+ GDK_SELECTION_CLIPBOARD);
+
+ if (clipboard)
+ gtk_text_buffer_paste_clipboard (get_buffer (text_view),
+ clipboard,
+ NULL,
+ text_view->priv->editable);
+ else
+ gtk_widget_error_bell (GTK_WIDGET (text_view));
+}
+
+static void
gtk_text_view_paste_done_handler (GtkTextBuffer *buffer,
GtkClipboard *clipboard,
gpointer data)
diff -ur gtk+-3.22.12/gtk/gtktextview.h gtk+-3.22.12_patched/gtk/gtktextview.h
--- gtk+-3.22.12/gtk/gtktextview.h 2016-12-30 15:55:56.000000000 +0100
+++ gtk+-3.22.12_patched/gtk/gtktextview.h 2017-04-28 15:05:22.208989510 +0200
@@ -182,6 +182,8 @@
void (* cut_clipboard) (GtkTextView *text_view);
void (* copy_clipboard) (GtkTextView *text_view);
void (* paste_clipboard) (GtkTextView *text_view);
+ void (* paste_selection) (GtkTextView *text_view,
+ const gchar *which);
void (* toggle_overwrite) (GtkTextView *text_view);
GtkTextBuffer * (* create_buffer) (GtkTextView *text_view);
void (* draw_layer) (GtkTextView *text_view,
@@ -200,7 +202,6 @@
void (*_gtk_reserved2) (void);
void (*_gtk_reserved3) (void);
void (*_gtk_reserved4) (void);
- void (*_gtk_reserved5) (void);
};
GDK_AVAILABLE_IN_ALL

View File

@@ -0,0 +1,138 @@
From 101b43f4a38904ee21070a3e2eb5ba03dfe17647 Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Tue, 1 Nov 2016 15:24:22 +0100
Subject: [PATCH] Always use external gtk-update-icon-cache
Check for gtk-update-icon-cache to install demos, otherwise it is not
used when building.
---
configure.ac | 2 ++
demos/gtk-demo/Makefile.am | 2 +-
demos/widget-factory/Makefile.am | 2 +-
docs/reference/gtk/Makefile.am | 1 -
gtk/Makefile.am | 44 ----------------------------------------
5 files changed, 4 insertions(+), 47 deletions(-)
diff --git a/configure.ac b/configure.ac
index 4f9f183..ecf99dc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -999,6 +999,8 @@ dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
+AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, [gtk-update-icon-cache], [no])
+
########################################
# Windowing system checks
########################################
diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am
index 8c15e16..5d774d2 100644
--- a/demos/gtk-demo/Makefile.am
+++ b/demos/gtk-demo/Makefile.am
@@ -171,7 +171,7 @@ dist_appsicon32_DATA = data/32x32/gtk3-demo.png data/32x32/gtk3-demo-symbolic.sy
dist_appsicon48_DATA = data/48x48/gtk3-demo.png data/48x48/gtk3-demo-symbolic.symbolic.png
dist_appsicon256_DATA = data/256x256/gtk3-demo.png data/256x256/gtk3-demo-symbolic.symbolic.png
-update_icon_cache = $(top_builddir)/gtk/gtk-update-icon-cache$(EXEEXT) --ignore-theme-index --force
+update_icon_cache = $(GTK_UPDATE_ICON_CACHE) --ignore-theme-index --force
install-data-hook: install-update-icon-cache
uninstall-hook: uninstall-update-icon-cache
diff --git a/demos/widget-factory/Makefile.am b/demos/widget-factory/Makefile.am
index a6bfbdc..28a3be2 100644
--- a/demos/widget-factory/Makefile.am
+++ b/demos/widget-factory/Makefile.am
@@ -47,7 +47,7 @@ dist_appsicon32_DATA = data/32x32/gtk3-widget-factory.png data/32x32/gtk3-widget
dist_appsicon48_DATA = data/48x48/gtk3-widget-factory.png data/48x48/gtk3-widget-factory-symbolic.symbolic.png
dist_appsicon256_DATA = data/256x256/gtk3-widget-factory.png data/256x256/gtk3-widget-factory-symbolic.symbolic.png
-update_icon_cache = $(top_builddir)/gtk/gtk-update-icon-cache$(EXEEXT) --ignore-theme-index --force
+update_icon_cache = $(GTK_UPDATE_ICON_CACHE) --ignore-theme-index --force
install-data-hook: install-update-icon-cache
uninstall-hook: uninstall-update-icon-cache
diff --git a/docs/reference/gtk/Makefile.am b/docs/reference/gtk/Makefile.am
index 5a88a12..b51f3ac 100644
--- a/docs/reference/gtk/Makefile.am
+++ b/docs/reference/gtk/Makefile.am
@@ -504,7 +504,6 @@ EXTRA_DIST += version.xml.in gtk3.types.in
man_MANS = \
gtk-query-immodules-3.0.1 \
- gtk-update-icon-cache.1 \
gtk-encode-symbolic-svg.1 \
gtk-launch.1 \
gtk3-demo.1 \
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 3b76b82..d4c5681 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -1581,7 +1581,6 @@ endif
#
bin_PROGRAMS = \
gtk-query-immodules-3.0 \
- gtk-update-icon-cache \
gtk-encode-symbolic-svg \
gtk-builder-tool \
gtk-query-settings \
@@ -1594,9 +1593,6 @@ gtk_query_immodules_3_0_LDADD = \
$(GMODULE_LIBS) \
$(GTK_DEP_LIBS)
-gtk_update_icon_cache_SOURCES = updateiconcache.c
-gtk_update_icon_cache_LDADD = $(GDK_PIXBUF_LIBS)
-
gtk_encode_symbolic_svg_SOURCES = encodesymbolic.c
gtk_encode_symbolic_svg_LDADD = \
$(GDK_PIXBUF_LIBS) \
@@ -1621,46 +1617,6 @@ gtk_launch_LDADD = \
$(top_builddir)/gdk/libgdk-3.la \
$(GTK_DEP_LIBS)
-if OS_WIN32
-
-# Workaround for UAC silliness: programs with "update" in their name
-# are believed to be installers and require elevated privileges to be
-# used... Embed a manifest file into executable to tell Windows that
-# gtk-update-icon-cache.exe doesn't require any special privileges.
-
-GTK_UPDATE_ICON_CACHE_MANIFEST = gtk-update-icon-cache.exe.manifest
-GTK_UPDATE_ICON_CACHE_RC = gtk-update-icon-cache.rc
-GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT = gtk-update-icon-cache_manifest.o
-
-$(GTK_UPDATE_ICON_CACHE_MANIFEST):
- (echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' ; \
- echo '<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">' ; \
- echo ' <assemblyIdentity version="1.0.0.0"' ; \
- echo ' processorArchitecture="'$(EXE_MANIFEST_ARCHITECTURE)'"' ; \
- echo ' name="gtk-update-icon-cache.exe"' ; \
- echo ' type="win32"/>' ; \
- echo ' <!-- Identify the application security requirements. -->' ; \
- echo ' <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">' ; \
- echo ' <security>' ; \
- echo ' <requestedPrivileges>' ; \
- echo ' <requestedExecutionLevel' ; \
- echo ' level="asInvoker"' ; \
- echo ' uiAccess="false"/>' ; \
- echo ' </requestedPrivileges>' ; \
- echo ' </security>' ; \
- echo ' </trustInfo>' ; \
- echo '</assembly>' ) >$@
-
-$(GTK_UPDATE_ICON_CACHE_RC):
- (echo 'CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST '$(GTK_UPDATE_ICON_CACHE_MANIFEST)) >$@
-
-$(GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT): $(GTK_UPDATE_ICON_CACHE_RC) $(GTK_UPDATE_ICON_CACHE_MANIFEST)
- $(WINDRES) --input $< --output $@ --output-format=coff
-
-gtk_update_icon_cache_LDADD += $(GTK_UPDATE_ICON_CACHE_MANIFEST_OBJECT)
-
-endif
-
.PHONY: files
files:
--
2.10.1

View File

@@ -0,0 +1,4 @@
[Settings]
gtk-theme-name = Adwaita
gtk-icon-theme-name = gnome
gtk-cursor-theme-name = Adwaita

View File

@@ -0,0 +1,232 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
GNOME2_LA_PUNT="yes"
inherit autotools flag-o-matic gnome2 multilib virtualx multilib-minimal
DESCRIPTION="Gimp ToolKit +"
HOMEPAGE="http://www.gtk.org/"
LICENSE="LGPL-2+"
SLOT="3"
IUSE="aqua broadway cloudprint colord cups examples +introspection test vim-syntax wayland +X xinerama"
REQUIRED_USE="
|| ( aqua wayland X )
xinerama? ( X )
"
KEYWORDS="alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
# Upstream wants us to do their job:
# https://bugzilla.gnome.org/show_bug.cgi?id=768662#c1
RESTRICT="test"
# FIXME: introspection data is built against system installation of gtk+:3,
# bug #????
COMMON_DEPEND="
>=dev-libs/atk-2.15[introspection?,${MULTILIB_USEDEP}]
>=dev-libs/glib-2.49.4:2[${MULTILIB_USEDEP}]
media-libs/fontconfig[${MULTILIB_USEDEP}]
>=media-libs/libepoxy-1.0[X(+)?,${MULTILIB_USEDEP}]
>=x11-libs/cairo-1.14[aqua?,glib,svg,X?,${MULTILIB_USEDEP}]
>=x11-libs/gdk-pixbuf-2.30:2[introspection?,${MULTILIB_USEDEP}]
>=x11-libs/pango-1.37.3[introspection?,${MULTILIB_USEDEP}]
x11-misc/shared-mime-info
cloudprint? (
>=net-libs/rest-0.7[${MULTILIB_USEDEP}]
>=dev-libs/json-glib-1.0[${MULTILIB_USEDEP}] )
colord? ( >=x11-misc/colord-0.1.9:0=[${MULTILIB_USEDEP}] )
cups? ( >=net-print/cups-1.2[${MULTILIB_USEDEP}] )
introspection? ( >=dev-libs/gobject-introspection-1.39:= )
wayland? (
>=dev-libs/wayland-1.9.91[${MULTILIB_USEDEP}]
>=dev-libs/wayland-protocols-1.7
media-libs/mesa[wayland,${MULTILIB_USEDEP}]
>=x11-libs/libxkbcommon-0.2[${MULTILIB_USEDEP}]
)
X? (
>=app-accessibility/at-spi2-atk-2.5.3[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
>=x11-libs/libXi-1.3[${MULTILIB_USEDEP}]
x11-libs/libXext[${MULTILIB_USEDEP}]
>=x11-libs/libXrandr-1.5[${MULTILIB_USEDEP}]
x11-libs/libXcursor[${MULTILIB_USEDEP}]
x11-libs/libXfixes[${MULTILIB_USEDEP}]
x11-libs/libXcomposite[${MULTILIB_USEDEP}]
x11-libs/libXdamage[${MULTILIB_USEDEP}]
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
)
"
DEPEND="${COMMON_DEPEND}
app-text/docbook-xsl-stylesheets
app-text/docbook-xml-dtd:4.1.2
dev-libs/libxslt
dev-libs/gobject-introspection-common
>=dev-util/gdbus-codegen-2.48
>=dev-util/gtk-doc-am-1.20
>=sys-devel/gettext-0.19.7[${MULTILIB_USEDEP}]
virtual/pkgconfig[${MULTILIB_USEDEP}]
X? (
x11-proto/xextproto[${MULTILIB_USEDEP}]
x11-proto/xproto[${MULTILIB_USEDEP}]
x11-proto/inputproto[${MULTILIB_USEDEP}]
x11-proto/damageproto[${MULTILIB_USEDEP}]
xinerama? ( x11-proto/xineramaproto[${MULTILIB_USEDEP}] )
)
test? (
media-fonts/font-misc-misc
media-fonts/font-cursor-misc )
"
# gtk+-3.2.2 breaks Alt key handling in <=x11-libs/vte-0.30.1:2.90
# gtk+-3.3.18 breaks scrolling in <=x11-libs/vte-0.31.0:2.90
# >=xorg-server-1.11.4 needed for
# https://mail.gnome.org/archives/desktop-devel-list/2012-March/msg00024.html
RDEPEND="${COMMON_DEPEND}
>=dev-util/gtk-update-icon-cache-3
!<gnome-base/gail-1000
!<x11-libs/vte-0.31.0:2.90
>=x11-themes/adwaita-icon-theme-3.14
X? ( !<x11-base/xorg-server-1.11.4 )
"
# librsvg for svg icons (PDEPEND to avoid circular dep), bug #547710
PDEPEND="
gnome-base/librsvg[${MULTILIB_USEDEP}]
vim-syntax? ( app-vim/gtk-syntax )
"
MULTILIB_CHOST_TOOLS=(
/usr/bin/gtk-query-immodules-3.0$(get_exeext)
)
strip_builddir() {
local rule=$1
shift
local directory=$1
shift
sed -e "s/^\(${rule} =.*\)${directory}\(.*\)$/\1\2/" -i $@ \
|| die "Could not strip director ${directory} from build."
}
src_prepare() {
if ! use test ; then
# don't waste time building tests
strip_builddir SRC_SUBDIRS testsuite Makefile.{am,in}
# the tests dir needs to be build now because since commit
# 7ff3c6df80185e165e3bf6aa31bd014d1f8bf224 tests/gtkgears.o needs to be there
# strip_builddir SRC_SUBDIRS tests Makefile.{am,in}
fi
if ! use examples; then
# don't waste time building demos
strip_builddir SRC_SUBDIRS demos Makefile.{am,in}
strip_builddir SRC_SUBDIRS examples Makefile.{am,in}
fi
# gtk-update-icon-cache is installed by dev-util/gtk-update-icon-cache
eapply "${FILESDIR}"/${PN}-3.22.2-update-icon-cache.patch
# Fix shift+insert shortcut to paste from PRIMARY selection instead of CLIPBOARD
eapply "${FILESDIR}"/${PN}-3.22.12_enable_paste_selection.patch
eautoreconf
gnome2_src_prepare
}
multilib_src_configure() {
# need libdir here to avoid a double slash in a path that libtool doesn't
# grok so well during install (// between $EPREFIX and usr ...)
ECONF_SOURCE=${S} \
gnome2_src_configure \
$(use_enable aqua quartz-backend) \
$(use_enable broadway broadway-backend) \
$(use_enable cloudprint) \
$(use_enable colord) \
$(use_enable cups cups auto) \
$(multilib_native_use_enable introspection) \
$(use_enable wayland wayland-backend) \
$(use_enable X x11-backend) \
$(use_enable X xcomposite) \
$(use_enable X xdamage) \
$(use_enable X xfixes) \
$(use_enable X xkb) \
$(use_enable X xrandr) \
$(use_enable xinerama) \
--disable-papi \
--disable-mir-backend \
--enable-man \
--with-xml-catalog="${EPREFIX}"/etc/xml/catalog \
--libdir="${EPREFIX}"/usr/$(get_libdir) \
CUPS_CONFIG="${EPREFIX}/usr/bin/${CHOST}-cups-config"
# work-around gtk-doc out-of-source brokedness
if multilib_is_native_abi; then
local d
for d in gdk gtk libgail-util; do
ln -s "${S}"/docs/reference/${d}/html docs/reference/${d}/html || die
done
fi
}
multilib_src_test() {
"${EROOT}${GLIB_COMPILE_SCHEMAS}" --allow-any-name "${S}/gtk" || die
GSETTINGS_SCHEMA_DIR="${S}/gtk" virtx emake check
}
multilib_src_install() {
gnome2_src_install
}
multilib_src_install_all() {
insinto /etc/gtk-3.0
doins "${FILESDIR}"/settings.ini
# Skip README.{in,commits,win32} and useless ChangeLog that would get installed by default
DOCS=( AUTHORS NEWS README )
einstalldocs
}
pkg_preinst() {
gnome2_pkg_preinst
multilib_pkg_preinst() {
# Make immodules.cache belongs to gtk+ alone
local cache="usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache"
if [[ -e ${EROOT}${cache} ]]; then
cp "${EROOT}"${cache} "${ED}"/${cache} || die
else
touch "${ED}"/${cache} || die
fi
}
multilib_parallel_foreach_abi multilib_pkg_preinst
}
pkg_postinst() {
gnome2_pkg_postinst
multilib_pkg_postinst() {
gnome2_query_immodules_gtk3 \
|| die "Update immodules cache failed (for ${ABI})"
}
multilib_parallel_foreach_abi multilib_pkg_postinst
if ! has_version "app-text/evince"; then
elog "Please install app-text/evince for print preview functionality."
elog "Alternatively, check \"gtk-print-preview-command\" documentation and"
elog "add it to your settings.ini file."
fi
}
pkg_postrm() {
gnome2_pkg_postrm
if [[ -z ${REPLACED_BY_VERSION} ]]; then
multilib_pkg_postrm() {
rm -f "${EROOT}"usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache
}
multilib_foreach_abi multilib_pkg_postrm
fi
}