diff mbox series

[meta-oe] procmail: fix compile failure with gcc-15

Message ID 20250609083102.1925-1-liuyd.fnst@fujitsu.com
State New
Headers show
Series [meta-oe] procmail: fix compile failure with gcc-15 | expand

Commit Message

Liu Yiding June 9, 2025, 8:31 a.m. UTC
These failures doesn't broken compiling, but not generate files under /usr/bin
| userland@pumpkin3:/mnt/test/build_auh/tmp/work/core2-64-poky-linux/procmail/3.22/image/usr/bin$ ls
| formail  lockfile  mailstat  procmail

part of error messages:
| In file included from recommend.c:6:
| includes.h:334:12: error: conflicting types for 'uname'; have 'int(void)'
|   334 | extern int uname();                                      /* so we fix it :-) /
|       |            ^~~~~
| In file included from sublib.c:13:
| includes.h:334:12: error: conflicting types for 'uname'; have 'int(void)'
|   334 | extern int uname();                                      / so we fix it :-) /
|       |            ^~~~~
| In file included from procmail.h:3,
|                  from procmail.c:20:
| includes.h:334:12: error: conflicting types for 'uname'; have 'int(void)'
|   334 | extern int uname();                                      / so we fix it :-) */
|       |            ^~~~~
| In file included from includes.h:67:
| /datadrive/ubinux/workdir/build-dir/202506/build-ubinux-armv8/tmp/work/aarch64-ubinux-linux/procmail/3.22/recipe-sysroot/usr/include/sys/utsname.h:81:12: note: previous declaration of 'uname' with type 'int(struct utsname *)'
|    81 | extern int uname (struct utsname *__name) _THROW;
|       |            ^~~~~
| In file included from includes.h:67:
| /datadrive/ubinux/workdir/build-dir/202506/build-ubinux-armv8/tmp/work/aarch64-ubinux-linux/procmail/3.22/recipe-sysroot/usr/include/sys/utsname.h:81:12: note: previous declaration of 'uname' with type 'int(struct utsname )'
|    81 | extern int uname (struct utsname _name) THROW;
|       |            ^~~~~
| In file included from includes.h:67:
| /datadrive/ubinux/workdir/build-dir/202506/build-ubinux-armv8/tmp/work/aarch64-ubinux-linux/procmail/3.22/recipe-sysroot/usr/include/sys/utsname.h:81:12: note: previous declaration of 'uname' with type 'int(struct utsname )'
|    81 | extern int uname (struct utsname __name) __THROW;
|       |            ^~~~~
| In file included from includes.h:67:
| /datadrive/ubinux/workdir/build-dir/202506/build-ubinux-armv8/tmp/work/aarch64-ubinux-linux/procmail/3.22/recipe-sysroot/usr/include/sys/utsname.h:81:12: note: previous declaration of 'uname' with type 'int(struct utsname )'
|    81 | extern int uname (struct utsname __name) __THROW;
|       |            ^~~~~
| recommend.c: In function 'main':
| recommend.c:15:5: warning: old-style function definition [-Wold-style-definition]
|    15 | int main(argc,argv)const int argc;const charconst argv[];
|       |     ^~~~
| procmail.c: In function 'savepass':
| procmail.c:71:22: warning: old-style function definition [-Wold-style-definition]
|    71 | static auth_identitysavepass(spass,uid)auth_identityconst spass;
|       |                      ^~~~~~~~
| procmail.c:76:12: error: too many arguments to function 'auth_finduid'; expected 0, have 2
|    76 |   if(tpass=auth_finduid(uid,0))                           / save by copying */
|       |            ^~~~~~~~~~~~ ~~~
| In file included from procmail.c:36:
| authenticate.h:15:3: note: declared here
|    15 |  auth_finduid Q((const uid_t uid,const int sock));
|       |   ^~~~~~~~~~~~
| procmail.c: In function 'main':
| procmail.c:97:5: warning: old-style function definition [-Wold-style-definition]
|    97 | int main(argc,argv)int argc;const charconst argv[];
|       |     ^~~~
| procmail.c:212:9: error: too many arguments to function 'checkprivFrom'; expected 0, have 3
|   212 |         checkprivFrom(euid,passinvk?auth_username(passinvk):0,override);
|       |         ^~~~~~~~~~~~~~ ~~~~
| In file included from procmail.c:41:
| from.h:9:2: note: declared here
|     9 |  checkprivFrom Q((uid_t euid,const charlogname,int override));
|       |  ^~~~~~~~~~~~~~
| procmail.c:213:9: error: too many arguments to function 'doumask'; expected 0, have 1
|   213 |         doumask(INIT_UMASK);               / allowed to set the From line? */
|       |         ^~~~~~~

Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
---
 .../0001-fix-too-many-arguments-issue.patch   | 88 +++++++++++++++++++
 .../procmail/0001-fix-uname-declaration.patch | 27 ++++++
 .../recipes-support/procmail/procmail_3.22.bb |  4 +-
 3 files changed, 118 insertions(+), 1 deletion(-)
 create mode 100644 meta-oe/recipes-support/procmail/procmail/0001-fix-too-many-arguments-issue.patch
 create mode 100644 meta-oe/recipes-support/procmail/procmail/0001-fix-uname-declaration.patch

