[arch-commits] Commit in thunar/trunk (5 files)

Tobias Powalowski tpowa at archlinux.org
Mon Mar 12 14:39:15 UTC 2012


    Date: Monday, March 12, 2012 @ 10:39:15
  Author: tpowa
Revision: 153247

upgpkg: thunar 1.2.3-5

fix 4 bugs from xfce bugtracker

Added:
  thunar/trunk/fix-crash-8168.patch
  thunar/trunk/fix-launching-multiple-files-7456.patch
  thunar/trunk/fix-segfault-on-rename.patch
  thunar/trunk/fix-sorting-of-large-numbers-5356.patch
Modified:
  thunar/trunk/PKGBUILD

-----------------------------------------+
 PKGBUILD                                |   20 +++++++++--
 fix-crash-8168.patch                    |   32 ++++++++++++++++++
 fix-launching-multiple-files-7456.patch |   53 ++++++++++++++++++++++++++++++
 fix-segfault-on-rename.patch            |   27 +++++++++++++++
 fix-sorting-of-large-numbers-5356.patch |   32 ++++++++++++++++++
 5 files changed, 160 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-03-12 13:49:58 UTC (rev 153246)
+++ PKGBUILD	2012-03-12 14:39:15 UTC (rev 153247)
@@ -4,7 +4,7 @@
 
 pkgname=thunar
 pkgver=1.2.3
-pkgrel=4
+pkgrel=5
 pkgdesc="Modern file manager for Xfce"
 arch=('i686' 'x86_64')
 url="http://thunar.xfce.org"
@@ -22,12 +22,24 @@
             'thunar-media-tags-plugin: view/edit id3/ogg tags')
 options=('!libtool')
 install=$pkgname.install
