Hi,

On Mon, Dec 2, 2024 at 4:22 AM Jeremy Sowden <aza...@debian.org> wrote:
>
> On 2024-12-01, at 22:36:07 +0800, Bo YU wrote:
> > Control: tags -1 patch
> >
...
>
> 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.
>

Thanks for your work on this. I have pushed your patch to repo:
https://salsa.debian.org/multimedia-team/xawtv/-/commit/fe0343337aa0309c4b1f432e8395f22eae4a6cd9

BR,
Bo


> 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
>
>
>

Reply via email to