Package: src:libgnomeui
Version: 2.24.5-3
Severity: normal
Tags: patch
Justification: fails to build from source (but built successfully in the past)

Hi!
I'm afraid that libgnomeui has regressed due to use of -Werror.  It fails
to build on any architecture where time_t has a different size than long. 
That's not the case on any of current Debian release arch, but, per Linus'
decree, applies to any new 32-bit arch (because Y2k38).

Sadly, this regression hasn't been noticed for a year, as -ports archs are
allowed to go out of sync from release ones, and any reverse-dependencies
built happily using 2.24.5-2 which used different build flags.

A readable patch attached.  This one will fail in 23 years, but this code
needs to be rewritten for any arch other than x32 anyway.  A proper patch
would use hairy casts as there's no standard printf format string for
time_t.


-- System Information:
Debian Release: 8.0
  APT prefers unstable
  APT policy: (600, 'unstable'), (500, 'unreleased'), (50, 'experimental')
Architecture: x32 (x86_64)

Kernel: Linux 3.18.2-x32 (SMP w/6 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
Description: cast time_t printfs
 Upstream code uses printf("%ld") with a time_t argument.  This causes a
 warning if time_t is a different type than long, which causes a FTBFS
 under -Werror.
Author: Adam Borowski <kilob...@angband.pl>

--- libgnomeui-2.24.5.orig/libgnomeui/gnome-thumbnail.c
+++ libgnomeui-2.24.5/libgnomeui/gnome-thumbnail.c
@@ -863,7 +863,7 @@ gnome_thumbnail_factory_save_thumbnail (
     }
   close (tmp_fd);
   
-  g_snprintf (mtime_str, 21, "%ld",  original_mtime);
+  g_snprintf (mtime_str, 21, "%ld",  (long)original_mtime);
   width = gdk_pixbuf_get_option (thumbnail, "tEXt::Thumb::Image::Width");
   height = gdk_pixbuf_get_option (thumbnail, "tEXt::Thumb::Image::Height");
 
@@ -970,7 +970,7 @@ gnome_thumbnail_factory_create_failed_th
     }
   close (tmp_fd);
   
-  g_snprintf (mtime_str, 21, "%ld",  mtime);
+  g_snprintf (mtime_str, 21, "%ld",  (long)mtime);
   pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 1, 1);
   saved_ok  = gdk_pixbuf_save (pixbuf,
 			       tmp_path,

Reply via email to