diff options
author | 2006-05-13 13:40:48 +0000 | |
---|---|---|
committer | 2006-05-13 13:40:48 +0000 | |
commit | 72e7ea31227c57c63b0b18eef084fa40c0f12a33 (patch) | |
tree | 5b9d3132d4e1a18f68a569d0dc52628661c7e49d /gnome-base/control-center | |
parent | Stable on sparc wrt #133163 (diff) | |
download | gentoo-2-72e7ea31227c57c63b0b18eef084fa40c0f12a33.tar.gz gentoo-2-72e7ea31227c57c63b0b18eef084fa40c0f12a33.tar.bz2 gentoo-2-72e7ea31227c57c63b0b18eef084fa40c0f12a33.zip |
backport patch from cvs to fix hardcoded bzip2 / tar paths. fixes #133091
(Portage version: 2.1_pre10-r5)
Diffstat (limited to 'gnome-base/control-center')
4 files changed, 340 insertions, 1 deletions
diff --git a/gnome-base/control-center/ChangeLog b/gnome-base/control-center/ChangeLog index 2de3e812b475..1383a9dfb986 100644 --- a/gnome-base/control-center/ChangeLog +++ b/gnome-base/control-center/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for gnome-base/control-center # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-base/control-center/ChangeLog,v 1.178 2006/05/06 12:36:48 allanonjl Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnome-base/control-center/ChangeLog,v 1.179 2006/05/13 13:40:48 allanonjl Exp $ + +*control-center-2.14.1-r1 (13 May 2006) + + 13 May 2006; John N. Laliberte <allanonjl@gentoo.org> + +files/control-center-2.14.1-path-fix.patch, + +control-center-2.14.1-r1.ebuild: + backport patch from cvs to fix hardcoded bzip2 / tar paths. fixes #133091 06 May 2006; John N. Laliberte <allanonjl@gentoo.org> -control-center-2.14.0.ebuild, control-center-2.14.1.ebuild: diff --git a/gnome-base/control-center/control-center-2.14.1-r1.ebuild b/gnome-base/control-center/control-center-2.14.1-r1.ebuild new file mode 100644 index 000000000000..0e44f5e93efa --- /dev/null +++ b/gnome-base/control-center/control-center-2.14.1-r1.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/control-center/control-center-2.14.1-r1.ebuild,v 1.1 2006/05/13 13:40:48 allanonjl Exp $ + +inherit eutils gnome2 autotools + +DESCRIPTION="The gnome2 Desktop configuration tool" +HOMEPAGE="http://www.gnome.org/" + +LICENSE="GPL-2" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="alsa eds gstreamer" + +RDEPEND=">=gnome-base/gnome-vfs-2.2 + >=media-libs/fontconfig-1 + virtual/xft + || ( ( + x11-libs/libXdmcp + x11-libs/libICE + x11-libs/libSM + x11-libs/libXxf86misc + x11-libs/libXau ) + virtual/x11 ) + >=x11-libs/gtk+-2.8.12 + >=dev-libs/glib-2.8 + >=gnome-base/libbonobo-2 + >=gnome-base/libgnomeui-2.2 + >=gnome-base/nautilus-2.6 + >=gnome-base/gconf-2 + >=gnome-base/libglade-2 + >=gnome-base/libbonoboui-2.2 + >=gnome-base/gnome-desktop-2.2 + >=gnome-base/gnome-menus-2.11.1 + media-sound/esound + >=x11-wm/metacity-2.8.6-r1 + >=x11-libs/libxklavier-1.14 + >=gnome-base/libgnome-2.2 + media-libs/freetype + >=gnome-base/orbit-2 + eds? ( >=gnome-extra/evolution-data-server-1.3 ) + !arm? ( alsa? ( >=media-libs/alsa-lib-0.9 ) ) + gstreamer? ( >=media-libs/gst-plugins-base-0.10 )" + +DEPEND="${RDEPEND} + || ( ( + x11-libs/libxkbfile + x11-proto/kbproto + x11-proto/xf86miscproto + x11-proto/scrnsaverproto ) + virtual/x11 ) + app-text/scrollkeeper + >=dev-util/pkgconfig-0.9 + >=dev-util/intltool-0.28 + >=app-text/gnome-doc-utils-0.3.2 + dev-util/desktop-file-utils" + +DOCS="AUTHORS ChangeLog NEWS README TODO" + +MAKEOPTS="${MAKEOPTS} -j1" + +pkg_setup() { + G2CONF="${G2CONF} --disable-schemas-install \ + --disable-scrollkeeper \ + --enable-vfs-methods \ + $(use_enable alsa) \ + $(use_enable eds aboutme)" + + if use gstreamer ; then + G2CONF="${G2CONF} --enable-gstreamer=0.10" + else + G2CONF="${G2CONF} --enable-gstreamer=no" + fi +} + +src_unpack() { + unpack ${A} + cd ${S} + + # Temporary workaround for a problematic behaviour with acme. + epatch ${FILESDIR}/${PN}-2.6.0-remove-pmu.patch + + # Gentoo-specific support for xcursor themes. See bug #103638. + epatch ${FILESDIR}/${PN}-2.11-gentoo_xcursor.patch + + # Disable the master pty check, as it causes sandbox violations + epatch ${FILESDIR}/${PN}-2.13.5-disable-master-pty.patch + + # fix for hardcoded paths for bzip2 / tar in gnome-theme-installer + epatch "${FILESDIR}"/${PN}-2.14.1-path-fix.patch + + eautoreconf + intltoolize --force || die +} diff --git a/gnome-base/control-center/files/control-center-2.14.1-path-fix.patch b/gnome-base/control-center/files/control-center-2.14.1-path-fix.patch new file mode 100644 index 000000000000..4f85474f6d9a --- /dev/null +++ b/gnome-base/control-center/files/control-center-2.14.1-path-fix.patch @@ -0,0 +1,235 @@ +--- control-center-2.14.1/capplets/theme-switcher/gnome-theme-installer.c 2006-01-09 07:09:44.000000000 -0500 ++++ control-center-2.14.1.new/capplets/theme-switcher/gnome-theme-installer.c 2006-05-13 09:21:51.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; +@@ -207,16 +229,20 @@ + g_random_int()); + + +- if (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 -n 1'", +- filename); +- theme_props->filetype=TARGZ; +- g_free (filename); +- } else if (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 -n 1'", +- filename); ++ gzip = g_find_program_in_path("gzip"); ++ bzip2 = g_find_program_in_path("bzip2"); ++ tar = g_find_program_in_path("tar"); ++ ++ 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 '%s -d -c < \"%s\" | %s ft - | head -1'", ++ gzip, filename, tar); ++ theme_props->filetype=TARGZ; ++ g_free (filename); ++ } else if (tar && bzip2 && path && len > 8 && !strcmp (path + len - 8, ".tar.bz2")) { ++ filename = g_shell_quote (path); ++ 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 +256,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; + } + +@@ -245,6 +274,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; + } + +@@ -252,7 +284,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) { + dialog = gtk_message_dialog_new (NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, +@@ -265,6 +297,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; + } + +@@ -281,12 +316,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) { + dialog = gtk_message_dialog_new (NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, +@@ -299,6 +337,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)) { +@@ -314,6 +355,9 @@ + g_free (theme_props->filename); + g_free (theme_props); + g_free (command); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + } +@@ -351,6 +395,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 { + dialog = gtk_message_dialog_new (NULL, +@@ -365,6 +412,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 */ +@@ -391,6 +441,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 { + dialog = gtk_message_dialog_new (NULL, +@@ -408,6 +461,9 @@ + g_free (theme_props->user_message); + g_free (theme_props); + g_free (command); ++ g_free(gzip); ++ g_free(bzip2); ++ g_free(tar); + return; + } + +@@ -416,6 +472,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.14.1-r1 b/gnome-base/control-center/files/digest-control-center-2.14.1-r1 new file mode 100644 index 000000000000..a0cad0e8300e --- /dev/null +++ b/gnome-base/control-center/files/digest-control-center-2.14.1-r1 @@ -0,0 +1,3 @@ +MD5 d673df12692ee08b9fc3d69739f8779e control-center-2.14.1.tar.bz2 1869223 +RMD160 dcdb9c78580e8ba424db929b193ddf684e423b47 control-center-2.14.1.tar.bz2 1869223 +SHA256 c55cc800a6d636b8a98885a68685eff32db158fe1b638ff02ff89394ee6e6163 control-center-2.14.1.tar.bz2 1869223 |