Mailing List Archive

Exim 4.97-RC1 released
The next Release Candidate for 4.97, RC1, is not available from

- as tarball: https://ftp.exim.org/pub/exim/exim4/test
- directly from Git: https://git.exim.org
tag exim-4.97-RC1

The signatures on the release tarballs (and this mail) should be
mine, key ID 0xBCE58C8CE41F32DF.

Please test and give feedback on the RC so that we can shake out
issues before 4.97 goes official.

No further feature-additions will be accepted; bugfixes only
between now and 4.97.


There have been only minor fixes and updates since RC0;
no feature additions.



FTP site file verification:

SIZE(00-sha256sums.txt)= 1228
SIZE(00-sha512sums.txt)= 1996
SIZE(00-sizes.txt)= 518
SIZE(exim-4.97-RC1.tar.bz2)= 2076541
SIZE(exim-4.97-RC1.tar.gz)= 2628824
SIZE(exim-4.97-RC1.tar.xz)= 1908492
SIZE(exim-html-4.97-RC1.tar.bz2)= 645413
SIZE(exim-html-4.97-RC1.tar.gz)= 1291686
SIZE(exim-html-4.97-RC1.tar.xz)= 574556
SIZE(exim-pdf-4.97-RC1.tar.bz2)= 2167729
SIZE(exim-pdf-4.97-RC1.tar.gz)= 2201341
SIZE(exim-pdf-4.97-RC1.tar.xz)= 2137696
SIZE(exim-postscript-4.97-RC1.tar.bz2)= 1147337
SIZE(exim-postscript-4.97-RC1.tar.gz)= 1541443
SIZE(exim-postscript-4.97-RC1.tar.xz)= 1139260

SHA2-256(00-sha256sums.txt)= 6bccb163b6b3fe743565c51328eef68214964e4b37f99234be57af13eb1c2453
SHA2-256(00-sha512sums.txt)= f96bc83ea1a7aec038fbee21a26742c76a6962b8e49b5ae96ddcf91daaa8862b
SHA2-256(00-sizes.txt)= 6b1f4ffec2ace5bce387f2d896165e5530f8bf542d08edbef04bc7571f1f03bb
SHA2-256(exim-4.97-RC1.tar.bz2)= f1a32bc6506842974808194791524dee6b7e43943d10b3eb9832fef4156ee7ca
SHA2-256(exim-4.97-RC1.tar.gz)= 026337d4f5e2d722a19a292c8be35efe4743febcbd89a35d557d5f2374929ee4
SHA2-256(exim-4.97-RC1.tar.xz)= b270b4b82b001887a2b8903d656f4dad5501f177ec1af24bfb4c4aafa3cd6d19
SHA2-256(exim-html-4.97-RC1.tar.bz2)= ef49a74f91488021e629588de100f4127af07da77162b88fe20f24f36277562f
SHA2-256(exim-html-4.97-RC1.tar.gz)= d0d427a3514fb7da627867c2ddc8ec0747ac9e5f5712bbf709a7433996ede8b2
SHA2-256(exim-html-4.97-RC1.tar.xz)= 4c2f0109d28b1fb8d50d9fb99d5070db7afc47b44e6d5129a846f56c208999ac
SHA2-256(exim-pdf-4.97-RC1.tar.bz2)= ffe951a4a7fe279b74125daad0d93ca9409485c90849a8fd4d554100de0ed263
SHA2-256(exim-pdf-4.97-RC1.tar.gz)= d142a919d42ef55a05c35738e454e96af5c000cf50945725e1d7b85406d331ba
SHA2-256(exim-pdf-4.97-RC1.tar.xz)= 91f7f8e5748e6114c841097abb10c343bc502d5c883a9dc170bc974260196373
SHA2-256(exim-postscript-4.97-RC1.tar.bz2)= 70fb3c277ba04dc4413ee2163e60d58beb20ab5c29286e7fe8dae991a83b3554
SHA2-256(exim-postscript-4.97-RC1.tar.gz)= 9b503b4bcaa7b3ffc4752d7e4930154aaecdfd65a71ab4bb6b94a26e1ef9c993
SHA2-256(exim-postscript-4.97-RC1.tar.xz)= baf6252d54bd2d36e31a36911bd8cd65abaf6fb07c56eb5871d18078f752268c

--
Cheers,
Jeremy
Re: [exim-announce] Exim 4.97-RC1 released [ In reply to ]
On 26/09/2023 18:41, Jeremy Harris via Exim-announce wrote:
> The next Release Candidate for 4.97, RC1, is not available from

s/not/now/
--
Cheers,
Jeremy


--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
So far I've not been able to build it.

