Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 59885 Details for
Bug 84997
bzip2 path hardcoded in gnome theme manager 2.10
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Updated fix
control-center-2.10.1-pathfix.patch (text/plain), 6.51 KB, created by
Daniel Gryniewicz (RETIRED)
on 2005-05-26 09:13:19 UTC
(
hide
)
Description:
Updated fix
Filename:
MIME Type:
Creator:
Daniel Gryniewicz (RETIRED)
Created:
2005-05-26 09:13:19 UTC
Size:
6.51 KB
patch
obsolete
>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 11:53:55.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
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 84997
:
53272
|
59883
| 59885