Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gthumb for openSUSE:Factory checked 
in at 2026-02-12 17:26:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gthumb (Old)
 and      /work/SRC/openSUSE:Factory/.gthumb.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gthumb"

Thu Feb 12 17:26:42 2026 rev:129 rq:1332561 version:3.12.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/gthumb/gthumb.changes    2026-01-26 
11:05:44.918595837 +0100
+++ /work/SRC/openSUSE:Factory/.gthumb.new.1977/gthumb.changes  2026-02-12 
17:27:40.516075144 +0100
@@ -1,0 +2,6 @@
+Tue Feb 10 10:23:39 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 3.12.10:
+  + Bugfix: Fixed potential crash
+
+-------------------------------------------------------------------

Old:
----
  gthumb-3.12.9.obscpio

New:
----
  gthumb-3.12.10.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gthumb.spec ++++++
--- /var/tmp/diff_new_pack.cMvvD9/_old  2026-02-12 17:27:43.448199532 +0100
+++ /var/tmp/diff_new_pack.cMvvD9/_new  2026-02-12 17:27:43.468200381 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           gthumb
-Version:        3.12.9
+Version:        3.12.10
 Release:        0
 # FIXME: Add libchamplain BuildRequires once the map feature is considered 
stable.
 Summary:        An Image Viewer and Browser for GNOME

++++++ _service ++++++
--- /var/tmp/diff_new_pack.cMvvD9/_old  2026-02-12 17:27:43.728211411 +0100
+++ /var/tmp/diff_new_pack.cMvvD9/_new  2026-02-12 17:27:43.760212769 +0100
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://gitlab.gnome.org/GNOME/gthumb.git</param>
-    <param name="revision">3.12.9</param>
+    <param name="revision">3.12.10</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">v?(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ gthumb-3.12.9.obscpio -> gthumb-3.12.10.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/NEWS new/gthumb-3.12.10/NEWS
--- old/gthumb-3.12.9/NEWS      2026-01-23 08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/NEWS     2026-02-10 07:54:11.000000000 +0100
@@ -1,3 +1,10 @@
+Version 3.12.10
+~~~~~~~~~~~~~~~
+Released: 2026-02-10
+
+Bugfixes:
+ * Fixed potential crash
+
 Version 3.12.9
 ~~~~~~~~~~~~~~
 Released: 2026-01-23
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gthumb-3.12.9/extensions/comments/gth-import-metadata-task.c 
new/gthumb-3.12.10/extensions/comments/gth-import-metadata-task.c
--- old/gthumb-3.12.9/extensions/comments/gth-import-metadata-task.c    
2026-01-23 08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/extensions/comments/gth-import-metadata-task.c   
2026-02-10 07:54:11.000000000 +0100
@@ -165,6 +165,7 @@
        file_data_list = _g_query_metadata_finish (res, &error);
        if (error != NULL) {
                gth_task_completed (GTH_TASK (self), error);
+               _g_object_list_unref (file_data_list);
                return;
        }
 
@@ -187,6 +188,7 @@
        }
 
        gth_task_completed (GTH_TASK (self), NULL);
+       _g_object_list_unref (file_data_list);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gthumb-3.12.9/extensions/desktop_background/actions.c 
new/gthumb-3.12.10/extensions/desktop_background/actions.c
--- old/gthumb-3.12.9/extensions/desktop_background/actions.c   2026-01-23 
08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/extensions/desktop_background/actions.c  2026-02-10 
07:54:11.000000000 +0100
@@ -393,6 +393,7 @@
        if (error != NULL) {
                _gtk_error_dialog_from_gerror_run (GTK_WINDOW (wdata->browser), 
_("Could not set the desktop background"), error);
                wallpaper_data_free (wdata);
+               _g_object_list_unref (file_list);
                return;
        }
 
@@ -420,6 +421,7 @@
                wdata->new_style.background_style = BACKGROUND_STYLE_ZOOM;
 
        wallpaper_data_set__step2 (wdata);
+       _g_object_list_unref (file_list);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/extensions/exiv2_tools/exiv2-utils.cpp 
new/gthumb-3.12.10/extensions/exiv2_tools/exiv2-utils.cpp
--- old/gthumb-3.12.9/extensions/exiv2_tools/exiv2-utils.cpp    2026-01-23 
08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/extensions/exiv2_tools/exiv2-utils.cpp   2026-02-10 
07:54:11.000000000 +0100
@@ -328,7 +328,7 @@
        GthStringList *string_list;
 
        list = NULL;
