diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-12-06 19:57:55 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-02-08 13:48:30 +0000 |
commit | bf3aadfdd39aa197e18bade671fab6726349ffa4 (patch) | |
tree | 698567af766ed441d757b57a7b21e68d4a342a2b /nixpkgs/pkgs/development/libraries/glib | |
parent | f4afc5a01d9539ce09e47494e679c51f80723d07 (diff) | |
parent | 99665eb45f58d959d2cb9e49ddb960c79d596f33 (diff) | |
download | nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.gz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.bz2 nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.lz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.xz nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.tar.zst nixlib-bf3aadfdd39aa197e18bade671fab6726349ffa4.zip |
Merge commit '99665eb45f58d959d2cb9e49ddb960c79d596f33'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/glib')
3 files changed, 80 insertions, 3 deletions
diff --git a/nixpkgs/pkgs/development/libraries/glib/default.nix b/nixpkgs/pkgs/development/libraries/glib/default.nix index ecae47b3d2dd..8fb12fc0203a 100644 --- a/nixpkgs/pkgs/development/libraries/glib/default.nix +++ b/nixpkgs/pkgs/development/libraries/glib/default.nix @@ -45,11 +45,11 @@ in stdenv.mkDerivation rec { pname = "glib"; - version = "2.72.0"; + version = "2.72.3"; src = fetchurl { url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "177w1MTnpi4I77jl8lKgE1cAe5WIqH/ytGOjhXAR950="; + sha256 = "Sjmi9iS4US1QDVhAFz7af6hfUcEJBS6ugGrOzoXTRfA="; }; patches = optionals stdenv.isDarwin [ @@ -61,6 +61,12 @@ stdenv.mkDerivation rec { ./glib-appinfo-watch.patch ./schema-override-variable.patch + # Add support for the GNOME’s default terminal emulator. + # https://gitlab.gnome.org/GNOME/glib/-/issues/2618 + ./gnome-console-support.patch + # Do the same for Pantheon’s terminal emulator. + ./elementary-terminal-support.patch + # GLib contains many binaries used for different purposes; # we will install them to different outputs: # 1. Tools for desktop environment ($bin) @@ -115,7 +121,7 @@ stdenv.mkDerivation rec { strictDeps = true; nativeBuildInputs = [ - (meson.override { + (buildPackages.meson.override { withDarwinFrameworksGtkDocPatch = stdenv.isDarwin; }) ninja pkg-config perl python3 gettext gtk-doc docbook_xsl docbook_xml_dtd_45 libxml2 diff --git a/nixpkgs/pkgs/development/libraries/glib/elementary-terminal-support.patch b/nixpkgs/pkgs/development/libraries/glib/elementary-terminal-support.patch new file mode 100644 index 000000000000..0b8c8a70871c --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/glib/elementary-terminal-support.patch @@ -0,0 +1,16 @@ +diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c +index a441bfec9..6bcd3e690 100644 +--- a/gio/gdesktopappinfo.c ++++ b/gio/gdesktopappinfo.c +@@ -2678,6 +2678,11 @@ prepend_terminal_to_vector (int *argc, + if (check != NULL) + pass_cmd_as_single_arg = TRUE; + } ++ if (check == NULL) { ++ check = g_find_program_in_path ("io.elementary.terminal"); ++ if (check != NULL) ++ pass_cmd_as_single_arg = TRUE; ++ } + if (check == NULL) + check = g_find_program_in_path ("tilix"); + if (check == NULL) diff --git a/nixpkgs/pkgs/development/libraries/glib/gnome-console-support.patch b/nixpkgs/pkgs/development/libraries/glib/gnome-console-support.patch new file mode 100644 index 000000000000..7f6894a5cec9 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/glib/gnome-console-support.patch @@ -0,0 +1,55 @@ +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; + |