summaryrefslogtreecommitdiff
path: root/source/xap/xfce
diff options
context:
space:
mode:
Diffstat (limited to 'source/xap/xfce')
-rw-r--r--source/xap/xfce/patches/exo_quoting_fix.diff66
-rw-r--r--source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff48
-rw-r--r--source/xap/xfce/patches/migrate-itheme-smartly.diff92
-rw-r--r--source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff132
-rw-r--r--source/xap/xfce/patches/terminal.gtk.2.18.fix.diff101
-rw-r--r--source/xap/xfce/patches/thunar-1.0.1-png14.diff11
-rw-r--r--source/xap/xfce/patches/thunar-fix_umask_properly.diff52
-rw-r--r--source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff11
-rw-r--r--source/xap/xfce/patches/xfce4-settings.libxklavier5.diff11
-rwxr-xr-xsource/xap/xfce/xfce.SlackBuild65
10 files changed, 234 insertions, 355 deletions
diff --git a/source/xap/xfce/patches/exo_quoting_fix.diff b/source/xap/xfce/patches/exo_quoting_fix.diff
deleted file mode 100644
index ac654457..00000000
--- a/source/xap/xfce/patches/exo_quoting_fix.diff
+++ /dev/null
@@ -1,66 +0,0 @@
-Index: exo-open/main.c
-===================================================================
---- exo-open/main.c (revision 30250)
-+++ exo-open/main.c (revision 30251)
-@@ -36,7 +36,17 @@
- #include <exo/exo.h>
-
-
-+/**
-+ * For testing this code the following commands should work:
-+ *
-+ * exo-open --launch WebBrowser http://xfce.org (bug #5461).
-+ * exo-open http://xfce.org
-+ * exo-open --launch TerminalEmulator ./script.sh 'something with a space' 'nospace' (bug #5132).
-+ * exo-open --launch TerminalEmulator ssh -l username some.host.com
-+ **/
-
-+
-+
- static gboolean opt_help = FALSE;
- static gboolean opt_version = FALSE;
- static gchar *opt_launch = NULL;
-@@ -143,6 +153,8 @@
- {
- if (argc > 1)
- {
-+ /* NOTE: see the comment at the top of this document! */
-+
- /* combine all specified parameters to one parameter string */
- join = g_string_new (NULL);
- for (i = 1; argv[i] != NULL; i++)
-@@ -150,11 +162,18 @@
- /* separate the arguments */
- if (i > 1)
- join = g_string_append_c (join, ' ');
--
-- /* append the quoted argument */
-- quoted = g_shell_quote (argv[i]);
-- join = g_string_append (join, quoted);
-- g_free (quoted);
-+
-+ /* only quote arguments with spaces */
-+ if (strchr (argv[i], ' ') != NULL)
-+ {
-+ quoted = g_shell_quote (argv[i]);
-+ join = g_string_append (join, quoted);
-+ g_free (quoted);
-+ }
-+ else
-+ {
-+ join = g_string_append (join, argv[i]);
-+ }
- }
- parameter = g_string_free (join, FALSE);
- }
-@@ -163,6 +182,10 @@
- parameter = NULL;
- }
-
-+#ifndef NDEBUG
-+ g_message ("launch=%s, wd=%s, parameters (%d)=%s", opt_launch, opt_working_directory, argc, parameter);
-+#endif
-+
- /* run the preferred application */
- if (!exo_execute_preferred_application (opt_launch, parameter, opt_working_directory, NULL, &err))
- {
diff --git a/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff b/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff
deleted file mode 100644
index 4370281a..00000000
--- a/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff
+++ /dev/null
@@ -1,48 +0,0 @@
-diff --git a/plugins/launcher/launcher.c b/plugins/launcher/launcher.c
-index 8edc66c..1e370c4 100644
---- a/plugins/launcher/launcher.c
-+++ b/plugins/launcher/launcher.c
-@@ -37,6 +37,30 @@
- #include "launcher-exec.h"
- #include "launcher-dialog.h"
-
-+/* for 4.4 settings migration */
-+static const gchar *icon_category_map[] = {
-+ "applications-other",
-+ "accessories-text-editor",
-+ "system-file-manager",
-+ "applications-accessories",
-+ "applications-games",
-+ "help-browser",
-+ "applications-multimedia",
-+ "applications-internet",
-+ "applications-graphics",
-+ "printer",
-+ "office-calendar",
-+ "applications-office",
-+ "audio-card",
-+ "utilities-terminal",
-+ "applications-development",
-+ "preferences-desktop",
-+ "applications-system",
-+ "applications-other",
-+ "applications-accessories",
-+};
-+#define ICON_CATEGORY_MAP_MAX (G_N_ELEMENTS (icon_category_map) - 1)
-+
- /* prototypes */
- static void launcher_utility_icon_theme_changed (GtkIconTheme *icon_theme,
- LauncherPlugin *launcher);
-@@ -1216,6 +1240,12 @@ launcher_plugin_read (LauncherPlugin *launcher)
- entry->name = launcher_plugin_read_entry (rc, "Name");
- entry->comment = launcher_plugin_read_entry (rc, "Comment");
- entry->icon = launcher_plugin_read_entry (rc, "Icon");
-+ if (G_UNLIKELY (!entry->icon))
-+ {
-+ gint icon_category = xfce_rc_read_int_entry (rc, "X-XFCE-IconCategory", -1);
-+ if (G_LIKELY (icon_category >= 0 && icon_category <= ICON_CATEGORY_MAP_MAX))
-+ entry->icon = g_strdup (icon_category_map[icon_category]);
-+ }
- entry->exec = launcher_plugin_read_entry (rc, "Exec");
- entry->path = launcher_plugin_read_entry (rc, "Path");
-
diff --git a/source/xap/xfce/patches/migrate-itheme-smartly.diff b/source/xap/xfce/patches/migrate-itheme-smartly.diff
deleted file mode 100644
index e9c66ed2..00000000
--- a/source/xap/xfce/patches/migrate-itheme-smartly.diff
+++ /dev/null
@@ -1,92 +0,0 @@
-Index: scripts/xfconf-migration-4.6.pl.in
-===================================================================
---- a/scripts/xfconf-migration-4.6.pl.in (revision 29645)
-+++ b/scripts/xfconf-migration-4.6.pl.in (working copy)
-@@ -256,6 +256,77 @@
- return $mcs.'.xml';
- }
-
-+sub icon_theme_exists
-+{
-+ my ($dirref,$themename) = @_;
-+ my @dirs = @{$dirref};
-+
-+ foreach my $d (@dirs) {
-+ return 1 if(-f "$d/$themename/index.theme");
-+ }
-+
-+ return 0;
-+}
-+
-+sub migrate_icon_theme
-+{
-+ my ($ref,$chan) = @_;
-+ my %opts = %{$ref};
-+ my $opt = 'Net/IconThemeName';
-+
-+ return if(!defined($opts{$opt}));
-+ my $val = $opts{$opt}->{'value'};
-+
-+ if(lc($val) eq 'rodent') {
-+ # we don't ship rodent anymore, so try to find something suitable
-+ my @icondirs;
-+ if(defined($ENV{'XDG_DATA_HOME'})) {
-+ @icondirs = ( $ENV{'XDG_DATA_HOME'} . '/icons' );
-+ } else {
-+ @icondirs = ( $ENV{'HOME'} . '/.local/share/icons' );
-+ }
-+
-+ if(defined($ENV{'XDG_DATA_DIRS'})) {
-+ push(@icondirs, split(/:/, $ENV{'XDG_DATA_DIRS'}));
-+ } else {
-+ push(@icondirs, ( '/usr/share/icons', '/usr/local/share/icons' ));
-+ }
-+
-+ $val = undef;
-+ foreach my $itheme (('Tango', 'gnome', 'crystalsvg')) {
-+ if(icon_theme_exists(\@icondirs, $itheme)) {
-+ $val = $itheme;
-+ last;
-+ }
-+ }
-+
-+ if(!defined($val)) {
-+ # pick the first one that is not 'hicolor'
-+ foreach my $d (@icondirs) {
-+ opendir(DIR, $d) and do {
-+ my @subdirs = grep { $_ ne 'hicolor' && -d "$d/$_" } readdir(DIR);
-+ foreach my $sd (@subdirs) {
-+ if(-f "$d/$sd/index.theme") {
-+ $val = $sd;
-+ last;
-+ }
-+ }
-+ closedir(DIR);
-+ };
-+ last if(defined($val));
-+ }
-+
-+ if(!defined($val)) {
-+ # ok, their system is kinda b0rked; not much we can do
-+ warn("Couldn't find a suitable icon theme to migrate to");
-+ return;
-+ }
-+ }
-+ }
-+
-+ xfconf_set($chan, 'string', '/Net/IconThemeName', $val);
-+}
-+
- sub migrate_xsettings
- {
- my $mcs = 'gtk';
-@@ -283,8 +354,7 @@
- '/Net/CursorBlinkTime', 'int');
- save_xfconf_prop($ref, $chan, 'Net/DndDragThreshold',
- '/Net/DndDragThreshold', 'int');
-- save_xfconf_prop($ref, $chan, 'Net/IconThemeName',
-- '/Net/IconThemeName', 'string');
-+ migrate_icon_theme($ref, $chan);
- save_xfconf_prop($ref, $chan, 'Net/ThemeName',
- '/Net/ThemeName', 'string');
-
diff --git a/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff b/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff
deleted file mode 100644
index d9608470..00000000
--- a/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff
+++ /dev/null
@@ -1,132 +0,0 @@
-diff -Nur Terminal-0.4.0.orig/Makefile.in Terminal-0.4.0/Makefile.in
---- Terminal-0.4.0.orig/Makefile.in 2009-07-20 13:04:04.000000000 -0500
-+++ Terminal-0.4.0/Makefile.in 2009-07-20 13:50:20.529864039 -0500
-@@ -986,7 +986,7 @@
-
- TerminalHelp: TerminalHelp.in Makefile
- rm -f TerminalHelp.gen TerminalHelp
-- sed -e "s,\@datadir\@,$(datadir),g" \
-+ sed -e "s,\@docdir\@,$(docdir),g" \
- < $(srcdir)/TerminalHelp.in \
- > TerminalHelp.gen
- mv TerminalHelp.gen TerminalHelp
-diff -Nur Terminal-0.4.0.orig/TerminalHelp.in Terminal-0.4.0/TerminalHelp.in
---- Terminal-0.4.0.orig/TerminalHelp.in 2009-07-20 13:03:50.000000000 -0500
-+++ Terminal-0.4.0/TerminalHelp.in 2009-07-20 13:50:20.529864039 -0500
-@@ -19,7 +19,7 @@
- # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- #
-
--HELPDIR="@datadir@/doc/Terminal/"
-+HELPDIR="@docdir@/"
-
- if test -n "$LC_ALL"; then
- LC=$LC_ALL
-diff -Nur Terminal-0.4.0.orig/doc/C/Makefile.in Terminal-0.4.0/doc/C/Makefile.in
---- Terminal-0.4.0.orig/doc/C/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/C/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -260,7 +260,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Terminal/C
-+TARGET_DIR = $(docdir)/C
- STYLESHEET = ../terminal.xsl
- DOCUMENT = Terminal.xml
-
-diff -Nur Terminal-0.4.0.orig/doc/C/images/Makefile.in Terminal-0.4.0/doc/C/images/Makefile.in
---- Terminal-0.4.0.orig/doc/C/images/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/C/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -240,7 +240,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--imagesdir = $(datadir)/doc/Terminal/C/images
-+imagesdir = $(docdir)/C/images
- images_DATA = \
- terminal-compose-shortcut.png \
- terminal-edit-preferences.png \
-diff -Nur Terminal-0.4.0.orig/doc/Makefile.in Terminal-0.4.0/doc/Makefile.in
---- Terminal-0.4.0.orig/doc/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/Makefile.in 2009-07-20 13:51:00.229192942 -0500
-@@ -286,7 +286,7 @@
- fr \
- ja
-
--cssdir = $(datadir)/doc/Terminal
-+cssdir = $(docdir)/
- css_DATA = \
- terminal.css
-
-diff -Nur Terminal-0.4.0.orig/doc/da/Makefile.in Terminal-0.4.0/doc/da/Makefile.in
---- Terminal-0.4.0.orig/doc/da/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/da/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -260,7 +260,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Terminal/da
-+TARGET_DIR = $(docdir)/da
- STYLESHEET = ../terminal.xsl
- DOCUMENT = Terminal.xml
-
-diff -Nur Terminal-0.4.0.orig/doc/da/images/Makefile.in Terminal-0.4.0/doc/da/images/Makefile.in
---- Terminal-0.4.0.orig/doc/da/images/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/da/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -240,7 +240,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--imagesdir = $(datadir)/doc/Terminal/da/images
-+imagesdir = $(docdir)/da/images
- images_DATA = \
- terminal-compose-shortcut.png \
- terminal-edit-preferences.png \
-diff -Nur Terminal-0.4.0.orig/doc/fr/Makefile.in Terminal-0.4.0/doc/fr/Makefile.in
---- Terminal-0.4.0.orig/doc/fr/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/fr/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -260,7 +260,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Terminal/fr
-+TARGET_DIR = $(docdir)/fr
- STYLESHEET = ../terminal.xsl
- DOCUMENT = Terminal.xml
-
-diff -Nur Terminal-0.4.0.orig/doc/fr/images/Makefile.in Terminal-0.4.0/doc/fr/images/Makefile.in
---- Terminal-0.4.0.orig/doc/fr/images/Makefile.in 2009-07-20 13:04:03.000000000 -0500
-+++ Terminal-0.4.0/doc/fr/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -240,7 +240,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--imagesdir = $(datadir)/doc/Terminal/fr/images
-+imagesdir = $(docdir)/fr/images
- images_DATA = \
- terminal-compose-shortcut.png \
- terminal-edit-preferences.png \
-diff -Nur Terminal-0.4.0.orig/doc/ja/Makefile.in Terminal-0.4.0/doc/ja/Makefile.in
---- Terminal-0.4.0.orig/doc/ja/Makefile.in 2009-07-20 13:04:03.000000000 -0500
-+++ Terminal-0.4.0/doc/ja/Makefile.in 2009-07-20 13:50:20.537889876 -0500
-@@ -260,7 +260,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Terminal/ja
-+TARGET_DIR = $(docdir)/ja
- STYLESHEET = ../terminal.xsl
- DOCUMENT = Terminal.xml
-
-diff -Nur Terminal-0.4.0.orig/doc/ja/images/Makefile.in Terminal-0.4.0/doc/ja/images/Makefile.in
---- Terminal-0.4.0.orig/doc/ja/images/Makefile.in 2009-07-20 13:04:03.000000000 -0500
-+++ Terminal-0.4.0/doc/ja/images/Makefile.in 2009-07-20 13:50:20.537889876 -0500
-@@ -240,7 +240,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--imagesdir = $(datadir)/doc/Terminal/ja/images
-+imagesdir = $(docdir)/ja/images
- images_DATA = \
- terminal-compose-shortcut.png \
- terminal-edit-preferences.png \
diff --git a/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff b/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff
new file mode 100644
index 00000000..69a9e70e
--- /dev/null
+++ b/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff
@@ -0,0 +1,101 @@
+From 028dc2efd846defe796c7fa097ed84818bb43431 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Sun, 21 Mar 2010 22:05:31 +0000
+Subject: Disconnect bindings before closing the dialog.
+
+This avoids possible problems when Gtk+ emits property
+changes before the widgets are destroyed. This is currently
+the case for text entries in some Gtk 2.18 releases.
+---
+diff --git a/terminal/terminal-preferences-dialog.c b/terminal/terminal-preferences-dialog.c
+index 587bd92..8f33628 100644
+--- a/terminal/terminal-preferences-dialog.c
++++ b/terminal/terminal-preferences-dialog.c
+@@ -64,24 +64,28 @@ terminal_preferences_dialog_class_init (TerminalPreferencesDialogClass *klass)
+
+
+ #define BIND_PROPERTIES(name, property) \
+- { object = gtk_builder_get_object (GTK_BUILDER (dialog), name); \
++ G_STMT_START { \
++ object = gtk_builder_get_object (GTK_BUILDER (dialog), name); \
+ terminal_return_if_fail (G_IS_OBJECT (object)); \
+- exo_mutual_binding_new (G_OBJECT (dialog->preferences), name, \
+- G_OBJECT (object), property); }
++ binding = exo_mutual_binding_new (G_OBJECT (dialog->preferences), name, \
++ G_OBJECT (object), property); \
++ dialog->bindings = g_slist_prepend (dialog->bindings, binding); \
++ } G_STMT_END
+
+
+
+ static void
+ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
+ {
+- GError *error = NULL;
+- guint i;
+- GObject *object, *object2;
+- GtkWidget *editor;
+- gchar palette_name[16];
+- GtkFileFilter *filter;
+- gchar *file;
+- const gchar *props_active[] = { "title-mode", "command-login-shell",
++ GError *error = NULL;
++ guint i;
++ GObject *object, *object2;
++ GtkWidget *editor;
++ gchar palette_name[16];
++ GtkFileFilter *filter;
++ gchar *file;
++ ExoMutualBinding *binding;
++ const gchar *props_active[] = { "title-mode", "command-login-shell",
+ "command-update-records", "scrolling-single-line",
+ "scrolling-on-output", "scrolling-on-keystroke",
+ "scrolling-bar", "font-allow-bold",
+@@ -94,9 +98,9 @@ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
+ , "font-anti-alias"
+ #endif
+ };
+- const gchar *props_color[] = { "color-foreground", "color-cursor",
+- "color-background", "tab-activity-color",
+- "color-selection" };
++ const gchar *props_color[] = { "color-foreground", "color-cursor",
++ "color-background", "tab-activity-color",
++ "color-selection" };
+
+ dialog->preferences = terminal_preferences_get ();
+
+@@ -248,6 +252,8 @@ terminal_preferences_dialog_response (GtkWidget *widget,
+ gint response,
+ TerminalPreferencesDialog *dialog)
+ {
++ GSList *li;
++
+ /* check if we should open the user manual */
+ if (G_UNLIKELY (response == 1))
+ {
+@@ -256,6 +262,11 @@ terminal_preferences_dialog_response (GtkWidget *widget,
+ }
+ else
+ {
++ /* disconnect all the bindings */
++ for (li = dialog->bindings; li != NULL; li = li->next)
++ exo_mutual_binding_unbind (li->data);
++ g_slist_free (dialog->bindings);
++
+ /* close the preferences dialog */
+ gtk_widget_destroy (widget);
+ }
+diff --git a/terminal/terminal-preferences-dialog.h b/terminal/terminal-preferences-dialog.h
+index b2db4f5..268d70a 100644
+--- a/terminal/terminal-preferences-dialog.h
++++ b/terminal/terminal-preferences-dialog.h
+@@ -48,6 +48,7 @@ struct _TerminalPreferencesDialog
+
+ TerminalPreferences *preferences;
+ guint signal_id;
++ GSList *bindings;
+ };
+
+ GType terminal_preferences_dialog_get_type (void) G_GNUC_CONST;
+--
+cgit v0.8.2.1
diff --git a/source/xap/xfce/patches/thunar-1.0.1-png14.diff b/source/xap/xfce/patches/thunar-1.0.1-png14.diff
new file mode 100644
index 00000000..6c67a407
--- /dev/null
+++ b/source/xap/xfce/patches/thunar-1.0.1-png14.diff
@@ -0,0 +1,11 @@
+--- ./thunar-vfs/thunar-vfs-thumb.c.orig 2009-01-12 14:38:49.000000000 -0600
++++ ./thunar-vfs/thunar-vfs-thumb.c 2010-02-12 13:24:33.000000000 -0600
+@@ -1169,7 +1169,7 @@
+ goto done0;
+
+ /* verify the png signature */
+- if (G_LIKELY (png_check_sig ((png_bytep) signature, sizeof (signature))))
++ if (G_LIKELY (png_sig_cmp ((png_bytep) signature, 0, sizeof (signature)) == 0))
+ rewind (fp);
+ else
+ goto done0;
diff --git a/source/xap/xfce/patches/thunar-fix_umask_properly.diff b/source/xap/xfce/patches/thunar-fix_umask_properly.diff
new file mode 100644
index 00000000..2070b580
--- /dev/null
+++ b/source/xap/xfce/patches/thunar-fix_umask_properly.diff
@@ -0,0 +1,52 @@
+commit eb58c6a6ba7f77c2c16016db064524df598ef421
+Author: Jannis Pohlmann <jannis@xfce.org>
+Date: Sat Oct 3 11:49:41 2009 +0200
+
+ Fix bugs #3532 (umask < 0022 not honoured) and #5813 properly (I hope).
+
+ The previous patch applied in e53de71e6add9b28ba034111a1d19db7def8f7e7
+ made things worse than before: it used DEFFILEMODE which seems to be
+ BSD-specific for creating files. It also reset the umask to 0 when
+ creating the first directory with _thunar_vfs_io_jobs_mkdir().
+
+ What we really want is to use 0777 (dirs) and 0666 (files) and let the
+ standard C system calls like open() apply the umask value. This should
+ work on all POSIX-compliant systems.
+
+ Patch provided by Craig Ringer <craig@postnewspapers.com.au>.
+
+diff --git a/thunar-vfs/thunar-vfs-io-jobs.c b/thunar-vfs/thunar-vfs-io-jobs.c
+index 8d70812..c94523a 100644
+--- a/thunar-vfs/thunar-vfs-io-jobs.c
++++ b/thunar-vfs/thunar-vfs-io-jobs.c
+@@ -432,8 +432,12 @@ _thunar_vfs_io_jobs_create (ThunarVfsJob *job,
+ absolute_path = thunar_vfs_path_dup_string (lp->data);
+
+ again:
+- /* try to create the file at the given path */
+- fd = g_open (absolute_path, O_CREAT | O_EXCL | O_WRONLY, DEFFILEMODE);
++ /* Try to create the file at the given path.
++ *
++ * Note that despite the 0666 mask, we won't really create a world-writable
++ * file unless the user's umask permits it (ie the umask is 0000).
++ */
++ fd = g_open (absolute_path, O_CREAT | O_EXCL | O_WRONLY, 0666);
+ if (G_UNLIKELY (fd < 0))
+ {
+ /* check if the file already exists */
+@@ -707,8 +711,13 @@ _thunar_vfs_io_jobs_mkdir (ThunarVfsJob *job,
+ /* update the progress information */
+ _thunar_vfs_job_process_path (job, lp);
+
+- /* try to create the target directory */
+- if (!_thunar_vfs_io_ops_mkdir (lp->data, 0777 & ~umask(0), THUNAR_VFS_IO_OPS_NONE, error))
++ /* try to create the target directory
++ *
++ * Note that the mode specified here is limited by the user's umask, so we will not
++ * actually be creating a world writable directory unless the user's umask permits
++ * it.
++ */
++ if (!_thunar_vfs_io_ops_mkdir (lp->data, 0777, THUNAR_VFS_IO_OPS_NONE, error))
+ return FALSE;
+ }
+
diff --git a/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff b/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff
new file mode 100644
index 00000000..a8d5b2a5
--- /dev/null
+++ b/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff
@@ -0,0 +1,11 @@
+--- ./scripts/xinitrc.in.in.orig 2009-04-09 18:21:13.000000000 -0500
++++ ./scripts/xinitrc.in.in 2010-05-06 03:06:02.000000000 -0500
+@@ -131,7 +131,7 @@
+ x|xno*)
+ ;;
+ *)
+- $xfcesm
++ ck-launch-session $xfcesm
+
+ if test $kill_sshagent -eq 1; then
+ eval `$sshagent -k`
diff --git a/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff b/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff
new file mode 100644
index 00000000..d5f8ed8c
--- /dev/null
+++ b/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff
@@ -0,0 +1,11 @@
+--- ./dialogs/keyboard-settings/xfce-keyboard-settings.c.orig 2010-01-02 07:31:06.000000000 -0600
++++ ./dialogs/keyboard-settings/xfce-keyboard-settings.c 2010-02-12 02:11:05.000000000 -0600
+@@ -457,7 +457,7 @@
+
+ #ifdef HAVE_LIBXKLAVIER
+ /* Stop xklavier engine */
+- xkl_engine_stop_listen (settings->priv->xkl_engine);
++ xkl_engine_stop_listen (settings->priv->xkl_engine, XKLL_TRACK_KEYBOARD_STATE);
+ #endif /* HAVE_LIBXKLAVIER */
+
+ g_object_unref (settings->priv->provider);
diff --git a/source/xap/xfce/xfce.SlackBuild b/source/xap/xfce/xfce.SlackBuild
index 2ed8042e..a59aa949 100755
--- a/source/xap/xfce/xfce.SlackBuild
+++ b/source/xap/xfce/xfce.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2003 Slackware Linux, Inc., Concord, CA, USA
-# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,20 +22,35 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=4.6.1
-ARCH=${ARCH:-x86_64}
-BUILD=${BUILD:-5}
+BUILD=${BUILD:-8}
# A few tarballs have different versions; handle them here
-XDT_VERS=4.6.0 # xfce4-dev-tools version
-EXO_VERS=0.3.101 # exo version
+XDT_VERS=4.7.2 # xfce4-dev-tools version
+# We're going to ship xdt from git (targeting xfce-4.8) since it's not used
+# for building release tarballs anyway, but it's handy to have around for
+# building from git, and some folks might want to do that later...
+EXO_VERS=0.3.106 # exo version
THUNAR_VERS=1.0.1 # thunar version
GXE_VERS=2.6.0 # gtk-xfce-engine version
-TERM_VERS=0.4.0 # terminal version
+TERM_VERS=0.4.4 # terminal version
MPAD_VERS=0.2.16 # mousepad version
XFWMTHEME_VERS=4.6.0 # xfwm4-themes version
+SETTINGS_VERS=4.6.4 # xfce4-settings version
+PANEL_VERS=4.6.3 # xfce4-panel version
+XFCEGUI_VERS=4.6.3 # libxfcegui4 version
NUMJOBS=${NUMJOBS:--j6}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
CWD=$(pwd)
TMP=${TMP:-/tmp/xfce-build-dir}
PKG=$TMP/package-xfce
@@ -49,6 +64,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
rm -rf $PKG
@@ -66,12 +84,12 @@ for file in \
xfce4-dev-tools-$XDT_VERS.tar.$COMPRESSION \
libxfce4util-$VERSION.tar.$COMPRESSION \
xfconf-$VERSION.tar.$COMPRESSION \
- libxfcegui4-$VERSION.tar.$COMPRESSION \
+ libxfcegui4-$XFCEGUI_VERS.tar.$COMPRESSION \
libxfce4menu-$VERSION.tar.$COMPRESSION \
exo-$EXO_VERS.tar.$COMPRESSION \
- xfce4-panel-$VERSION.tar.$COMPRESSION \
+ xfce4-panel-$PANEL_VERS.tar.$COMPRESSION \
Thunar-$THUNAR_VERS.tar.$COMPRESSION \
- xfce4-settings-$VERSION.tar.$COMPRESSION \
+ xfce4-settings-$SETTINGS_VERS.tar.$COMPRESSION \
xfce4-session-$VERSION.tar.$COMPRESSION \
xfdesktop-$VERSION.tar.$COMPRESSION \
xfwm4-$VERSION.tar.$COMPRESSION \
@@ -100,24 +118,29 @@ do
if [ "$file" = "orage-$VERSION.tar.$COMPRESSION" ]; then
zcat $CWD/patches/xfcalendar.desktop.in.diff.gz | patch -p1 || exit 1
fi
- # Fix http://bugzilla.xfce.org/show_bug.cgi?id=5461
- # and enable python bindings in libexo
- if [ "$file" = "exo-$EXO_VERS.tar.$COMPRESSION" ]; then
- zcat $CWD/patches/exo_fix_quoting.diff.gz | patch -p0 || exit 1
- PACKAGE_SPECIFIC_OPTIONS="--enable-python"
- fi
- # Make Terminal respect --docdir
+ # Fix Terminal's title bar and preferences problems with GTK+ 2.18:
if [ "$file" = "Terminal-$TERM_VERS.tar.$COMPRESSION" ]; then
- zcat $CWD/patches/terminal-0.4.0-fixup_docdir.diff.gz | patch -p1 || exit 1
+ zcat $CWD/patches/terminal.gtk.2.18.fix.diff.gz | patch -p1 || exit 1
fi
# Make Thunar respect --docdir
if [ "$file" = "Thunar-$THUNAR_VERS.tar.$COMPRESSION" ]; then
zcat $CWD/patches/thunar-1.0.1-fixup_docdir.diff.gz | patch -p1 || exit 1
+ zcat $CWD/patches/thunar-fix_umask_properly.diff.gz | patch -p1 || exit 1
+ # Port to PNG 1.4.0:
+ zcat $CWD/patches/thunar-1.0.1-png14.diff.gz | patch -p1 || exit 1
fi
# Fix the missing education icon in the desktop menu
if [ "$file" = "xfdesktop-$VERSION.tar.$COMPRESSION" ]; then
zcat $CWD/patches/xfdesktop-fix_education_icon.diff.gz | patch -p1 || exit 1
fi
+ # Port xfce4-settings to libxklavier-5.x:
+ if [ "$file" = "xfce4-settings-$SETTINGS_VERS.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/xfce4-settings.libxklavier5.diff.gz | patch -p1 || exit 1
+ fi
+ # Launch xfce through consolekit so that ck enabled stuff works in xfce:
+ if [ "$file" = "xfce-utils-$VERSION.tar.$COMPRESSION" ]; then
+ zcat $CWD/patches/xfce-utils.xinitrc.consolekit.diff.gz | patch -p1 || exit 1
+ fi
# End patches/package-specific stuff
CFLAGS="$SLKCFLAGS" \
@@ -148,6 +171,14 @@ do
$PKG/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION) \
2> /dev/null || true
+ # If there's a ChangeLog, installing at least part of the recent history
+ # is useful, but don't let it get totally out of control:
+ if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/xfce-$VERSION/$(basename $file .tar.$COMPRESSION))
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+ fi
+
cd - ;
done