Re: [exim] Building 4.94-2 from source on RHEL 6.10

2021-05-10 Thread Jason W. via Exim-users
On Mon, May 10, 2021 at 2:45 PM Jeremy Harris via Exim-users <
exim-users@exim.org> wrote:

> On 10/05/2021 18:14, Heiko Schlittermann via Exim-users wrote:
> > Richard Gilbert via Exim-users  (Mo 10 Mai 2021
> 18:31:17 CEST):
> >> I have been installing Exim from source since I started using it in
> >> 1996 after hearing Philip Hazel talking about Exim at a meeting in
> >> Aberdeen.  4.94-2 is the first one where I have had to tell it to use
> >> gcc and to specify CFLAGS += -std=gnu99.
> >
> > Yes, the -std=gnu99 (c99 should suffice) is necessary now, as it seems,
> > that we use things like
> >
> >  for (int i=…; …; …)
>
> Yes, C99 is now a requirement (over twenty years after it came out...).
> Specifically for the above, I decided that the convenience of limiting
> the scope of such variables was useful.


FWIW in case it helps future searchers, I also built 4.94 on RHEL6 by
updating the 4.92 EPEL6 rpm spec file to point to the 4.94 .tar.xz, and
spent a bit fixing the fallout. Mostly ended up removing some of the RHEL
patches that no longer applied since I didn't need the default config, etc.
to match the RHEL file paths.

I did, however, have to add -D _BSD_SOURCE to CFLAGS - not sure if this is
because I am using a lookup that Richard may not be using. I initially went
down the road of -D _POSIX_C_SOURCE = 200112L  but that had no effect. The
original spec file was compiling various things as so files. I reverted to
statically linking them into the exim binary.

I am also using Heiko's taintwarning patch to run the new version while I
figure out how to untaint my config :-)  So far, no problems that I have
seen.

# uname -a
Linux myserver 2.6.32-696.20.1.el6.x86_64 #1 SMP Fri Jan 26 17:51:45 UTC
2018 x86_64 x86_64 x86_64 GNU/Linux
# exim -bV
Exim version 4.94.2 #2 built 05-May-2021 23:46:33
Copyright (c) University of Cambridge, 1995 - 2018
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 -
2018
Berkeley DB: Berkeley DB 4.7.25: (March 22, 2017)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc OpenSSL
Content_Scanning DANE DKIM DNSSEC Event OCSP PIPE_CONNECT PRDR
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm
dbmjz dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 nisplus passwd
pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot external plaintext spa tls
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Malware: f-protd f-prot6d drweb fsecure sophie clamd avast sock cmdline
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
Configuration file is /etc/exim/exim.conf

HTH!
-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] Building 4.94-2 from source on RHEL 6.10

2021-05-10 Thread Jeremy Harris via Exim-users

On 10/05/2021 18:14, Heiko Schlittermann via Exim-users wrote:

Richard Gilbert via Exim-users  (Mo 10 Mai 2021 18:31:17 
CEST):

I have been installing Exim from source since I started using it in
1996 after hearing Philip Hazel talking about Exim at a meeting in
Aberdeen.  4.94-2 is the first one where I have had to tell it to use
gcc and to specify CFLAGS += -std=gnu99.


Yes, the -std=gnu99 (c99 should suffice) is necessary now, as it seems,
that we use things like

 for (int i=…; …; …)


Yes, C99 is now a requirement (over twenty years after it came out...).
Specifically for the above, I decided that the convenience of limiting
the scope of such variables was useful.

We also use named-initialisers.

The clang compiler is known to be usable, as well as gcc.



gcc acl.c
acl.c: In function ‘acl_check_condition’:
acl.c:3202: warning: assignment discards qualifiers from pointer target type


A result of a massive and still ongoing constification effort.


I gave up running RHEL 6 buildfarm animals quite a while ago.
I do have a Scientific Linux 6.5 still running, just.

Richard, if you want visibility of build-time issues (both for
yourself and for the Exim devs), please consider setting up and
maintaining one.
--
Cheers,
  Jeremy

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


Re: [exim] Building 4.94-2 from source on RHEL 6.10

2021-05-10 Thread Heiko Schlittermann via Exim-users
Hi Richard,

Richard Gilbert via Exim-users  (Mo 10 Mai 2021 18:31:17 
CEST):
> I have been installing Exim from source since I started using it in
> 1996 after hearing Philip Hazel talking about Exim at a meeting in
> Aberdeen.  4.94-2 is the first one where I have had to tell it to use
> gcc and to specify CFLAGS += -std=gnu99.

Yes, the -std=gnu99 (c99 should suffice) is necessary now, as it seems,
that we use things like 

for (int i=…; …; …)


And older compilers seem to require the `-std=c99` flag, newer one
probably have other defaults and accept such code per default.

> gcc acl.c
> acl.c: In function ‘acl_check_condition’:
> acl.c:3202: warning: assignment discards qualifiers from pointer target type
> 
> exim.c: In function ‘main’:
> exim.c:4823: warning: assignment discards qualifiers from pointer target type

The warnings are not normal, but it's a slow process removing them.
And it doesn't seem to be possible to make *all* compilers happy with
the same code, except creating a jungle of #ifdef … (But I'm not an
expert for portable code at all.)


> CentOS8 servers to replace them but the installed packaged version of
> 4.94 had a bug -- https://bugs.archlinux.org/task/66894 -- which
> prevented the use of AUTH PLAIN with PAM, so we decided to keep the
> old servers going for another year.)

Generally Exim should build on ancient systems (but I'm not sure how
"ancient" ancient is allowed to be. Some parts of the build environment
probably need Perl 5.10. (or 5.8?)

Best regards from Dresden/Germany
Viele Grüße aus Dresden
Heiko Schlittermann
--
 SCHLITTERMANN.de  internet & unix support -
 Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
 gnupg encrypted messages are welcome --- key ID: F69376CE -


signature.asc
Description: PGP signature
-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/


[exim] Building 4.94-2 from source on RHEL 6.10

2021-05-10 Thread Richard Gilbert via Exim-users
I have been installing Exim from source since I started using it in
1996 after hearing Philip Hazel talking about Exim at a meeting in
Aberdeen.  4.94-2 is the first one where I have had to tell it to use
gcc and to specify CFLAGS += -std=gnu99.

I have checked that 4.92-3 still builds on the same server with gcc
without any extra help.

This is what I added at the end of Local/Makefile...

CC=gcc
CFLAGS += -std=gnu99
LDFLAGS += -lrt

... the last of these was to load clock_gettime.

I also get some warnings...

gcc acl.c
acl.c: In function ‘acl_check_condition’:
acl.c:3202: warning: assignment discards qualifiers from pointer target type

exim.c: In function ‘main’:
exim.c:4823: warning: assignment discards qualifiers from pointer target type

gcc filter.c
filter.c: In function ‘interpret_commands’:
filter.c:2021: warning: assignment discards qualifiers from pointer target type
filter.c:2045: warning: assignment discards qualifiers from pointer target type
filter.c:2132: warning: assignment discards qualifiers from pointer target type
filter.c:2182: warning: assignment discards qualifiers from pointer target type

(I am still running a couple of RHEL 6.10 servers because I was given
CentOS8 servers to replace them but the installed packaged version of
4.94 had a bug -- https://bugs.archlinux.org/task/66894 -- which
prevented the use of AUTH PLAIN with PAM, so we decided to keep the
old servers going for another year.)

Richard
-- 
Richard Gilbert
IT Services
University of Sheffield, Sheffield, S10 2FN, UK
Phone: +44 114 222 3028

-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/