Hi,
I've accepted a patch into upstream that fixes the format errors.
Roger.
On Mon, Nov 15, 2021 at 05:21:45PM +0100, Lukas Märdian wrote:
> Package: mtr
> Version: 0.94-2
> Severity: serious
> Tags: patch ftbfs
> Justification: fails to build from source (but built successfully in the past)
> User: [email protected]
> Usertags: origin-ubuntu jammy ubuntu-patch
> X-Debbugs-Cc: [email protected]
>
> Hi Robert,
>
> mtr fails to build from source, if compiled against glib2.0 >= v2.70, due to
> usage of deprecated GTimeVal in gtk+2.0 headers (that's a dependency of mtr).
>
> In Ubuntu, the attached patch was applied to achieve the following:
>
> * Fix FTBFS with glib >= 2.70 & deprecated definitions of GTimeVal in
> gtk+2.0
>
>
> Thanks for considering the patch.
>
> Cheers,
> Lukas
>
> Build log:
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -pthread
> -I/usr/include/gtk-2.0 -I/usr/lib/s390x-linux-gnu/gtk-2.0/include
> -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0
> -I/usr/include/libpng16 -I/usr/include/s390x-linux-gnu
> -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0
> -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi
> -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/harfbuzz
> -I/usr/include/glib-2.0 -I/usr/lib/s390x-linux-gnu/glib-2.0/include
> -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -g
> -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o ui/mtr-gtk.o `test -f 'ui/gtk.c' || echo
> '../'`ui/gtk.c
> ../ui/curses.c: In function ‘mtr_curses_hosts’:
> ../ui/curses.c:435:17: error: format not a string literal and no format
> arguments [-Werror=format-security]
> 435 | printw(fmt_ipinfo(ctl, addr));
> | ^~~~~~
> ../ui/curses.c:488:21: error: format not a string literal and no format
> arguments [-Werror=format-security]
> 488 | printw(fmt_ipinfo(ctl, addrs));
> | ^~~~~~
> ../ui/curses.c: In function ‘mtr_curses_graph’:
> ../ui/curses.c:653:17: error: format not a string literal and no format
> arguments [-Werror=format-security]
> 653 | printw(fmt_ipinfo(ctl, addr));
> | ^~~~~~
> ../ui/curses.c: In function ‘mtr_curses_redraw’:
> ../ui/curses.c:703:5: error: format not a string literal and no format
> arguments [-Werror=format-security]
> 703 | mvprintw(1, maxx - 25, iso_time(&t));
> | ^~~~~~~~
> ../ui/curses.c:763:42: error: format not a string literal and no format
> arguments [-Werror=format-security]
> 763 | mvprintw(rowstat - 1, startstat, msg);
> | ^~~
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o packet/packet.o ../packet/packet.c
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o packet/cmdparse.o ../packet/cmdparse.c
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o packet/command.o ../packet/command.c
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o packet/probe.o ../packet/probe.c
> In file included from /usr/include/gtk-2.0/gtk/gtkobject.h:37,
> from /usr/include/gtk-2.0/gtk/gtkwidget.h:36,
> from /usr/include/gtk-2.0/gtk/gtkcontainer.h:35,
> from /usr/include/gtk-2.0/gtk/gtkbin.h:35,
> from /usr/include/gtk-2.0/gtk/gtkwindow.h:36,
> from /usr/include/gtk-2.0/gtk/gtkdialog.h:35,
> from /usr/include/gtk-2.0/gtk/gtkaboutdialog.h:32,
> from /usr/include/gtk-2.0/gtk/gtk.h:33,
> from ../ui/gtk.c:31:
> /usr/include/gtk-2.0/gtk/gtktypeutils.h:236:1: warning: ‘GTypeDebugFlags’ is
> deprecated [-Wdeprecated-declarations]
> 236 | void gtk_type_init (GTypeDebugFlags debug_flags);
> | ^~~~
> In file included from /usr/include/glib-2.0/gobject/gobject.h:24,
> from /usr/include/glib-2.0/gobject/gbinding.h:29,
> from /usr/include/glib-2.0/glib-object.h:22,
> from /usr/include/glib-2.0/gio/gioenums.h:28,
> from /usr/include/glib-2.0/gio/giotypes.h:28,
> from /usr/include/glib-2.0/gio/gio.h:26,
> from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
> from /usr/include/gtk-2.0/gdk/gdk.h:32,
> from /usr/include/gtk-2.0/gtk/gtk.h:32,
> from ../ui/gtk.c:31:
> /usr/include/glib-2.0/gobject/gtype.h:698:1: note: declared here
> 698 | {
> | ^
> In file included from /usr/include/string.h:519,
> from ../packet/probe.c:31:
> In function ‘strncat’,
> inlined from ‘respond_to_probe’ at ../packet/probe.c:296:9:
> /usr/include/s390x-linux-gnu/bits/string_fortified.h:135:10: warning:
> ‘__strncat_chk’ output may be truncated copying between 0 and 4095 bytes from
> a string of length 4095 [-Wstringop-truncation]
> 135 | return __builtin___strncat_chk (__dest, __src, __len,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 136 | __glibc_objsize (__dest));
> | ~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from /usr/include/gtk-2.0/gtk/gtktoolitem.h:31,
> from /usr/include/gtk-2.0/gtk/gtktoolbutton.h:30,
> from /usr/include/gtk-2.0/gtk/gtkmenutoolbutton.h:30,
> from /usr/include/gtk-2.0/gtk/gtk.h:126,
> from ../ui/gtk.c:31:
> /usr/include/gtk-2.0/gtk/gtktooltips.h:73:3: warning: ‘GTimeVal’ is
> deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
> 73 | GTimeVal last_popdown;
> | ^~~~~~~~
> In file included from /usr/include/glib-2.0/glib/galloca.h:32,
> from /usr/include/glib-2.0/glib.h:30,
> from /usr/include/glib-2.0/gobject/gbinding.h:28,
> from /usr/include/glib-2.0/glib-object.h:22,
> from /usr/include/glib-2.0/gio/gioenums.h:28,
> from /usr/include/glib-2.0/gio/giotypes.h:28,
> from /usr/include/glib-2.0/gio/gio.h:26,
> from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
> from /usr/include/gtk-2.0/gdk/gdk.h:32,
> from /usr/include/gtk-2.0/gtk/gtk.h:32,
> from ../ui/gtk.c:31:
> /usr/include/glib-2.0/glib/gtypes.h:547:8: note: declared here
> 547 | struct _GTimeVal
> | ^~~~~~~~~
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o packet/timeval.o ../packet/timeval.c
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o packet/sockaddr.o ../packet/sockaddr.c
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o packet/construct_unix.o ../packet/construct_unix.c
> gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects
> -fstack-protector-strong -Wformat -Werror=format-security -Wall
> -Wno-pointer-sign -c -o packet/deconstruct_unix.o ../packet/deconstruct_unix.c
> cc1: some warnings being treated as errors
> make[2]: *** [Makefile:1159: ui/mtr-curses.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[2]: Leaving directory '/<<PKGBUILDDIR>>/mtr'
> dh_auto_install: error: cd mtr && make -j4 install
> DESTDIR=/<<PKGBUILDDIR>>/debian/mtr AM_UPDATE_INFO_DIR=no returned exit code 2
> make[1]: *** [debian/rules:39: override_dh_installdirs-arch] Error 25
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> make: *** [debian/rules:7: binary-arch] Error 2
> dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit
> status 2
>
>
> -- System Information:
> Debian Release: 11.0
> APT prefers impish-updates
> APT policy: (500, 'impish-updates'), (500, 'impish-security'), (500,
> 'impish'), (100, 'impish-backports')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386
>
> Kernel: Linux 5.13.0-20-generic (SMP w/4 CPU threads)
> Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE
> Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8),
> LANGUAGE=de_DE:en_GB:en
> Shell: /bin/sh linked to /usr/bin/dash
> Init: systemd (via /run/systemd/system)
> LSM: AppArmor: enabled
> diff -Nru mtr-0.94/debian/rules mtr-0.94/debian/rules
> --- mtr-0.94/debian/rules 2021-08-23 20:17:06.000000000 +0200
> +++ mtr-0.94/debian/rules 2021-11-15 16:58:04.000000000 +0100
> @@ -2,6 +2,7 @@
>
> export DEB_BUILD_MAINT_OPTIONS = hardening=+all
> export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
> +export DEB_CFLAGS_MAINT_APPEND = -Wno-error=deprecated-declarations
> -Wno-error=format-security
>
> %:
> dh $@
--
** [email protected] ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Delftechpark 11 2628 XJ Delft, The Netherlands. KVK: 27239233 **
f equals m times a. When your f is steady, and your m is going down
your a is going up. -- Chris Hadfield about flying up the space shuttle.