From da3552023d9aae2ee5183df71a80a8169414974e Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 6 Aug 2022 08:09:34 +0100 Subject: gentoo auto-resync : 06:08:2022 - 08:09:34 --- gui-libs/libadwaita/Manifest | 3 + gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch | 204 +++++++++++++++++++++ gui-libs/libadwaita/libadwaita-1.1.4.ebuild | 69 +++++++ 3 files changed, 276 insertions(+) create mode 100644 gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch create mode 100644 gui-libs/libadwaita/libadwaita-1.1.4.ebuild (limited to 'gui-libs/libadwaita') diff --git a/gui-libs/libadwaita/Manifest b/gui-libs/libadwaita/Manifest index c959a1fdcaa0..4d45c841da5c 100644 --- a/gui-libs/libadwaita/Manifest +++ b/gui-libs/libadwaita/Manifest @@ -1,5 +1,8 @@ +AUX 1.1.4-fix-aliasing.patch 7650 BLAKE2B d541eb143f18132d5a7cfb29efabbf9e48b303c96b965f7b783b1906b580893f1ee97926e4292dd1d1f07980e0cd80c5fd7491ec0280fa55776489f3ec7ee862 SHA512 242376c66fd3ff47fb5c59fe6b0adb1d77e3fadcf06fa17515ae6639c7ff3b8e83bb0da28da5c214ade7c48047d9a2e7ab5c0b0f944d3adfb9a8f4fc3323d9b3 DIST libadwaita-1.1.2.tar.xz 2731632 BLAKE2B e60201f6d2f51713350b3ec18dae10a5993c6fcea3491495b5e9878461a558609c306a418a59515f2b827b6ee8049ff09b710c4326a87e372e975519bec61274 SHA512 ae89c49986d1bddc5eacc736be8ff0842634bf564e73d4a456b6d899ecc0fcc337f27a17cbb5f8921009f45d82434ab22cf7c2bc9541c4179cd298c2d6706587 DIST libadwaita-1.1.3.tar.xz 2731856 BLAKE2B 743d238779da843935149871f476426933b2b27424d449a32f0ac8a844e4980d65946f9a9cc79480e688fdd73c0e43cfbbc547aef2605dc34c800977825f33a1 SHA512 ffe3f5d3277d243a17b27055856e8c111fd856c22f07e990aff5fb48cd760928ff9389943b118ffba6671655af670cd0f0b8d2d5b34ee2265ac37249ddcaca7c +DIST libadwaita-1.1.4.tar.xz 2733108 BLAKE2B 7a1dc225215f1090365a1ae7b4cd281c253699ee8e6dadbeb95ac0995688b5dd567af875b270cb8b537a0153c6d3204490c5fb38606fc7261c770ae4e27dfe73 SHA512 0e24fd2dff81eeabb658eca12e1a6065c97de9871b05e3eb2f305c789377c85d5719d70c3d4e69c42ef3b4474b6270055e0579dbafd1258a644d84879302e1ca EBUILD libadwaita-1.1.2.ebuild 1475 BLAKE2B b969abf4eb5707559418fb6a0bdca401ed86103473e659747711ada6ba5fc4432088c2fe47beddeb2c7565f371869bd6a26118121a99ead3c7596ace56099953 SHA512 01791235bdc31b69a84db542c48144591e9c835ece11dbb3e93e46ee909989130b8b66377350ddf4175a88512b99130d20db13e4ff427bdf85f80fddcdabdc06 EBUILD libadwaita-1.1.3.ebuild 1477 BLAKE2B c693d66227da61b13c73b92764b10719cbe1ebf708947912bedf92b273152c56403f4b221f8ef0a36ec406cf814ce46f6fc4da362b5db4ac044f6c8a29e1f241 SHA512 bb78a2a879ead063cafb676e88a6473563e1780c4cb201e9d5a23bb6559779d6d9fe6e85f3fee3422f2f8f16841c213d8c4e049b98cd481456054f92bb710ee9 +EBUILD libadwaita-1.1.4.ebuild 1531 BLAKE2B b9d3f201af7f0a55ad801dc6f268fe52120817dc18fc15373c4e0f01a55df0a76851cfd1f3bf9df9f7d8ffe817ae318221806c9a42f43aceb88925756e67ad39 SHA512 7d1f2e45445b413cc0ccd98a434dfc5aae055a571f318a14f7117c16d23feae898724589d852fe46f2429aa56393fc12b712ba9d79ee26959e7cf3370eb355f1 MISC metadata.xml 250 BLAKE2B 8f7f0fe023d43e380e7861e897e6afcb5de4baefb42ea9c65a57dfc0d204c6f787a99295141832e732ebb08be218da56ba77e2dd9639e4e3aabf718ce4db1d0c SHA512 2684e772dd6d83e4b49f08f2ba22d8a0a753e7b46863489eff1b5d1f2f147ad80ffd93245ca405ac4c747249bc1b754454ec9865fe16da70f9b257051e105fd8 diff --git a/gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch b/gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch new file mode 100644 index 000000000000..659d81b2713b --- /dev/null +++ b/gui-libs/libadwaita/files/1.1.4-fix-aliasing.patch @@ -0,0 +1,204 @@ +https://bugs.gentoo.org/859466 + +From 200c33021dbe93eae270aa1cc9a4428365a8d7a4 Mon Sep 17 00:00:00 2001 +From: Matt Turner +Date: Tue, 26 Jul 2022 11:00:18 -0400 +Subject: [PATCH 1/2] tab-view: Retype _AdwTabView::stack to fix aliasing + violation + +../src/adw-tab-view.c:1269:20: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| g_clear_pointer ((GtkWidget **) &self->stack, gtk_widget_unparent); + +Closes: https://gitlab.gnome.org/GNOME/libadwaita/-/issues/522 +(cherry picked from commit 5b6ea17d51a5b42a99128afa562f52aa32eff7b2) +--- + src/adw-tab-view.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/src/adw-tab-view.c b/src/adw-tab-view.c +index 26b64436..9c5fbe00 100644 +--- a/src/adw-tab-view.c ++++ b/src/adw-tab-view.c +@@ -115,7 +115,7 @@ struct _AdwTabView + { + GtkWidget parent_instance; + +- GtkStack *stack; ++ GtkWidget *stack; + GListStore *children; + + int n_pages; +@@ -763,7 +763,7 @@ page_belongs_to_this_view (AdwTabView *self, + if (!page) + return FALSE; + +- return gtk_widget_get_parent (page->child) == GTK_WIDGET (self->stack); ++ return gtk_widget_get_parent (page->child) == self->stack; + } + + static inline gboolean +@@ -786,7 +786,7 @@ attach_page (AdwTabView *self, + + g_list_store_insert (self->children, position, page); + +- gtk_stack_add_child (self->stack, child); ++ gtk_stack_add_child (GTK_STACK (self->stack), child); + + g_object_freeze_notify (G_OBJECT (self)); + +@@ -829,7 +829,7 @@ set_selected_page (AdwTabView *self, + if (notify_pages && self->pages) + new_position = adw_tab_view_get_page_position (self, self->selected_page); + +- gtk_stack_set_visible_child (self->stack, ++ gtk_stack_set_visible_child (GTK_STACK (self->stack), + adw_tab_page_get_child (selected_page)); + set_page_selected (self->selected_page, TRUE); + } +@@ -922,7 +922,7 @@ detach_page (AdwTabView *self, + + g_object_thaw_notify (G_OBJECT (self)); + +- gtk_stack_remove (self->stack, child); ++ gtk_stack_remove (GTK_STACK (self->stack), child); + + g_signal_emit (self, signals[SIGNAL_PAGE_DETACHED], 0, page, pos); + +@@ -1305,7 +1305,7 @@ adw_tab_view_dispose (GObject *object) + + g_clear_object (&self->children); + +- g_clear_pointer ((GtkWidget **) &self->stack, gtk_widget_unparent); ++ g_clear_pointer (&self->stack, gtk_widget_unparent); + + G_OBJECT_CLASS (adw_tab_view_parent_class)->dispose (object); + } +@@ -1737,9 +1737,9 @@ adw_tab_view_init (AdwTabView *self) + self->children = g_list_store_new (ADW_TYPE_TAB_PAGE); + self->default_icon = G_ICON (g_themed_icon_new ("adw-tab-icon-missing-symbolic")); + +- self->stack = GTK_STACK (gtk_stack_new ()); +- gtk_widget_show (GTK_WIDGET (self->stack)); +- gtk_widget_set_parent (GTK_WIDGET (self->stack), GTK_WIDGET (self)); ++ self->stack = gtk_stack_new (); ++ gtk_widget_show (self->stack); ++ gtk_widget_set_parent (self->stack, GTK_WIDGET (self)); + + g_object_bind_property (self, "is-transferring-page", + self->stack, "can-target", +@@ -2569,7 +2569,7 @@ adw_tab_view_get_page (AdwTabView *self, + + g_return_val_if_fail (ADW_IS_TAB_VIEW (self), NULL); + g_return_val_if_fail (GTK_IS_WIDGET (child), NULL); +- g_return_val_if_fail (gtk_widget_get_parent (child) == GTK_WIDGET (self->stack), NULL); ++ g_return_val_if_fail (gtk_widget_get_parent (child) == self->stack, NULL); + + for (i = 0; i < self->n_pages; i++) { + AdwTabPage *page = adw_tab_view_get_nth_page (self, i); +-- +2.35.1 + +From e6d911fae1cbebe3769ccfb0c665ce5162c86a24 Mon Sep 17 00:00:00 2001 +From: Matt Turner +Date: Tue, 26 Jul 2022 11:02:14 -0400 +Subject: [PATCH 2/2] tab-box: Retype _AdwTabBox::context_menu to fix aliasing + violation + +../src/adw-tab-box.c:3410:20: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| g_clear_pointer ((GtkWidget **) &self->context_menu, gtk_widget_unparent); + +Closes: https://gitlab.gnome.org/GNOME/libadwaita/-/issues/522 +(cherry picked from commit 33ab48efb62ae331f48521de1cf45960e609ff26) +--- + src/adw-tab-box.c | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/src/adw-tab-box.c b/src/adw-tab-box.c +index 54178555..2e0b62bf 100644 +--- a/src/adw-tab-box.c ++++ b/src/adw-tab-box.c +@@ -100,7 +100,7 @@ struct _AdwTabBox + GList *tabs; + int n_tabs; + +- GtkPopover *context_menu; ++ GtkWidget *context_menu; + GtkWidget *background; + + int allocated_width; +@@ -2618,7 +2618,7 @@ reset_setup_menu_cb (AdwTabBox *self) + static void + touch_menu_notify_visible_cb (AdwTabBox *self) + { +- if (!self->context_menu || gtk_widget_get_visible (GTK_WIDGET (self->context_menu))) ++ if (!self->context_menu || gtk_widget_get_visible (self->context_menu)) + return; + + self->hovering = FALSE; +@@ -2642,15 +2642,15 @@ do_popup (AdwTabBox *self, + g_signal_emit_by_name (self->view, "setup-menu", info->page); + + if (!self->context_menu) { +- self->context_menu = GTK_POPOVER (gtk_popover_menu_new_from_model (model)); +- gtk_widget_set_parent (GTK_WIDGET (self->context_menu), GTK_WIDGET (self)); +- gtk_popover_set_position (self->context_menu, GTK_POS_BOTTOM); +- gtk_popover_set_has_arrow (self->context_menu, FALSE); ++ self->context_menu = gtk_popover_menu_new_from_model (model); ++ gtk_widget_set_parent (self->context_menu, GTK_WIDGET (self)); ++ gtk_popover_set_position (GTK_POPOVER (self->context_menu), GTK_POS_BOTTOM); ++ gtk_popover_set_has_arrow (GTK_POPOVER (self->context_menu), FALSE); + + if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL) +- gtk_widget_set_halign (GTK_WIDGET (self->context_menu), GTK_ALIGN_END); ++ gtk_widget_set_halign (self->context_menu, GTK_ALIGN_END); + else +- gtk_widget_set_halign (GTK_WIDGET (self->context_menu), GTK_ALIGN_START); ++ gtk_widget_set_halign (self->context_menu, GTK_ALIGN_START); + + g_signal_connect_object (self->context_menu, "notify::visible", + G_CALLBACK (touch_menu_notify_visible_cb), self, +@@ -2672,9 +2672,9 @@ do_popup (AdwTabBox *self, + rect.width = 0; + rect.height = 0; + +- gtk_popover_set_pointing_to (self->context_menu, &rect); ++ gtk_popover_set_pointing_to (GTK_POPOVER (self->context_menu), &rect); + +- gtk_popover_popup (self->context_menu); ++ gtk_popover_popup (GTK_POPOVER (self->context_menu)); + } + + static void +@@ -2958,7 +2958,7 @@ adw_tab_box_size_allocate (GtkWidget *widget, + value = gtk_adjustment_get_value (self->adjustment); + + if (self->context_menu) +- gtk_popover_present (self->context_menu); ++ gtk_popover_present (GTK_POPOVER (self->context_menu)); + + if (!self->n_tabs) + return; +@@ -3169,7 +3169,7 @@ adw_tab_box_unrealize (GtkWidget *widget) + { + AdwTabBox *self = ADW_TAB_BOX (widget); + +- g_clear_pointer ((GtkWidget **) &self->context_menu, gtk_widget_unparent); ++ g_clear_pointer (&self->context_menu, gtk_widget_unparent); + + GTK_WIDGET_CLASS (adw_tab_box_parent_class)->unrealize (widget); + } +@@ -3213,9 +3213,9 @@ adw_tab_box_direction_changed (GtkWidget *widget, + + if (self->context_menu) { + if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL) +- gtk_widget_set_halign (GTK_WIDGET (self->context_menu), GTK_ALIGN_END); ++ gtk_widget_set_halign (self->context_menu, GTK_ALIGN_END); + else +- gtk_widget_set_halign (GTK_WIDGET (self->context_menu), GTK_ALIGN_START); ++ gtk_widget_set_halign (self->context_menu, GTK_ALIGN_START); + } + } + +-- +2.35.1 + diff --git a/gui-libs/libadwaita/libadwaita-1.1.4.ebuild b/gui-libs/libadwaita/libadwaita-1.1.4.ebuild new file mode 100644 index 000000000000..e7e4b05600de --- /dev/null +++ b/gui-libs/libadwaita/libadwaita-1.1.4.ebuild @@ -0,0 +1,69 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{8..11} ) +VALA_MIN_API_VERSION="0.52" +inherit gnome.org meson python-any-r1 vala virtualx + +DESCRIPTION="Building blocks for modern adaptive GNOME applications" +HOMEPAGE="https://gnome.pages.gitlab.gnome.org/libadwaita/ https://gitlab.gnome.org/GNOME/libadwaita" + +LICENSE="LGPL-2.1+" +SLOT="1" +IUSE="+introspection test +vala" +REQUIRED_USE="vala? ( introspection )" + +KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" + +DEPEND=" + >=dev-libs/glib-2.66:2 + >=gui-libs/gtk-4.5.0:4[introspection?] + dev-libs/fribidi + introspection? ( >=dev-libs/gobject-introspection-1.54:= ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + ${PYTHON_DEPS} + vala? ( $(vala_depend) ) + >=dev-util/meson-0.59.0 + dev-util/glib-utils + sys-devel/gettext + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PV}-fix-aliasing.patch +) + +src_prepare() { + default + use vala && vala_setup +} + +src_configure() { + local emesonargs=( + # Never use gi-docgen subproject + --wrap-mode nofallback + + -Dprofiling=false + $(meson_feature introspection) + $(meson_use vala vapi) + -Dgtk_doc=false # we ship pregenerated docs + $(meson_use test tests) + -Dexamples=false + ) + meson_src_configure +} + +src_test() { + virtx meson_src_test --timeout-multiplier 2 +} + +src_install() { + meson_src_install + + insinto /usr/share/gtk-doc/html + # This will install libadwaita API docs unconditionally, but this is intentional + doins -r "${S}"/doc/libadwaita-1 +} -- cgit v1.2.3