[arch-commits] Commit in claws-mail/trunk (20cope_with_fix_for_1009149.patch PKGBUILD)

Andreas Radke andyrtr at gemini.archlinux.org
Sun May 29 16:23:05 UTC 2022


    Date: Sunday, May 29, 2022 @ 16:23:04
  Author: andyrtr
Revision: 446985

upgpkg: claws-mail 4.1.0-2: perl 5.36.0 rebuild; add fix taken from Debian to fix FTBS

Added:
  claws-mail/trunk/20cope_with_fix_for_1009149.patch
Modified:
  claws-mail/trunk/PKGBUILD

-----------------------------------+
 20cope_with_fix_for_1009149.patch |  454 ++++++++++++++++++++++++++++++++++++
 PKGBUILD                          |   19 -
 2 files changed, 466 insertions(+), 7 deletions(-)

Added: 20cope_with_fix_for_1009149.patch
===================================================================
--- 20cope_with_fix_for_1009149.patch	                        (rev 0)
+++ 20cope_with_fix_for_1009149.patch	2022-05-29 16:23:04 UTC (rev 446985)
@@ -0,0 +1,454 @@
+Description: the perl fix¹ for bug #1009149 disallows the use
+ of XSRETURN_* macros in expressions, hence all of them have to
+ be rewritten. Thanks to Andreas Rönnquist for the heads up!
+ ¹ https://salsa.debian.org/perl-team/interpreter/perl/-/commit/c949a3d4176ec66493af1aa87c1dc64fc6127bb6
+Author: Ricardo Mones <mones at debian.org>
+Last-Updated: 2022-04-12
+
+diff --git a/src/plugins/perl/perl_plugin.c b/src/plugins/perl/perl_plugin.c
+index 1ac005e1..ee9e15f2 100644
+--- a/src/plugins/perl/perl_plugin.c
++++ b/src/plugins/perl/perl_plugin.c
+@@ -577,76 +577,182 @@ 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));
+       g_free(charp);
+       XSRETURN_PV(buf);
+     }
+-    else
++    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:
+-    if(manual_filtering)
++    if(manual_filtering) {
+       XSRETURN_YES;
+-    else
++    }
++    else {
+       XSRETURN_NO;
++    }
+   default:
+     g_warning("Perl plugin: wrong argument to ClawsMail::C::init");
+     XSRETURN_UNDEF;    
+@@ -664,8 +770,9 @@ static XS(XS_ClawsMail_open_mail_file)
+     XSRETURN_UNDEF;
+   }
+   file = procmsg_get_message_file_path(msginfo);
+-  if(!file)
++  if(!file) {
+     XSRETURN_UNDEF;
++  }
+   if((message_file = claws_fopen(file, "rb")) == NULL) {
+     FILE_OP_ERROR(file, "claws_fopen");
+     g_warning("Perl plugin: file open error in ClawsMail::C::open_mail_file");
+@@ -718,8 +825,9 @@ static XS(XS_ClawsMail_get_next_header)
+     g_free(buf);
+     XSRETURN(2);
+   }
+-  else
++  else {
+     XSRETURN_EMPTY;
++  }
+ }
+ 
+ /* ClawsMail::C::get_next_body_line */
+@@ -736,10 +844,12 @@ static XS(XS_ClawsMail_get_next_body_line)
+     g_warning("Perl plugin: message file not open. Use ClawsMail::C::open_message_file first");
+     XSRETURN_UNDEF;
+   }
+-  if(claws_fgets(buf, sizeof(buf), message_file) != NULL)
++  if(claws_fgets(buf, sizeof(buf), message_file) != NULL) {
+     XSRETURN_PV(buf);
+-  else
++  }
++  else {
+     XSRETURN_UNDEF;
++  }
+ }
+ 
+ 
+@@ -772,57 +882,65 @@ static XS(XS_ClawsMail_check_flag)
+       filter_log_write(LOG_MATCH,"marked");
+       XSRETURN_YES;
+     }
+-    else
++    else {
+       XSRETURN_NO;
++    }
+   case 2:
+     if(MSG_IS_UNREAD(msginfo->flags)) {
+       filter_log_write(LOG_MATCH,"unread");
+       XSRETURN_YES;
+     }
+-    else
++    else {
+       XSRETURN_NO;
++    }
+   case 3:
+     if(MSG_IS_DELETED(msginfo->flags)) {
+       filter_log_write(LOG_MATCH,"deleted");
+       XSRETURN_YES;
+     }
+-    else
++    else {
+       XSRETURN_NO;
++    }
+   case 4:
+     if(MSG_IS_NEW(msginfo->flags)) {
+       filter_log_write(LOG_MATCH,"new");
+       XSRETURN_YES;
+     }
+-    else
++    else {
+       XSRETURN_NO;
++    }
+   case 5:
+     if(MSG_IS_REPLIED(msginfo->flags)) {
+       filter_log_write(LOG_MATCH,"replied");
+       XSRETURN_YES;
+     }
+-    else
++    else {
+       XSRETURN_NO;
++    }
+   case 6:
+     if(MSG_IS_FORWARDED(msginfo->flags)) {
+       filter_log_write(LOG_MATCH,"forwarded");
+       XSRETURN_YES;
+     }
+-    else
++    else {
+       XSRETURN_NO;
++    }
+   case 7:
+     if(MSG_IS_LOCKED(msginfo->flags)) {
+       filter_log_write(LOG_MATCH,"locked");
+       XSRETURN_YES;
+     }
+-    else
++    else {
+       XSRETURN_NO;
++    }
+   case 8:
+     if(MSG_IS_IGNORE_THREAD(msginfo->flags)) {
+       filter_log_write(LOG_MATCH,"ignore_thread");
+       XSRETURN_YES;
+     }
+-    else
++    else {
+       XSRETURN_NO;
++    }
+   default:
+     g_warning("Perl plugin: unknown argument to ClawsMail::C::check_flag");
+     XSRETURN_UNDEF;
+@@ -845,8 +963,9 @@ static XS(XS_ClawsMail_colorlabel)
+     filter_log_write(LOG_MATCH,"colorlabel");
+     XSRETURN_YES;
+   }
+-  else
++  else {
+     XSRETURN_NO;
++  }
+ }
+ 
+ /* ClawsMail::C::age_greater(int) */
+@@ -866,8 +985,9 @@ static XS(XS_ClawsMail_age_greater)
+     filter_log_write(LOG_MATCH,"age_greater");
+     XSRETURN_YES;
+   }
+-  else
++  else {
+     XSRETURN_NO;
++  }
+ }
+ 
+ /* ClawsMail::C::age_lower(int) */
+@@ -887,8 +1007,9 @@ static XS(XS_ClawsMail_age_lower)
+     filter_log_write(LOG_MATCH,"age_lower");
+     XSRETURN_YES;
+   }
+-  else
++  else {
+     XSRETURN_NO;
++  }
+ }
+ 
+ /* ClawsMail::C::tagged() */
+@@ -900,7 +1021,12 @@ 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() */
+@@ -1032,10 +1158,12 @@ static XS(XS_ClawsMail_make_sure_folder_exists)
+ 
+   identifier = SvPV_nolen(ST(0));
+   item = folder_get_item_from_identifier(identifier);
+-  if(item)
++  if(item) {
+     XSRETURN_YES;
+-  else
++  }
++  else {
+     XSRETURN_NO;
++  }
+ }
+ 
+ 
+@@ -1066,8 +1194,9 @@ static XS(XS_ClawsMail_addr_in_addressbook)
+     filter_log_write(LOG_MATCH,"addr_in_addressbook");
+     XSRETURN_YES;
+   }
+-  else
++  else {
+     XSRETURN_NO;
++  }
+ }
+ 
+ 
+@@ -1348,8 +1477,9 @@ static XS(XS_ClawsMail_forward)
+ 
+     XSRETURN_YES;
+   }
+-  else
++  else {
+     XSRETURN_UNDEF;
++  }
+ }
+ 
+ /* ClawsMail::C::redirect(int,char*) */
+@@ -1373,8 +1503,9 @@ static XS(XS_ClawsMail_redirect)
+   account = account_find_from_id(account_id);
+   compose = compose_redirect(account, msginfo, TRUE);
+   
+-  if (compose->account->protocol == A_NNTP)
++  if (compose->account->protocol == A_NNTP) {
+     XSRETURN_UNDEF;
++  }
+   else
+     compose_entry_append(compose, dest, COMPOSE_TO, PREF_NONE);
+ 
+@@ -1389,8 +1520,9 @@ static XS(XS_ClawsMail_redirect)
+ 
+     XSRETURN_YES;
+   }
+-  else
++  else {
+     XSRETURN_UNDEF;
++  }
+ }
+ 
+ 
+@@ -1472,8 +1604,9 @@ static XS(XS_ClawsMail_get_attribute_value)
+     attribute_value = get_attribute_value(addr,attr,bookname);
+   }
+ 
+-  if(attribute_value)
++  if(attribute_value) {
+     XSRETURN_PV(attribute_value);
++  }
+   XSRETURN_PV("");
+ }
+ 

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-05-29 16:06:42 UTC (rev 446984)
+++ PKGBUILD	2022-05-29 16:23:04 UTC (rev 446985)
@@ -2,7 +2,7 @@
 
 pkgname=claws-mail
 pkgver=4.1.0