-       for (int i = 0; i < value.count(); i++)
+       for (size_t i = 0; i < value.count(); i++)
                list = g_list_prepend (list, g_strdup 
(value.toString(i).c_str()));
        string_list = gth_string_list_new (g_list_reverse (list));
        g_object_set (metadata, "string-list", string_list, NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gthumb-3.12.9/extensions/image_print/gth-image-print-job.c 
new/gthumb-3.12.10/extensions/image_print/gth-image-print-job.c
--- old/gthumb-3.12.9/extensions/image_print/gth-image-print-job.c      
2026-01-23 08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/extensions/image_print/gth-image-print-job.c     
2026-02-10 07:54:11.000000000 +0100
@@ -1154,10 +1154,12 @@
                    gpointer      user_data)
 {
        GthImagePrintJob *self = user_data;
+       GList            *files;
        GError           *error;
 
-       _g_query_metadata_finish (result, &error);
+       files = _g_query_metadata_finish (result, &error);
        gth_image_print_job_update_preview (self);
+       _g_object_list_unref (files);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gthumb-3.12.9/extensions/image_print/gth-load-image-info-task.c 
new/gthumb-3.12.10/extensions/image_print/gth-load-image-info-task.c
--- old/gthumb-3.12.9/extensions/image_print/gth-load-image-info-task.c 
2026-01-23 08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/extensions/image_print/gth-load-image-info-task.c        
2026-02-10 07:54:11.000000000 +0100
@@ -73,15 +73,18 @@
                    gpointer      user_data)
 {
        GthLoadImageInfoTask *self = user_data;
+       GList                *files;
        GError               *error = NULL;
 
-       _g_query_metadata_finish (result, &error);
+       files = _g_query_metadata_finish (result, &error);
        if (error != NULL) {
                gth_task_completed (GTH_TASK (self), error);
+               _g_object_list_unref (files);
                return;
        }
 
        load_next_image (self);
+       _g_object_list_unref (files);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gthumb-3.12.9/extensions/list_tools/gth-script-task.c 
new/gthumb-3.12.10/extensions/list_tools/gth-script-task.c
--- old/gthumb-3.12.9/extensions/list_tools/gth-script-task.c   2026-01-23 
08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/extensions/list_tools/gth-script-task.c  2026-02-10 
07:54:11.000000000 +0100
@@ -251,15 +251,18 @@
                     gpointer      user_data)
 {
        GthScriptTask *self = user_data;
+       GList         *files;
        GError        *error = NULL;
 
-       _g_query_metadata_finish (result, &error);
+       files = _g_query_metadata_finish (result, &error);
        if (error != NULL) {
                gth_task_completed (GTH_TASK (self), error);
+               _g_object_list_unref (files);
                return;
        }
 
        _gth_script_task_exec (self);
+       _g_object_list_unref (files);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/gthumb/gio-utils.c 
new/gthumb-3.12.10/gthumb/gio-utils.c
--- old/gthumb-3.12.9/gthumb/gio-utils.c        2026-01-23 08:54:29.000000000 
+0100
+++ new/gthumb-3.12.10/gthumb/gio-utils.c       2026-02-10 07:54:11.000000000 
+0100
@@ -289,6 +289,7 @@
        }
 
        for_each_child_read_next_child_metadata (fec);
+       _g_object_list_unref (files);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/gthumb/gth-browser.c 
new/gthumb-3.12.10/gthumb/gth-browser.c
--- old/gthumb-3.12.9/gthumb/gth-browser.c      2026-01-23 08:54:29.000000000 
+0100
+++ new/gthumb-3.12.10/gthumb/gth-browser.c     2026-02-10 07:54:11.000000000 
+0100
@@ -1637,10 +1637,12 @@
        files = _g_query_metadata_finish (result, &error);
        if (error != NULL) {
                load_data_error (load_data, error);
+               _g_object_list_unref (files);
                return;
        }
 
        load_data_continue (load_data, files);
+       _g_object_list_unref (files);
 }
 
 
@@ -2071,7 +2073,7 @@
                gth_browser_set_viewer_widget (browser, NULL);
                g_object_unref (browser->priv->viewer_page);
                browser->priv->viewer_page = NULL;
-               gth_image_preloader_clear_cache 
(browser->priv->image_preloader);
+               gth_image_preloader_stop (browser->priv->image_preloader);
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/gthumb/gth-file-properties.c 
new/gthumb-3.12.10/gthumb/gth-file-properties.c
--- old/gthumb-3.12.9/gthumb/gth-file-properties.c      2026-01-23 
08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/gthumb/gth-file-properties.c     2026-02-10 
07:54:11.000000000 +0100
@@ -218,8 +218,14 @@
                        char *tmp_value;
 
                        utf8_value = _g_utf8_from_any (value);
