From bdc46ef4f1dbe4f09a704921f5de6f00bd8c6213 Mon Sep 17 00:00:00 2001 From: oreo639 <31916379+Oreo639@users.noreply.github.com> Date: Thu, 31 Mar 2022 16:40:10 -0700 Subject: [PATCH 1/2] New package: gnome-console-42.beta --- srcpkgs/gnome-console/template | 25 ++++++++++++++++++++++++ srcpkgs/nautilus-gnome-console-extension | 1 + 2 files changed, 26 insertions(+) create mode 100644 srcpkgs/gnome-console/template create mode 120000 srcpkgs/nautilus-gnome-console-extension diff --git a/srcpkgs/gnome-console/template b/srcpkgs/gnome-console/template new file mode 100644 index 000000000000..8bebd62378d1 --- /dev/null +++ b/srcpkgs/gnome-console/template @@ -0,0 +1,25 @@ +# Template file for 'gnome-console' +pkgname=gnome-console +version=42.beta +revision=1 +build_style=meson +configure_args="-Dnautilus=enabled" +hostmakedepends="pkg-config desktop-file-utils gettext + gobject-introspection sassc glib-devel" +makedepends="gtk+3-devel libhandy1-devel vte3-devel libgtop-devel + nautilus-devel gsettings-desktop-schemas-devel" +depends="gsettings-desktop-schemas" +short_desc="Simple user-friendly terminal emulator for the GNOME desktop" +maintainer="oreo639 " +license="GPL-3.0-or-later" +homepage="https://gitlab.gnome.org/GNOME/console" +distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz" +checksum=2eafec8720210dcc01e47aa98a1bc6c76fb1c155365dac7bfcd7ab170477e834 + +nautilus-gnome-console-extension_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - integration for nautilus" + pkg_install() { + vmove usr/lib/nautilus/extensions-3.0 + } +} diff --git a/srcpkgs/nautilus-gnome-console-extension b/srcpkgs/nautilus-gnome-console-extension new file mode 120000 index 000000000000..4107e3ff7e4c --- /dev/null +++ b/srcpkgs/nautilus-gnome-console-extension @@ -0,0 +1 @@ +gnome-console \ No newline at end of file From b70434ea32cf9e791110ce8df2d69f57e35a4b61 Mon Sep 17 00:00:00 2001 From: oreo639 <31916379+Oreo639@users.noreply.github.com> Date: Sat, 9 Apr 2022 04:27:04 -0700 Subject: [PATCH 2/2] glib: support gnome-console --- .../glib/patches/gnome-console-support.patch | 62 +++++++++++++++++++ srcpkgs/glib/template | 2 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/glib/patches/gnome-console-support.patch diff --git a/srcpkgs/glib/patches/gnome-console-support.patch b/srcpkgs/glib/patches/gnome-console-support.patch new file mode 100644 index 000000000000..1eac1103ba31 --- /dev/null +++ b/srcpkgs/glib/patches/gnome-console-support.patch @@ -0,0 +1,62 @@ +Currently glib hardcodes a list of terminals and that list will not be expanding. +The hope being that it will eventually be replaced with some kind of api. +Until then, we might as well add gnome-console/kgx to the list + +See: +https://gitlab.gnome.org/GNOME/gnome-build-meta/-/merge_requests/1404#note_1331262 + +diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c +index 60d6debb2..a441bfec9 100644 +--- a/gio/gdesktopappinfo.c ++++ b/gio/gdesktopappinfo.c +@@ -2627,6 +2627,7 @@ prepend_terminal_to_vector (int *argc, + int i, j; + char **term_argv = NULL; + int term_argc = 0; ++ gboolean pass_cmd_as_single_arg = FALSE; + char *check; + char **the_argv; + +@@ -2672,6 +2673,11 @@ prepend_terminal_to_vector (int *argc, + } + else + { ++ if (check == NULL) { ++ check = g_find_program_in_path ("kgx"); ++ if (check != NULL) ++ pass_cmd_as_single_arg = TRUE; ++ } + if (check == NULL) + check = g_find_program_in_path ("tilix"); + if (check == NULL) +@@ -2697,14 +2703,27 @@ prepend_terminal_to_vector (int *argc, + } + } + +- real_argc = term_argc + *argc; ++ real_argc = term_argc + (pass_cmd_as_single_arg ? 1 : *argc); + real_argv = g_new (char *, real_argc + 1); + + for (i = 0; i < term_argc; i++) + real_argv[i] = term_argv[i]; + +- for (j = 0; j < *argc; j++, i++) +- real_argv[i] = (char *)the_argv[j]; ++ if (pass_cmd_as_single_arg) { ++ char **quoted_argv = g_new (char *, *argc + 1); ++ ++ for (j = 0; j < *argc; j++) { ++ quoted_argv[j] = g_shell_quote (the_argv[j]); ++ g_free (the_argv[j]); ++ } ++ quoted_argv[j] = NULL; ++ ++ real_argv[i++] = g_strjoinv (" ", quoted_argv); ++ g_strfreev (quoted_argv); ++ } else { ++ for (j = 0; j < *argc; j++, i++) ++ real_argv[i] = (char *)the_argv[j]; ++ } + + real_argv[i] = NULL; + diff --git a/srcpkgs/glib/template b/srcpkgs/glib/template index d301dadb8990..97b067e40b46 100644 --- a/srcpkgs/glib/template +++ b/srcpkgs/glib/template @@ -1,7 +1,7 @@ # Template file for 'glib' pkgname=glib version=2.72.0 -revision=1 +revision=2 build_style=meson # static version is necessary for qemu-user-static; # also disable LTO, otherwise there are multiple failures when linking qemu