Comments

Gyorgy Sarvari June 9, 2025, 9:43 a.m. UTC | #1
On 6/9/25 10:31, Yiding Liu (Fujitsu) via lists.openembedded.org wrote:
> +Upstream-Status: Pending
> +Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
While musing about this quarter-century old release, I have found an
Debian bugreport[1] where someone else was doing the same - when
suddenly the original developer showed up, announcing that procmail
isn't quite as dead as it looks. Procmail now lives officially on
github[2] and to my surprise there has been even a new release.

Though it has been silent again for the past 3 years unfortunately,
maybe it would worth it still opening a PR with these new patches (and
to remove the Pending state).

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006633
[2]: https://github.com/BuGlessRB/procmail
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/procmail/procmail/0001-fix-too-many-arguments-issue.patch b/meta-oe/recipes-support/procmail/procmail/0001-fix-too-many-arguments-issue.patch
new file mode 100644
index 0000000000..e7eafecbfe
--- /dev/null
+++ b/meta-oe/recipes-support/procmail/procmail/0001-fix-too-many-arguments-issue.patch
@@ -0,0 +1,88 @@ 
+From 6f00795de8623347580c4366cb517a6653f73ca4 Mon Sep 17 00:00:00 2001
+From: Liu Yiding <liuyd.fnst@fujitsu.com>
+Date: Mon, 9 Jun 2025 08:01:39 +0000
+Subject: [PATCH] fix too many arguments issue
+
+fix issue like:
+| procmail.c:76:12: error: too many arguments to function 'auth_finduid'; expected 0, have 2
+|    76 |   if(tpass=auth_finduid(uid,0))                           /* save by copying */
+|       |            ^~~~~~~~~~~~ ~~~
+| In file included from procmail.c:36:
+| authenticate.h:15:3: note: declared here
+|    15 |  *auth_finduid Q((const uid_t uid,const int sock));
+| --
+| procmail.c:212:9: error: too many arguments to function 'checkprivFrom_'; expected 0, have 3
+|   212 |         checkprivFrom_(euid,passinvk?auth_username(passinvk):0,override);
+|       |         ^~~~~~~~~~~~~~ ~~~~
+| In file included from procmail.c:41:
+| from.h:9:2: note: declared here
+|     9 |  checkprivFrom_ Q((uid_t euid,const char*logname,int override));
+| --
+| procmail.c:213:9: error: too many arguments to function 'doumask'; expected 0, have 1
+|   213 |         doumask(INIT_UMASK);               /* allowed to set the From_ line? */
+|       |         ^~~~~~~
+| In file included from procmail.c:23:
+| robust.h:12:2: note: declared here
+|    12 |  doumask Q((const mode_t mask));
+
+Upstream-Status: Pending
+Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
+---
+ src/authenticate.h | 2 +-
+ src/exopen.c       | 2 +-
+ src/includes.h     | 2 +-
+ src/misc.h         | 1 +
+ 4 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/authenticate.h b/src/authenticate.h
+index be9d88d..31e665a 100644
+--- a/src/authenticate.h
++++ b/src/authenticate.h
+@@ -7,7 +7,7 @@ typedef struct auth_identity auth_identity;
+ 
+ #ifndef P
+ #define P(x)	x
+-#define Q(x)	()
++#define Q(x)	x
+ #endif
+ 
+ /*const*/auth_identity
+diff --git a/src/exopen.c b/src/exopen.c
+index c7647e5..46e3467 100644
+--- a/src/exopen.c
++++ b/src/exopen.c
+@@ -51,7 +51,7 @@ static const char*safehost P((void)) /* return a hostname safe for filenames */
+   return sname;
+ }
+ 
+-int unique(full,p,len,mode,verbos,flags)char*const full;char*p;
++int unique(full,p,len,mode,verbos,flags)const char*const full;char*p;
+  const size_t len;const mode_t mode;const int verbos,flags;
+ { static const char s2c[]=".,+%";static int serial=STRLEN(s2c);
+   static time_t t;char*dot,*end,*host;struct stat filebuf;
+diff --git a/src/includes.h b/src/includes.h
+index 7d6b41f..134805b 100644
+--- a/src/includes.h
++++ b/src/includes.h
+@@ -530,7 +530,7 @@ extern void*memmove();
+  * problems caused by one of those types being shorter than int and thereby
+  * being passed differently under ANSI rules.
+  */
+-#define Q(args)		()
++#define Q(args)		args
+ 
+ #ifdef oBRAIN_DAMAGE
+ #undef oBRAIN_DAMAGE
+diff --git a/src/misc.h b/src/misc.h
+index 4f62ebc..659dfcb 100644
+--- a/src/misc.h
++++ b/src/misc.h
+@@ -1,4 +1,5 @@
+ /*$Id: misc.h,v 1.56 2001/06/30 01:14:19 guenther Exp $*/
++#include "authenticate.h"
+ 
+ struct dyna_array{int filled,tspace;char*vals;};
+ union offori{off_t o;int i;};
+-- 
+2.43.0
+
diff --git a/meta-oe/recipes-support/procmail/procmail/0001-fix-uname-declaration.patch b/meta-oe/recipes-support/procmail/procmail/0001-fix-uname-declaration.patch
new file mode 100644
index 0000000000..cb517fb93c
--- /dev/null
+++ b/meta-oe/recipes-support/procmail/procmail/0001-fix-uname-declaration.patch
@@ -0,0 +1,27 @@ 
+From a9e57d4048c94f6bc2533ccc41e6c35d4416571a Mon Sep 17 00:00:00 2001
+From: Liu Yiding <liuyd.fnst@fujitsu.com>
+Date: Mon, 9 Jun 2025 06:44:06 +0000
+Subject: [PATCH] fix uname declaration
+
+Upstream-Status: Pending
+Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
+---
+ src/includes.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/includes.h b/src/includes.h
+index 4466907..7d6b41f 100644
+--- a/src/includes.h
++++ b/src/includes.h
+@@ -331,7 +331,7 @@ extern int errno;
+ 
+ #ifndef NOuname
+ #ifndef P		  /* SINIX V5.23 has the wrong prototype for uname() */
+-extern int uname();					 /* so we fix it :-) */
++extern int uname(struct utsname *);
+ #define Uname(name)		((int(*)(struct utsname*))uname)(name)
+ #else
+ #define Uname(name)		uname(name)		    /* no fix needed */
+-- 
+2.43.0
+
diff --git a/meta-oe/recipes-support/procmail/procmail_3.22.bb b/meta-oe/recipes-support/procmail/procmail_3.22.bb
index 86d75e8c7c..47c8310eaf 100644
--- a/meta-oe/recipes-support/procmail/procmail_3.22.bb
+++ b/meta-oe/recipes-support/procmail/procmail_3.22.bb
@@ -16,6 +16,8 @@  SRC_URI = "http://www.ring.gr.jp/archives/net/mail/${BPN}/${BP}.tar.gz \
     file://CVE-2014-3618.patch \
     file://CVE-2017-16844.patch \
     file://gcc14.patch \
+    file://0001-fix-uname-declaration.patch \
+    file://0001-fix-too-many-arguments-issue.patch \
 "
 SRC_URI[sha256sum] = "087c75b34dd33d8b9df5afe9e42801c9395f4bf373a784d9bc97153b0062e117"
 
@@ -37,7 +39,7 @@  do_configure() {
 }
 
 do_compile() {
-    oe_runmake -i CFLAGS="$TARGET_CFLAGS -Wno-comments -Wno-implicit-int -Wno-implicit-function-declaration -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}"
+    oe_runmake -i CFLAGS="$TARGET_CFLAGS -Wno-comments -Wno-implicit-int -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" LDFLAGS0="${LDFLAGS}"
 }
 
 do_install() {