-                       if (g_utf8_strlen (utf8_value, -1) > 
MAX_ATTRIBUTE_LENGTH)
-                               g_utf8_strncpy (g_utf8_offset_to_pointer 
(utf8_value, MAX_ATTRIBUTE_LENGTH - 1), "…", 1);
+                       if (g_utf8_strlen (utf8_value, -1) > 
MAX_ATTRIBUTE_LENGTH) {
+                               char *truncated = g_utf8_substring (utf8_value, 
0, MAX_ATTRIBUTE_LENGTH);
+                               if (truncated != NULL) {
+                                       g_free (utf8_value);
+                                       utf8_value = g_strconcat (truncated, 
"…", NULL);
+                                       g_free (truncated);
+                               }
+                       }
                        tmp_value = _g_utf8_replace_pattern (utf8_value, 
"[\r\n]", " ");
                        g_free (value);
                        value = tmp_value;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/gthumb/gth-image-preloader.c 
new/gthumb-3.12.10/gthumb/gth-image-preloader.c
--- old/gthumb-3.12.9/gthumb/gth-image-preloader.c      2026-01-23 
08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/gthumb/gth-image-preloader.c     2026-02-10 
07:54:11.000000000 +0100
@@ -78,6 +78,7 @@
        GthImageLoader          *loader;
        GQueue                  *cache;
        GthICCProfile           *out_profile;
+       gboolean                 stopped;
 };
 
 
@@ -236,24 +237,32 @@
 
 
 static void
-gth_image_preloader_finalize (GObject *object)
+gth_image_preloader_clear_requests (GthImagePreloader *self)
 {
-       GthImagePreloader *self;
-       GList             *scan;
-
-       g_return_if_fail (object != NULL);
-       g_return_if_fail (GTH_IS_IMAGE_PRELOADER (object));
-
-       self = GTH_IMAGE_PRELOADER (object);
+       GList *scan;
 
        for (scan = self->priv->requests; scan; scan = scan->next) {
                LoadRequest *request = scan->data;
-
                request->finalized = TRUE;
                load_request_unref (request);
        }
        g_list_free (self->priv->requests);
+       self->priv->requests = NULL;
+       self->priv->current_request = NULL;
+}
+
 
+static void
+gth_image_preloader_finalize (GObject *object)
+{
+       GthImagePreloader *self;
+
+       g_return_if_fail (object != NULL);
+       g_return_if_fail (GTH_IS_IMAGE_PRELOADER (object));
+
+       self = GTH_IMAGE_PRELOADER (object);
+
+       gth_image_preloader_clear_requests (self);
        g_object_unref (self->priv->loader);
        _g_object_unref (self->priv->out_profile);
        g_queue_free_full (self->priv->cache, (GDestroyNotify) 
cache_data_unref);
@@ -281,6 +290,7 @@
        self->priv->loader = gth_image_loader_new (NULL, NULL);
        self->priv->cache = g_queue_new ();
        self->priv->out_profile = NULL;
+       self->priv->stopped = FALSE;
 }
 
 
@@ -403,8 +413,10 @@
 
        /* Check whether the request is still relevant. */
 
-       if ((self->priv->requests == NULL) || (self->priv->requests->data != 
request))
+       if ((self->priv->requests == NULL) || (self->priv->requests->data != 
request)) {
                _gth_image_preloader_start_last_request (self);
+               return;
+       }
 
        /* Queue the next file. */
 
@@ -446,6 +458,7 @@
 
 
 typedef struct {
+       GthImagePreloader *preloader;
        LoadRequest *request;
        GList       *requested_file;
        gboolean     resize_to_requested_size;
@@ -453,12 +466,14 @@
 
 
 static LoadData *
-load_data_new (LoadRequest *request,
+load_data_new (GthImagePreloader *preloader,
+              LoadRequest *request,
               gboolean     resize_image)
 {
        LoadData *load_data;
 
        load_data = g_new0 (LoadData, 1);
+       load_data->preloader = g_object_ref (preloader);
        load_data->request = load_request_ref (request);
        load_data->requested_file = request->current_file;
        load_data->resize_to_requested_size = resize_image;
@@ -470,6 +485,7 @@
 static void
 load_data_free (LoadData *load_data)
 {
+       g_object_unref (load_data->preloader);
        load_request_unref (load_data->request);
        g_free (load_data);
 }
@@ -503,7 +519,7 @@
 {
        LoadData          *load_data = user_data;
        LoadRequest       *request = load_data->request;
-       GthImagePreloader *self = request->preloader;
+       GthImagePreloader *self = load_data->preloader;
        GthImage          *image = NULL;
        int                original_width;
        int                original_height;
@@ -521,7 +537,8 @@
                                                 &loaded_original,
                                                 &error);
 
-       if (request->finalized
+       if (self->priv->stopped
+           || request->finalized
            || g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)
            || (self->priv->requests == NULL)
            || (self->priv->requests->data != request))
@@ -539,7 +556,7 @@
        }
 
        cache_data = cache_data_new ();
-       cache_data->file_data = g_object_ref (request->current_file->data);
+       cache_data->file_data = _g_object_ref (request->current_file->data);
        cache_data->image = success ? _g_object_ref (image) : NULL;
        cache_data->original_width = success ? original_width : -1;
        cache_data->original_height = success ? original_height : -1;
@@ -624,7 +641,7 @@
                               (request->current_file == request->files) ? 
G_PRIORITY_HIGH : G_PRIORITY_DEFAULT,
                               request->cancellable,
                               image_loader_ready_cb,
-                              load_data_new (request, ignore_requested_size));
+                              load_data_new (self, request, 
ignore_requested_size));
 }
 
 
