From be221de8cd2da5f6bef229d081594753f71b848f 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 1/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..b142aa0b7514 --- /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 +Source: https://github.com/NixOS/nixpkgs/commit/c987121acf5c87436a0b05ca75cd70bf38c452ca + +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 b69e5bbda63a..8583a6616511 100644 --- a/srcpkgs/glib/template +++ b/srcpkgs/glib/template @@ -1,7 +1,7 @@ # Template file for 'glib' pkgname=glib version=2.72.2 -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 From 75066c23f7f194c8e519b7f562cb4478cf3c3f39 Mon Sep 17 00:00:00 2001 From: oreo639 <31916379+Oreo639@users.noreply.github.com> Date: Sun, 24 Jul 2022 21:55:20 -0700 Subject: [PATCH 2/2] New package: gnome-console-42.2 --- srcpkgs/gnome-console/template | 26 ++++++++++++++++++++++++ srcpkgs/nautilus-gnome-console-extension | 1 + 2 files changed, 27 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..7e09b6cc9945 --- /dev/null +++ b/srcpkgs/gnome-console/template @@ -0,0 +1,26 @@ +# Template file for 'gnome-console' +pkgname=gnome-console +version=42.2 +revision=1 +build_style=meson +configure_args="-Dnautilus=enabled" +hostmakedepends="pkg-config desktop-file-utils gettext sassc + gobject-introspection glib-devel gtk-update-icon-cache" +makedepends="libhandy1-devel vte3-devel libgtop-devel nautilus-devel + gsettings-desktop-schemas-devel pcre2-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" +changelog="https://gitlab.gnome.org/GNOME/console/-/raw/gnome-42/NEWS" +distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz" +checksum=7d26e6c18744c575a787293263f60ceff630107098e9e58a7765b00ac7437049 + +nautilus-gnome-console-extension_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - nautilus integration" + 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