Re: [exim] Building 4.94-2 from source on RHEL 6.10
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
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
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
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/