-pkgrel=1
+pkgrel=2
 pkgdesc="A GTK+ based e-mail client"
 arch=('x86_64')
 license=('GPL3')
@@ -36,17 +36,22 @@
 provides=('claws')
 install=$pkgname.install
 source=(https://www.claws-mail.org/download.php?file=releases/claws-mail-$pkgver.tar.xz{,.asc}
-        bash_completion)
+        bash_completion
+        20cope_with_fix_for_1009149.patch)
 sha256sums=('0e1a9ca0db8d2a9e058ae30cdc7fc919779214ec3c56ee0c8a7f88cc23817a8e'
             'SKIP'
-            '3f6c248b8658cd7a62186bff572cce2525712a498f363cbbda1ed459021c28cb')
+            '3f6c248b8658cd7a62186bff572cce2525712a498f363cbbda1ed459021c28cb'
+            'fd606c966a05be36b6bf6184067b71bcdb46d08df1b64514a973b9825e69aaab')
 validpgpkeys=('8B3B297A03468356692F8D592CD716D654D6BBD4') # Paul <paul at claws-mail.org>
+#options=(!makeflags)
 
-
-#prepare() {
-#  cd "${pkgname}"-${pkgver}
+prepare() {
+  cd "${pkgname}"-${pkgver}
+  # Debian patch fixing build errors with recent gcc/perl versions
+  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1009473
+  patch -Np1 -i ../20cope_with_fix_for_1009149.patch
 #  # upstream fixes
-#}
+}
 
 build() {
   cd "${pkgname}"-${pkgver}



More information about the arch-commits mailing list