diff --git a/mail-mta/sendmail/files/sendmail-8.13.1-delivered_hdr.patch b/mail-mta/sendmail/files/sendmail-8.13.1-delivered_hdr.patch new file mode 100644 index 0000000000000..7ea73bad3f523 --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-8.13.1-delivered_hdr.patch @@ -0,0 +1,10 @@ +--- a/sendmail/conf.c ++++ b/sendmail/conf.c +@@ -117,6 +117,7 @@ + { "content-length", H_ACHECK, NULL }, + { "subject", H_ENCODABLE, NULL }, + { "x-authentication-warning", H_FORCE, NULL }, ++ { "delivered-to", H_FORCE, NULL }, + + { NULL, 0, NULL } + }; diff --git a/mail-mta/sendmail/files/sendmail-8.18.1-c23.patch b/mail-mta/sendmail/files/sendmail-8.18.1-c23.patch new file mode 100644 index 0000000000000..93301cbfba350 --- /dev/null +++ b/mail-mta/sendmail/files/sendmail-8.18.1-c23.patch @@ -0,0 +1,113 @@ +Bug: https://bugs.gentoo.org/944460 +Bug: https://bugs.gentoo.org/945726 + +--- a/libsm/vfscanf.c ++++ b/libsm/vfscanf.c +@@ -37,6 +37,7 @@ + #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 @@ + 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 @@ + 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 @@ + /* 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 @@ + /* 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 @@ + 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 @@ + if (isupper(c)) + flags |= LONG; + c = CT_INT; +- ccfn = (ULONGLONG_T (*)()) sm_strtoll; + base = 10; + break; + } +@@ -628,7 +620,12 @@ + 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; +--- a/mailstats/mailstats.c ++++ b/mailstats/mailstats.c +@@ -65,7 +65,6 @@ + char sfilebuf[MAXPATHLEN]; + char buf[MAXLINE]; + struct statistics stats; +- extern char *ctime(); + extern char *optarg; + extern int optind; + # define MSOPTS "cC:f:opP" diff --git a/mail-mta/sendmail/sendmail-8.18.1-r1.ebuild b/mail-mta/sendmail/sendmail-8.18.1-r1.ebuild index 2b27d4fedf72b..a51f73553d9ea 100644 --- a/mail-mta/sendmail/sendmail-8.18.1-r1.ebuild +++ b/mail-mta/sendmail/sendmail-8.18.1-r1.ebuild @@ -70,13 +70,14 @@ PDEPEND=" ) ) " +PATCHES=( + "${FILESDIR}"/${PN}-8.13.1-delivered_hdr.patch + "${FILESDIR}"/${PN}-8.16.1-build-system.patch + "${FILESDIR}"/${PN}-8.18.1-c23.patch +) src_prepare() { - eapply "${FILESDIR}"/${PN}-8.16.1-build-system.patch - eapply "${FILESDIR}"/${PN}-8.18.1-c23-ctime.patch - eapply "${FILESDIR}"/${PN}-8.18.1-c23-sm_strtoll.patch - eapply -p0 "${FILESDIR}"/${PN}-delivered_hdr.patch - eapply_user + default local confCCOPTS="${CFLAGS}" local confENVDEF="-DMAXDAEMONS=64 -DHAS_GETHOSTBYNAME2=1" diff --git a/mail-mta/sendmail/sendmail-8.18.1.10-r1.ebuild b/mail-mta/sendmail/sendmail-8.18.1.10-r1.ebuild index 963d4156cc09e..a69cd5c49bab1 100644 --- a/mail-mta/sendmail/sendmail-8.18.1.10-r1.ebuild +++ b/mail-mta/sendmail/sendmail-8.18.1.10-r1.ebuild @@ -70,11 +70,13 @@ PDEPEND=" ) ) " +PATCHES=( + "${FILESDIR}"/${PN}-8.13.1-delivered_hdr.patch + "${FILESDIR}"/${PN}-8.16.1-build-system.patch +) src_prepare() { - eapply "${FILESDIR}"/${PN}-8.16.1-build-system.patch - eapply -p0 "${FILESDIR}"/${PN}-delivered_hdr.patch - eapply_user + default local confCCOPTS="${CFLAGS}" local confENVDEF="-DMAXDAEMONS=64 -DHAS_GETHOSTBYNAME2=1"