1 |
commit: 33e354c16be0dbd7b8033e4ae76e0800a78e6dde |
2 |
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Aug 5 22:34:53 2022 +0000 |
4 |
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Aug 6 02:17:28 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=33e354c1 |
7 |
|
8 |
gui-libs/libadwaita: Version bump to 1.1.4 |
9 |
|
10 |
Closes: https://bugs.gentoo.org/859466 |
11 |
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org> |
12 |
|
13 |
gui-libs/libadwaita/Manifest | 1 + |
14 |
gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch | 204 +++++++++++++++++++++ |
15 |
gui-libs/libadwaita/libadwaita-1.1.4.ebuild | 69 +++++++ |
16 |
3 files changed, 274 insertions(+) |
17 |
|
18 |
diff --git a/gui-libs/libadwaita/Manifest b/gui-libs/libadwaita/Manifest |
19 |
index d88f49c18c2b..41e4338d5650 100644 |
20 |
--- a/gui-libs/libadwaita/Manifest |
21 |
+++ b/gui-libs/libadwaita/Manifest |
22 |
@@ -1,2 +1,3 @@ |
23 |
DIST libadwaita-1.1.2.tar.xz 2731632 BLAKE2B e60201f6d2f51713350b3ec18dae10a5993c6fcea3491495b5e9878461a558609c306a418a59515f2b827b6ee8049ff09b710c4326a87e372e975519bec61274 SHA512 ae89c49986d1bddc5eacc736be8ff0842634bf564e73d4a456b6d899ecc0fcc337f27a17cbb5f8921009f45d82434ab22cf7c2bc9541c4179cd298c2d6706587 |
24 |
DIST libadwaita-1.1.3.tar.xz 2731856 BLAKE2B 743d238779da843935149871f476426933b2b27424d449a32f0ac8a844e4980d65946f9a9cc79480e688fdd73c0e43cfbbc547aef2605dc34c800977825f33a1 SHA512 ffe3f5d3277d243a17b27055856e8c111fd856c22f07e990aff5fb48cd760928ff9389943b118ffba6671655af670cd0f0b8d2d5b34ee2265ac37249ddcaca7c |
25 |
+DIST libadwaita-1.1.4.tar.xz 2733108 BLAKE2B 7a1dc225215f1090365a1ae7b4cd281c253699ee8e6dadbeb95ac0995688b5dd567af875b270cb8b537a0153c6d3204490c5fb38606fc7261c770ae4e27dfe73 SHA512 0e24fd2dff81eeabb658eca12e1a6065c97de9871b05e3eb2f305c789377c85d5719d70c3d4e69c42ef3b4474b6270055e0579dbafd1258a644d84879302e1ca |
26 |
|
27 |
diff --git a/gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch b/gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch |
28 |
new file mode 100644 |
29 |
index 000000000000..659d81b2713b |
30 |
--- /dev/null |
31 |
+++ b/gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch |
32 |
@@ -0,0 +1,204 @@ |
33 |
+https://bugs.gentoo.org/859466 |
34 |
+ |
35 |
+From 200c33021dbe93eae270aa1cc9a4428365a8d7a4 Mon Sep 17 00:00:00 2001 |
36 |
+From: Matt Turner <mattst88@×××××.com> |
37 |
+Date: Tue, 26 Jul 2022 11:00:18 -0400 |
38 |
+Subject: [PATCH 1/2] tab-view: Retype _AdwTabView::stack to fix aliasing |
39 |
+ violation |
40 |
+ |
41 |
+../src/adw-tab-view.c:1269:20: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] |
42 |
+| g_clear_pointer ((GtkWidget **) &self->stack, gtk_widget_unparent); |
43 |
+ |
44 |
+Closes: https://gitlab.gnome.org/GNOME/libadwaita/-/issues/522 |
45 |
+(cherry picked from commit 5b6ea17d51a5b42a99128afa562f52aa32eff7b2) |
46 |
+--- |
47 |
+ src/adw-tab-view.c | 20 ++++++++++---------- |
48 |
+ 1 file changed, 10 insertions(+), 10 deletions(-) |
49 |
+ |
50 |
+diff --git a/src/adw-tab-view.c b/src/adw-tab-view.c |
51 |
+index 26b64436..9c5fbe00 100644 |
52 |
+--- a/src/adw-tab-view.c |
53 |
++++ b/src/adw-tab-view.c |
54 |
+@@ -115,7 +115,7 @@ struct _AdwTabView |
55 |
+ { |
56 |
+ GtkWidget parent_instance; |
57 |
+ |
58 |
+- GtkStack *stack; |
59 |
++ GtkWidget *stack; |
60 |
+ GListStore *children; |
61 |
+ |
62 |
+ int n_pages; |
63 |
+@@ -763,7 +763,7 @@ page_belongs_to_this_view (AdwTabView *self, |
64 |
+ if (!page) |
65 |
+ return FALSE; |
66 |
+ |
67 |
+- return gtk_widget_get_parent (page->child) == GTK_WIDGET (self->stack); |
68 |
++ return gtk_widget_get_parent (page->child) == self->stack; |
69 |
+ } |
70 |
+ |
71 |
+ static inline gboolean |
72 |
+@@ -786,7 +786,7 @@ attach_page (AdwTabView *self, |
73 |
+ |
74 |
+ g_list_store_insert (self->children, position, page); |
75 |
+ |
76 |
+- gtk_stack_add_child (self->stack, child); |
77 |
++ gtk_stack_add_child (GTK_STACK (self->stack), child); |
78 |
+ |
79 |
+ g_object_freeze_notify (G_OBJECT (self)); |
80 |
+ |
81 |
+@@ -829,7 +829,7 @@ set_selected_page (AdwTabView *self, |
82 |
+ if (notify_pages && self->pages) |
83 |
+ new_position = adw_tab_view_get_page_position (self, self->selected_page); |
84 |
+ |
85 |
+- gtk_stack_set_visible_child (self->stack, |
86 |
++ gtk_stack_set_visible_child (GTK_STACK (self->stack), |
87 |
+ adw_tab_page_get_child (selected_page)); |
88 |
+ set_page_selected (self->selected_page, TRUE); |
89 |
+ } |
90 |
+@@ -922,7 +922,7 @@ detach_page (AdwTabView *self, |
91 |
+ |
92 |
+ g_object_thaw_notify (G_OBJECT (self)); |
93 |
+ |
94 |
+- gtk_stack_remove (self->stack, child); |
95 |
++ gtk_stack_remove (GTK_STACK (self->stack), child); |
96 |
+ |
97 |
+ g_signal_emit (self, signals[SIGNAL_PAGE_DETACHED], 0, page, pos); |
98 |
+ |
99 |
+@@ -1305,7 +1305,7 @@ adw_tab_view_dispose (GObject *object) |
100 |
+ |
101 |
+ g_clear_object (&self->children); |
102 |
+ |
103 |
+- g_clear_pointer ((GtkWidget **) &self->stack, gtk_widget_unparent); |
104 |
++ g_clear_pointer (&self->stack, gtk_widget_unparent); |
105 |
+ |
106 |
+ G_OBJECT_CLASS (adw_tab_view_parent_class)->dispose (object); |
107 |
+ } |
108 |
+@@ -1737,9 +1737,9 @@ adw_tab_view_init (AdwTabView *self) |
109 |
+ self->children = g_list_store_new (ADW_TYPE_TAB_PAGE); |
110 |
+ self->default_icon = G_ICON (g_themed_icon_new ("adw-tab-icon-missing-symbolic")); |
111 |
+ |
112 |
+- self->stack = GTK_STACK (gtk_stack_new ()); |
113 |
+- gtk_widget_show (GTK_WIDGET (self->stack)); |
114 |
+- gtk_widget_set_parent (GTK_WIDGET (self->stack), GTK_WIDGET (self)); |
115 |
++ self->stack = gtk_stack_new (); |
116 |
++ gtk_widget_show (self->stack); |
117 |
++ gtk_widget_set_parent (self->stack, GTK_WIDGET (self)); |
118 |
+ |
119 |
+ g_object_bind_property (self, "is-transferring-page", |
120 |
+ self->stack, "can-target", |
121 |
+@@ -2569,7 +2569,7 @@ adw_tab_view_get_page (AdwTabView *self, |
122 |
+ |
123 |
+ g_return_val_if_fail (ADW_IS_TAB_VIEW (self), NULL); |
124 |
+ g_return_val_if_fail (GTK_IS_WIDGET (child), NULL); |
125 |
+- g_return_val_if_fail (gtk_widget_get_parent (child) == GTK_WIDGET (self->stack), NULL); |
126 |
++ g_return_val_if_fail (gtk_widget_get_parent (child) == self->stack, NULL); |
127 |
+ |
128 |
+ for (i = 0; i < self->n_pages; i++) { |
129 |
+ AdwTabPage *page = adw_tab_view_get_nth_page (self, i); |
130 |
+-- |
131 |
+2.35.1 |
132 |
+ |
133 |
+From e6d911fae1cbebe3769ccfb0c665ce5162c86a24 Mon Sep 17 00:00:00 2001 |
134 |
+From: Matt Turner <mattst88@×××××.com> |
135 |
+Date: Tue, 26 Jul 2022 11:02:14 -0400 |
136 |
+Subject: [PATCH 2/2] tab-box: Retype _AdwTabBox::context_menu to fix aliasing |
137 |
+ violation |
138 |
+ |
139 |
+../src/adw-tab-box.c:3410:20: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] |
140 |
+| g_clear_pointer ((GtkWidget **) &self->context_menu, gtk_widget_unparent); |
141 |
+ |
142 |
+Closes: https://gitlab.gnome.org/GNOME/libadwaita/-/issues/522 |
143 |
+(cherry picked from commit 33ab48efb62ae331f48521de1cf45960e609ff26) |
144 |
+--- |
145 |
+ src/adw-tab-box.c | 28 ++++++++++++++-------------- |
146 |
+ 1 file changed, 14 insertions(+), 14 deletions(-) |
147 |
+ |
148 |
+diff --git a/src/adw-tab-box.c b/src/adw-tab-box.c |
149 |
+index 54178555..2e0b62bf 100644 |
150 |
+--- a/src/adw-tab-box.c |
151 |
++++ b/src/adw-tab-box.c |
152 |
+@@ -100,7 +100,7 @@ struct _AdwTabBox |
153 |
+ GList *tabs; |
154 |
+ int n_tabs; |
155 |
+ |
156 |
+- GtkPopover *context_menu; |
157 |
++ GtkWidget *context_menu; |
158 |
+ GtkWidget *background; |
159 |
+ |
160 |
+ int allocated_width; |
161 |
+@@ -2618,7 +2618,7 @@ reset_setup_menu_cb (AdwTabBox *self) |
162 |
+ static void |
163 |
+ touch_menu_notify_visible_cb (AdwTabBox *self) |
164 |
+ { |
165 |
+- if (!self->context_menu || gtk_widget_get_visible (GTK_WIDGET (self->context_menu))) |
166 |
++ if (!self->context_menu || gtk_widget_get_visible (self->context_menu)) |
167 |
+ return; |
168 |
+ |
169 |
+ self->hovering = FALSE; |
170 |
+@@ -2642,15 +2642,15 @@ do_popup (AdwTabBox *self, |
171 |
+ g_signal_emit_by_name (self->view, "setup-menu", info->page); |
172 |
+ |
173 |
+ if (!self->context_menu) { |
174 |
+- self->context_menu = GTK_POPOVER (gtk_popover_menu_new_from_model (model)); |
175 |
+- gtk_widget_set_parent (GTK_WIDGET (self->context_menu), GTK_WIDGET (self)); |
176 |
+- gtk_popover_set_position (self->context_menu, GTK_POS_BOTTOM); |
177 |
+- gtk_popover_set_has_arrow (self->context_menu, FALSE); |
178 |
++ self->context_menu = gtk_popover_menu_new_from_model (model); |
179 |
++ gtk_widget_set_parent (self->context_menu, GTK_WIDGET (self)); |
180 |
++ gtk_popover_set_position (GTK_POPOVER (self->context_menu), GTK_POS_BOTTOM); |
181 |
++ gtk_popover_set_has_arrow (GTK_POPOVER (self->context_menu), FALSE); |
182 |
+ |
183 |
+ if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL) |
184 |
+- gtk_widget_set_halign (GTK_WIDGET (self->context_menu), GTK_ALIGN_END); |
185 |
++ gtk_widget_set_halign (self->context_menu, GTK_ALIGN_END); |
186 |
+ else |
187 |
+- gtk_widget_set_halign (GTK_WIDGET (self->context_menu), GTK_ALIGN_START); |
188 |
++ gtk_widget_set_halign (self->context_menu, GTK_ALIGN_START); |
189 |
+ |
190 |
+ g_signal_connect_object (self->context_menu, "notify::visible", |
191 |
+ G_CALLBACK (touch_menu_notify_visible_cb), self, |
192 |
+@@ -2672,9 +2672,9 @@ do_popup (AdwTabBox *self, |
193 |
+ rect.width = 0; |
194 |
+ rect.height = 0; |
195 |
+ |
196 |
+- gtk_popover_set_pointing_to (self->context_menu, &rect); |
197 |
++ gtk_popover_set_pointing_to (GTK_POPOVER (self->context_menu), &rect); |
198 |
+ |
199 |
+- gtk_popover_popup (self->context_menu); |
200 |
++ gtk_popover_popup (GTK_POPOVER (self->context_menu)); |
201 |
+ } |
202 |
+ |
203 |
+ static void |
204 |
+@@ -2958,7 +2958,7 @@ adw_tab_box_size_allocate (GtkWidget *widget, |
205 |
+ value = gtk_adjustment_get_value (self->adjustment); |
206 |
+ |
207 |
+ if (self->context_menu) |
208 |
+- gtk_popover_present (self->context_menu); |
209 |
++ gtk_popover_present (GTK_POPOVER (self->context_menu)); |
210 |
+ |
211 |
+ if (!self->n_tabs) |
212 |
+ return; |
213 |
+@@ -3169,7 +3169,7 @@ adw_tab_box_unrealize (GtkWidget *widget) |
214 |
+ { |
215 |
+ AdwTabBox *self = ADW_TAB_BOX (widget); |
216 |
+ |
217 |
+- g_clear_pointer ((GtkWidget **) &self->context_menu, gtk_widget_unparent); |
218 |
++ g_clear_pointer (&self->context_menu, gtk_widget_unparent); |
219 |
+ |
220 |
+ GTK_WIDGET_CLASS (adw_tab_box_parent_class)->unrealize (widget); |
221 |
+ } |
222 |
+@@ -3213,9 +3213,9 @@ adw_tab_box_direction_changed (GtkWidget *widget, |
223 |
+ |
224 |
+ if (self->context_menu) { |
225 |
+ if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL) |
226 |
+- gtk_widget_set_halign (GTK_WIDGET (self->context_menu), GTK_ALIGN_END); |
227 |
++ gtk_widget_set_halign (self->context_menu, GTK_ALIGN_END); |
228 |
+ else |
229 |
+- gtk_widget_set_halign (GTK_WIDGET (self->context_menu), GTK_ALIGN_START); |
230 |
++ gtk_widget_set_halign (self->context_menu, GTK_ALIGN_START); |
231 |
+ } |
232 |
+ } |
233 |
+ |
234 |
+-- |
235 |
+2.35.1 |
236 |
+ |
237 |
|
238 |
diff --git a/gui-libs/libadwaita/libadwaita-1.1.4.ebuild b/gui-libs/libadwaita/libadwaita-1.1.4.ebuild |
239 |
new file mode 100644 |
240 |
index 000000000000..e7e4b05600de |
241 |
--- /dev/null |
242 |
+++ b/gui-libs/libadwaita/libadwaita-1.1.4.ebuild |
243 |
@@ -0,0 +1,69 @@ |
244 |
+# Copyright 2022 Gentoo Authors |
245 |
+# Distributed under the terms of the GNU General Public License v2 |
246 |
+ |
247 |
+EAPI=8 |
248 |
+PYTHON_COMPAT=( python3_{8..11} ) |
249 |
+VALA_MIN_API_VERSION="0.52" |
250 |
+inherit gnome.org meson python-any-r1 vala virtualx |
251 |
+ |
252 |
+DESCRIPTION="Building blocks for modern adaptive GNOME applications" |
253 |
+HOMEPAGE="https://gnome.pages.gitlab.gnome.org/libadwaita/ https://gitlab.gnome.org/GNOME/libadwaita" |
254 |
+ |
255 |
+LICENSE="LGPL-2.1+" |
256 |
+SLOT="1" |
257 |
+IUSE="+introspection test +vala" |
258 |
+REQUIRED_USE="vala? ( introspection )" |
259 |
+ |
260 |
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" |
261 |
+ |
262 |
+DEPEND=" |
263 |
+ >=dev-libs/glib-2.66:2 |
264 |
+ >=gui-libs/gtk-4.5.0:4[introspection?] |
265 |
+ dev-libs/fribidi |
266 |
+ introspection? ( >=dev-libs/gobject-introspection-1.54:= ) |
267 |
+" |
268 |
+RDEPEND="${DEPEND}" |
269 |
+BDEPEND=" |
270 |
+ ${PYTHON_DEPS} |
271 |
+ vala? ( $(vala_depend) ) |
272 |
+ >=dev-util/meson-0.59.0 |
273 |
+ dev-util/glib-utils |
274 |
+ sys-devel/gettext |
275 |
+ virtual/pkgconfig |
276 |
+" |
277 |
+ |
278 |
+PATCHES=( |
279 |
+ "${FILESDIR}"/${PV}-fix-aliasing.patch |
280 |
+) |
281 |
+ |
282 |
+src_prepare() { |
283 |
+ default |
284 |
+ use vala && vala_setup |
285 |
+} |
286 |
+ |
287 |
+src_configure() { |
288 |
+ local emesonargs=( |
289 |
+ # Never use gi-docgen subproject |
290 |
+ --wrap-mode nofallback |
291 |
+ |
292 |
+ -Dprofiling=false |
293 |
+ $(meson_feature introspection) |
294 |
+ $(meson_use vala vapi) |
295 |
+ -Dgtk_doc=false # we ship pregenerated docs |
296 |
+ $(meson_use test tests) |
297 |
+ -Dexamples=false |
298 |
+ ) |
299 |
+ meson_src_configure |
300 |
+} |
301 |
+ |
302 |
+src_test() { |
303 |
+ virtx meson_src_test --timeout-multiplier 2 |
304 |
+} |
305 |
+ |
306 |
+src_install() { |
307 |
+ meson_src_install |
308 |
+ |
309 |
+ insinto /usr/share/gtk-doc/html |
310 |
+ # This will install libadwaita API docs unconditionally, but this is intentional |
311 |
+ doins -r "${S}"/doc/libadwaita-1 |
312 |
+} |