1 |
commit: 11678b04097c3a43cb3c2eb9b983660424eaf652 |
2 |
Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com> |
3 |
AuthorDate: Thu Jul 28 06:07:48 2011 +0000 |
4 |
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com> |
5 |
CommitDate: Thu Jul 28 06:07:48 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=11678b04 |
7 |
|
8 |
x11-wm/mutter: 3.1.3.1 → 3.1.4 |
9 |
|
10 |
Version bump with various bugfixes and improvements. Update clutter |
11 |
dependency. Patches have been applied upstream. |
12 |
|
13 |
--- |
14 |
.../files/mutter-3.1.3.1-crash-on-exit.patch | 37 ----- |
15 |
.../mutter-3.1.3.1-meta_later-reentrant.patch | 141 -------------------- |
16 |
.../{mutter-3.1.3.1.ebuild => mutter-3.1.4.ebuild} | 12 +-- |
17 |
3 files changed, 2 insertions(+), 188 deletions(-) |
18 |
|
19 |
diff --git a/x11-wm/mutter/files/mutter-3.1.3.1-crash-on-exit.patch b/x11-wm/mutter/files/mutter-3.1.3.1-crash-on-exit.patch |
20 |
deleted file mode 100644 |
21 |
index 65d9ab4..0000000 |
22 |
--- a/x11-wm/mutter/files/mutter-3.1.3.1-crash-on-exit.patch |
23 |
+++ /dev/null |
24 |
@@ -1,37 +0,0 @@ |
25 |
-From d2b63eaf1f5486380595f3ebb7a26386c1f20363 Mon Sep 17 00:00:00 2001 |
26 |
-From: Dan Winship <danw@×××××.org> |
27 |
-Date: Tue, 12 Jul 2011 17:07:15 +0000 |
28 |
-Subject: fix a crash-on-exit |
29 |
- |
30 |
-meta_frames_destroy() was not safe to be called multiple times, which |
31 |
-was causing a crash on exit due to something else changing somewhere |
32 |
-that makes it get called multiple times. |
33 |
- |
34 |
-https://bugzilla.gnome.org/show_bug.cgi?id=654489 |
35 |
---- |
36 |
-diff --git a/src/ui/frames.c b/src/ui/frames.c |
37 |
-index d9e2bca..167d5dc 100644 |
38 |
---- a/src/ui/frames.c |
39 |
-+++ b/src/ui/frames.c |
40 |
-@@ -313,8 +313,17 @@ meta_frames_destroy (GtkWidget *object) |
41 |
- } |
42 |
- g_slist_free (winlist); |
43 |
- |
44 |
-- g_object_unref (frames->normal_style); |
45 |
-- g_hash_table_destroy (frames->style_variants); |
46 |
-+ if (frames->normal_style) |
47 |
-+ { |
48 |
-+ g_object_unref (frames->normal_style); |
49 |
-+ frames->normal_style = NULL; |
50 |
-+ } |
51 |
-+ |
52 |
-+ if (frames->style_variants) |
53 |
-+ { |
54 |
-+ g_hash_table_destroy (frames->style_variants); |
55 |
-+ frames->style_variants = NULL; |
56 |
-+ } |
57 |
- |
58 |
- GTK_WIDGET_CLASS (meta_frames_parent_class)->destroy (object); |
59 |
- } |
60 |
--- |
61 |
-cgit v0.9 |
62 |
|
63 |
diff --git a/x11-wm/mutter/files/mutter-3.1.3.1-meta_later-reentrant.patch b/x11-wm/mutter/files/mutter-3.1.3.1-meta_later-reentrant.patch |
64 |
deleted file mode 100644 |
65 |
index 63387f8..0000000 |
66 |
--- a/x11-wm/mutter/files/mutter-3.1.3.1-meta_later-reentrant.patch |
67 |
+++ /dev/null |
68 |
@@ -1,141 +0,0 @@ |
69 |
-From cd7a9680932868d1d2ef5447c77712cef9a443dd Mon Sep 17 00:00:00 2001 |
70 |
-From: Dan Winship <danw@×××××.org> |
71 |
-Date: Tue, 29 Mar 2011 19:18:57 +0000 |
72 |
-Subject: util: fix a reentrancy problem with meta_later |
73 |
- |
74 |
-Calling meta_later_add() or meta_later_remove() from within a |
75 |
-META_LATER_BEFORE_REDRAW callback ended up being a no-op, because of |
76 |
-how run_repaint_laters() was fiddling with the laters list. (This |
77 |
-resulted in a crash in window.c:idle_calc_repaint(), which assumed it |
78 |
-would only be called when a certain queue was non-empty, but was |
79 |
-getting called anyway because of a failed meta_later_remove() call.) |
80 |
- |
81 |
-Fix this by having run_repaint_laters() work on a copy of the laters |
82 |
-list instead, and add refcounting to MetaLater so that removing a |
83 |
-later that run_repaint_laters() hasn't gotten to yet won't cause |
84 |
-problems. |
85 |
- |
86 |
-https://bugzilla.gnome.org/show_bug.cgi?id=642957 |
87 |
---- |
88 |
-diff --git a/src/core/util.c b/src/core/util.c |
89 |
-index aea1210..2ce5f79 100644 |
90 |
---- a/src/core/util.c |
91 |
-+++ b/src/core/util.c |
92 |
-@@ -708,6 +708,7 @@ static guint last_later_id = 0; |
93 |
- typedef struct |
94 |
- { |
95 |
- guint id; |
96 |
-+ guint ref_count; |
97 |
- MetaLaterType when; |
98 |
- GSourceFunc func; |
99 |
- gpointer data; |
100 |
-@@ -724,13 +725,29 @@ static guint later_repaint_func = 0; |
101 |
- static void ensure_later_repaint_func (void); |
102 |
- |
103 |
- static void |
104 |
-+unref_later (MetaLater *later) |
105 |
-+{ |
106 |
-+ if (--later->ref_count == 0) |
107 |
-+ { |
108 |
-+ if (later->notify) |
109 |
-+ { |
110 |
-+ later->notify (later->data); |
111 |
-+ later->notify = NULL; |
112 |
-+ } |
113 |
-+ g_slice_free (MetaLater, later); |
114 |
-+ } |
115 |
-+} |
116 |
-+ |
117 |
-+static void |
118 |
- destroy_later (MetaLater *later) |
119 |
- { |
120 |
- if (later->source) |
121 |
-- g_source_remove (later->source); |
122 |
-- if (later->notify) |
123 |
-- later->notify (later->data); |
124 |
-- g_slice_free (MetaLater, later); |
125 |
-+ { |
126 |
-+ g_source_remove (later->source); |
127 |
-+ later->source = 0; |
128 |
-+ } |
129 |
-+ later->func = NULL; |
130 |
-+ unref_later (later); |
131 |
- } |
132 |
- |
133 |
- /* Used to sort the list of laters with the highest priority |
134 |
-@@ -746,34 +763,41 @@ compare_laters (gconstpointer a, |
135 |
- static gboolean |
136 |
- run_repaint_laters (gpointer data) |
137 |
- { |
138 |
-- GSList *old_laters = laters; |
139 |
-+ GSList *laters_copy; |
140 |
- GSList *l; |
141 |
- gboolean keep_timeline_running = FALSE; |
142 |
-- laters = NULL; |
143 |
- |
144 |
-- for (l = old_laters; l; l = l->next) |
145 |
-+ laters_copy = NULL; |
146 |
-+ for (l = laters; l; l = l->next) |
147 |
- { |
148 |
- MetaLater *later = l->data; |
149 |
- if (later->source == 0 || |
150 |
- (later->when <= META_LATER_BEFORE_REDRAW && !later->run_once)) |
151 |
- { |
152 |
-- if (later->func (later->data)) |
153 |
-- { |
154 |
-- if (later->source == 0) |
155 |
-- keep_timeline_running = TRUE; |
156 |
-- laters = g_slist_insert_sorted (laters, later, compare_laters); |
157 |
-- } |
158 |
-- else |
159 |
-- destroy_later (later); |
160 |
-+ later->ref_count++; |
161 |
-+ laters_copy = g_slist_prepend (laters_copy, later); |
162 |
-+ } |
163 |
-+ } |
164 |
-+ laters_copy = g_slist_reverse (laters_copy); |
165 |
-+ |
166 |
-+ for (l = laters_copy; l; l = l->next) |
167 |
-+ { |
168 |
-+ MetaLater *later = l->data; |
169 |
-+ |
170 |
-+ if (later->func && later->func (later->data)) |
171 |
-+ { |
172 |
-+ if (later->source == 0) |
173 |
-+ keep_timeline_running = TRUE; |
174 |
- } |
175 |
- else |
176 |
-- laters = g_slist_insert_sorted (laters, later, compare_laters); |
177 |
-+ meta_later_remove (later->id); |
178 |
-+ unref_later (later); |
179 |
- } |
180 |
- |
181 |
- if (!keep_timeline_running) |
182 |
- clutter_timeline_stop (later_timeline); |
183 |
- |
184 |
-- g_slist_free (old_laters); |
185 |
-+ g_slist_free (laters_copy); |
186 |
- |
187 |
- /* Just keep the repaint func around - it's cheap if the list is empty */ |
188 |
- return TRUE; |
189 |
-@@ -800,9 +824,7 @@ call_idle_later (gpointer data) |
190 |
- |
191 |
- if (!later->func (later->data)) |
192 |
- { |
193 |
-- laters = g_slist_remove (laters, later); |
194 |
-- later->source = 0; |
195 |
-- destroy_later (later); |
196 |
-+ meta_later_remove (later->id); |
197 |
- return FALSE; |
198 |
- } |
199 |
- else |
200 |
-@@ -838,6 +860,7 @@ meta_later_add (MetaLaterType when, |
201 |
- MetaLater *later = g_slice_new0 (MetaLater); |
202 |
- |
203 |
- later->id = ++last_later_id; |
204 |
-+ later->ref_count = 1; |
205 |
- later->when = when; |
206 |
- later->func = func; |
207 |
- later->data = data; |
208 |
--- |
209 |
-cgit v0.9 |
210 |
|
211 |
diff --git a/x11-wm/mutter/mutter-3.1.3.1.ebuild b/x11-wm/mutter/mutter-3.1.4.ebuild |
212 |
similarity index 87% |
213 |
rename from x11-wm/mutter/mutter-3.1.3.1.ebuild |
214 |
rename to x11-wm/mutter/mutter-3.1.4.ebuild |
215 |
index 3f8a0e9..8758e2c 100644 |
216 |
--- a/x11-wm/mutter/mutter-3.1.3.1.ebuild |
217 |
+++ b/x11-wm/mutter/mutter-3.1.4.ebuild |
218 |
@@ -6,7 +6,7 @@ EAPI="4" |
219 |
GCONF_DEBUG="no" |
220 |
GNOME2_LA_PUNT="yes" |
221 |
|
222 |
-inherit eutils gnome2 |
223 |
+inherit gnome2 |
224 |
if [[ ${PV} = 9999 ]]; then |
225 |
inherit gnome2-live |
226 |
fi |
227 |
@@ -29,7 +29,7 @@ COMMON_DEPEND=">=x11-libs/pango-1.2[X,introspection?] |
228 |
>=x11-libs/gtk+-2.91.7:3[introspection?] |
229 |
>=gnome-base/gconf-2:2 |
230 |
>=dev-libs/glib-2.14:2 |
231 |
- >=media-libs/clutter-1.2:1.0 |
232 |
+ >=media-libs/clutter-1.7.5:1.0 |
233 |
>=media-libs/libcanberra-0.26[gtk3] |
234 |
>=x11-libs/startup-notification-0.7 |
235 |
>=x11-libs/libXcomposite-0.2 |
236 |
@@ -76,11 +76,3 @@ pkg_setup() { |
237 |
$(use_enable introspection) |
238 |
$(use_enable xinerama)" |
239 |
} |
240 |
- |
241 |
-src_prepare() { |
242 |
- # Crash fixes from upstream git, will be in next release |
243 |
- epatch "${FILESDIR}/${P}-crash-on-exit.patch" |
244 |
- epatch "${FILESDIR}/${P}-meta_later-reentrant.patch" |
245 |
- |
246 |
- gnome2_src_prepare |
247 |
-} |