Source: libvformat
Followup-For: Bug #1075216
Control: tags -1 ftbfs
Dear Maintainer,
I've investigated the FTBFS.
This library uses time_t in most places, but the public function
vf_date_string_to_time instead uses uint32_t. GCC14 catches the
mismatch and stops the build (Werror=security-format).
The proper fix here would be to change the function definition
and bump the library SONAME, however I am new to debian and I
don't think I'd be able to coordinate such a change.
Would you instead be willing to take a quick patch that disables
the build error and allows the build to continue, at least temporarily?
Otherwise please try to coordinate a SONAME bump and rebuild of
the reverse dependencies of this library. It would also need a rebuild
of the generated manpage.
Attaching a debdiff for the quick-fix, and a patch to show what would
be the proper fix instead.
PS: I don't know why the package versioning went from 1.13-12 to
1.13-12.1, so in the debdiff I'm proposing to go back to 1.13-13
PPS: I see you use gbp in salsa for hosting but I couldn't get the package
to build from those sources, so I'm sending a debdiff here instead of a
gitlab merge-request.
-- System Information:
Debian Release: trixie/sid
APT prefers noble-updates
APT policy: (500, 'noble-updates'), (500, 'noble-security'), (500,
'noble'), (100, 'noble-proposed'), (100, 'noble-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 6.8.0-40-generic (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru libvformat-1.13/debian/changelog libvformat-1.13/debian/changelog
--- libvformat-1.13/debian/changelog 2024-04-07 10:03:44.000000000 +0200
+++ libvformat-1.13/debian/changelog 2024-08-19 11:05:53.000000000 +0200
@@ -1,3 +1,15 @@
+libvformat (1.13-13) UNRELEASED; urgency=medium
+
+ * Disable -Wincompatible-pointer-types error.
+ This library uses time_t in most places, but the public function
+ vf_date_string_to_time instead uses uint32_t. GCC14 catches the
+ mismatch and stops the build (Werror=security-format).
+ The proper fix here would be to change the function definition
+ and bump the library SONAME; but for now let's just allow the
+ package to build again.
+
+ -- Alessandro Astone <alessandro.ast...@canonical.com> Mon, 19 Aug 2024
11:05:53 +0200
+
libvformat (1.13-12.2) unstable; urgency=medium
* Non-maintainer upload.
diff -Nru libvformat-1.13/debian/rules libvformat-1.13/debian/rules
--- libvformat-1.13/debian/rules 2020-08-10 23:55:14.000000000 +0200
+++ libvformat-1.13/debian/rules 2024-08-19 11:01:48.000000000 +0200
@@ -3,6 +3,7 @@
# GNU copyright 1997 to 1999 by Joey Hess.
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+export DEB_CFLAGS_MAINT_APPEND=-Wno-error=incompatible-pointer-types
%:
dh $@
--- libvformat-1.13.orig/src/vf_access_calendar.c
+++ libvformat-1.13/src/vf_access_calendar.c
@@ -226,7 +226,7 @@ bool_t vf_get_prop_value_time(
*---------------------------------------------------------------------------*/
bool_t vf_date_string_to_time(
- uint32_t *p_time, /* Output time value */
+ time_t *p_time, /* Output time value */
const char *p_string /* Input string */
)
{
@@ -296,7 +296,7 @@ bool_t vf_date_string_to_time(
}
else
{
- *p_time = (uint32_t)t;
+ *p_time = t;
}
}
}
--- libvformat-1.13.orig/vformat/vf_iface.h
+++ libvformat-1.13/vformat/vf_iface.h
@@ -1203,7 +1203,7 @@ extern VFORMATDECLSPEC const char *vf_fi
*---------------------------------------------------------------------------*/
extern VFORMATDECLSPEC bool_t vf_date_string_to_time(
- uint32_t *p_time, /* Output time value */
+ time_t *p_time, /* Output time value */
const char *p_string /* Input string */
);