On 2024-12-01, at 22:36:07 +0800, Bo YU wrote: > Control: tags -1 patch > > Hi, > > On Fri, Nov 22, 2024 at 02:05:53PM +0100, Santiago Vila wrote: > ... > > x11/propwatch.c: In function ‘RebuildList’: > > x11/propwatch.c:319:43: error: passing argument 2 of ‘XawListChange’ from > > incompatible pointer type [-Wincompatible-pointer-types] > > 319 | XawListChange(bl,str_count ? str_list : &empty, > > | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ > > | | > > | const char ** > > In file included from x11/propwatch.c:28: > > /usr/include/X11/Xaw/List.h:170:26: note: expected ‘char **’ but argument > > is of type ‘const char **’ > > 170 | String *list, > > | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > > x11/propwatch.c: In function ‘ProcessPropertyChange’: > > x11/propwatch.c:498:34: error: passing argument 2 of ‘XawListChange’ from > > incompatible pointer type [-Wincompatible-pointer-types] > > 498 | XawListChange(bl,str_list,str_count,1000,1); > > | ^~~~~~~~ > > | | > > | const char ** > > I have looked at this. The patch for [0] was to fix gcc-14 incompatible > pointer issue and it worked at that time. But recently the libxaw > upstream has some changes[1] about this, so this may lead to ftbfs again. > Under such circumstances we can drop the patch to enable the build is > okay. > > There are still some clean work that need to be done before team upload, > so I just reply to here about the issue.
I was going to update the patch to reflect the new `XawListChange` prototype, but as you have observed with the new prototype the upstream code compiles again. It is, however, still fragile since it mixes `char` pointers and `String` pointers, so I will send a new patch upstream. There's some fuzz in other patches, which I have fixed. Patch attached. J. > [0]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088044 > [1]: > https://salsa.debian.org/xorg-team/lib/libxaw/-/commit/d0fcbd9722ad691ca0b5873c98e8e9c236fa718b > -- > Regards, > -- > Bo YU > > diff -Nru xawtv-3.107/debian/changelog xawtv-3.107/debian/changelog > --- xawtv-3.107/debian/changelog 2024-08-15 20:06:03.000000000 +0800 > +++ xawtv-3.107/debian/changelog 2024-12-01 22:11:00.000000000 +0800 > @@ -1,3 +1,10 @@ > +xawtv (3.107-3) UNRELEASED; urgency=medium > + > + * Team upload. > + * Drop incompatible-pointer-fix.patch to fix ftbfs. (Closes: #1088044) > + > + -- Bo YU <tsu.y...@gmail.com> Sun, 01 Dec 2024 22:11:00 +0800 > + > xawtv (3.107-2.1) unstable; urgency=medium > > * Non-maintainer upload. > diff -Nru xawtv-3.107/debian/patches/incompatible-pointer-fix.patch > xawtv-3.107/debian/patches/incompatible-pointer-fix.patch > --- xawtv-3.107/debian/patches/incompatible-pointer-fix.patch 2024-08-15 > 20:06:03.000000000 +0800 > +++ xawtv-3.107/debian/patches/incompatible-pointer-fix.patch 1970-01-01 > 07:30:00.000000000 +0730 > @@ -1,62 +0,0 @@ > -Author: Jeremy Sowden <aza...@debian.org> > -Last-Update: 2024-08-15 > -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1075650 > -Forwarded: > https://lore.kernel.org/linux-media/20240815115415.3371544-2-jer...@azazel.net/ > -Description: fix gcc-14 FTBFS caused by incompatible pointer types > - `XawListChange` declares the type of its second parameter as `_Xconst > - char **`. However, xawtv passes `str_list`, which is declared as > - `String *`, or `&empty` which is declared as `char *`. With gcc 14, > - these result in incompatible-pointer errors: > - . > - x11/propwatch.c: In function 'RebuildList': > - x11/propwatch.c:319:43: error: passing argument 2 of 'XawListChange' from > incompatible pointer type [-Wincompatible-pointer-types] > - 319 | XawListChange(bl,str_count ? str_list : &empty, > - | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ > - | | > - | char ** > - In file included from x11/propwatch.c:28: > - /usr/include/X11/Xaw/List.h:170:27: note: expected 'const char **' but > argument is of type 'char **' > - 170 | _Xconst char **list, > - | ^ > - x11/propwatch.c: In function 'ProcessPropertyChange': > - x11/propwatch.c:498:34: error: passing argument 2 of 'XawListChange' from > incompatible pointer type [-Wincompatible-pointer-types] > - 498 | XawListChange(bl,str_list,str_count,1000,1); > - | ^~~~~~~~ > - | | > - | char ** > - /usr/include/X11/Xaw/List.h:170:27: note: expected 'const char **' but > argument is of type 'char **' > - 170 | _Xconst char **list, > - | ^ > - . > - Both variables are only used as arguments to `XawListChange`, so change > - their types to match its expectations. > - > ---- a/x11/propwatch.c > -+++ b/x11/propwatch.c > -@@ -58,8 +58,8 @@ > - "WM_COMMAND", > - }; > - > --static String *str_list; > --static int str_count; > -+static const char **str_list; > -+static int str_count; > - > - static void AddWatch(Display *dpy, Window win, int i); > - static void DeleteWatch(Window win); > -@@ -306,13 +306,13 @@ > - static void > - RebuildList(void) > - { > -- static char *empty = "empty"; > -+ static const char *empty = "empty"; > - int i; > - struct WATCHLIST *this; > - > - if (str_list) > - free(str_list); > -- str_list = malloc(str_count*sizeof(String)); > -+ str_list = malloc(str_count*sizeof(*str_list)); > - for (i=0, this=watchlist; this!=NULL; i++, this=this->next) > - str_list[i] = this->text; > - qsort(str_list,str_count,sizeof(char*),cmp); > diff -Nru xawtv-3.107/debian/patches/series xawtv-3.107/debian/patches/series > --- xawtv-3.107/debian/patches/series 2024-08-15 20:06:03.000000000 +0800 > +++ xawtv-3.107/debian/patches/series 2024-12-01 22:11:00.000000000 +0800 > @@ -8,4 +8,3 @@ > 0008-Makefile.in-honour-CPPFLAGS.patch > CVE-2020-13696-error_message_fix.patch > 0001-Replace-sys_siglist-with-strsignal.patch > -incompatible-pointer-fix.patch
From 0580e62325f3ab5c305df3f1916332dcd753c11b Mon Sep 17 00:00:00 2001 From: Jeremy Sowden <aza...@debian.org> Date: Sun, 1 Dec 2024 11:46:50 +0000 Subject: [PATCH] d/patches: fix some fuzz Signed-off-by: Jeremy Sowden <aza...@debian.org> --- .../patches/0001-Replace-sys_siglist-with-strsignal.patch | 2 +- debian/patches/minor_spelling_change.diff | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/debian/patches/0001-Replace-sys_siglist-with-strsignal.patch b/debian/patches/0001-Replace-sys_siglist-with-strsignal.patch index 7c09c80f08d3..62f745aef1f8 100644 --- a/debian/patches/0001-Replace-sys_siglist-with-strsignal.patch +++ b/debian/patches/0001-Replace-sys_siglist-with-strsignal.patch @@ -50,7 +50,7 @@ index 60a840641e33..4bf458b227a0 100644 } static void usage(FILE *fp) -@@ -422,7 +422,7 @@ main(int argc, char *argv[]) +@@ -426,7 +426,7 @@ main(int argc, char *argv[]) } if (verbose && termsig) fprintf(stderr,"exiting on signal %d [%s]\n", diff --git a/debian/patches/minor_spelling_change.diff b/debian/patches/minor_spelling_change.diff index e83ef692a2e7..c536be0cdb90 100644 --- a/debian/patches/minor_spelling_change.diff +++ b/debian/patches/minor_spelling_change.diff @@ -84,7 +84,7 @@ diff --git a/console/scantv.c b/console/scantv.c index 931e707..6c7cce8 100644 --- a/console/scantv.c +++ b/console/scantv.c -@@ -273,7 +273,7 @@ main(int argc, char **argv) +@@ -272,7 +272,7 @@ main(int argc, char **argv) } } else { /* scan freqnencies */ @@ -125,7 +125,7 @@ diff --git a/console/v4l-conf.c b/console/v4l-conf.c index c38bf16..5686f57 100644 --- a/console/v4l-conf.c +++ b/console/v4l-conf.c -@@ -409,7 +409,7 @@ displayinfo_v4l2(int fd, struct DISPLAYINFO *d) +@@ -412,7 +412,7 @@ displayinfo_v4l2(int fd, struct DISPLAYINFO *d) if (EPERM == errno && 0 != geteuid()) fprintf(stderr, "v4l-conf: You should install me suid root, I need\n" @@ -376,7 +376,7 @@ diff --git a/x11/xawtv.c b/x11/xawtv.c index b87f53e..59c53c3 100644 --- a/x11/xawtv.c +++ b/x11/xawtv.c -@@ -1680,18 +1680,18 @@ main(int argc, char *argv[]) +@@ -1678,18 +1678,18 @@ main(int argc, char *argv[]) sizeof(actionTable)/sizeof(XtActionsRec)); x11_misc_init(dpy); if (debug) -- 2.45.2
signature.asc
Description: PGP signature