package/exim: bump version to 4.99

Release notes:
https://lists.exim.org/lurker/message/20251028.114149.3bf19800.en.html

Rebased patch 0001 due to upstream commit
cd43f5ee0f

Rebased patch 0004 due to upstream commit
834dae5565

Added patch 0005 to fix cross-builds.

Added ldflags for mips arch to solve build error with br-mips64-n64-full
defconfig, code copied from package/linux-tools/linux-tool-perf.mk.in:

output/per-package/exim/host/bin/mips64el-linux-ld: dkim_tmp.o: ABI is incompatible with that of the selected emulation
output/per-package/exim/host/bin/mips64el-linux-ld: failed to merge target specific data of file dkim_tmp.o
output/per-package/exim/host/bin/mips64el-linux-ld: dkim_transport.o: ABI is incompatible with that of the selected emulation
output/per-package/exim/host/bin/mips64el-linux-ld: failed to merge target specific data of file dkim_transport.o
output/per-package/exim/host/bin/mips64el-linux-ld: pdkim.o: ABI is incompatible with that of the selected emulation
output/per-package/exim/host/bin/mips64el-linux-ld: failed to merge target specific data of file pdkim.o
output/per-package/exim/host/bin/mips64el-linux-ld: signing.o: ABI is incompatible with that of the selected emulation
output/per-package/exim/host/bin/mips64el-linux-ld: failed to merge target specific data of file signing.o
output/per-package/exim/host/bin/mips64el-linux-ld: attempt to do relocatable link with elf64-tradlittlemips input and elf32-ntradlittlemips output
output/per-package/exim/host/bin/mips64el-linux-ld: dkim_tmp.o: file class ELFCLASS64 incompatible with ELFCLASS32
output/per-package/exim/host/bin/mips64el-linux-ld: final link failed: file in wrong format

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
[Julien: add "Upstream" header in patch 5 to fix check-package error]
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Bernd Kuhls
2025-11-02 09:29:49 +01:00
committed by Julien Olivain
parent 0d781138ff
commit e945af24ed
5 changed files with 128 additions and 10 deletions

View File

@@ -2,7 +2,7 @@ buildconfig is meant to be executed on the host, so it has to be compiled
using $(HOSTCC), not $(CC).
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
[Bernd: rebased for version 4.97.1]
[Bernd: rebased for version 4.99]
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
OS/Makefile-Base | 4 ++--
@@ -12,7 +12,7 @@ diff --git a/OS/Makefile-Base b/OS/Makefile-Base
index 29a6ad3..420ba60 100644
--- a/OS/Makefile-Base
+++ b/OS/Makefile-Base
@@ -258,8 +258,8 @@ allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \
@@ -257,8 +257,8 @@ allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \
# Targets for special-purpose configuration header builders
buildconfig: buildconfig.c
@@ -22,4 +22,4 @@ index 29a6ad3..420ba60 100644
+ $(FE)$(HOSTCC) $(HOSTCFLAGS) $(INCLUDE) -o buildconfig buildconfig.c
# Target for the exicyclog utility script
util_deps: config ../src/utils/msgid.frag

View File

@@ -21,16 +21,16 @@ buildsystem.
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Upstream: https://bugs.exim.org/show_bug.cgi?id=2523
[Bernd: rebased for version 4.97.1]
[Bernd: rebased for version 4.99]
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
src/sieve.c | 2 ++
src/miscmods/sieve_filter.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/sieve.c b/src/sieve.c
index 5e8d1e6f4776..9632f2d43810 100644
--- a/src/sieve.c
+++ b/src/sieve.c
--- a/src/miscmods/sieve_filter.c
+++ b/src/miscmods/sieve_filter.c
@@ -14,6 +14,8 @@
/* Sieve mail filter. */

View File

