[Pkg-xfce-commits] [Git][xfce-team/desktop/thunar][upstream/latest] New upstream version 4.20.10

Yves-Alexis Perez (@corsac) gitlab at salsa.debian.org
Sun Sep 13 14:04:29 BST 2026



Yves-Alexis Perez pushed to branch upstream/latest at xfce / desktop / thunar


Commits:
ded662d0 by Yves-Alexis Perez at 2026-09-12T15:43:20+02:00
New upstream version 4.20.10
- - - - -


16 changed files:

- ChangeLog
- NEWS
- configure
- configure.ac
- docs/Thunar.1
- docs/reference/thunar/html/index.html
- docs/reference/thunarx/html/index.html
- docs/reference/thunarx/html/thunarx-Variables-and-functions-to-check-the-library-version.html
- po/ar.gmo
- po/ar.po
- po/cs.gmo
- po/cs.po
- po/thunar.pot
- thunar/thunar-tree-model.c
- thunar/thunar-tree-view-model.c
- thunarx/thunarx-config.h


Changes:

=====================================
ChangeLog
=====================================
@@ -1,3 +1,72 @@
+commit 7760dfaa32db5ab6049606ca048ba2219688f369
+Author: Alexander Schwinn <alexxcons at xfce.org>
+Date:   Sat Sep 12 08:08:23 2026 +0200
+
+    Updates for release
+
+commit e5daaba304c41ba96f374a55fe2c68b176cce3f9
+Author: Jacques HULLU <jacques at hullu.fr>
+Date:   Wed Aug 12 11:43:22 2026 +0200
+
+    Use G_POST_ORDER when refiltering the tree model (#1460)
+    
+    thunar_tree_model_node_traverse_visible() calls g_node_destroy() and
+    g_node_append_data() on the tree it is walking. g_node_traverse_pre_order()
+    caches sibling pointers across the callback, so the traversal then
+    dereferences freed nodes and Thunar crashes when toggling hidden files
+    (Ctrl+H) while a ThunarTreeView exists.
+    
+    Visiting children before their parent avoids triggering the issue. This is
+    the workaround suggested by Theo Linkspfeifer in #1460 and acked for the
+    4.20 branch; a proper fix (not mutating the tree during traversal) is
+    6a07bb022e6f / !745, which only landed on master.
+    
+    Fixes #1822, fixes #1867 on the stable branch.
+
+commit 08425856ade80579a2dcf92c0ca05b7491653b7b
+Author: Anonymous <noreply at xfce.org>
+Date:   Mon Aug 10 12:56:34 2026 +0200
+
+    I18n: Update translation ar (86%).
+    
+    904 translated messages, 138 untranslated messages.
+    
+    Transifex (https://explore.transifex.com/xfce/).
+
+commit 1f360c1cb656656d4be6d68c88ee5caef71e493f
+Author: Durval Menezes <jmgthu at durval.com>
+Date:   Wed Jul 29 17:09:50 2026 -0400
+
+    Fix SIGSEGV in Tree View when renaming directories
+    
+    When a directory is renamed, its Node is destroyed. However, an
+    asynchronous file monitor event for its children may still arrive
+    and call thunar_tree_view_model_dir_files_changed on the detached
+    node. This causes GtkTreeView to desync with 'assertion has_child
+    failed', followed by g_sequence_get failing with 'assertion iter
+    != NULL failed', and then thunar crashes with a SIGSEGV.
+    
+    The fix is to add a sanity check to abort the update if the node
+    is detached.
+    
+    MR xfce/thunar!790
+
+commit 3896ce8ac5c3ac9ab3d93cb2762d059cd65ce974
+Author: Anonymous <noreply at xfce.org>
+Date:   Sat Jul 25 00:58:20 2026 +0200
+
+    I18n: Update translation cs (100%).
+    
+    1042 translated messages.
+    
+    Transifex (https://explore.transifex.com/xfce/).
+
+commit 346a8a3958173df1bbf22efc3f0f01ba4b1b421e
+Author: Alexander Schwinn <alexxcons at xfce.org>
+Date:   Fri Jul 17 11:08:54 2026 +0200
+
+    Back to development
+
 commit 05a586b8a0608b0d855e3153fcb5207b0b091ef5
 Author: Alexander Schwinn <alexxcons at xfce.org>
 Date:   Fri Jul 17 11:04:12 2026 +0200


=====================================
NEWS
=====================================
@@ -1,3 +1,10 @@
+4.20.10 (2026-09-12)
+=======
+- Use G_POST_ORDER when refiltering the tree model (#1460)
+- Fix SIGSEGV in Tree View when renaming directories
+- Translation Updates:
+  Arabic, Czech
+
 4.20.9 (2026-07-17)
 ======
 - Prevent use-after-free in list-view (#1861)


=====================================
configure
=====================================
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for thunar 4.20.9.
+# Generated by GNU Autoconf 2.72 for thunar 4.20.10.
 #
 # Report bugs to <https://gitlab.xfce.org/xfce/thunar>.
 #
@@ -617,8 +617,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='thunar'
 PACKAGE_TARNAME='thunar'
-PACKAGE_VERSION='4.20.9'
-PACKAGE_STRING='thunar 4.20.9'
+PACKAGE_VERSION='4.20.10'
+PACKAGE_STRING='thunar 4.20.10'
 PACKAGE_BUGREPORT='https://gitlab.xfce.org/xfce/thunar'
 PACKAGE_URL=''
 
@@ -1562,7 +1562,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-'configure' configures thunar 4.20.9 to adapt to many kinds of systems.
+'configure' configures thunar 4.20.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1638,7 +1638,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of thunar 4.20.9:";;
+     short | recursive ) echo "Configuration of thunar 4.20.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1820,7 +1820,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-thunar configure 4.20.9
+thunar configure 4.20.10
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2129,7 +2129,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by thunar $as_me 4.20.9, which was
+It was created by thunar $as_me 4.20.10, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3733,7 +3733,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='thunar'
- VERSION='4.20.9'
+ VERSION='4.20.10'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -15412,7 +15412,7 @@ THUNARX_VERINFO=0:0:0
 THUNARX_VERSION_API=3
 THUNAR_VERSION_MAJOR=4
 THUNAR_VERSION_MINOR=20
-THUNAR_VERSION_MICRO=9
+THUNAR_VERSION_MICRO=10
 
 
 
@@ -25248,7 +25248,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by thunar $as_me 4.20.9, which was
+This file was extended by thunar $as_me 4.20.10, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -25316,7 +25316,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-thunar config.status 4.20.9
+thunar config.status 4.20.10
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 


=====================================
configure.ac
=====================================
@@ -25,7 +25,7 @@ dnl ***************************
 m4_define([thunarx_verinfo], [0:0:0])
 m4_define([thunarx_version_api], [3])
 
-XDT_VERSION_INIT([4.20.9])
+XDT_VERSION_INIT([4.20.10])
 
 dnl ***************************
 dnl *** Initialize autoconf ***


=====================================
docs/Thunar.1
=====================================
@@ -2,12 +2,12 @@
 .\"     Title: Thunar
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 07/17/2026
+.\"      Date: 09/12/2026
 .\"    Manual: User Commands
 .\"    Source:  
 .\"  Language: English
 .\"
-.TH "THUNAR" "1" "07/17/2026" "" "User Commands"
+.TH "THUNAR" "1" "09/12/2026" "" "User Commands"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------


=====================================
docs/reference/thunar/html/index.html
=====================================
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Thunar Internal Functions Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      For thunar 4.20.9.
+      For thunar 4.20.10.
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="https://developer.xfce.org/thunar/index.html" target="_top">https://developer.xfce.org/thunar/</a>.
     </p></div>


=====================================
docs/reference/thunarx/html/index.html
=====================================
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">thunarx Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      For thunar 4.20.9.
+      For thunar 4.20.10.
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="https://developer.xfce.org/thunar/index.html" target="_top">https://developer.xfce.org/thunar/</a>.
     </p></div>


=====================================
docs/reference/thunarx/html/thunarx-Variables-and-functions-to-check-the-library-version.html
=====================================
@@ -242,7 +242,7 @@ represents the micro version of the</p>
 <hr>
 <div class="refsect2">
 <a name="THUNARX-MICRO-VERSION:CAPS"></a><h3>THUNARX_MICRO_VERSION</h3>
-<pre class="programlisting">#define THUNARX_MICRO_VERSION 9
+<pre class="programlisting">#define THUNARX_MICRO_VERSION 10
 </pre>
 </div>
 </div>


=====================================
po/ar.gmo
=====================================
Binary files a/po/ar.gmo and b/po/ar.gmo differ


=====================================
po/ar.po
=====================================
@@ -7,15 +7,16 @@
 # Abdualrahman Hasan, 2025
 # Xfce Bot <transifex at xfce.org>, 2025
 # mohammadA <mohammadAbdulhadi1 at gmail.com>, 2025
+# Sod Emin, 2026
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: thunar.xfce-4-20\n"
 "Report-Msgid-Bugs-To: https://gitlab.xfce.org/\n"
-"POT-Creation-Date: 2025-09-25 00:52+0200\n"
+"POT-Creation-Date: 2025-12-12 12:53+0100\n"
 "PO-Revision-Date: 2024-12-30 16:00+0000\n"
-"Last-Translator: mohammadA <mohammadAbdulhadi1 at gmail.com>, 2025\n"
+"Last-Translator: Sod Emin, 2026\n"
 "Language-Team: Arabic (https://app.transifex.com/xfce/teams/16840/ar/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -1694,7 +1695,7 @@ msgid "Delete (opposite of create)"
 msgstr "حذف (نقيض انشاء)"
 
 #: thunar/thunar-enum-types.c:791 thunar/thunar-file.c:1087
-#: thunar/thunar-gio-extensions.c:510 thunar/thunar-shortcuts-model.c:1157
+#: thunar/thunar-gio-extensions.c:572 thunar/thunar-shortcuts-model.c:1157
 #: thunar.desktop.in.in:25
 msgid "Trash"
 msgstr "المهملات"
@@ -1736,7 +1737,7 @@ msgstr "مدمج"
 msgid "Only for local files"
 msgstr "للملفات المحلية فقط"
 
-#: thunar/thunar-file.c:1094 thunar/thunar-gio-extensions.c:508
+#: thunar/thunar-file.c:1094 thunar/thunar-gio-extensions.c:570
 #: thunar/thunar-shortcuts-model.c:1039
 msgid "File System"
 msgstr "نظام الملفات"
@@ -1857,12 +1858,12 @@ msgid "Phone"
 msgstr "هاتف"
 
 #. TRANSLATORS: this will result in "<path> on <hostname>"
-#: thunar/thunar-gio-extensions.c:590
+#: thunar/thunar-gio-extensions.c:652
 #, c-format
 msgid "%s on %s"
 msgstr "%s على %s"
 
-#: thunar/thunar-gio-extensions.c:701
+#: thunar/thunar-gio-extensions.c:763
 #, c-format
 msgid "%s used (%.0f%%)  |  %s free (%.0f%%)"
 msgstr ""
@@ -2970,10 +2971,6 @@ msgstr ""
 msgid "Resuming job..."
 msgstr ""
 
-#: thunar/thunar-progress-view.c:661
-msgid "Queued"
-msgstr ""
-
 #: thunar/thunar-properties-dialog.c:358
 msgid "General"
 msgstr "عام"
@@ -4285,7 +4282,7 @@ msgstr "قائمة"
 
 #: thunar/thunar-window.c:725
 msgid "Show the menu"
-msgstr ""
+msgstr "عرض القائمة"
 
 #. add the label with the root warning
 #: thunar/thunar-window.c:1066
@@ -4828,7 +4825,7 @@ msgstr "أرسل \"%s\" كأرشيف مضغوط؟"
 #: plugins/thunar-sendto-email/main.c:219
 #: plugins/thunar-sendto-email/main.c:239
 msgid "Send email"
-msgstr ""
+msgstr "إرسال بريد إلكتروني"
 
 #: plugins/thunar-sendto-email/main.c:221
 #: plugins/thunar-sendto-email/main.c:241


=====================================
po/cs.gmo
=====================================
Binary files a/po/cs.gmo and b/po/cs.gmo differ


=====================================
po/cs.po
=====================================
@@ -5,8 +5,8 @@
 # 
 # Translators:
 # Xfce Bot <transifex at xfce.org>, 2024
-# Michal Várady <miko.vaji at gmail.com>, 2025
 # b537cbea55af75c3f49fe8b21c4cf8ea_f0ce149, 2025
+# Michal Várady <miko.vaji at gmail.com>, 2026
 # 
 #, fuzzy
 msgid ""
@@ -15,7 +15,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: https://gitlab.xfce.org/\n"
 "POT-Creation-Date: 2025-12-12 12:53+0100\n"
 "PO-Revision-Date: 2024-12-30 16:00+0000\n"
-"Last-Translator: b537cbea55af75c3f49fe8b21c4cf8ea_f0ce149, 2025\n"
+"Last-Translator: Michal Várady <miko.vaji at gmail.com>, 2026\n"
 "Language-Team: Czech (https://app.transifex.com/xfce/teams/16840/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -1443,7 +1443,7 @@ msgid ""
 "The desktop file %s is in an insecure location and not marked as secure%s. If you do not trust this program, click Cancel.\n"
 "\n"
 msgstr ""
-"Soubor plochy %s není v bezpečném umístění a není označen jako spustitelný %s. Nedůvěřujete-li programu, stiskněte tlačítko Zrušit.\n"
+"Soubor .desktop %s je v nezabezpečeném umístění a není označen jako důvěryhodný%s. Pokud tomuto programu nedůvěřujete, klikněte na Zrušit.\n"
 "\n"
 
 #: thunar/thunar-dialogs.c:1096


=====================================
po/thunar.pot
=====================================
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: thunar 4.20.9\n"
+"Project-Id-Version: thunar 4.20.10\n"
 "Report-Msgid-Bugs-To: https://gitlab.xfce.org/xfce/thunar\n"
-"POT-Creation-Date: 2026-07-17 09:04+0000\n"
+"POT-Creation-Date: 2026-09-12 06:24+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"


=====================================
thunar/thunar-tree-model.c
=====================================
@@ -1916,8 +1916,11 @@ thunar_tree_model_refilter (ThunarTreeModel *model)
 {
   _thunar_return_if_fail (THUNAR_IS_TREE_MODEL (model));
 
-  /* traverse all nodes to update their visibility */
-  g_node_traverse (model->root, G_PRE_ORDER, G_TRAVERSE_ALL, -1,
+  /* traverse all nodes to update their visibility.
+   * G_POST_ORDER is required: thunar_tree_model_node_traverse_visible() can
+   * destroy and append nodes, and g_node_traverse_pre_order() keeps sibling
+   * pointers across the callback, which then dereferences freed nodes. */
+  g_node_traverse (model->root, G_POST_ORDER, G_TRAVERSE_ALL, -1,
                    thunar_tree_model_node_traverse_visible, model);
 }
 


=====================================
thunar/thunar-tree-view-model.c
=====================================
@@ -2820,7 +2820,7 @@ static void
 thunar_tree_view_model_dir_files_changed (Node       *node_parent,
                                           GHashTable *files)
 {
-  ThunarTreeViewModel *model = node_parent->model;
+  ThunarTreeViewModel *model;
   GSequenceIter       *iter;
   GtkTreeIter          tree_iter;
   GHashTableIter       files_iter;
@@ -2833,6 +2833,16 @@ thunar_tree_view_model_dir_files_changed (Node       *node_parent,
   ThunarFile          *file;
   gpointer             key;
 
+  /* SANITY CHECK: Protect against Use-After-Free race conditions where the parent
+   * directory was renamed/detached before the child file's monitor event finished. */
+  if (node_parent == NULL || (node_parent->ptr == NULL && node_parent->parent == NULL))
+    {
+      g_message ("ThunarTreeViewModel: Caught and ignored files_changed on a detached node.");
+      return; /* Abort the entire update for this ghost directory */
+    }
+
+  model = node_parent->model;
+
   g_hash_table_iter_init (&files_iter, files);
   while (g_hash_table_iter_next (&files_iter, &key, NULL))
     {


=====================================
thunarx/thunarx-config.h
=====================================
@@ -31,7 +31,7 @@ G_BEGIN_DECLS
 
 #define THUNARX_MAJOR_VERSION 4
 #define THUNARX_MINOR_VERSION 20
-#define THUNARX_MICRO_VERSION 9
+#define THUNARX_MICRO_VERSION 10
 
 #define THUNARX_CHECK_VERSION(major,minor,micro) \
   (THUNARX_MAJOR_VERSION > (major) \



View it on GitLab: https://salsa.debian.org/xfce-team/desktop/thunar/-/commit/ded662d020ce2defa2629e5b25ee27f3dfa41878

-- 
View it on GitLab: https://salsa.debian.org/xfce-team/desktop/thunar/-/commit/ded662d020ce2defa2629e5b25ee27f3dfa41878
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-xfce-commits/attachments/20260913/4591e06a/attachment-0001.htm>


More information about the Pkg-xfce-commits mailing list