Gentoo Archives: gentoo-commits

From: Pacho Ramos <pacho@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: gnome-base/gnome-menus/, gnome-base/gnome-menus/files/
Date: Sat, 26 Dec 2015 15:29:07
Message-Id: 1451143718.175e747b92cc77c92fc45dccff3e24859e9f9f07.pacho@gentoo
1 commit: 175e747b92cc77c92fc45dccff3e24859e9f9f07
2 Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
3 AuthorDate: Sat Dec 26 14:42:49 2015 +0000
4 Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
5 CommitDate: Sat Dec 26 15:28:38 2015 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=175e747b
7
8 gnome-base/gnome-menus: Upstream patch for handling of multiple desktops in XDG_CURRENT_DESKTOP
9
10 Package-Manager: portage-2.2.26
11
12 .../gnome-menus-3.13.3-multiple-desktop.patch | 171 +++++++++++++++++++++
13 .../gnome-menus-3.13.3-multiple-desktop2.patch | 27 ++++
14 .../gnome-menus/gnome-menus-3.13.3-r1.ebuild | 53 +++++++
15 3 files changed, 251 insertions(+)
16
17 diff --git a/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop.patch b/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop.patch
18 new file mode 100644
19 index 0000000..8ec7006
20 --- /dev/null
21 +++ b/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop.patch
22 @@ -0,0 +1,171 @@
23 +From b4546ab43c2c7ef6fb6cb7e5db83dc3975b56e8e Mon Sep 17 00:00:00 2001
24 +From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <alberts.muktupavels@×××××.com>
25 +Date: Mon, 27 Oct 2014 18:41:34 +0200
26 +Subject: desktop-entries: support multiple desktops in XDG_CURRENT_DESKTOP
27 +
28 +This is based on glib commit:
29 +5a5e16e93c4f11e635918ecdb41681f63fd05a39
30 +---
31 + libmenu/desktop-entries.c | 110 ++++++++++++++++++++++------------------------
32 + 1 file changed, 52 insertions(+), 58 deletions(-)
33 +
34 +diff --git a/libmenu/desktop-entries.c b/libmenu/desktop-entries.c
35 +index 326f311..bd4f886 100644
36 +--- a/libmenu/desktop-entries.c
37 ++++ b/libmenu/desktop-entries.c
38 +@@ -85,32 +85,27 @@ unix_basename_from_path (const char *path)
39 + return path;
40 + }
41 +
42 +-static const char *
43 +-get_current_desktop (void)
44 ++static const gchar * const *
45 ++get_current_desktops (void)
46 + {
47 +- static char *current_desktop = NULL;
48 ++ static gchar **result;
49 +
50 +- /* Support XDG_CURRENT_DESKTOP environment variable; this can be used
51 +- * to abuse gnome-menus in non-GNOME desktops. */
52 +- if (!current_desktop)
53 ++ if (g_once_init_enter (&result))
54 + {
55 +- const char *desktop;
56 ++ const gchar *desktops;
57 ++ gchar **tmp;
58 +
59 +- desktop = g_getenv ("XDG_CURRENT_DESKTOP");
60 ++ desktops = g_getenv ("XDG_CURRENT_DESKTOP");
61 +
62 +- /* Note: if XDG_CURRENT_DESKTOP is set but empty, do as if it
63 +- * was not set */
64 +- if (!desktop || desktop[0] == '\0')
65 +- current_desktop = g_strdup ("GNOME");
66 +- else
67 +- current_desktop = g_strdup (desktop);
68 +- }
69 ++ if (desktops)
70 ++ desktops = "";
71 +
72 +- /* Using "*" means skipping desktop-related checks */
73 +- if (g_strcmp0 (current_desktop, "*") == 0)
74 +- return NULL;
75 ++ tmp = g_strsplit (desktops, ":", 0);
76 ++
77 ++ g_once_init_leave (&result, tmp);
78 ++ }
79 +
80 +- return current_desktop;
81 ++ return (const gchar **) result;
82 + }
83 +
84 + static GIcon *
85 +@@ -151,52 +146,58 @@ key_file_get_icon (GKeyFile *key_file)
86 + static gboolean
87 + key_file_get_show_in (GKeyFile *key_file)
88 + {
89 +- const gchar *current_desktop;
90 +- gchar **strv;
91 ++ const gchar * const *current_desktops;
92 ++ gchar **only_show_in;
93 ++ gchar **not_show_in;
94 + gboolean show_in = TRUE;
95 +- int i;
96 +-
97 +- current_desktop = get_current_desktop ();
98 +- if (!current_desktop)
99 +- return TRUE;
100 +-
101 +- strv = g_key_file_get_string_list (key_file,
102 +- DESKTOP_ENTRY_GROUP,
103 +- "OnlyShowIn",
104 +- NULL,
105 +- NULL);
106 +- if (strv)
107 ++ gint i;
108 ++
109 ++ current_desktops = get_current_desktops ();
110 ++ only_show_in = g_key_file_get_string_list (key_file,
111 ++ DESKTOP_ENTRY_GROUP,
112 ++ "OnlyShowIn",
113 ++ NULL,
114 ++ NULL);
115 ++ not_show_in = g_key_file_get_string_list (key_file,
116 ++ DESKTOP_ENTRY_GROUP,
117 ++ "NotShowIn",
118 ++ NULL,
119 ++ NULL);
120 ++
121 ++ for (i = 0; current_desktops[i]; i++)
122 + {
123 +- show_in = FALSE;
124 +- for (i = 0; strv[i]; i++)
125 ++ gint j;
126 ++
127 ++ if (only_show_in)
128 + {
129 +- if (!strcmp (strv[i], current_desktop))
130 ++ show_in = FALSE;
131 ++ for (j = 0; only_show_in[j]; j++)
132 + {
133 +- show_in = TRUE;
134 +- break;
135 ++ if (g_str_equal (only_show_in[j], current_desktops[i]))
136 ++ {
137 ++ show_in = TRUE;
138 ++ goto out;
139 ++ }
140 + }
141 + }
142 +- }
143 +- else
144 +- {
145 +- strv = g_key_file_get_string_list (key_file,
146 +- DESKTOP_ENTRY_GROUP,
147 +- "NotShowIn",
148 +- NULL,
149 +- NULL);
150 +- if (strv)
151 ++
152 ++ if (not_show_in)
153 + {
154 + show_in = TRUE;
155 +- for (i = 0; strv[i]; i++)
156 ++ for (j = 0; not_show_in[j]; j++)
157 + {
158 +- if (!strcmp (strv[i], current_desktop))
159 ++ if (g_str_equal (not_show_in[j], current_desktops[i]))
160 + {
161 + show_in = FALSE;
162 ++ goto out;
163 + }
164 + }
165 + }
166 + }
167 +- g_strfreev (strv);
168 ++
169 ++out:
170 ++ g_strfreev (only_show_in);
171 ++ g_strfreev (not_show_in);
172 +
173 + return show_in;
174 + }
175 +@@ -579,14 +580,7 @@ gboolean
176 + desktop_entry_get_show_in (DesktopEntry *entry)
177 + {
178 + if (entry->type == DESKTOP_ENTRY_DESKTOP)
179 +- {
180 +- const char *current_desktop = get_current_desktop ();
181 +-
182 +- if (current_desktop == NULL)
183 +- return TRUE;
184 +- else
185 +- return g_desktop_app_info_get_show_in (((DesktopEntryDesktop*)entry)->appinfo, current_desktop);
186 +- }
187 ++ return g_desktop_app_info_get_show_in (((DesktopEntryDesktop*)entry)->appinfo, NULL);
188 + return ((DesktopEntryDirectory*)entry)->showin;
189 + }
190 +
191 +--
192 +cgit v0.11.2
193 +
194
195 diff --git a/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop2.patch b/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop2.patch
196 new file mode 100644
197 index 0000000..966b060
198 --- /dev/null
199 +++ b/gnome-base/gnome-menus/files/gnome-menus-3.13.3-multiple-desktop2.patch
200 @@ -0,0 +1,27 @@
201 +From 4befe76fbdb76aa6a986297ef71d1601b2ced42e Mon Sep 17 00:00:00 2001
202 +From: Josselin Mouette <joss@××××××.org>
203 +Date: Sun, 14 Dec 2014 20:36:36 +0100
204 +Subject: desktop-entries: fix trivial bug in handling of multiple desktops in
205 + XDG_CURRENT_DESKTOP.
206 +
207 +https://bugzilla.gnome.org/show_bug.cgi?id=741505
208 +---
209 + libmenu/desktop-entries.c | 2 +-
210 + 1 file changed, 1 insertion(+), 1 deletion(-)
211 +
212 +diff --git a/libmenu/desktop-entries.c b/libmenu/desktop-entries.c
213 +index bd4f886..a463d79 100644
214 +--- a/libmenu/desktop-entries.c
215 ++++ b/libmenu/desktop-entries.c
216 +@@ -97,7 +97,7 @@ get_current_desktops (void)
217 +
218 + desktops = g_getenv ("XDG_CURRENT_DESKTOP");
219 +
220 +- if (desktops)
221 ++ if (!desktops)
222 + desktops = "";
223 +
224 + tmp = g_strsplit (desktops, ":", 0);
225 +--
226 +cgit v0.11.2
227 +
228
229 diff --git a/gnome-base/gnome-menus/gnome-menus-3.13.3-r1.ebuild b/gnome-base/gnome-menus/gnome-menus-3.13.3-r1.ebuild
230 new file mode 100644
231 index 0000000..9b90894
232 --- /dev/null
233 +++ b/gnome-base/gnome-menus/gnome-menus-3.13.3-r1.ebuild
234 @@ -0,0 +1,53 @@
235 +# Copyright 1999-2015 Gentoo Foundation
236 +# Distributed under the terms of the GNU General Public License v2
237 +# $Id$
238 +
239 +EAPI="5"
240 +GCONF_DEBUG="yes"
241 +
242 +inherit eutils gnome2
243 +
244 +DESCRIPTION="Library for the Desktop Menu fd.o specification"
245 +HOMEPAGE="https://git.gnome.org/browse/gnome-menus"
246 +
247 +LICENSE="GPL-2+ LGPL-2+"
248 +SLOT="3"
249 +KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
250 +
251 +IUSE="+introspection test"
252 +
253 +COMMON_DEPEND="
254 + >=dev-libs/glib-2.29.15:2
255 + introspection? ( >=dev-libs/gobject-introspection-0.9.5:= )
256 +"
257 +# Older versions of slot 0 install the menu editor and the desktop directories
258 +RDEPEND="${COMMON_DEPEND}
259 + !<gnome-base/gnome-menus-3.0.1-r1:0
260 +"
261 +DEPEND="${COMMON_DEPEND}
262 + >=dev-util/intltool-0.40
263 + sys-devel/gettext
264 + virtual/pkgconfig
265 + test? ( dev-libs/gjs )
266 +"
267 +
268 +src_prepare() {
269 + # Don't show KDE standalone settings desktop files in GNOME others menu
270 + epatch "${FILESDIR}/${PN}-3.8.0-ignore_kde_standalone.patch"
271 +
272 + # desktop-entries: support multiple desktops in XDG_CURRENT_DESKTOP
273 + # (from 'master')
274 + epatch "${FILESDIR}"/${P}-multiple-desktop{,2}.patch
275 +
276 + gnome2_src_prepare
277 +}
278 +
279 +src_configure() {
280 + DOCS="AUTHORS ChangeLog HACKING NEWS README"
281 +
282 + # Do NOT compile with --disable-debug/--enable-debug=no
283 + # It disables api usage checks
284 + gnome2_src_configure \
285 + $(use_enable introspection) \
286 + --disable-static
287 +}