@@ -0,0 +1,95 @@
From a47de397eb1f28356086f315a443c288599d8657 Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd@kuhls.net>
Date: Sat, 1 Nov 2025 17:00:52 +0100
Subject: [PATCH] Fix cross-compile by adding LD variable
Fixes cross-build error due to commit
a449ff8ca50e6df5faee2f1e83e1198c27738dfc.
Hard-coding "ld" when cross-compiling is a bad idea.
Upstream: https://github.com/Exim/exim/pull/98
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
src/OS/Makefile-Base | 10 +++++-----
src/OS/Makefile-Default | 1 +
src/src/miscmods/Makefile | 2 +-
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/OS/Makefile-Base b/OS/Makefile-Base
index 5a15b0a6b..0250647f0 100644
--- a/OS/Makefile-Base
+++ b/OS/Makefile-Base
@@ -1065,7 +1065,7 @@ dynmodules: buildlookups buildrouters buildtransports buildauths \
buildlookups: config
@cd lookups && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
CFLAGS_DYNAMIC="$(CFLAGS_DYNAMIC)" HDRS="../version.h $(PHDRS)" \
- FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" \
+ FE="$(FE)" RANLIB="$(RANLIB)" LD="$(LD)" RM_COMMAND="$(RM_COMMAND)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE) $(LOOKUP_INCLUDE)"
@echo " "
@@ -1074,7 +1074,7 @@ buildlookups: config
buildrouters: config
@cd routers && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
CFLAGS_DYNAMIC="$(CFLAGS_DYNAMIC)" \
- FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
+ FE="$(FE)" RANLIB="$(RANLIB)" LD="$(LD)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"
@echo " "
@@ -1083,7 +1083,7 @@ buildrouters: config
buildtransports: config
@cd transports && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
CFLAGS_DYNAMIC="$(CFLAGS_DYNAMIC)" \
- FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
+ FE="$(FE)" RANLIB="$(RANLIB)" LD="$(LD)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"
@echo " "
@@ -1092,7 +1092,7 @@ buildtransports: config
buildauths: config
@cd auths && $(MAKE) SHELL=$(SHELL) AR="$(AR)" $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)" \
CFLAGS_DYNAMIC="$(CFLAGS_DYNAMIC)" \
- FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
+ FE="$(FE)" RANLIB="$(RANLIB)" LD="$(LD)" RM_COMMAND="$(RM_COMMAND)" HDRS="$(PHDRS)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE) $(TLS_INCLUDE)"
@echo " "
@@ -1101,7 +1101,7 @@ buildmisc: config
CC="$(CC)" CFLAGS="$(CFLAGS)" \
CFLAGS_DYNAMIC="$(CFLAGS_DYNAMIC)" \
LDFLAGS_PARTIAL="$(LDFLAGS_PARTIAL)" HDRS="../version.h $(PHDRS)" \
- FE="$(FE)" RANLIB="$(RANLIB)" RM_COMMAND="$(RM_COMMAND)" \
+ FE="$(FE)" RANLIB="$(RANLIB)" LD="$(LD)" RM_COMMAND="$(RM_COMMAND)" \
PERL_CC="$(PERL_CC)" PERL_CCOPTS="$(PERL_CCOPTS)" \
PERL_CFLAGS="$(PERL_CFLAGS)" PERL_LFLAGS="$(PERL_LFLAGS)" \
INCLUDE="$(INCLUDE) $(IPV6_INCLUDE)" TLS_INCLUDE="$(TLS_INCLUDE)"
diff --git a/OS/Makefile-Default b/OS/Makefile-Default
index 858361bf3..c469c7f01 100644
--- a/OS/Makefile-Default
+++ b/OS/Makefile-Default
@@ -227,6 +227,7 @@ HOSTNAME_COMMAND=/bin/hostname
RANLIB=ranlib
+LD=ld
# EXIM_CHMOD is available to specify a command that is automatically applied
# to the Exim binary immediately it is compiled. (I find this useful when
diff --git a/src/miscmods/Makefile b/src/miscmods/Makefile
index 1e46d4456..cfae5aac2 100644
--- a/src/miscmods/Makefile
+++ b/src/miscmods/Makefile
@@ -62,7 +62,7 @@ dkim.o:
$(FE)$(CC) -c $(CFLAGS) $(INCLUDE) pdkim.c
$(FE)$(CC) -c $(CFLAGS) $(INCLUDE) $(TLS_INCLUDE) signing.c
$(FE)mv dkim.o dkim_tmp.o
- $(FE)ld -r -o dkim.o $(LDFLAGS_PARTIAL) \
+ $(FE)$(LD) -r -o dkim.o $(LDFLAGS_PARTIAL) \
dkim_tmp.o dkim_transport.o pdkim.o signing.o
# Similarly, we want a single .so for the dynamic-load module
--
2.47.3

