exim 4.92.3 custombuild error

krzysiekb81

Verified User
Joined
Oct 9, 2016
Messages
9
Hello,
Trying to build new exim with custombuild and it ends up with an error:

Code:
# ./build exim
Found /usr/local/directadmin/custombuild/exim-4.92.3.tar.gz
Extracting ...
Done.
--2019-10-01 07:35:42--  https://files.directadmin.com/services/custombuild/Makefile
Resolving files.directadmin.com (files.directadmin.com)... 104.128.54.74, 69.162.69.58, 185.42.221.168
Connecting to files.directadmin.com (files.directadmin.com)|104.128.54.74|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 48603 (47K)
Saving to: 'Local/Makefile'

Local/Makefile               100%[==============================================>]  47.46K   230KB/s    in 0.2s

2019-10-01 07:35:43 (230 KB/s) - 'Local/Makefile' saved [48603/48603]

Patching exim for DTYPE_NONE error with sys/file.h...
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- src/exim.h.orig    2017-02-14 19:13:41.381402389 +0200
|+++ src/exim.h 2017-02-14 19:13:53.330916377 +0200
--------------------------
Patching file src/exim.h using Plan A...
Hunk #1 succeeded at 129.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- src/exim_lock.c.orig       2017-02-14 19:21:09.709389008 +0200
|+++ src/exim_lock.c    2017-02-14 19:21:23.994407794 +0200
--------------------------
Patching file src/exim_lock.c using Plan A...
Hunk #1 succeeded at 27.
done
Trying to make exim...
--- checks ---
--- build-directory ---
--- checks ---
/bin/sh scripts/source_checks
--- build-directory ---

>>> Creating links to source files...
--- configure ---
>>> Creating lookups/Makefile for building dynamic modules
>>> New Makefile & lookups/Makefile installed
>>> Use "make makefile" if you need to force rebuilding of the makefile

--- all ---
--- checklocalmake ---
--- version.h ---
--- version.sh ---
--- os.c ---
--- buildconfig ---
--- os.h ---
--- os.c ---
/bin/sh ../scripts/Configure-os.c
--- buildconfig ---
gcc buildconfig.c
--- os.h ---
/bin/sh ../scripts/Configure-os.h
--- version.sh ---
>>> version 4.92.3  #2
--- version.h ---
>>> version 4.92.3  #2

--- exim_lock ---
gcc exim_lock.c
gcc -o exim_lock
/usr/bin/strip exim_lock
>>> exim_lock utility built

