diff options
author | Yuan Liao <liaoyuan@gmail.com> | 2023-06-03 10:40:10 -0700 |
---|---|---|
committer | Yuan Liao <liaoyuan@gmail.com> | 2023-06-03 10:40:10 -0700 |
commit | eab57b2ecae661d7a5bab86bd0c7157d3dcbcbc3 (patch) | |
tree | e5b5444d91339d8e563674dff0ff397bb75cd0a1 | |
parent | app-vim/ansible-vim: add 3.3 (diff) | |
download | guru-eab57b2ecae661d7a5bab86bd0c7157d3dcbcbc3.tar.gz guru-eab57b2ecae661d7a5bab86bd0c7157d3dcbcbc3.tar.bz2 guru-eab57b2ecae661d7a5bab86bd0c7157d3dcbcbc3.zip |
gnome-extra/extension-manager: Add patch to remove libbacktrace dep
Signed-off-by: Yuan Liao <liaoyuan@gmail.com>
4 files changed, 281 insertions, 1 deletions
diff --git a/gnome-extra/extension-manager/extension-manager-0.4.1-r1.ebuild b/gnome-extra/extension-manager/extension-manager-0.4.1-r1.ebuild new file mode 100644 index 000000000..bed7abdeb --- /dev/null +++ b/gnome-extra/extension-manager/extension-manager-0.4.1-r1.ebuild @@ -0,0 +1,88 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit gnome2-utils meson xdg + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/mjakeman/extension-manager.git" +else + SRC_URI="https://github.com/mjakeman/extension-manager/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64" +fi + +DESCRIPTION="A native tool for browsing, installing, and managing GNOME Shell Extensions" +HOMEPAGE="https://mjakeman.github.io/extension-manager/" + +LICENSE="GPL-3+" +SLOT="0" + +BDEPEND=" + dev-libs/glib:2 + dev-util/blueprint-compiler + sys-devel/gettext + virtual/pkgconfig +" + +RDEPEND=" + dev-libs/glib:2 + dev-libs/json-glib + gui-libs/gtk:4[introspection] + >=gui-libs/libadwaita-1.2.0:1[introspection] + gui-libs/text-engine + net-libs/libsoup:3.0 +" + +DEPEND=" + ${RDEPEND} +" + +PATCHES=( + "${FILESDIR}/${PN}-0.4.1-exm-backtrace.c-include-stdint.h.patch" + "${FILESDIR}/${PN}-0.4.1-make-libbacktrace-optional.patch" +) + +src_configure() { + local emesonargs=( + -Dpackage="ebuild" + -Ddistributor="Gentoo GURU <guru-bugs@gentoo.org>" + + # sys-libs/libbacktrace has been last-rited in ::gentoo + # and is thus unavailable + -Dbacktrace=false + ) + if has live ${PROPERTIES}; then + # Produce a development build for live ebuild + emesonargs+=( -Ddevelopment=true ) + fi + meson_src_configure +} + +# Tests are skipped because as of version 0.3.0, the tests only validate +# resource files and do not verify any functionality of the program. Those +# validations are either already handled by QA checks or not relevant on +# Gentoo. For more information about the rationale, please refer to: +# https://github.com/gentoo/guru/commit/f896bee213fbb62c70e818c1bf503fee2a41919a#comments +# +# If tests are to be executed in the future because the upstream adds +# functionality tests or for other reasons, and should there be no convenient +# way to skip the validations, the following variable values need to be set: +# +# IUSE="test" +# RESTRICT="!test? ( test )" +# BDEPEND="test? ( dev-libs/appstream-glib dev-util/desktop-file-utils )" +src_test() { + : +} + +pkg_postinst() { + xdg_pkg_postinst + gnome2_schemas_update +} + +pkg_postrm() { + xdg_pkg_postrm + gnome2_schemas_update +} diff --git a/gnome-extra/extension-manager/extension-manager-9999.ebuild b/gnome-extra/extension-manager/extension-manager-9999.ebuild index 273d091d9..bed7abdeb 100644 --- a/gnome-extra/extension-manager/extension-manager-9999.ebuild +++ b/gnome-extra/extension-manager/extension-manager-9999.ebuild @@ -33,17 +33,25 @@ RDEPEND=" >=gui-libs/libadwaita-1.2.0:1[introspection] gui-libs/text-engine net-libs/libsoup:3.0 - sys-libs/libbacktrace " DEPEND=" ${RDEPEND} " +PATCHES=( + "${FILESDIR}/${PN}-0.4.1-exm-backtrace.c-include-stdint.h.patch" + "${FILESDIR}/${PN}-0.4.1-make-libbacktrace-optional.patch" +) + src_configure() { local emesonargs=( -Dpackage="ebuild" -Ddistributor="Gentoo GURU <guru-bugs@gentoo.org>" + + # sys-libs/libbacktrace has been last-rited in ::gentoo + # and is thus unavailable + -Dbacktrace=false ) if has live ${PROPERTIES}; then # Produce a development build for live ebuild diff --git a/gnome-extra/extension-manager/files/extension-manager-0.4.1-exm-backtrace.c-include-stdint.h.patch b/gnome-extra/extension-manager/files/extension-manager-0.4.1-exm-backtrace.c-include-stdint.h.patch new file mode 100644 index 000000000..bc0e27b57 --- /dev/null +++ b/gnome-extra/extension-manager/files/extension-manager-0.4.1-exm-backtrace.c-include-stdint.h.patch @@ -0,0 +1,31 @@ +From 49186450ff33e4a75d966cee51bcb6446fae3639 Mon Sep 17 00:00:00 2001 +From: Yuan Liao <liaoyuan@gmail.com> +Date: Sat, 3 Jun 2023 09:59:11 -0700 +Subject: [PATCH 1/2] exm-backtrace.c: Explicitly include stdint.h for + uintptr_t usage + +The file uses type uintptr_t from stdint.h, which is indirectly included +by backtrace.h. Even so, the file should unconditionally include +stdint.h just in case backtrace.h no longer includes stdint.h in the +future. + +Signed-off-by: Yuan Liao <liaoyuan@gmail.com> +--- + src/exm-backtrace.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/exm-backtrace.c b/src/exm-backtrace.c +index 56b253a..4951394 100644 +--- a/src/exm-backtrace.c ++++ b/src/exm-backtrace.c +@@ -21,6 +21,7 @@ + #include "exm-backtrace.h" + + #include <glib.h> ++#include <stdint.h> + + #include <backtrace-supported.h> + #include <backtrace.h> +-- +2.39.3 + diff --git a/gnome-extra/extension-manager/files/extension-manager-0.4.1-make-libbacktrace-optional.patch b/gnome-extra/extension-manager/files/extension-manager-0.4.1-make-libbacktrace-optional.patch new file mode 100644 index 000000000..66c1a20c0 --- /dev/null +++ b/gnome-extra/extension-manager/files/extension-manager-0.4.1-make-libbacktrace-optional.patch @@ -0,0 +1,153 @@ +From 6365d56e120c7522bc5a2ba515a3cd6efac1b184 Mon Sep 17 00:00:00 2001 +From: Yuan Liao <liaoyuan@gmail.com> +Date: Sat, 3 Jun 2023 09:55:38 -0700 +Subject: [PATCH 2/2] Make libbacktrace an optional dependency + +Signed-off-by: Yuan Liao <liaoyuan@gmail.com> +--- + meson.build | 1 + + meson_options.txt | 5 +++++ + src/exm-application.c | 2 ++ + src/exm-backtrace.c | 17 +++++++++++++++++ + src/meson.build | 9 ++++++--- + 5 files changed, 31 insertions(+), 3 deletions(-) + +diff --git a/meson.build b/meson.build +index 536cd97..d7b0eb5 100644 +--- a/meson.build ++++ b/meson.build +@@ -25,6 +25,7 @@ config_h.set_quoted('PKG_NAME', get_option('package')) + config_h.set_quoted('PKG_DISTRIBUTOR', get_option('distributor')) + config_h.set10('IS_OFFICIAL', get_option('official')) + config_h.set10('IS_DEVEL', get_option('development')) ++config_h.set10('WITH_BACKTRACE', get_option('backtrace')) + configure_file( + output: 'exm-config.h', + configuration: config_h, +diff --git a/meson_options.txt b/meson_options.txt +index b604dda..3f54b77 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -8,6 +8,11 @@ option('official', + value: false, + description: 'Whether this is an official upstream package') + ++option('backtrace', ++ type: 'boolean', ++ value: true, ++ description: 'Whether the package is built with backtrace support') ++ + # Will be shown in error messages + option('package', + type: 'string', +diff --git a/src/exm-application.c b/src/exm-application.c +index 5b56295..d062627 100644 +--- a/src/exm-application.c ++++ b/src/exm-application.c +@@ -201,11 +201,13 @@ exm_application_show_about (GSimpleAction *action, + GTK_LICENSE_MPL_2_0, + NULL); + ++#if WITH_BACKTRACE + adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about_window), + "libbacktrace", + "Copyright (C) 2012-2016 Free Software Foundation, Inc.", + GTK_LICENSE_BSD_3, + NULL); ++#endif + + adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about_window), + "blueprint", +diff --git a/src/exm-backtrace.c b/src/exm-backtrace.c +index 4951394..3cf09b7 100644 +--- a/src/exm-backtrace.c ++++ b/src/exm-backtrace.c +@@ -18,15 +18,21 @@ + * SPDX-License-Identifier: GPL-3.0-or-later + */ + ++#include "exm-config.h" ++ + #include "exm-backtrace.h" + + #include <glib.h> + #include <stdint.h> + ++#if WITH_BACKTRACE + #include <backtrace-supported.h> + #include <backtrace.h> ++#endif + ++#if WITH_BACKTRACE + static struct backtrace_state *state = NULL; ++#endif + + static void + exm_backtrace_error_cb (void *data, +@@ -54,6 +60,8 @@ exm_backtrace_full_cb (GString *string_builder, + void + exm_backtrace_init (char *filename) + { ++#if WITH_BACKTRACE ++ + #ifdef BACKTRACE_SUPPORTED + state = backtrace_create_state (filename, 0, + exm_backtrace_error_cb, +@@ -61,11 +69,16 @@ exm_backtrace_init (char *filename) + #else + g_warning ("Backtraces are not supported.\n"); + #endif ++ ++#else ++ g_warning ("Backtraces were not enabled at build time.\n"); ++#endif + } + + char * + exm_backtrace_print () + { ++#if WITH_BACKTRACE + GString *string_builder; + + if (!state) +@@ -82,4 +95,8 @@ exm_backtrace_print () + string_builder); + + return g_string_free (string_builder, FALSE); ++#else ++ g_critical ("Backtraces were not enabled at build time.\n"); ++ return NULL; ++#endif + } +diff --git a/src/meson.build b/src/meson.build +index 8599a8f..2adde2d 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -29,7 +29,7 @@ exm_sources = [ + ] + + cc = meson.get_compiler('c') +-libbacktrace_dep = cc.find_library('backtrace', required: true) ++libbacktrace_dep = cc.find_library('backtrace', required: get_option('backtrace')) + + exm_deps = [ + dependency('gtk4'), +@@ -37,10 +37,13 @@ exm_deps = [ + dependency('gio-unix-2.0'), + dependency('json-glib-1.0'), + dependency('libsoup-3.0'), +- dependency('text-engine-0.1'), +- libbacktrace_dep ++ dependency('text-engine-0.1') + ] + ++if libbacktrace_dep.found() ++ exm_deps += libbacktrace_dep ++endif ++ + gnome = import('gnome') + + subdir('local') +-- +2.39.3 + |