diff options
author | Daniel Gryniewicz <dang@gentoo.org> | 2005-05-26 17:25:03 +0000 |
---|---|---|
committer | Daniel Gryniewicz <dang@gentoo.org> | 2005-05-26 17:25:03 +0000 |
commit | 96d98f444a84b779e9bed6e4fe22d156abd74a39 (patch) | |
tree | 34cf26f5a2473299fcdd5e503fbc8bdb878e6d6d /gnome-base/control-center/files | |
parent | readd ~sparc, ~ppc, ~ppc64, ~ia64 keywords on 3.4.1 where present on 3.4.0 (diff) | |
download | gentoo-2-96d98f444a84b779e9bed6e4fe22d156abd74a39.tar.gz gentoo-2-96d98f444a84b779e9bed6e4fe22d156abd74a39.tar.bz2 gentoo-2-96d98f444a84b779e9bed6e4fe22d156abd74a39.zip |
Fix for bug #84997
(Portage version: 2.0.51.19)
Diffstat (limited to 'gnome-base/control-center/files')
-rw-r--r-- | gnome-base/control-center/files/control-center-2.10.1-pathfix.patch | 232 | ||||
-rw-r--r-- | gnome-base/control-center/files/digest-control-center-2.10.1-r1 | 1 |
2 files changed, 233 insertions, 0 deletions
diff --git a/gnome-base/control-center/files/control-center-2.10.1-pathfix.patch b/gnome-base/control-center/files/control-center-2.10.1-pathfix.patch new file mode 100644 index 000000000000..5a9e9aa3cd07 --- /dev/null +++ b/gnome-base/control-center/files/control-center-2.10.1-pathfix.patch @@ -0,0 +1,232 @@ +diff -u -ruN control-center-2.10.1.orig/capplets/theme-switcher/gnome-theme-installer.c control-center-2.10.1/capplets/theme-switcher/gnome-theme-installer.c +--- control-center-2.10.1.orig/capplets/theme-switcher/gnome-theme-installer.c 2005-02-08 17:42:10.000000000 -0500 ++++ control-center-2.10.1/capplets/theme-switcher/gnome-theme-installer.c 2005-05-26 12:17:39.000000000 -0400 +@@ -139,19 +139,30 @@ + transfer_done_targz_idle_cb (gpointer data) + { + int status; +- gchar *command, *filename; ++ gchar *command, *filename, *gzip, *tar; + theme_properties *theme_props = data; + ++ if (!(gzip = g_find_program_in_path("gzip"))) { ++ return FALSE; ++ } ++ if (!(tar = g_find_program_in_path("tar"))) { ++ g_free(gzip); ++ return FALSE; ++ } + /* this should be something more clever and nonblocking */ + filename = g_shell_quote(theme_props->filename); +- command = g_strdup_printf ("sh -c 'cd \"%s\"; /bin/gzip -d -c < \"%s\" | /bin/tar xf - '", +- theme_props->target_tmp_dir, filename); ++ command = g_strdup_printf ("sh -c 'cd \"%s\"; %s -d -c < \"%s\" | %s xf - '", ++ theme_props->target_tmp_dir, gzip, filename, tar); + g_free(filename); + if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0) { + g_free (command); ++ g_free(gzip); ++ g_free(tar); + return TRUE; + } else { + g_free (command); ++ g_free(gzip); ++ g_free(tar); + return FALSE; + } + } +@@ -171,18 +182,29 @@ + transfer_done_tarbz2_idle_cb (gpointer data) + { + int status; +- gchar *command, *filename; ++ gchar *command, *filename, *bzip2, *tar; + theme_properties *theme_props = data; + ++ if (!(bzip2 = g_find_program_in_path("bzip2"))) { ++ return FALSE; ++ } ++ if (!(tar = g_find_program_in_path("tar"))) { ++ g_free(bzip2); ++ return FALSE; ++ } + filename = g_shell_quote(theme_props->filename); + /* this should be something more clever and nonblocking */ +- command = g_strdup_printf ("sh -c 'cd \"%s\"; /usr/bin/bzip2 -d -c < \"%s\" | /bin/tar xf - '", +- theme_props->target_tmp_dir, filename); ++ command = g_strdup_printf ("sh -c 'cd \"%s\"; %s -d -c < \"%s\" | %s xf - '", ++ theme_props->target_tmp_dir, bzip2, filename, tar); + g_free (filename); + if (g_spawn_command_line_sync (command, NULL, NULL, &status, NULL) && status == 0) { ++ g_free(bzip2); ++ g_free(tar); + g_free (command); + return TRUE; + } else { ++ g_free(bzip2); ++ g_free(tar); + g_free (command); + return FALSE; + } +@@ -193,7 +215,7 @@ + { + GtkWidget *dialog; + int len = strlen (path); +- gchar *command,**dir, *first_line, *filename; ++ gchar *command,**dir, *first_line, *filename, *gzip, *bzip2, *tar; + int status,theme_type; + theme_properties *theme_props; + GnomeVFSURI *theme_source_dir, *theme_dest_dir; +@@ -206,17 +228,20 @@ + g_get_home_dir(), + g_random_int()); + ++ gzip = g_find_program_in_path("gzip"); ++ bzip2 = g_find_program_in_path("bzip2"); ++ tar = g_find_program_in_path("tar"); + +- if (path && len > 7 && ( (!strcmp (path + len - 7, ".tar.gz")) || (!strcmp (path + len - 4, ".tgz")) )) { ++ if (tar && gzip && path && len > 7 && ( (!strcmp (path + len - 7, ".tar.gz")) || (!strcmp (path + len - 4, ".tgz")) )) { + filename = g_shell_quote (path); +- command = g_strdup_printf ("sh -c '/bin/gzip -d -c < \"%s\" | /bin/tar ft - | head -1'", +- filename); ++ command = g_strdup_printf ("sh -c '%s -d -c < \"%s\" | %s ft - | head -1'", ++ gzip, filename, tar); + theme_props->filetype=TARGZ; + g_free (filename); +- } else if (path && len > 8 && !strcmp (path + len - 8, ".tar.bz2")) { ++ } else if (tar && bzip2 && path && len > 8 && !strcmp (path + len - 8, ".tar.bz2")) { + filename = g_shell_quote (path); +- command = g_strdup_printf ("sh -c '/usr/bin/bzip2 -d -c < \"%s\" | /bin/tar ft - | head -1'", +- filename); ++ command = g_strdup_printf ("sh -c '%s -d -c < \"%s\" | %s ft - | head -1'", ++ bzip2, filename, tar); + theme_props->filetype=TARBZ; + g_free (filename); + } else { +@@ -230,6 +255,9 @@ + gnome_vfs_unlink(path); + g_free (theme_props->target_tmp_dir); + g_free (theme_props); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + +@@ -247,6 +275,9 @@ + g_free (command); + g_free (theme_props->target_tmp_dir); + g_free (theme_props); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + +@@ -254,7 +285,7 @@ + theme_props->filename=g_strdup(path); + + if (theme_props->filetype == TARBZ ) { +- if (!g_file_test ("/usr/bin/bzip2", G_FILE_TEST_EXISTS)) { ++ if (!bzip2) { + GtkWidget *dialog; + + dialog = gtk_message_dialog_new (NULL, +@@ -269,6 +300,9 @@ + g_free (theme_props->target_tmp_dir); + g_free (theme_props->filename); + g_free (theme_props); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + +@@ -287,12 +321,15 @@ + g_free (theme_props->filename); + g_free (theme_props); + g_free (command); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + } + + if (theme_props->filetype == TARGZ ) { +- if (!g_file_test ("/bin/gzip", G_FILE_TEST_EXISTS)) { ++ if (!gzip) { + GtkWidget *dialog; + + dialog = gtk_message_dialog_new (NULL, +@@ -307,6 +344,9 @@ + g_free (theme_props->target_tmp_dir); + g_free (theme_props->filename); + g_free (theme_props); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + if (!transfer_done_targz_idle_cb(theme_props)) { +@@ -324,6 +364,9 @@ + g_free (theme_props->filename); + g_free (theme_props); + g_free (command); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + } +@@ -363,6 +406,9 @@ + g_free (theme_props->theme_tmp_dir); + g_free (theme_props); + g_free (command); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } else { + GtkWidget *dialog; +@@ -379,6 +425,9 @@ + g_free (theme_props->theme_tmp_dir); + g_free (theme_props); + g_free (command); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + /* Move the Dir to the target dir */ +@@ -407,6 +456,9 @@ + g_free (theme_props->user_message); + g_free (theme_props); + g_free (command); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } else { + GtkWidget *dialog; +@@ -426,6 +478,9 @@ + g_free (theme_props->user_message); + g_free (theme_props); + g_free (command); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + +@@ -434,6 +489,9 @@ + g_free (theme_props->target_tmp_dir); + g_free (theme_props->filename); + g_free (theme_props); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + } + + static void diff --git a/gnome-base/control-center/files/digest-control-center-2.10.1-r1 b/gnome-base/control-center/files/digest-control-center-2.10.1-r1 new file mode 100644 index 000000000000..558324993206 --- /dev/null +++ b/gnome-base/control-center/files/digest-control-center-2.10.1-r1 @@ -0,0 +1 @@ +MD5 d95a5746aa349536dc0f59c61cdaf19f control-center-2.10.1.tar.bz2 2648247 |