[packages/sendmail] - GCC 15 fix
hawk
hawk at pld-linux.org
Wed Sep 10 14:56:09 CEST 2025
commit 84ae827c7efee02f020bc7e5b2b85872b879138c
Author: Marcin Krol <hawk at tld-linux.org>
Date: Tue Sep 9 23:39:25 2025 +0200
- GCC 15 fix
gcc-15-fix.patch | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
sendmail.spec | 2 +
2 files changed, 117 insertions(+)
---
diff --git a/sendmail.spec b/sendmail.spec
index 473d02b..65df1c6 100644
--- a/sendmail.spec
+++ b/sendmail.spec
@@ -53,6 +53,7 @@ Patch7: %{name}-cyrus.patch
# https://blue-labs.org/software/sm-pgsql/sendmail.php
# https://blue-labs.org/software/sm-pgsql/bluelabs-smpgsql-8.14.3.patch.bz2
Patch8: bluelabs-smpgsql-8.14.3.patch
+Patch9: gcc-15-fix.patch
URL: https://www.sendmail.org/
BuildRequires: cyrus-sasl-devel >= 2.1.21
BuildRequires: db-devel >= 5.0
@@ -185,6 +186,7 @@ Pliki nagłówkowe i statyczna biblioteka libmilter.
%patch -P6 -p1
%patch -P7 -p1
%{?with_pgsql:%patch8 -p1}
+%patch -P9 -p1
sed -e 's|@@PATH@@|\.\.|' < %{SOURCE6} > cf/cf/pld.mc
diff --git a/gcc-15-fix.patch b/gcc-15-fix.patch
new file mode 100644
index 0000000..1b38cea
--- /dev/null
+++ b/gcc-15-fix.patch
@@ -0,0 +1,115 @@
+diff --git a/libsm/vfscanf.c b/libsm/vfscanf.c
+index e1b7830..b0aa923 100644
+--- a/libsm/vfscanf.c
++++ b/libsm/vfscanf.c
+@@ -37,6 +37,7 @@ SM_IDSTR(id, "@(#)$Id: vfscanf.c,v 1.55 2013-11-22 20:51:44 ca Exp $")
+ #define SUPPRESS 0x10 /* suppress assignment */
+ #define POINTER 0x20 /* weird %p pointer (`fake hex') */
+ #define NOSKIP 0x40 /* do not skip blanks */
++#define UNSIGNED 0x80 /* unsigned conversions */
+
+ /*
+ ** The following are used in numeric conversions only:
+@@ -122,9 +123,6 @@ sm_vfscanf(fp, timeout, fmt0, ap)
+ int nassigned; /* number of fields assigned */
+ int nread; /* number of characters consumed from fp */
+ int base; /* base argument to strtoll/strtoull */
+-
+- /* conversion function (strtoll/strtoull) */
+- ULONGLONG_T (*ccfn) __P((const char *, char **, int));
+ char ccltab[256]; /* character class table for %[...] */
+ char buf[BUF]; /* buffer for numeric conversions */
+ SM_EVENT *evt = NULL;
+@@ -160,7 +158,6 @@ sm_vfscanf(fp, timeout, fmt0, ap)
+ nassigned = 0;
+ nread = 0;
+ base = 0; /* XXX just to keep gcc happy */
+- ccfn = NULL; /* XXX just to keep gcc happy */
+ for (;;)
+ {
+ c = *fmt++;
+@@ -240,13 +237,11 @@ literal:
+ /* FALLTHROUGH */
+ case 'd':
+ c = CT_INT;
+- ccfn = (ULONGLONG_T (*)())sm_strtoll;
+ base = 10;
+ break;
+
+ case 'i':
+ c = CT_INT;
+- ccfn = (ULONGLONG_T (*)())sm_strtoll;
+ base = 0;
+ break;
+
+@@ -255,21 +250,20 @@ literal:
+ /* FALLTHROUGH */
+ case 'o':
+ c = CT_INT;
+- ccfn = sm_strtoull;
++ flags |= UNSIGNED;
+ base = 8;
+ break;
+
+ case 'u':
+ c = CT_INT;
+- ccfn = sm_strtoull;
++ flags |= UNSIGNED;
+ base = 10;
+ break;
+
+ case 'X':
+ case 'x':
+- flags |= PFXOK; /* enable 0x prefixing */
++ flags |= PFXOK | UNSIGNED;
+ c = CT_INT;
+- ccfn = sm_strtoull;
+ base = 16;
+ break;
+
+@@ -297,9 +291,8 @@ literal:
+ break;
+
+ case 'p': /* pointer format is like hex */
+- flags |= POINTER | PFXOK;
++ flags |= POINTER | PFXOK | UNSIGNED;
+ c = CT_INT;
+- ccfn = sm_strtoull;
+ base = 16;
+ break;
+
+@@ -324,7 +317,6 @@ literal:
+ if (isupper(c))
+ flags |= LONG;
+ c = CT_INT;
+- ccfn = (ULONGLONG_T (*)()) sm_strtoll;
+ base = 10;
+ break;
+ }
+@@ -628,7 +620,12 @@ literal:
+ ULONGLONG_T res;
+
+ *p = 0;
+- res = (*ccfn)(buf, (char **)NULL, base);
++ if (flags & UNSIGNED)
++ res = sm_strtoull(buf, (char **)NULL,
++ base);
++ else
++ res = sm_strtoll(buf, (char **)NULL,
++ base);
+ if (flags & POINTER)
+ *SM_VA_ARG(ap, void **) =
+ (void *)(long) res;
+diff --git a/mailstats/mailstats.c b/mailstats/mailstats.c
+index 6b34a57..5395bec 100644
+--- a/mailstats/mailstats.c
++++ b/mailstats/mailstats.c
+@@ -65,7 +65,7 @@ main(argc, argv)
+ char sfilebuf[MAXPATHLEN];
+ char buf[MAXLINE];
+ struct statistics stats;
+- extern char *ctime();
++ extern char *ctime(const time_t *);
+ extern char *optarg;
+ extern int optind;
+ # define MSOPTS "cC:f:opP"
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/sendmail.git/commitdiff/84ae827c7efee02f020bc7e5b2b85872b879138c
More information about the pld-cvs-commit
mailing list