On Sat, Oct 30, 2021 at 10:48:06AM +0200, Theo Buehler wrote:
> On Tue, Oct 26, 2021 at 08:27:34PM -0600, Jonathan Gray wrote:
> > CVSROOT: /cvs
> > Module name: src
> > Changes by: [email protected] 2021/10/26 20:27:34
> >
> > Modified files:
> > gnu/usr.bin/perl: perl.h
> > gnu/usr.bin/perl/dist/Devel-PPPort/parts/inc: misc
> >
> > Log message:
> > backport a perl patch to avoid excessive warnings with llvm 13 clang
> >
> > originally from Tony Cook in
> > skip using gcc brace groups for STMT_START/END
> > 7169efc77525df70484a824bff4ceebd1fafc760
> >
> > looks fine millert@ ok afresh1@
> >
>
> Looks like this broke the build of mail/claws-mail. Upstream git does
> not appear to have a fix for this.
>
> perl_plugin.c:576:27: error: expected expression
> msginfo->size ? XSRETURN_UV(msginfo->size) : XSRETURN_UNDEF;
> ^
> /usr/libdata/perl5/amd64-openbsd/CORE/XSUB.h:323:24: note: expanded from
> macro 'XSRETURN_UV'
> #define XSRETURN_UV(v) STMT_START { XST_mUV(0,v); XSRETURN(1); } STMT_END
> ^
> /usr/libdata/perl5/amd64-openbsd/CORE/perl.h:665:23: note: expanded from
> macro 'STMT_START'
> # define STMT_START do
> ^
> perl_plugin.c:576:27: error: expected ':'
>
>
> the full log is in ~tb/claws-mail,ldap.log.xz
could do something like this
--- /dev/null Sat Oct 30 21:21:11 2021
+++ patches/patch-src_plugins_perl_perl_plugin_c Sat Oct 30 21:20:19 2021
@@ -0,0 +1,130 @@
+$OpenBSD$
+
+stop trying to use XSRETURN as an expression
+
+Index: src/plugins/perl/perl_plugin.c
+--- src/plugins/perl/perl_plugin.c.orig
++++ src/plugins/perl/perl_plugin.c
+@@ -573,47 +573,50 @@ static XS(XS_ClawsMail_filter_init)
+
+ /* msginfo */
+ case 1:
+- msginfo->size ? XSRETURN_UV(msginfo->size) : XSRETURN_UNDEF;
++ if (msginfo->size) XSRETURN_UV(msginfo->size); else XSRETURN_UNDEF;
+ case 2:
+- msginfo->date ? XSRETURN_PV(msginfo->date) : XSRETURN_UNDEF;
++ if (msginfo->date) XSRETURN_PV(msginfo->date); else XSRETURN_UNDEF;
+ case 3:
+- msginfo->from ? XSRETURN_PV(msginfo->from) : XSRETURN_UNDEF;
++ if (msginfo->from) XSRETURN_PV(msginfo->from); else XSRETURN_UNDEF;
+ case 4:
+- msginfo->to ? XSRETURN_PV(msginfo->to) : XSRETURN_UNDEF;
++ if (msginfo->to) XSRETURN_PV(msginfo->to); else XSRETURN_UNDEF;
+ case 5:
+- msginfo->cc ? XSRETURN_PV(msginfo->cc) : XSRETURN_UNDEF;
++ if (msginfo->cc) XSRETURN_PV(msginfo->cc); else XSRETURN_UNDEF;
+ case 6:
+- msginfo->newsgroups ? XSRETURN_PV(msginfo->newsgroups) : XSRETURN_UNDEF;
++ if (msginfo->newsgroups) XSRETURN_PV(msginfo->newsgroups); else
XSRETURN_UNDEF;
+ case 7:
+- msginfo->subject ? XSRETURN_PV(msginfo->subject) : XSRETURN_UNDEF;
++ if (msginfo->subject) XSRETURN_PV(msginfo->subject); else XSRETURN_UNDEF;
+ case 8:
+- msginfo->msgid ? XSRETURN_PV(msginfo->msgid) : XSRETURN_UNDEF;
++ if (msginfo->msgid) XSRETURN_PV(msginfo->msgid); else XSRETURN_UNDEF;
+ case 9:
+- msginfo->inreplyto ? XSRETURN_PV(msginfo->inreplyto) : XSRETURN_UNDEF;
++ if (msginfo->inreplyto) XSRETURN_PV(msginfo->inreplyto); else
XSRETURN_UNDEF;
+ case 10:
+- msginfo->xref ? XSRETURN_PV(msginfo->xref) : XSRETURN_UNDEF;
++ if (msginfo->xref) XSRETURN_PV(msginfo->xref); else XSRETURN_UNDEF;
+ case 11:
+ xface = procmsg_msginfo_get_avatar(msginfo, AVATAR_XFACE);
+- xface ? XSRETURN_PV(xface) : XSRETURN_UNDEF;
++ if (xface) XSRETURN_PV(xface); else XSRETURN_UNDEF;
+ case 12:
+- (msginfo->extradata && msginfo->extradata->dispositionnotificationto) ?
+- XSRETURN_PV(msginfo->extradata->dispositionnotificationto) :
XSRETURN_UNDEF;
++ if (msginfo->extradata && msginfo->extradata->dispositionnotificationto)
++ XSRETURN_PV(msginfo->extradata->dispositionnotificationto);
++ else
++ XSRETURN_UNDEF;
+ case 13:
+- (msginfo->extradata && msginfo->extradata->returnreceiptto) ?
+- XSRETURN_PV(msginfo->extradata->returnreceiptto) : XSRETURN_UNDEF;
++ if (msginfo->extradata && msginfo->extradata->returnreceiptto)
++ XSRETURN_PV(msginfo->extradata->returnreceiptto);
++ else
++ XSRETURN_UNDEF;
+ case 14:
+ EXTEND(SP, g_slist_length(msginfo->references));
+ ii = 0;
+ for(walk = msginfo->references; walk != NULL; walk = g_slist_next(walk))
+ XST_mPV(ii++,walk->data ? (gchar*) walk->data: "");
+- ii ? XSRETURN(ii) : XSRETURN_UNDEF;
++ if (ii) XSRETURN(ii); else XSRETURN_UNDEF;
+ case 15:
+- msginfo->score ? XSRETURN_IV(msginfo->score) : XSRETURN_UNDEF;
++ if (msginfo->score) XSRETURN_IV(msginfo->score); else XSRETURN_UNDEF;
+ case 17:
+- msginfo->plaintext_file ?
+- XSRETURN_PV(msginfo->plaintext_file) : XSRETURN_UNDEF;
++ if (msginfo->plaintext_file) XSRETURN_PV(msginfo->plaintext_file); else
XSRETURN_UNDEF;
+ case 19:
+- msginfo->hidden ? XSRETURN_IV(msginfo->hidden) : XSRETURN_UNDEF;
++ if (msginfo->hidden) XSRETURN_IV(msginfo->hidden); else XSRETURN_UNDEF;
+ case 20:
+ if((charp = procmsg_get_message_file_path(msginfo)) != NULL) {
+ strncpy2(buf,charp,sizeof(buf));
+@@ -623,19 +626,30 @@ static XS(XS_ClawsMail_filter_init)
+ else
+ XSRETURN_UNDEF;
+ case 21:
+- (msginfo->extradata && msginfo->extradata->partial_recv) ?
+- XSRETURN_PV(msginfo->extradata->partial_recv) : XSRETURN_UNDEF;
++ if (msginfo->extradata && msginfo->extradata->partial_recv)
++ XSRETURN_PV(msginfo->extradata->partial_recv);
++ else
++ XSRETURN_UNDEF;
+ case 22:
+- msginfo->total_size ? XSRETURN_IV(msginfo->total_size) : XSRETURN_UNDEF;
++ if (msginfo->total_size)
++ XSRETURN_IV(msginfo->total_size);
++ else
++ XSRETURN_UNDEF;
+ case 23:
+- (msginfo->extradata && msginfo->extradata->account_server) ?
+- XSRETURN_PV(msginfo->extradata->account_server) : XSRETURN_UNDEF;
++ if (msginfo->extradata && msginfo->extradata->account_server)
++ XSRETURN_PV(msginfo->extradata->account_server);
++ else
++ XSRETURN_UNDEF;
+ case 24:
+- (msginfo->extradata && msginfo->extradata->account_login) ?
+- XSRETURN_PV(msginfo->extradata->account_login) : XSRETURN_UNDEF;
++ if (msginfo->extradata && msginfo->extradata->account_login)
++ XSRETURN_PV(msginfo->extradata->account_login);
++ else
++ XSRETURN_UNDEF;
+ case 25:
+- msginfo->planned_download ?
+- XSRETURN_IV(msginfo->planned_download) : XSRETURN_UNDEF;
++ if (msginfo->planned_download)
++ XSRETURN_IV(msginfo->planned_download);
++ else
++ XSRETURN_UNDEF;
+
+ /* general */
+ case 100:
+@@ -896,7 +910,10 @@ static XS(XS_ClawsMail_tagged)
+ XSRETURN_UNDEF;
+ }
+
+- return msginfo->tags ? XSRETURN_YES : XSRETURN_NO;
++ if (msginfo->tags)
++ XSRETURN_YES;
++ else
++ XSRETURN_NO;
+ }
+
+ /* ClawsMail::C::get_tags() */