@@ -711,6 +728,8 @@
                g_print ("request modified image @%d\n", requested_size);
 #endif
 
+       self->priv->stopped = FALSE;
+
        request = load_request_new (self);
        request->requested_size = requested_size;
        request->files = g_list_prepend (request->files, gth_file_data_dup 
(requested));
@@ -853,3 +872,19 @@
        g_queue_free_full (self->priv->cache, (GDestroyNotify) 
cache_data_unref);
        self->priv->cache = g_queue_new ();
 }
+
+
+void
+gth_image_preloader_stop (GthImagePreloader *self)
+{
+       g_return_if_fail (self != NULL);
+       self->priv->stopped = TRUE;
+       if (self->priv->current_request != NULL) {
+               if (!self->priv->current_request->cancelling && 
self->priv->current_request->loading) {
+                       self->priv->current_request->cancelling = TRUE;
+                       g_cancellable_cancel 
(self->priv->current_request->cancellable);
+               }
+       }
+       gth_image_preloader_clear_requests (self);
+       gth_image_preloader_clear_cache (self);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/gthumb/gth-image-preloader.h 
new/gthumb-3.12.10/gthumb/gth-image-preloader.h
--- old/gthumb-3.12.9/gthumb/gth-image-preloader.h      2026-01-23 
08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/gthumb/gth-image-preloader.h     2026-02-10 
07:54:11.000000000 +0100
@@ -73,5 +73,6 @@
                                                                  GthImage      
                 *image);
 cairo_surface_t *   gth_image_preloader_get_modified_image      
(GthImagePreloader              *self);
 void               gth_image_preloader_clear_cache              
(GthImagePreloader              *self);
+void               gth_image_preloader_stop                     
(GthImagePreloader              *self);
 
 #endif /* GTH_IMAGE_PRELOADER_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/gthumb/gth-metadata-provider.c 
new/gthumb-3.12.10/gthumb/gth-metadata-provider.c
--- old/gthumb-3.12.9/gthumb/gth-metadata-provider.c    2026-01-23 
08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/gthumb/gth-metadata-provider.c   2026-02-10 
07:54:11.000000000 +0100
@@ -282,7 +282,7 @@
 
        qmd = g_task_get_task_data (G_TASK (result));
 
-       return qmd->files;
+       return _g_object_list_ref (qmd->files);
 }
 
 
@@ -424,6 +424,7 @@
                qam->ready_func (NULL, error, qam->user_data);
 
        query_all_metadata_free (qam);
+       _g_object_list_unref (files);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gthumb-3.12.9/meson.build 
new/gthumb-3.12.10/meson.build
--- old/gthumb-3.12.9/meson.build       2026-01-23 08:54:29.000000000 +0100
+++ new/gthumb-3.12.10/meson.build      2026-02-10 07:54:11.000000000 +0100
@@ -1,6 +1,6 @@
 project('gthumb', ['c', 'cpp'],
   license : 'GPL2+',
-  version : '3.12.9',
+  version : '3.12.10',
   meson_version : '>=0.59'
 )
 

++++++ gthumb.obsinfo ++++++
--- /var/tmp/diff_new_pack.cMvvD9/_old  2026-02-12 17:27:47.096354298 +0100
+++ /var/tmp/diff_new_pack.cMvvD9/_new  2026-02-12 17:27:47.100354467 +0100
@@ -1,5 +1,5 @@
 name: gthumb
-version: 3.12.9
-mtime: 1769154869
-commit: b1490527e8638611da65fcf0431bf58e07d23286
+version: 3.12.10
+mtime: 1770706451
+commit: 350d84a408a96aeb120e7b2978abbfaba3181b08
 

Reply via email to