I see a couple of things in the build output that make me even wonder
if my src/Local/Makefile ends up being used.

First, there's a message about preparing for dynamic lookups ... but
these are disabled per my Makefile.

And then, even though the lmtp transport is also disabled, it proceeds
to compile src/src/transports/lmtp.c in full. Is that supposed to
happen? I had the idea that disabled drivers got stubbed out.

Because I build with -Werror and -Wformat, and because the nonstandard
%Y format is used in lmtp.c, my build dies there.

I remember when I was trying to build on FreeBSD you were thinking of
messing with the meta-build (i.e. how the final makefile is assembled
from the local, arch and system specific bits). Has anything come out
of that? Like, maybe, has the order of the bits changed?

If relevant: amd64, devuan chimaera (which is mostly the same as debian
bullseye)

--
Ian

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
On 27/09/2023 07:32, Ian Z via Exim-users wrote:
> I see a couple of things in the build output that make me even wonder
> if my src/Local/Makefile ends up being used.

"make distclean && make"
--
Cheers,
Jeremy


--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
On Tue, Sep 26, 2023 at 8:43?PM Jeremy Harris via Exim-users <
exim-users@lists.exim.org> wrote:

> The next Release Candidate for 4.97, RC1, is not available from
>
> - as tarball: https://ftp.exim.org/pub/exim/exim4/test
> - directly from Git: https://git.exim.org
> tag exim-4.97-RC1
>
> The signatures on the release tarballs (and this mail) should be
> mine, key ID 0xBCE58C8CE41F32DF.
>
> Please test and give feedback on the RC so that we can shake out
> issues before 4.97 goes official.


So many warnings related to Perl <https://pastebin.ubuntu.com/p/8hZ4pMnfMF/>on
my FreeBSD 13.2, but otherwise it builds:


