[nemo-open-terminal] Rebuilt for libgnome-desktop soname bump

leigh123linux leigh123linux at fedoraproject.org
Sun Feb 24 19:32:43 UTC 2013


commit 8df5192a85d3c49e7e25f32d1552aad5c3fac522
Author: leigh123linux <leigh123linux at googlemail.com>
Date:   Sun Feb 24 19:32:38 2013 +0000

    Rebuilt for libgnome-desktop soname bump
    
    - Patch for gnome-desktop changes

 nemo-open-terminal.spec |    7 ++-
 upstream_commit.patch   |  171 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 176 insertions(+), 2 deletions(-)
---
diff --git a/nemo-open-terminal.spec b/nemo-open-terminal.spec
index fa54443..edc5482 100644
--- a/nemo-open-terminal.spec
+++ b/nemo-open-terminal.spec
@@ -10,7 +10,9 @@ License:        GPLv2+ and LGPLv2+
 URL:            https://github.com/leigh123linux/nemo-open-terminal
 # To generate source
 # wget https://github.com/leigh123linux/nemo-open-terminal/tarball/%%{_internal_version} -O nemo-open-terminal-%%{version}.git%%{_internal_version}.tar.gz
-Source0:        http://leigh123linux.fedorapeople.org/pub/nemo-open-terminal/source/nemo-open-terminal-%{version}.tar.gz        
+Source0:        http://leigh123linux.fedorapeople.org/pub/nemo-open-terminal/source/nemo-open-terminal-%{version}.tar.gz
+
+Patch0:         upstream_commit.patch
 
 BuildRequires:  gnome-desktop3-devel
 BuildRequires:  intltool
@@ -29,7 +31,7 @@ Terminal" option for nemo users who prefer that option.
 
 %prep
 %setup -q -n leigh123linux-%{name}-%{_internal_version}
-
+%patch0 -p1
 
 %build
 %configure --disable-static \
