Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gdk-pixbuf for openSUSE:Factory checked in at 2025-10-27 14:37:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gdk-pixbuf (Old) and /work/SRC/openSUSE:Factory/.gdk-pixbuf.new.1980 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gdk-pixbuf" Mon Oct 27 14:37:35 2025 rev:105 rq:1313601 version:2.44.4 Changes: -------- --- /work/SRC/openSUSE:Factory/gdk-pixbuf/gdk-pixbuf.changes 2025-09-30 17:49:44.295841050 +0200 +++ /work/SRC/openSUSE:Factory/.gdk-pixbuf.new.1980/gdk-pixbuf.changes 2025-10-27 14:38:08.822600434 +0100 @@ -1,0 +2,10 @@ +Tue Oct 21 21:03:02 UTC 2025 - Bjørn Lie <[email protected]> + +- Update to version 2.44.4: + + glycin: + - Make svgz work + - Support saving avif + + docs: Add deprecation tags for GdkPixbufAnimation + + bmp: Fix loading of bottom-up images + +------------------------------------------------------------------- Old: ---- gdk-pixbuf-2.44.3.obscpio New: ---- gdk-pixbuf-2.44.4.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gdk-pixbuf.spec ++++++ --- /var/tmp/diff_new_pack.RZG24c/_old 2025-10-27 14:38:10.286662254 +0100 +++ /var/tmp/diff_new_pack.RZG24c/_new 2025-10-27 14:38:10.290662423 +0100 @@ -20,7 +20,7 @@ %define gdk_pixbuf_binary_version 2.10.0 Name: gdk-pixbuf -Version: 2.44.3 +Version: 2.44.4 Release: 0 Summary: An image loading library License: LGPL-2.1-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.RZG24c/_old 2025-10-27 14:38:10.346664787 +0100 +++ /var/tmp/diff_new_pack.RZG24c/_new 2025-10-27 14:38:10.350664956 +0100 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="manual"> <param name="scm">git</param> <param name="url">https://gitlab.gnome.org/GNOME/gdk-pixbuf.git</param> - <param name="revision">2.44.3</param> + <param name="revision">2.44.4</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">v?(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ gdk-pixbuf-2.44.3.obscpio -> gdk-pixbuf-2.44.4.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/.gitlab-ci.yml new/gdk-pixbuf-2.44.4/.gitlab-ci.yml --- old/gdk-pixbuf-2.44.3/.gitlab-ci.yml 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/.gitlab-ci.yml 2025-10-21 16:37:32.000000000 +0200 @@ -49,14 +49,14 @@ .container.fedora: variables: - BASE_TAG: '2025-08-13.0' + BASE_TAG: '2025-10-07.0' FDO_DISTRIBUTION_VERSION: 42 FDO_DISTRIBUTION_TAG: "x86_64-${BASE_TAG}" FDO_DISTRIBUTION_PACKAGES: ccache clang clang-analyzer - clang-format + clang-tools-extra gcc gcc-c++ gettext diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/NEWS new/gdk-pixbuf-2.44.4/NEWS --- old/gdk-pixbuf-2.44.3/NEWS 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/NEWS 2025-10-21 16:37:32.000000000 +0200 @@ -1,3 +1,11 @@ +2.44.4 +=== + +- glycin: Make svgz work +- glycin: Support saving avif +- docs: Add deprecation tags for GdkPixbufAnimation +- bmp: Fix loading of bottom-up images + 2.44.3 === diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/gdk-pixbuf/gdk-pixbuf-animation.c new/gdk-pixbuf-2.44.4/gdk-pixbuf/gdk-pixbuf-animation.c --- old/gdk-pixbuf-2.44.3/gdk-pixbuf/gdk-pixbuf-animation.c 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/gdk-pixbuf/gdk-pixbuf-animation.c 2025-10-21 16:37:32.000000000 +0200 @@ -47,6 +47,8 @@ * To display an animation you don't need to understand its * representation, however; you just ask `GdkPixbuf` what should * be displayed at a given point in time. + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ /** @@ -54,6 +56,8 @@ * * An opaque object representing an iterator which points to a * certain position in an animation. + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ typedef struct _GdkPixbufNonAnim GdkPixbufNonAnim; @@ -159,6 +163,8 @@ * Possible errors are in the `GDK_PIXBUF_ERROR` and `G_FILE_ERROR` domains. * * Return value: (transfer full) (nullable): A newly-created animation + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ GdkPixbufAnimation * gdk_pixbuf_animation_new_from_file (const gchar *filename, @@ -330,9 +336,11 @@ * Same as gdk_pixbuf_animation_new_from_file() * * Return value: A newly-created animation with a reference count of 1, or `NULL` - * if any of several error conditions ocurred: the file could not be opened, - * there was no loader for the file's format, there was not enough memory to - * allocate the image buffer, or the image file contained invalid data. + * if any of several error conditions ocurred: the file could not be opened, + * there was no loader for the file's format, there was not enough memory to + * allocate the image buffer, or the image file contained invalid data. + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ GdkPixbufAnimation * gdk_pixbuf_animation_new_from_file_utf8 (const gchar *filename, @@ -364,6 +372,8 @@ * Return value: (transfer full) (nullable): A newly-created animation * * Since: 2.28 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ GdkPixbufAnimation * gdk_pixbuf_animation_new_from_stream (GInputStream *stream, @@ -456,6 +466,8 @@ * result of the operation. * * Since: 2.28 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets **/ void gdk_pixbuf_animation_new_from_stream_async (GInputStream *stream, @@ -486,6 +498,8 @@ * Return value: (transfer full) (nullable): the newly created animation * * Since: 2.28 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets **/ GdkPixbufAnimation * gdk_pixbuf_animation_new_from_stream_finish (GAsyncResult *async_result, @@ -513,6 +527,8 @@ * Return value: (transfer full) (nullable): A newly-created animation * * Since: 2.28 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ GdkPixbufAnimation * gdk_pixbuf_animation_new_from_resource (const gchar *resource_path, @@ -580,6 +596,8 @@ * the image. * * Return value: `TRUE` if the "animation" was really just an image + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ gboolean gdk_pixbuf_animation_is_static_image (GdkPixbufAnimation *animation) @@ -606,6 +624,8 @@ * return `NULL`. * * Return value: (transfer none): unanimated image representing the animation + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ GdkPixbuf* gdk_pixbuf_animation_get_static_image (GdkPixbufAnimation *animation) @@ -622,6 +642,8 @@ * Queries the width of the bounding box of a pixbuf animation. * * Return value: Width of the bounding box of the animation. + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ gint gdk_pixbuf_animation_get_width (GdkPixbufAnimation *animation) @@ -644,6 +666,8 @@ * Queries the height of the bounding box of a pixbuf animation. * * Return value: Height of the bounding box of the animation. + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ gint gdk_pixbuf_animation_get_height (GdkPixbufAnimation *animation) @@ -701,6 +725,8 @@ * A delay time of -1 is possible, indicating "infinite". * * Return value: (transfer full): an iterator to move over the animation + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ GdkPixbufAnimationIter* gdk_pixbuf_animation_get_iter (GdkPixbufAnimation *animation, @@ -746,6 +772,8 @@ * for GIF images is currently 20 milliseconds. * * Return value: delay time in milliseconds (thousandths of a second) + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ gint gdk_pixbuf_animation_iter_get_delay_time (GdkPixbufAnimationIter *iter) @@ -777,6 +805,8 @@ * recycled as you advance the iterator. * * Return value: (transfer none): the pixbuf to be displayed + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ GdkPixbuf* gdk_pixbuf_animation_iter_get_pixbuf (GdkPixbufAnimationIter *iter) @@ -799,6 +829,8 @@ * you will need to redraw the screen for the updated area. * * Return value: `TRUE` if the frame we're on is partially loaded, or the last frame + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ gboolean gdk_pixbuf_animation_iter_on_currently_loading_frame (GdkPixbufAnimationIter *iter) @@ -837,6 +869,8 @@ * and update the display with the new pixbuf. * * Returns: `TRUE` if the image may need updating + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ gboolean gdk_pixbuf_animation_iter_advance (GdkPixbufAnimationIter *iter, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/gdk-pixbuf/gdk-pixbuf-animation.h new/gdk-pixbuf-2.44.4/gdk-pixbuf/gdk-pixbuf-animation.h --- old/gdk-pixbuf-2.44.3/gdk-pixbuf/gdk-pixbuf-animation.h 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/gdk-pixbuf/gdk-pixbuf-animation.h 2025-10-21 16:37:32.000000000 +0200 @@ -128,6 +128,8 @@ * Modules supporting animations must derive a type from * #GdkPixbufAnimation, providing suitable implementations of the * virtual functions. + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ typedef struct _GdkPixbufAnimationClass GdkPixbufAnimationClass; @@ -176,6 +178,8 @@ * Modules supporting animations must derive a type from * #GdkPixbufAnimationIter, providing suitable implementations of the * virtual functions. + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ typedef struct _GdkPixbufAnimationIterClass GdkPixbufAnimationIterClass; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/gdk-pixbuf/gdk-pixbuf-simple-anim.c new/gdk-pixbuf-2.44.4/gdk-pixbuf/gdk-pixbuf-simple-anim.c --- old/gdk-pixbuf-2.44.3/gdk-pixbuf/gdk-pixbuf-simple-anim.c 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/gdk-pixbuf/gdk-pixbuf-simple-anim.c 2025-10-21 16:37:32.000000000 +0200 @@ -157,6 +157,8 @@ * Whether the animation should loop when it reaches the end. * * Since: 2.18 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ g_object_class_install_property (object_class, PROP_LOOP, @@ -423,6 +425,8 @@ * Returns: a newly allocated #GdkPixbufSimpleAnim * * Since: 2.8 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ GdkPixbufSimpleAnim * gdk_pixbuf_simple_anim_new (gint width, @@ -449,6 +453,8 @@ * was constructed. * * Since: 2.8 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets */ void gdk_pixbuf_simple_anim_add_frame (GdkPixbufSimpleAnim *animation, @@ -517,6 +523,8 @@ * Sets whether @animation should loop indefinitely when it reaches the end. * * Since: 2.18 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets **/ void gdk_pixbuf_simple_anim_set_loop (GdkPixbufSimpleAnim *animation, @@ -539,6 +547,8 @@ * Returns: %TRUE if the animation loops forever, %FALSE otherwise * * Since: 2.18 + * + * Deprecated: 2.44: Use a different image loading library for animatable assets **/ gboolean gdk_pixbuf_simple_anim_get_loop (GdkPixbufSimpleAnim *animation) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/gdk-pixbuf/io-bmp.c new/gdk-pixbuf-2.44.4/gdk-pixbuf/io-bmp.c --- old/gdk-pixbuf-2.44.3/gdk-pixbuf/io-bmp.c 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/gdk-pixbuf/io-bmp.c 2025-10-21 16:37:32.000000000 +0200 @@ -129,7 +129,7 @@ struct headerpair { guint32 size; guint32 width; - guint32 height; + gint32 height; guint depth; guint Negative; /* Negative = 1 -> top down BMP, Negative = 0 -> bottom up BMP */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/gdk-pixbuf/io-glycin-avif.c new/gdk-pixbuf-2.44.4/gdk-pixbuf/io-glycin-avif.c --- old/gdk-pixbuf-2.44.3/gdk-pixbuf/io-glycin-avif.c 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/gdk-pixbuf/io-glycin-avif.c 2025-10-21 16:37:32.000000000 +0200 @@ -22,6 +22,89 @@ #include "io-glycin-utils.h" +static gboolean +filter_keys (char **keys, + char **values, + int *quality, + GError **error) +{ + if (!keys) + return TRUE; + + for (int i = 0; keys[i]; i++) + { + if (strcmp (keys[i], "quality") == 0) + { + char *endp = NULL; + + *quality = strtol (values[i], &endp, 10); + if ((endp && *endp != '\0') || *quality < 0 || *quality > 100) + { + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_BAD_OPTION, + "JPEG quality must be a value between 0 and 100; “%s” could not be parsed.", values[i]); + return FALSE; + } + } + else + { + g_warning ("Unrecognized parameter (%s) passed to JPEG saver.", keys[i]); + } + } + + return TRUE; +} + +static gboolean +gdk_pixbuf__avif_image_save (FILE *f, + GdkPixbuf *pixbuf, + char **keys, + char **values, + GError **error) +{ + int quality = -1; + + if (!filter_keys (keys, values, &quality, error)) + return FALSE; + + return glycin_image_save ("image/avif", f, NULL, NULL, + pixbuf, + NULL, NULL, + NULL, + quality, -1, + error); +} + +static gboolean +gdk_pixbuf__avif_image_save_to_callback (GdkPixbufSaveFunc save_func, + gpointer user_data, + GdkPixbuf *pixbuf, + gchar **keys, + gchar **values, + GError **error) +{ + int quality = -1; + + if (!filter_keys (keys, values, &quality, error)) + return FALSE; + + return glycin_image_save ("image/avif", NULL, save_func, user_data, + pixbuf, + NULL, NULL, + NULL, + quality, -1, + error); +} + +static gboolean +gdk_pixbuf__avif_is_save_option_supported (const gchar *option_key) +{ + if (option_key == NULL) + return FALSE; + + return strcmp (option_key, "quality") == 0; +} #ifndef INCLUDE_glycin #define MODULE_ENTRY(function) G_MODULE_EXPORT void function @@ -32,6 +115,9 @@ MODULE_ENTRY (fill_vtable) (GdkPixbufModule *module) { glycin_fill_vtable (module); + module->save = gdk_pixbuf__avif_image_save; + module->save_to_callback = gdk_pixbuf__avif_image_save_to_callback; + module->is_save_option_supported = gdk_pixbuf__avif_is_save_option_supported; } MODULE_ENTRY (fill_info) (GdkPixbufFormat *info) @@ -53,6 +139,6 @@ info->description = "AVIF"; info->mime_types = (gchar **) mime_types; info->extensions = (gchar **) extensions; - info->flags = GDK_PIXBUF_FORMAT_THREADSAFE; + info->flags = GDK_PIXBUF_FORMAT_WRITABLE | GDK_PIXBUF_FORMAT_THREADSAFE; info->license = "LGPL"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/gdk-pixbuf/io-glycin-svg.c new/gdk-pixbuf-2.44.4/gdk-pixbuf/io-glycin-svg.c --- old/gdk-pixbuf-2.44.3/gdk-pixbuf/io-glycin-svg.c 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/gdk-pixbuf/io-glycin-svg.c 2025-10-21 16:37:32.000000000 +0200 @@ -52,6 +52,8 @@ }; static const gchar * extensions[] = { "svg", + "svgz", + "svg.gz", NULL }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/gdk-pixbuf/io-glycin-utils.c new/gdk-pixbuf-2.44.4/gdk-pixbuf/io-glycin-utils.c --- old/gdk-pixbuf-2.44.3/gdk-pixbuf/io-glycin-utils.c 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/gdk-pixbuf/io-glycin-utils.c 2025-10-21 16:37:32.000000000 +0200 @@ -527,6 +527,7 @@ GFile *file; GIOStream *iostream; gboolean all_ok; + gboolean is_svg; }; static gpointer @@ -550,6 +551,7 @@ context->updated_func = updated_func; context->user_data = user_data; context->all_ok = TRUE; + context->is_svg = FALSE; file = g_file_new_tmp ("gdk-pixbuf-glycin-tmp.XXXXXX", &iostream, error); if (file == NULL) { @@ -563,6 +565,23 @@ return context; } +static gpointer +gdk_pixbuf__glycin_svg_begin_load (GdkPixbufModuleSizeFunc size_func, + GdkPixbufModulePreparedFunc prepared_func, + GdkPixbufModuleUpdatedFunc updated_func, + gpointer user_data, + GError **error) +{ + GlycinContext *context; + + context = gdk_pixbuf__glycin_image_begin_load (size_func, prepared_func, updated_func, user_data, error); + + if (context) + context->is_svg = TRUE; + + return context; +} + static GdkPixbuf * gdk_pixbuf__glycin_image_load (FILE *f, GError **error) { @@ -596,6 +615,30 @@ GdkPixbuf *pixbuf; GdkPixbufAnimation *animation; + if (context->is_svg) + { + GFileInfo *info; + gboolean is_gzip = FALSE; + + info = g_file_query_info (context->file, "standard::content-type", 0, NULL, NULL); + is_gzip = g_strcmp0 (g_file_info_get_content_type (info), "application/gzip") == 0; + g_object_unref (info); + + if (is_gzip) + { + char *name = g_strconcat (g_file_peek_path (context->file), ".svgz", NULL); + GFile *file = g_file_new_for_path (name); + g_free (name); + if (!g_file_move (context->file, file, 0, NULL, NULL, NULL, error)) + { + g_object_unref (file); + return FALSE; + } + g_set_object (&context->file, file); + g_object_unref (file); + } + } + pixbuf = load_pixbuf_with_glycin (context->file, context->size_func, context->user_data, @@ -810,7 +853,10 @@ glycin_fill_vtable (GdkPixbufModule *module) { module->load = gdk_pixbuf__glycin_image_load; - module->begin_load = gdk_pixbuf__glycin_image_begin_load; + if (strcmp (module->module_name, "svg") == 0) + module->begin_load = gdk_pixbuf__glycin_svg_begin_load; + else + module->begin_load = gdk_pixbuf__glycin_image_begin_load; module->stop_load = gdk_pixbuf__glycin_image_stop_load; module->load_increment = gdk_pixbuf__glycin_image_load_increment; module->load_animation = gdk_pixbuf__glycin_image_load_animation; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gdk-pixbuf-2.44.3/meson.build new/gdk-pixbuf-2.44.4/meson.build --- old/gdk-pixbuf-2.44.3/meson.build 2025-09-30 01:01:28.000000000 +0200 +++ new/gdk-pixbuf-2.44.4/meson.build 2025-10-21 16:37:32.000000000 +0200 @@ -1,5 +1,5 @@ project('gdk-pixbuf', 'c', - version: '2.44.3', + version: '2.44.4', license: 'LGPL-2.1-or-later', default_options: [ 'buildtype=debugoptimized', @@ -160,6 +160,7 @@ '-Werror=int-to-pointer-cast', '-Werror=pointer-to-int-cast', '-Werror=empty-body', + '-Werror=tautological-unsigned-zero-compare', ] # Ensure we have the correct bit packing on Windows ++++++ gdk-pixbuf.obsinfo ++++++ --- /var/tmp/diff_new_pack.RZG24c/_old 2025-10-27 14:38:12.538757348 +0100 +++ /var/tmp/diff_new_pack.RZG24c/_new 2025-10-27 14:38:12.546757686 +0100 @@ -1,5 +1,5 @@ name: gdk-pixbuf -version: 2.44.3 -mtime: 1759186888 -commit: 7b350d38f377c99e3b10775784a7a01ce6cf61bb +version: 2.44.4 +mtime: 1761057452 +commit: c9e6d11cbfa085d7b59dd6ad3b1cbfa26348ce13