--
Best regards,
Odhiambo WASHINGTON,
Nairobi,KE
+254 7 3200 0004/+254 7 2274 3223
"Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(?)_/¯ :-)
[How to ask smart questions:
http://www.catb.org/~esr/faqs/smart-questions.html]

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
On Wed, Sep 27, 2023 at 08:56:42AM +0100, Jeremy Harris via Exim-users wrote:

> On 27/09/2023 07:32, Ian Z via Exim-users wrote:
> > I see a couple of things in the build output that make me even wonder
> > if my src/Local/Makefile ends up being used.

> "make distclean && make"

Sadly no, this changes nothing.

Attaching my src/Local/Makefile and `make -C src` (from clean git tree)

--
Ian
Re: Exim 4.97-RC1 released [ In reply to ]
On Wed, 27 Sep 2023, Ian Z via Exim-users wrote:

> On Wed, Sep 27, 2023 at 08:56:42AM +0100, Jeremy Harris via Exim-users wrote:
>
>> On 27/09/2023 07:32, Ian Z via Exim-users wrote:
>>> I see a couple of things in the build output that make me even wonder
>>> if my src/Local/Makefile ends up being used.
>
>> "make distclean && make"
>
> Sadly no, this changes nothing.
>
> Attaching my src/Local/Makefile and `make -C src` (from clean git tree)

Ian's Local/Makfile end with:
CFLAGS = -O2 -fstack-protector-strong $(WARNINGS) $(DEFS)
... ...
EXTRALIBS_EXIM = -lspf2
DEFS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_FORTIFY_SOURCE=2
WARNINGS = -Wdate-time -Wformat -Wno-format-truncation -Werror
LDFLAGS = -Wl,-z,relro

and his make.log with:
cc lmtp.c
lmtp.c: In function ?lmtp_write_command?:
lmtp.c:244:48: error: unknown conversion type character ?Y? in format
[-Werror=format=]
244 | DEBUG(D_transport|D_v) debug_printf(" LMTP>> %Y", &gs);
| ^
lmtp.c:244:37: error: too many arguments for format
[-Werror=format-extra-args]
244 | DEBUG(D_transport|D_v) debug_printf(" LMTP>> %Y", &gs);
| ^~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [Makefile:15: lmtp.o] Error 1
make[2]: Leaving directory '/var/lib/git/exim/src/build-Linux-x86_64/transports'


Commit 00392be0e7 (Fri Jul 7 00:40:43 2023 +0100) adds a non-standard %
option to printf-like format strings which -Wformat does not like.
Since Ian has enabled -Werror too, the compiler is going to abort.
-Wformat has been enabled by default since about the time that --std=c99
became the default, so he has should either
replace -Wformat with -Wno-format
or
add -Wno-error=format
or
just drop -Werror

These allow lmtp.c and smtp.c to compile on my machine, but there are
warnings in other areas so -Werror will still break the build.

Going back to exim 4.96, there are 15 .c files that do not compile
on my Ubuntu 23.04/Lunar box with
CC=gcc -Werror -Wno-error=format
so I am not sure why Ian was expecting to be able to build 4.97 with
"-Werror".

--
Andrew C. Aitchison Kendal, UK
andrew@aitchison.me.uk

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
On Wed, Sep 27, 2023 at 10:30:27PM +0100, Andrew C Aitchison via Exim-users wrote:

> Ian's Local/Makfile end with:
> CFLAGS = -O2 -fstack-protector-strong $(WARNINGS) $(DEFS)
> ... ...
> EXTRALIBS_EXIM = -lspf2
> DEFS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_FORTIFY_SOURCE=2
> WARNINGS = -Wdate-time -Wformat -Wno-format-truncation -Werror
> LDFLAGS = -Wl,-z,relro
>
> and his make.log with:
> cc lmtp.c
> lmtp.c: In function ‘lmtp_write_command’:
> lmtp.c:244:48: error: unknown conversion type character ‘Y’ in format
> [-Werror=format=]
> 244 | DEBUG(D_transport|D_v) debug_printf(" LMTP>> %Y", &gs);
> | ^
> lmtp.c:244:37: error: too many arguments for format
> [-Werror=format-extra-args]
> 244 | DEBUG(D_transport|D_v) debug_printf(" LMTP>> %Y", &gs);
> | ^~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> make[2]: *** [Makefile:15: lmtp.o] Error 1
> make[2]: Leaving directory '/var/lib/git/exim/src/build-Linux-x86_64/transports'

> Commit 00392be0e7 (Fri Jul 7 00:40:43 2023 +0100) adds a
> non-standard % option to printf-like format strings which -Wformat
> does not like. Since Ian has enabled -Werror too, the compiler is
> going to abort. -Wformat has been enabled by default since about
> the time that --std=c99 became the default, so he has should either

> replace -Wformat with -Wno-format or
> add -Wno-error=format
> or
> just drop -Werror
>
> These allow lmtp.c and smtp.c to compile on my machine, but there are
> warnings in other areas so -Werror will still break the build.
>
> Going back to exim 4.96, there are 15 .c files that do not compile
> on my Ubuntu 23.04/Lunar box with
> CC=gcc -Werror -Wno-error=format
> so I am not sure why Ian was expecting to be able to build 4.97 with
> "-Werror".

I'll first address the question of my expectations, in the light of
other warnings when compiling vanilla git tree.

The answer there is that I keep my own patch for those, meticulously
maintained and ported forward for each release. I can post the patch
here if needed, though I know there can be no question of merging it
into the official tree. I go through this trouble because clean builds
are, in fact, *that* important to me.

Second: if you look at the definition of PRINTF_FUNCTION in
src/src/mytypes.h, *all* of the format checks have already been disabled
on OpenBSD because the compiler doesn't like another nonstandard
conversion there. How is it consistent to add a new one and leave the
checks enabled on other platforms?

Third, there is still the question why that code in lmtp.c is getting
compiled at all (without MACRO_PREDEF) when lmtp is disabled. If I can
get this one answered I'll know how to deal with the above.

An immodest meta-comment: usually one gets closer to the truth by
assuming I'm *not* a fool.

--
Ian

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
On 28/09/2023 00:10, Ian Z via Exim-users wrote:
> Third, there is still the question why that code in lmtp.c is getting
> compiled at all (without MACRO_PREDEF) when lmtp is disabled.

A reasonable question...

On a very brief look, the ifdef guard resulting from the makefile
definition TRANSPORT_LMTP only drops out the structure with
the entry-points for tha lmtp transport, and does not bypass
the compilation of the code. Possibly the linker would
be clever enough to drop it, being unreferenced
(and pigs might fly, too).
--
Cheers,
Jeremy


--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
On Thu, Sep 28, 2023 at 01:08:11AM +0100, Jeremy Harris via Exim-users wrote:
> On 28/09/2023 00:10, Ian Z via Exim-users wrote:
> > Third, there is still the question why that code in lmtp.c is getting
> > compiled at all (without MACRO_PREDEF) when lmtp is disabled.

> A reasonable question...

> On a very brief look, the ifdef guard resulting from the makefile
> definition TRANSPORT_LMTP only drops out the structure with the
> entry-points for tha lmtp transport, and does not bypass the
> compilation of the code. Possibly the linker would be clever enough
> to drop it, being unreferenced (and pigs might fly, too).

Thanks Jeremy! I checked with `nm` and on this platform, at least, the
lmtp code seems not to make it into the final executable. So the
linker does its job, and all is explained. The redundant compile is
still a bit suboptimal but I understand that we don't want to mess
with the build setup.

I would probably do the %Y thing differently ... but I'll cope.

--
Ian

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
On 28/09/2023 18:37, Ian Z via Exim-users wrote:
> I checked with `nm` and on this platform, at least, the
> lmtp code seems not to make it into the final executable. So the
> linker does its job, and all is explained. The redundant compile is
> still a bit suboptimal but I understand that we don't want to mess
> with the build setup.

I started spraying #ifdef everywhere... and then found that lookups
are handled (for this purpose) by script-hacking on the sub-makefile.
So (eventually) I might get around to doing similar for
all of routers, transports, authenticators.


> I would probably do the %Y thing differently ... but I'll cope.

One might argue that labelling these functions printf-like is not
valid, when they do different things. But GCC is running into the
identical issue what handling extensible-printf functions...

--
Cheers,
Jeremy


--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
Hi Jeremy,
Hi Ian,

On 2023-09-28 18:03, Jeremy Harris wrote:
> On 28/09/2023 18:37, Ian Z via Exim-users wrote:
> >? I checked with `nm` and on this platform, at least, the
> > lmtp code seems not to make it into the final executable. So the
> > linker does its job, and all is explained. The redundant compile is
> > still a bit suboptimal but I understand that we don't want to mess
> > with the build setup.
>
> I started spraying #ifdef everywhere... and then found that lookups
> are handled (for this purpose) by script-hacking on the sub-makefile.
> So (eventually) I might get around to doing similar for
> all of routers, transports, authenticators.
>
>
> > I would probably do the %Y thing differently ... but I'll cope.
>
> One might argue that labelling these functions printf-like is not
> valid, when they do different things.? But GCC is running into the
> identical issue what handling extensible-printf functions...

I'm maintaining the Exim package for the OpenWrt distribution -- admittedly
not the most mainstream use-case for Exim, but anyway ;)

