New package: extension-manager-0.4.2

This commit is contained in:
chrysos349 2023-06-26 01:00:11 +03:00 committed by Duncan Overbruck
parent fbf2ac0a6b
commit 05ac8a473c
2 changed files with 219 additions and 0 deletions

View File

@ -0,0 +1,198 @@
diff -ru a/src/main.c b/src/main.c
--- a/src/main.c 2023-05-02 04:01:31.000000000 +0300
+++ b/src/main.c 2023-05-25 03:19:55.506674695 +0300
@@ -17,77 +17,21 @@
*/
#include <glib/gi18n.h>
-#include <signal.h>
#include "exm-config.h"
#include "exm-application.h"
-#include "exm-backtrace.h"
-#include "exm-error-dialog.h"
-
-#define APP_URL "https://github.com/mjakeman/extension-manager"
-
-static int pipe_fd[2];
-
-void
-handler (int sig)
-{
- const char *backtrace;
-
- g_print ("A fatal error has occurred.\n");
- g_print ("Please report this to '%s' and attach the following crash report:\n\n", APP_URL);
-
- g_print ("START BACKTRACE\n\n");
- backtrace = exm_backtrace_print ();
- g_print ("%s\n", backtrace);
- g_print ("END BACKTRACE\n\n");
-
- if (backtrace)
- {
- // Send backtrace string over pipe
- write (pipe_fd[1], backtrace, strlen (backtrace));
- }
-
- close (pipe_fd[1]);
-
- // Terminate process
- signal (sig, SIG_DFL);
- kill (getpid (), sig);
-}
-
-static void
-run_crash_reporter (const char *error_text)
-{
- adw_init ();
-
- // Setup CSS
- GdkDisplay *display = gdk_display_get_default ();
- GtkCssProvider *provider = gtk_css_provider_new ();
- gtk_css_provider_load_from_resource (provider, "/com/mattjakeman/ExtensionManager/style.css");
- gtk_style_context_add_provider_for_display (display, GTK_STYLE_PROVIDER (provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-
- // Show error dialog with provided string
- ExmErrorDialog *err_dialog;
- err_dialog = exm_error_dialog_new (error_text);
-
- gtk_window_present (GTK_WINDOW (err_dialog));
-
- // Iterate main loop until closed
- while (g_list_model_get_n_items (gtk_window_get_toplevels ()) > 0)
- g_main_context_iteration (NULL, TRUE);
-}
-
-static int
-run_app (int argc,
- char *argv[])
+int
+main (int argc,
+ char *argv[])
{
g_autoptr(ExmApplication) app = NULL;
- int ret;
+ int ret;
- /* Setup backtrace service */
- exm_backtrace_init (argv[0]);
- signal (SIGSEGV, handler);
+ /* Set up gettext translations */
+ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ textdomain (GETTEXT_PACKAGE);
/*
* Create a new GtkApplication. The application manages our main loop,
@@ -110,74 +54,3 @@
return ret;
}
-
-int
-main (int argc,
- char *argv[])
-{
- gboolean use_crash_reporter;
- int pid;
-
- // Either side of the pipe
-
- use_crash_reporter = TRUE;
-
- // Set up gettext translations
- bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- // Attempt to create the pipe
- if (pipe (pipe_fd) == -1)
- use_crash_reporter = FALSE;
-
- // Run app normally
- if (!use_crash_reporter)
- return run_app (argc, argv);
-
- // Run the GUI as a subprocess of the crash reporter. Depending
- // on the exit code, we can display the crash dialog.
- pid = fork();
-
- // Child process
- if (pid == 0)
- {
- // Close reading end of pipe
- close (pipe_fd[0]);
-
- // Run app normally
- return run_app (argc, argv);
- }
-
- // Parent process
- else
- {
- char ch;
- GString *string_builder;
- char *error_text;
-
- // Close the writing end of pipe
- close (pipe_fd [1]);
-
- string_builder = g_string_new ("");
-
- while (read (pipe_fd[0], &ch, 1) != 0)
- g_string_append_c (string_builder, ch);
-
- // Wait for child to finish
- waitpid (pid, 0, 0);
- close (pipe_fd[0]);
-
- error_text = g_string_free (string_builder, FALSE);
-
- if (strlen (error_text) > 0)
- {
- // An error has occurred
- run_crash_reporter (error_text);
- g_free (error_text);
- return -1;
- }
-
- return 0;
- }
-}
diff -ru a/src/meson.build b/src/meson.build
--- a/src/meson.build 2023-05-02 04:01:31.000000000 +0300
+++ b/src/meson.build 2023-05-25 03:13:52.478385702 +0300
@@ -24,12 +24,12 @@
'exm-upgrade-assistant.c',
'exm-upgrade-result.c',
'exm-install-button.c',
- 'exm-backtrace.c',
+ #'exm-backtrace.c',
'exm-utils.c'
]
cc = meson.get_compiler('c')
-libbacktrace_dep = cc.find_library('backtrace', required: true)
+#libbacktrace_dep = cc.find_library('backtrace', required: true)
exm_deps = [
dependency('gtk4'),
@@ -38,7 +38,7 @@
dependency('json-glib-1.0'),
dependency('libsoup-3.0'),
dependency('text-engine-0.1'),
- libbacktrace_dep
+ #libbacktrace_dep
]
gnome = import('gnome')
@@ -78,4 +78,4 @@
executable('extension-manager', exm_sources,
dependencies: exm_deps,
install: true,
-)
\ No newline at end of file
+)

View File

@ -0,0 +1,21 @@
# Template file for 'extension-manager'
pkgname=extension-manager
version=0.4.2
revision=1
build_style=meson
hostmakedepends="pkg-config gettext blueprint-compiler desktop-file-utils
glib-devel gtk-update-icon-cache"
makedepends="libadwaita-devel text-engine-devel"
short_desc="Utility for browsing and installing GNOME Shell Extensions"
maintainer="chrysos349 <chrysostom349@gmail.com>"
license="GPL-3.0-or-later"
homepage="https://github.com/mjakeman/extension-manager"
changelog="https://raw.githubusercontent.com/mjakeman/extension-manager/master/NEWS"
distfiles="https://github.com/mjakeman/extension-manager/archive/v${version}.tar.gz"
checksum=c9443755aab4340b6bb31b9ab18d49fdf65d14391bce80e6262cc7ba27e5eab0
pre_build() {
if [ "$CROSS_BUILD" ]; then
export GI_TYPELIB_PATH="${XBPS_CROSS_BASE}/usr/lib/girepository-1.0"
fi
}