--- config.h ---
/bin/sh ../scripts/Configure-config.h "make"
`buildconfig' is up to date.
Building configuration file config.h
>>> config.h built

--- macro_predef.o ---
--- macro-globals.o ---
--- macro-readconf.o ---
--- macro-route.o ---
--- macro-transport.o ---
--- macro-drtables.o ---
--- macro-tls.o ---
--- macro-appendfile.o ---
gcc -DMACRO_PREDEF macro_predef.c
gcc -DMACRO_PREDEF globals.c
gcc -DMACRO_PREDEF readconf.c
gcc -DMACRO_PREDEF route.c
--- macro-transport.o ---
gcc -DMACRO_PREDEF transport.c
--- macro-drtables.o ---
gcc -DMACRO_PREDEF drtables.c
--- macro-appendfile.o ---
gcc -DMACRO_PREDEF transports/appendfile.c
--- macro-tls.o ---
gcc -DMACRO_PREDEF tls.c
--- macro-autoreply.o ---
--- macro-lmtp.o ---
gcc -DMACRO_PREDEF transports/autoreply.c
gcc -DMACRO_PREDEF transports/lmtp.c
--- macro-pipe.o ---
--- macro-queuefile.o ---
gcc -DMACRO_PREDEF transports/pipe.c
gcc -DMACRO_PREDEF transports/queuefile.c
--- macro-smtp.o ---
gcc -DMACRO_PREDEF transports/smtp.c
--- macro-accept.o ---
gcc -DMACRO_PREDEF routers/accept.c
--- macro-dnslookup.o ---
gcc -DMACRO_PREDEF routers/dnslookup.c
--- macro-ipliteral.o ---
gcc -DMACRO_PREDEF routers/ipliteral.c
--- macro-iplookup.o ---
gcc -DMACRO_PREDEF routers/iplookup.c
--- macro-manualroute.o ---
--- macro-queryprogram.o ---
gcc -DMACRO_PREDEF routers/manualroute.c
gcc -DMACRO_PREDEF routers/queryprogram.c
--- macro-redirect.o ---
gcc -DMACRO_PREDEF routers/redirect.c
--- macro-auth-spa.o ---
gcc -DMACRO_PREDEF auths/auth-spa.c
--- macro-cram_md5.o ---
gcc -DMACRO_PREDEF auths/cram_md5.c
--- macro-cyrus_sasl.o ---
gcc -DMACRO_PREDEF auths/cyrus_sasl.c
--- macro-dovecot.o ---
gcc -DMACRO_PREDEF auths/dovecot.c
--- macro-gsasl_exim.o ---
gcc -DMACRO_PREDEF auths/gsasl_exim.c
--- macro-heimdal_gssapi.o ---
gcc -DMACRO_PREDEF auths/heimdal_gssapi.c
--- macro-plaintext.o ---
gcc -DMACRO_PREDEF auths/plaintext.c
--- macro-spa.o ---
gcc -DMACRO_PREDEF auths/spa.c
--- macro-authtls.o ---
gcc -DMACRO_PREDEF auths/tls.c
--- macro-dkim.o ---
gcc -DMACRO_PREDEF dkim.c
--- macro-malware.o ---
gcc -DMACRO_PREDEF malware.c
--- macro-signing.o ---
gcc -DMACRO_PREDEF pdkim/signing.c
--- version.o ---
--- perl.o ---
gcc version.c
--- exim_dumpdb.o ---
cc perl.c
gcc -DEXIM_DUMPDB exim_dbutil.c
--- exim_fixdb.o ---
gcc -DEXIM_FIXDB exim_dbutil.c
--- exim_tidydb.o ---
gcc -DEXIM_TIDYDB exim_dbutil.c
--- exim_dbmbuild.o ---
gcc exim_dbmbuild.c
--- util-store.o ---
gcc -DCOMPILE_UTILITY store.c
--- util-os.o ---
--- acl.o ---
gcc -DCOMPILE_UTILITY os.c
gcc acl.c
--- base64.o ---
gcc base64.c
--- child.o ---
gcc child.c
--- perl.o ---
In file included from perl.c:30:
In file included from /usr/local/lib/perl5/5.20/mach/CORE/perl.h:5199:
/usr/local/lib/perl5/5.20/mach/CORE/inline.h:311:9: warning: nonnull parameter 'pv' will evaluate to 'true' on first encounter [-Wpointer-bool-conversion]
    if (pv && len > 1) {
        ^~ ~~
/usr/local/lib/perl5/5.20/mach/CORE/proto.h:1791:4: note: declared 'nonnull' here
                        __attribute__nonnull__(pTHX_1)
                        ^
/usr/local/lib/perl5/5.20/mach/CORE/perl.h:3100:60: note: expanded from macro '__attribute__nonnull__'
#  define __attribute__nonnull__(a)         __attribute__((nonnull(a)))
                                                           ^
--- crypt16.o ---
gcc crypt16.c
--- daemon.o ---
gcc daemon.c
--- dbfn.o ---
gcc dbfn.c
--- debug.o ---
gcc debug.c
--- deliver.o ---
gcc deliver.c
--- directory.o ---
gcc directory.c
--- dns.o ---
gcc dns.c
--- perl.o ---
1 warning generated.
--- enq.o ---
gcc enq.c
--- exim.o ---
gcc exim.c
--- expand.o ---
gcc expand.c
--- environment.o ---
gcc environment.c
--- filter.o ---
gcc filter.c
--- filtertest.o ---
gcc filtertest.c
--- globals.o ---
gcc globals.c
--- hash.o ---
gcc hash.c
--- header.o ---
gcc header.c
--- host.o ---
gcc host.c
--- ip.o ---
gcc ip.c
--- log.o ---
gcc log.c
--- lss.o ---
gcc lss.c
--- match.o ---
gcc match.c
--- moan.o ---
gcc moan.c
--- os.o ---
gcc os.c
--- parse.o ---
gcc parse.c
--- queue.o ---
gcc queue.c
--- rda.o ---
--- readconf.o ---
gcc rda.c
gcc readconf.c
--- receive.o ---
gcc receive.c
--- retry.o ---
gcc retry.c
--- rewrite.o ---
gcc rewrite.c
--- rfc2047.o ---
gcc rfc2047.c
--- route.o ---
gcc route.c
--- search.o ---
gcc search.c
--- sieve.o ---
gcc sieve.c
--- smtp_in.o ---
gcc smtp_in.c
--- smtp_out.o ---
gcc smtp_out.c
--- spool_in.o ---
gcc spool_in.c
--- spool_out.o ---
gcc spool_out.c
--- std-crypto.o ---
gcc std-crypto.c
--- store.o ---
--- string.o ---
gcc store.c
gcc string.c
--- tls.o ---
gcc tls.c
--- tod.o ---
gcc tod.c
--- transport.o ---
gcc transport.c
--- tree.o ---
gcc tree.c
--- verify.o ---
gcc verify.c
--- dkim.o ---
gcc dkim.c
--- dkim_transport.o ---
gcc dkim_transport.c
--- malware.o ---
gcc malware.c
--- mime.o ---
--- regex.o ---
gcc regex.c
--- mime.o ---
gcc mime.c
--- spam.o ---
gcc spam.c
--- spool_mbox.o ---
gcc spool_mbox.c
--- arc.o ---
gcc arc.c
--- bmi_spam.o ---
--- dane.o ---
gcc bmi_spam.c
gcc dane.c
--- dcc.o ---
gcc dcc.c
--- dmarc.o ---
--- imap_utf7.o ---
gcc dmarc.c
gcc imap_utf7.c
--- spf.o ---
gcc spf.c
--- srs.o ---
gcc srs.c
--- utf8.o ---
gcc utf8.c
--- drtables.o ---
gcc drtables.c
--- macro_predef ---
gcc -o macro_predef
--- exim_dbmbuild ---
gcc -o exim_dbmbuild
--- exim_dumpdb ---
gcc -o exim_dumpdb
--- exim_tidydb ---
gcc -o exim_tidydb
--- macro.c ---
./macro_predef > macro.c
--- macro.o ---
--- exicyclog ---
gcc macro.c
--- exim_dumpdb ---
/usr/bin/strip exim_dumpdb
>>> exim_dumpdb utility built

--- exinext ---
--- exim_tidydb ---
/usr/bin/strip exim_tidydb
--- exim_dbmbuild ---
/usr/bin/strip exim_dbmbuild
--- exinext ---
>>> exinext script built
--- exiwhat ---
--- exim_dbmbuild ---
>>> exim_dbmbuild utility built
--- exim_tidydb ---
>>> exim_tidydb utility built
--- exim_dbmbuild ---

--- exim_tidydb ---

--- exim_checkaccess ---
--- exicyclog ---
>>> exicyclog script built
--- exigrep ---
--- eximstats ---
--- exim_checkaccess ---
>>> exim_checkaccess script built

--- exiwhat ---
>>> exiwhat script built
--- exiqgrep ---
--- exiqsumm ---
--- exigrep ---
>>> exigrep script built
--- exipick ---
--- exiqsumm ---
>>> exiqsumm script built
--- transport-filter.pl ---
--- eximstats ---
>>> eximstats script built
--- convert4r3 ---
--- exipick ---
>>> exipick script built
--- exiqgrep ---
>>> exiqgrep script built
--- convert4r4 ---
--- local_scan.o ---
--- buildlookups ---
gcc local_scan.c
--- transport-filter.pl ---
>>> transport-filter.pl script built
--- buildrouters ---
--- buildlookups ---
--- cdb.o ---
--- convert4r3 ---
>>> convert4r3 script built
--- buildtransports ---
--- buildlookups ---
gcc cdb.c
--- convert4r4 ---
>>> convert4r4 script built
--- buildlookups ---
--- dbmdb.o ---
gcc dbmdb.c
--- buildrouters ---
--- accept.o ---
gcc accept.c
--- buildtransports ---
--- appendfile.o ---
gcc appendfile.c
--- buildlookups ---
--- dnsdb.o ---
gcc dnsdb.c
--- buildrouters ---
--- dnslookup.o ---
gcc dnslookup.c
--- buildtransports ---
--- autoreply.o ---
gcc autoreply.c
--- buildrouters ---
--- ipliteral.o ---
gcc ipliteral.c
--- buildlookups ---
--- lsearch.o ---
--- buildauths ---
--- buildlookups ---
gcc lsearch.c
--- buildauths ---
--- auth-spa.o ---
gcc auth-spa.c
--- call_pam.o ---
gcc call_pam.c
--- call_pwcheck.o ---
gcc call_pwcheck.c
--- buildrouters ---
--- iplookup.o ---
gcc iplookup.c
--- buildauths ---
--- call_radius.o ---
gcc call_radius.c
--- buildrouters ---
--- manualroute.o ---
gcc manualroute.c
--- buildlookups ---
--- spf.o ---
gcc spf.c
--- buildtransports ---
--- lmtp.o ---
gcc lmtp.c
--- buildlookups ---
--- lf_quote.o ---
gcc lf_quote.c
--- buildrouters ---
--- queryprogram.o ---
gcc queryprogram.c
--- buildtransports ---
--- pipe.o ---
gcc pipe.c
--- buildrouters ---
--- redirect.o ---
gcc redirect.c
--- buildauths ---
--- check_serv_cond.o ---
gcc check_serv_cond.c
--- buildtransports ---
--- queuefile.o ---
gcc queuefile.c
--- buildlookups ---
--- lf_check_file.o ---
gcc lf_check_file.c
--- buildtransports ---
--- smtp.o ---
gcc smtp.c
--- buildlookups ---
--- lf_sqlperform.o ---
gcc lf_sqlperform.c
--- lookups.a ---
ar cq lookups.a
ranlib lookups.a
--- buildtransports ---
--- smtp_socks.o ---
gcc smtp_socks.c
--- buildauths ---
--- cram_md5.o ---
gcc cram_md5.c
--- pdkim/pdkim.a ---
--- pdkim.o ---
gcc pdkim.c
--- signing.o ---
gcc signing.c
--- buildrouters ---
--- rf_change_domain.o ---
gcc rf_change_domain.c
--- buildtransports ---
--- tf_maildir.o ---
gcc tf_maildir.c
--- buildauths ---
--- cyrus_sasl.o ---
gcc cyrus_sasl.c
--- buildlookups ---

--- buildrouters ---
--- rf_expand_data.o ---
gcc rf_expand_data.c
--- lookups/lf_quote.o ---
--- buildauths ---
--- dovecot.o ---
gcc dovecot.c
gcc lf_quote.c
--- lookups/lf_quote.o ---
gcc: error: lf_quote.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
*** [lookups/lf_quote.o] Error code 1

make[1]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64
--- buildrouters ---
--- rf_get_errors_address.o ---
gcc rf_get_errors_address.c
A failure has been detected in another branch of the parallel make

make[2]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64/routers
*** [buildrouters] Error code 2

make[1]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64
--- buildauths ---
A failure has been detected in another branch of the parallel make

make[2]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64/auths
*** [buildauths] Error code 2

make[1]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64
--- pdkim/pdkim.a ---
A failure has been detected in another branch of the parallel make

make[2]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64/pdkim
*** [pdkim/pdkim.a] Error code 2

make[1]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64
--- buildtransports ---
A failure has been detected in another branch of the parallel make

make[2]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64/transports
*** [buildtransports] Error code 2

make[1]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64
5 errors

make[1]: stopped in /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64
*** [all] Error code 2

make: stopped in /usr/local/directadmin/custombuild/exim-4.92.3
1 error

make: stopped in /usr/local/directadmin/custombuild/exim-4.92.3
-e \n*** The make has failed, would you like to try to make again? (y,n):

How to correct?
 
btw. /usr/local/directadmin/custombuild/exim-4.92.3/build-FreeBSD-amd64/lookups/lf_quote.c is available...
 
I "fixed" it with going to custombuild/exim-4.92.3 directory and issuing "make build", which went OK, and then "make install", then moving /usr/sbin/exim-4.92.3-8 to /usr/sbin/exim
 
Same problem here... I don't think that moving the binary is a good fix - the build script is doing a lot of things prior building Exim.
 
I think some clarification might be warranted here.

Is this only on FreeBSD?

I'm not seeing this talked about a lot. I would have to believe that the number of FreeBSD DirectAdmin users is much smaller than say CentOS DirectAdmin users - so given that, I'm assuming that this issue is related only to FreeBSD, but I may be wrong?

I'm not suggesting that this isn't an issue. Just trying to get clarification on who is affected by this.
 
Hi guys,

Thanks for the report. I've tracked it down to some sort of race condition in exim's source Makefile.
Simple solution was to remove the -j ${CPU_CORES} so it's all linear.
Manually doing another "make" form the exim-4.92.3 directory picked up where it left off and worked.
I'm not sure why CentOS isn't affected (smarter "make" perhaps).. but in any case, I've simply added an OS check in build 2.0.0 rev 2222, and exim will build on FreeBSD without the parallel calls.

On all files.da boxes (files1, files2, and forum), and other mirrors will sync within 24 hours with the fix.

John
 
awesome ty for the time on this, love your work :)
 
Last edited:
Back
Top