Preparing the (long overdue) update to version 4.97.1 (coming from 4.96.2)
I've noticed that the %Y format warning issue discussed here has not
really been resolved and I was wondering what is the recommended way to
go about it.

Disabling all format security warnings doesn't really seem to be the
best idea, especially also as they are deliberately enabled in other
places in the build, even with -Werror.

Also, doing so augments the only meaningful format security warning,
which is probably the reason it has not been dealt with up to now:

smtp.c: In function 'invalidate_ehlo_cache_entry':
smtp.c:941:42: warning: format '%d' expects argument of type 'int', but argument 2 has type 'time_t' {aka 'long int'} [-Wformat=]
941 | debug_printf("ehlo-resp record is %d seconds old\n", time(NULL) - er->time_stamp);
| ~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| int time_t {aka long int}
| %ld

A good solution would be to use difftime(3) with %.0f format instead
and I'm about to send a patch doing that.

Given all the excessive fallout of commit 00392be0e ("Support gring as
a first-class conversion specifier in internal string-formatting") I'm
tempted to work on reverting that for our builds. However, that by now
has become non-trivial so in case Ian could maybe share his patch
mentioned earlier in this thread, that would be great.


Cheers


Daniel

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
Hi Jeremy,

thank you for your reply and for taking this issue serious.

On Thu, Apr 04, 2024 at 10:18:16AM +0100, Jeremy Harris wrote:
> On 04/04/2024 01:46, Daniel Golle wrote:
> > I've noticed that the %Y format warning issue discussed here has not
> > really been resolved and I was wondering what is the recommended way to
> > go about it.
> >
> > Disabling all format security warnings doesn't really seem to be the
> > best idea,
>
> You could
> - ignore these spurious warnings

Sadly this could be the best option other than a downstream revert of
the commit introducing the '%Y' format.

> - remove the "printflike" annotations that are on the various functions
> that support these extended facilities

That would also make us loose all the potentially meaningful warnings
for standard format conversions.

> - add yourself to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47781

Interesting, indeed. I see some old friends in this debate, which has
been going on for more than 13 years and mentions "coming up with a
design" being the "first step" in a message written a year ago.
Surely, this would be the best option, but using Exim 4.96.2 until GCC
defined and made such an improvement (if ever) doesn't sound like a
good idea, obviously.


Cheers


Daniel

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/
Re: Exim 4.97-RC1 released [ In reply to ]
While I remember dealing with this, I struggle to refocus on the details
due to IRL interference. I'll tick this thread and revisit it when I can
but I can't estimate the time.

--
Ian

--
## subscription configuration (requires account):
## https://lists.exim.org/mailman3/postorius/lists/exim-users.lists.exim.org/
## unsubscribe (doesn't require an account):
## exim-users-unsubscribe@lists.exim.org
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/