View File

@@ -1,6 +1,6 @@
# From https://ftp.exim.org/pub/exim/exim4/00-sha256sums.txt
sha256 88b8e8a67c1db6cc0b1d148161aa36e662f4ca2fef25d5b6f3694d490e42dcae exim-4.98.2.tar.xz
sha256 5df38b042ffa9a9c8d31b20bc8481558070e361b06f657608622a62a327adcba exim-4.99.tar.xz
# From https://ftp.exim.org/pub/exim/exim4/00-sha512sums.txt
sha512 aaa4cfc8aee90818c6d1c2fd0cf64b82668d1a343f462f678b38b2b79e10a467240f2e81786eec7705eec3598d23686a74437c50b68502f29ff67788393c812a exim-4.98.2.tar.xz
sha512 06521aff437dfe99c015606d2cdde76eaf6e4d2f03779b07fbc0e7d06fe0584366cae9c3fa7d73a86c348f0d25336acd06c42bd5b8f18e5a969de9849088e3aa exim-4.99.tar.xz
# Locally calculated
sha256 49240db527b7e55b312a46fc59794fde5dd006422e422257f4f057bfd27b3c8f LICENCE

View File

@@ -4,7 +4,7 @@
#
################################################################################
EXIM_VERSION = 4.98.2
EXIM_VERSION = 4.99
EXIM_SOURCE = exim-$(EXIM_VERSION).tar.xz
EXIM_SITE = https://ftp.exim.org/pub/exim/exim4
EXIM_LICENSE = GPL-2.0+
@@ -99,6 +99,7 @@ define EXIM_CONFIGURE_TOOLCHAIN
$(call exim-config-add,CFLAGS,$(TARGET_CFLAGS))
$(call exim-config-add,AR,$(TARGET_AR) cq)
$(call exim-config-add,RANLIB,$(TARGET_RANLIB))
$(call exim-config-add,LD,$(TARGET_LD))
$(call exim-config-add,HOSTCC,$(HOSTCC))
$(call exim-config-add,HOSTCFLAGS,$(HOSTCFLAGS))
$(call exim-config-add,EXTRALIBS,$(EXIM_EXTRALIBS))
@@ -125,6 +126,27 @@ ifeq ($(BR2_STATIC_LIBS),y)
EXIM_STATIC_FLAGS = LFLAGS="-pthread --static"
endif
# We need to pass an argument to ld for setting the emulation when
# building for MIPS architecture, otherwise the default one will always
# be used and the compilation for most variants will fail.
ifeq ($(BR2_mips),y)
EXIM_LDFLAGS = -m elf32btsmip
else ifeq ($(BR2_mipsel),y)
EXIM_LDFLAGS = -m elf32ltsmip
else ifeq ($(BR2_mips64),y)
ifeq ($(BR2_MIPS_NABI32),y)
EXIM_LDFLAGS = -m elf32btsmipn32
else
EXIM_LDFLAGS = -m elf64btsmip
endif
else ifeq ($(BR2_mips64el),y)
ifeq ($(BR2_MIPS_NABI32),y)
EXIM_LDFLAGS = -m elf32ltsmipn32
else
EXIM_LDFLAGS = -m elf64ltsmip
endif
endif
ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
EXIM_DEPENDENCIES += libexecinfo
EXIM_EXTRALIBS += -lexecinfo
@@ -142,6 +164,7 @@ define EXIM_BUILD_CMDS
CFLAGS="-std=c99 $(HOST_CFLAGS)" \
LFLAGS="-fPIC $(HOST_LDFLAGS)"
$(TARGET_MAKE_ENV) build=br $(MAKE) -C $(@D) $(EXIM_STATIC_FLAGS) \
LDFLAGS_PARTIAL="$(EXIM_LDFLAGS)" \
CFLAGS="-std=c99 $(TARGET_CFLAGS) $(EXIM_CFLAGS)" exim
endef