@@ -65,6 +67,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/nemo/extensions-3.0/*.la
 %changelog
 * Sun Feb 24 2013 Leigh Scott <leigh123linux at googlemail.com> - 1.0.0-4
 - Rebuilt for libgnome-desktop soname bump
+- Patch for gnome-desktop changes
 
 * Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0.0-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
diff --git a/upstream_commit.patch b/upstream_commit.patch
new file mode 100644
index 0000000..1ba833c
--- /dev/null
+++ b/upstream_commit.patch
@@ -0,0 +1,171 @@
+--- a/src/eel-gnome-extensions.c	2012-10-08 13:38:46.000000000 +0100
++++ b/src/eel-gnome-extensions.c	2013-02-24 18:43:12.028160414 +0000
+@@ -33,7 +33,6 @@
+ #include <fcntl.h>
+ #include <gdk/gdkx.h>
+ #include <gtk/gtk.h>
+-#include <libgnome-desktop/gnome-desktop-utils.h>
+ #include <limits.h>
+ #include <signal.h>
+ #include <stdio.h>
+@@ -45,136 +44,10 @@
+ 
+ /* Return a command string containing the path to a terminal on this system. */
+ 
+-static char *
+-try_terminal_command (const char *program,
+-		      const char *args)
+-{
+-	char *program_in_path, *quoted, *result;
+-
+-	if (program == NULL) {
+-		return NULL;
+-	}
+-
+-	program_in_path = g_find_program_in_path (program);
+-	if (program_in_path == NULL) {
+-		return NULL;
+-	}
+-
+-	quoted = g_shell_quote (program_in_path);
+-	if (args == NULL || args[0] == '\0') {
+-		return quoted;
+-	}
+-	result = g_strconcat (quoted, " ", args, NULL);
+-	g_free (quoted);
+-	return result;
+-}
+-
+-static char *
+-try_terminal_command_argv (int argc,
+-			   char **argv)
+-{
+-	GString *string;
+-	int i;
+-	char *quoted, *result;
+-
+-	if (argc == 0) {
+-		return NULL;
+-	}
+-
+-	if (argc == 1) {
+-		return try_terminal_command (argv[0], NULL);
+-	}
+-	
+-	string = g_string_new (argv[1]);
+-	for (i = 2; i < argc; i++) {
+-		quoted = g_shell_quote (argv[i]);
+-		g_string_append_c (string, ' ');
+-		g_string_append (string, quoted);
+-		g_free (quoted);
+-	}
+-	result = try_terminal_command (argv[0], string->str);
+-	g_string_free (string, TRUE);
+-
+-	return result;
+-}
+-
+-static char *
+-get_terminal_command_prefix (gboolean for_command)
+-{
+-	int argc;
+-	char **argv;
+-	char *command;
+-	guint i;
+-	static const char *const commands[][3] = {
+-		{ "gnome-terminal", "-x",                                      "" },
+-		{ "dtterm",         "-e",                                      "-ls" },
+-		{ "nxterm",         "-e",                                      "-ls" },
+-		{ "color-xterm",    "-e",                                      "-ls" },
+-		{ "rxvt",           "-e",                                      "-ls" },
+-		{ "xterm",          "-e",                                      "-ls" },
+-	};
+-
+-	/* Try the terminal from preferences. Use without any
+-	 * arguments if we are just doing a standalone terminal.
+-	 */
+-	argc = 0;
+-	argv = g_new0 (char *, 1);
+-	gnome_desktop_prepend_terminal_to_vector (&argc, &argv);
+-
+-	command = NULL;
+-	if (argc != 0) {
+-		if (for_command) {
+-			command = try_terminal_command_argv (argc, argv);
+-		} else {
+-			/* Strip off the arguments in a lame attempt
+-			 * to make it be an interactive shell.
+-			 */
+-			command = try_terminal_command (argv[0], NULL);
+-		}
+-	}
+-
+-	while (argc != 0) {
+-		g_free (argv[--argc]);
+-	}
+-	g_free (argv);
+-
+-	if (command != NULL) {
+-		return command;
+-	}
+-
+-	/* Try well-known terminal applications in same order that gmc did. */
+-	for (i = 0; i < G_N_ELEMENTS (commands); i++) {
+-		command = try_terminal_command (commands[i][0],
+-						commands[i][for_command ? 1 : 2]);
+-		if (command != NULL) {
+-			break;
+-		}
+-	}
+-	
+-	return command;
+-}
+-
+-char *
+-_not_eel_gnome_make_terminal_command (const char *command)
+-{
+-	char *prefix, *quoted, *terminal_command;
+-
+-	if (command == NULL) {
+-		return get_terminal_command_prefix (FALSE);
+-	}
+-	prefix = get_terminal_command_prefix (TRUE);
+-	quoted = g_shell_quote (command);
+-	terminal_command = g_strconcat (prefix, " /bin/sh -c ", quoted, NULL);
+-	g_free (prefix);
+-	g_free (quoted);
+-	return terminal_command;
+-}
+-
+ void
+ _not_eel_gnome_open_terminal_on_screen (const char *command,
+ 					GdkScreen  *screen)
+ {
+-	char *command_line;
+ 	GAppInfo *app;
+ 	GdkAppLaunchContext *ctx;
+ 	GError *error = NULL;
+@@ -184,13 +57,7 @@ _not_eel_gnome_open_terminal_on_screen (
+ 		screen = gdk_screen_get_default ();
+ 	}
+ 	
+-	command_line = _not_eel_gnome_make_terminal_command (command);
+-	if (command_line == NULL) {
+-		g_message ("Could not start a terminal");
+-		return;
+-	}
+-
+-	app = g_app_info_create_from_commandline (command_line, NULL, 0, &error);
++	app = g_app_info_create_from_commandline (command, NULL, G_APP_INFO_CREATE_NEEDS_TERMINAL, &error);
+ 
+ 	if (app != NULL) {
+ 		display = gdk_screen_get_display (screen);
+@@ -208,8 +75,6 @@ _not_eel_gnome_open_terminal_on_screen (
+ 
+ 		g_error_free (error);
+ 	}
+-
+-	g_free (command_line);
+ }
+ 
+ void


More information about the scm-commits mailing list