-source=(http://archive.xfce.org/src/xfce/${pkgname}/1.2/Thunar-$pkgver.tar.bz2)
-sha256sums=('e66aa9ad61a9202e15cc7c5fffc7b961da9ab3b4428f874c1ec8e46eb4ffaca6')
+source=(http://archive.xfce.org/src/xfce/${pkgname}/1.2/Thunar-$pkgver.tar.bz2
+        fix-segfault-on-rename.patch
+        fix-sorting-of-large-numbers-5356.patch
+        fix-launching-multiple-files-7456.patch
+        fix-crash-8168.patch)
+md5sums=('0a2c36cdd3cb3a2ab52cbf6055415b85'
+         '07e568a84f3a24e32d9d37803a250099'
+         '926dbefb639c429c8acf064922b4fbe0'
+         '7ef67fa9faa414ba03053dc69f4cdebc'
+         '54a88687621bcbd5ab7d951a952d3558')
 
 build() {
   cd "$srcdir/Thunar-$pkgver"
-
+  # add fixes from git tree
+  patch -Np1 -i ../fix-sorting-of-large-numbers-5356.patch
+  patch -Np1 -i ../fix-launching-multiple-files-7456.patch
+  patch -Np1 -i ../fix-crash-8168.patch
+  patch -Np1 -i ../fix-segfault-on-rename.patch
   ./configure --prefix=/usr \
     --sysconfdir=/etc \
     --libexecdir=/usr/lib \

Added: fix-crash-8168.patch
===================================================================
--- fix-crash-8168.patch	                        (rev 0)
+++ fix-crash-8168.patch	2012-03-12 14:39:15 UTC (rev 153247)
@@ -0,0 +1,32 @@
+From 71f6f207cfd0194a3f3db83cb5fab694a5036e22 Mon Sep 17 00:00:00 2001
+From: Jannis Pohlmann <jannis at xfce.org>
+Date: Sun, 26 Feb 2012 17:38:50 +0000
+Subject: Fix crash when removing an ancestor of the current folder (bug #8168).
+
+Whenever we release the GFileMonitor of a ThunarFolder, we also need to
+disconnect from its signals. Otherwise one of the signal handlers might
+still be called, potentially with corrupted user data (which was the
+case here).
+---
+diff --git a/thunar/thunar-folder.c b/thunar/thunar-folder.c
+index 62015fe..4076b8d 100644
+--- a/thunar/thunar-folder.c
++++ b/thunar/thunar-folder.c
+@@ -236,6 +236,7 @@ thunar_folder_finalize (GObject *object)
+   /* disconnect from the file alteration monitor */
+   if (G_LIKELY (folder->monitor != NULL))
+     {
++      g_signal_handlers_disconnect_matched (folder->monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder);
+       g_file_monitor_cancel (folder->monitor);
+       g_object_unref (folder->monitor);
+     }
+@@ -705,6 +706,7 @@ thunar_folder_reload (ThunarFolder *folder)
+   /* disconnect from the file alteration monitor */
+   if (G_UNLIKELY (folder->monitor != NULL))
+     {
++      g_signal_handlers_disconnect_matched (folder->monitor, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, folder);
+       g_file_monitor_cancel (folder->monitor);
+       g_object_unref (folder->monitor);
+       folder->monitor = NULL;
+--
+cgit v0.9.0.2

Added: fix-launching-multiple-files-7456.patch
===================================================================
--- fix-launching-multiple-files-7456.patch	                        (rev 0)
+++ fix-launching-multiple-files-7456.patch	2012-03-12 14:39:15 UTC (rev 153247)
@@ -0,0 +1,53 @@
+From 379b8b9f350cb362735eb0e2a0e9471a898f2664 Mon Sep 17 00:00:00 2001
+From: John Lindgren <john.lindgren at aol.com>
+Date: Sun, 26 Feb 2012 18:52:24 +0000
+Subject: Fix handling %U when launching multiple files with an app (bug #7456).
+
+GIO returns a newly allocated GAppInfo every time
+g_app_info_get_default_for_type() is called. This means that if we use a
+GHashTable and g_direct_hash() to associate GAppInfos with files to be
+launched with each of them, we will actually end up with multiple
+GAppInfos that are the same, and each of them will only have a single
+file associated.
+
+To fix this, we now use a fake hash function that causes GHashTable to
+always search the GAppInfo in the collision list.
+---
+diff --git a/thunar/thunar-launcher.c b/thunar/thunar-launcher.c
+index f479cf9..9f96b87 100644
+--- a/thunar/thunar-launcher.c
++++ b/thunar/thunar-launcher.c
+@@ -546,17 +546,28 @@ thunar_launcher_execute_files (ThunarLauncher *launcher,
+ 
+ 
+ 
++static guint
++thunar_launcher_g_app_info_hash (gconstpointer app_info)
++{
++  return 0;
++}
++
++
++
+ static void
+ thunar_launcher_open_files (ThunarLauncher *launcher,
+                             GList          *files)
+ {
+-  GAppInfo   *app_info;
+   GHashTable *applications;
++  GAppInfo   *app_info;
+   GList      *file_list;
+   GList      *lp;
+ 
+-  /* allocate a hash table to associate applications to URIs */
+-  applications = g_hash_table_new_full (g_direct_hash,
++  /* allocate a hash table to associate applications to URIs. since GIO allocates
++   * new GAppInfo objects every time, g_direct_hash does not work. we therefor use
++   * a fake hash function to always hit the collision list of the hash table and
++   * avoid storing multiple equal GAppInfos by means of g_app_info_equal(). */
++  applications = g_hash_table_new_full (thunar_launcher_g_app_info_hash,
+                                         (GEqualFunc) g_app_info_equal,
+                                         (GDestroyNotify) g_object_unref,
+                                         (GDestroyNotify) thunar_g_file_list_free);
+--
+cgit v0.9.0.2

Added: fix-segfault-on-rename.patch
===================================================================
--- fix-segfault-on-rename.patch	                        (rev 0)
+++ fix-segfault-on-rename.patch	2012-03-12 14:39:15 UTC (rev 153247)
@@ -0,0 +1,27 @@
+From fb7e7a602473fe2f11c78baacacaad1aea8c9dc6 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick at xfce.org>
+Date: Wed, 30 Nov 2011 17:45:57 +0000
+Subject: Fix segfault when plugin returns a NULL suffix.
+
+(cherry picked from commit 6f813ba48553e5b95a83bfa8463b20b8ee4607c4)
+---
+diff --git a/thunar/thunar-renamer-model.c b/thunar/thunar-renamer-model.c
+index 1aa7b77..91a47e1 100644
+--- a/thunar/thunar-renamer-model.c
++++ b/thunar/thunar-renamer-model.c
+@@ -823,10 +823,9 @@ thunar_renamer_model_process_item (ThunarRenamerModel     *renamer_model,
+           /* determine the new suffix */
+           suffix = thunarx_renamer_process (renamer_model->renamer, THUNARX_FILE_INFO (item->file), dot + 1, idx);
+ 
+-          /* generate the new file name */
+-          name = g_new (gchar, (dot - display_name) + 1 + strlen (suffix) + 1);
+-          memcpy (name, display_name, (dot - display_name) + 1);
+-          memcpy (name + (dot - display_name) + 1, suffix, strlen (suffix) + 1);
++          prefix = g_strndup (display_name, (dot - display_name) + 1);
++          name = g_strconcat (prefix, suffix, NULL);
++          g_free (prefix);
+ 
+           /* release the suffix */
+           g_free (suffix);
+--
+cgit v0.9.0.2

Added: fix-sorting-of-large-numbers-5356.patch
===================================================================
--- fix-sorting-of-large-numbers-5356.patch	                        (rev 0)
+++ fix-sorting-of-large-numbers-5356.patch	2012-03-12 14:39:15 UTC (rev 153247)
@@ -0,0 +1,32 @@
+From 493db02bdbc6ec667cd04e75a77dff8366ec1bc0 Mon Sep 17 00:00:00 2001
+From: Eric Koegel <eric.koegel at gmail.com>
+Date: Sun, 06 Nov 2011 13:58:33 +0000
+Subject: Fix sorting of filenames with large numbers (bug #5356).
+
+Change compare_by_name_using_number() to use guint64.
+
+Signed-off-by: Jannis Pohlmann <jannis at xfce.org>
+---
+diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c
+index 909da25..44cdb31 100644
+--- a/thunar/thunar-file.c
++++ b/thunar/thunar-file.c
+@@ -3168,12 +3168,12 @@ static gint
+ compare_by_name_using_number (const gchar *ap,
+                               const gchar *bp)
+ {
+-  guint anum;
+-  guint bnum;
++  guint64 anum;
++  guint64 bnum;
+ 
+   /* determine the numbers in ap and bp */
+-  anum = strtoul (ap, NULL, 10);
+-  bnum = strtoul (bp, NULL, 10);
++  anum = strtouq (ap, NULL, 10);
++  bnum = strtouq (bp, NULL, 10);
+ 
+   /* compare the numbers */
+   if (anum < bnum)
+--
+cgit v0.9.0.2




More information about the arch-commits mailing list