summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn N. Laliberte <allanonjl@gentoo.org>2006-05-13 13:40:48 +0000
committerJohn N. Laliberte <allanonjl@gentoo.org>2006-05-13 13:40:48 +0000
commit72e7ea31227c57c63b0b18eef084fa40c0f12a33 (patch)
tree5b9d3132d4e1a18f68a569d0dc52628661c7e49d /gnome-base/control-center
parentStable on sparc wrt #133163 (diff)
downloadgentoo-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')
-rw-r--r--gnome-base/control-center/ChangeLog9
-rw-r--r--gnome-base/control-center/control-center-2.14.1-r1.ebuild94
-rw-r--r--gnome-base/control-center/files/control-center-2.14.1-path-fix.patch235
-rw-r--r--gnome-base/control-center/files/digest-control-center-2.14.1-r13
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