exim.git
5 years agoDKIM: ensure that dkim_domain elements are lowercased before use. Bug 2371
Jeremy Harris [Tue, 5 Feb 2019 23:19:00 +0000 (23:19 +0000)]
DKIM: ensure that dkim_domain elements are lowercased before use.  Bug 2371

(cherry picked from commit f3c73adaa541ae54092467a29668ac32894ef1dc)

5 years agoDocs: extra detail on proxy-protocol
Jeremy Harris [Tue, 5 Feb 2019 18:49:46 +0000 (18:49 +0000)]
Docs: extra detail on proxy-protocol

(cherry picked from commit 5376b7ca07e9b00e2552f33270e79c59840a9778)

5 years agoTLS: add variables for the IETF standard name for the connection ciphersuite
Jeremy Harris [Sun, 3 Feb 2019 22:12:48 +0000 (22:12 +0000)]
TLS: add variables for the IETF standard name for the connection ciphersuite

(cherry picked from commit ffc3d145e3819e1a3762caa1bbe8b07e723fbaf2)

5 years agoTestsuite: munge GnuTLS and OpenSSL ciphersuite strings to be more similar
Jeremy Harris [Sun, 3 Feb 2019 21:00:37 +0000 (21:00 +0000)]
Testsuite: munge GnuTLS and OpenSSL ciphersuite strings to be more similar

(cherry picked from commit 25d5d9f98ebb30acc8b269c6594f4bc1e1abe654)

5 years agotidying
Jeremy Harris [Sun, 3 Feb 2019 11:35:30 +0000 (11:35 +0000)]
tidying

5 years agoUse separate routine for translating return-codes to printable strings
Jeremy Harris [Sat, 2 Feb 2019 15:32:50 +0000 (15:32 +0000)]
Use separate routine for translating return-codes to printable strings

(cherry picked from commit 9c5e54499afef5167bee6ecdcbf8dd5f023f51e0)

5 years agoDebug: config file name & line number for each ACL verb
Jeremy Harris [Sun, 27 Jan 2019 22:23:31 +0000 (22:23 +0000)]
Debug: config file name & line number for each ACL verb

(cherry picked from commit 9e160d8100cd15517a3444c1ad8ab81e51399582)

5 years agoJSON: add iterative conditions for arrays
Jeremy Harris [Sun, 10 Feb 2019 23:50:39 +0000 (23:50 +0000)]
JSON: add iterative conditions for arrays

(cherry picked from commit c5c57c4eafde32a0632c2a00bdc634860fc5d06d)

5 years agoJSON: add jsons extract variant, to strip quotes from string results
Jeremy Harris [Sat, 9 Feb 2019 17:07:23 +0000 (17:07 +0000)]
JSON: add jsons extract variant, to strip quotes from string results

5 years agoEvents: log a non-success when a client connect is denied by an event
Jeremy Harris [Sat, 19 Jan 2019 22:28:54 +0000 (22:28 +0000)]
Events: log a non-success when a client connect is denied by an event

(cherry picked from commit 6bc9c745b64e669161a04f4dd72de4dbba9fbdd2)

5 years agoGnuTLS: Debug output keying info. OpenSSL: TLS1.2 keying.
Jeremy Harris [Wed, 16 Jan 2019 15:12:33 +0000 (15:12 +0000)]
GnuTLS: Debug output keying info.  OpenSSL: TLS1.2 keying.

(cherry picked from commit 385b593e795430036b1685eed9d78d6c83cfcd67)

5 years agoFix json extract operator for unfound case
Jeremy Harris [Sat, 9 Feb 2019 16:56:59 +0000 (16:56 +0000)]
Fix json extract operator for unfound case

5 years agoJSON lookup
Jeremy Harris [Sat, 9 Feb 2019 16:48:08 +0000 (16:48 +0000)]
JSON lookup

(cherry picked from commits 854bd65fa711b31159ac19cb5e2f149669c6e06f6db8b72c86)

5 years agoEXTERNAL authenticator
Jeremy Harris [Sat, 5 Jan 2019 20:40:08 +0000 (20:40 +0000)]
EXTERNAL authenticator

(cherry picked from commit c4a8c663b74a35b547d8320547079ca56b3b772e)

5 years agoAuthenticators: refactor SASL support code
Jeremy Harris [Sat, 5 Jan 2019 17:57:01 +0000 (17:57 +0000)]
Authenticators: refactor SASL support code

(cherry picked from commit a310a8d09c56e6049714ae4e4070c16ecb6aa2b1)

5 years agoconstification
Jeremy Harris [Sat, 5 Jan 2019 18:51:19 +0000 (18:51 +0000)]
constification

(cherry picked from commit e8a25e05698e39a45cf5f188476808ef3609dbdd)

5 years agoOpenSSL: send no TLS1.3 session tickets
Jeremy Harris [Sun, 30 Dec 2018 22:46:25 +0000 (22:46 +0000)]
OpenSSL: send no TLS1.3 session tickets

(cherry picked from commit 09fa60df6e9929364a2c0830eff1e0f4f27ba095)

5 years agoOpenSSL: Debug output TLS 1.3 keying
Jeremy Harris [Sun, 30 Dec 2018 22:51:18 +0000 (22:51 +0000)]
OpenSSL: Debug output TLS 1.3 keying

(cherry picked from commit 3c1f3b85aa4139ba062268ca958bab0dd0d64140)

5 years agotidying
Jeremy Harris [Sun, 30 Dec 2018 18:17:56 +0000 (18:17 +0000)]
tidying

(cherry picked from commit 190404d75c168ce1e6dbf6ee08bdbbf62b365e4b)

5 years agoUse single TCP segment for SMTP, TLS and TCP closes.
Jeremy Harris [Sat, 29 Dec 2018 19:27:20 +0000 (19:27 +0000)]
Use single TCP segment for SMTP, TLS and TCP closes.

(cherry picked from commit a7846940c876fd2a76b89240aa83e7083ae9650a)

5 years agoOpenSSSL: support write-with-more-intent in client
Jeremy Harris [Sat, 29 Dec 2018 18:41:48 +0000 (18:41 +0000)]
OpenSSSL: support write-with-more-intent in client

(cherry picked from commit f6a1bb920eebdba0d4a6c295c4d054307b49b2b1)

5 years agoUse C99 initialisations for iterators
Jeremy Harris [Sun, 16 Dec 2018 22:24:00 +0000 (22:24 +0000)]
Use C99 initialisations for iterators

(cherry picked from commit db3f7b6972f3b003c0413b78afcfbe295ffe0b97)

5 years agoDocs: clean for next release
Jeremy Harris [Sun, 10 Feb 2019 23:09:57 +0000 (23:09 +0000)]
Docs: clean for next release

5 years agoFix dkim_verify_signers option. Bug 2366 exim-4.92 exim-4.92-RC6 exim-4.92-jgh
Mad Alex [Wed, 30 Jan 2019 13:57:36 +0000 (13:57 +0000)]
Fix dkim_verify_signers option.  Bug 2366
Testsuite coverage by jgh.

Broken-by: d342446f29
5 years agoDocs: clarify quoting for $pipe_addresses
Jeremy Harris [Tue, 29 Jan 2019 15:27:26 +0000 (15:27 +0000)]
Docs: clarify quoting for $pipe_addresses

The texinfo output version has single-quotes round a variable,
so the sentence saying "precisely the text" was difficult to
interpret.

5 years agoDocs: correct spamd port
Odihambo Washington [Tue, 29 Jan 2019 11:10:26 +0000 (11:10 +0000)]
Docs: correct spamd port

5 years agoconfigure.default: spacing, de-tabbing exim-4.92-RC5
Heiko Schlittermann (HS12-RIPE) [Sun, 27 Jan 2019 18:53:31 +0000 (19:53 +0100)]
configure.default: spacing, de-tabbing

5 years agoAdd basic framework for PRDR use with per-user content filters to example config.
Jeremy Harris [Sat, 12 Jan 2019 20:47:23 +0000 (20:47 +0000)]
Add basic framework for PRDR use with per-user content filters to example config.

Mostly commented-out and with dummy lookups since we do not know what sorts
of filtering may be employed.

(cherry picked from commit b220576b3ba5396af6b3e0f45739f269079f8fc5)

5 years agomk_exim_release: tidy
Heiko Schlittermann (HS12-RIPE) [Tue, 22 Jan 2019 21:33:47 +0000 (22:33 +0100)]
mk_exim_release: tidy

5 years agoDocs: crossref list-separator changing
Jeremy Harris [Thu, 24 Jan 2019 21:35:22 +0000 (21:35 +0000)]
Docs: crossref list-separator changing

5 years agoDocs: crossref dlfunc API
Jeremy Harris [Thu, 24 Jan 2019 21:21:29 +0000 (21:21 +0000)]
Docs: crossref dlfunc API

5 years agoMore checks on header line length during reception
Jeremy Harris [Thu, 10 Jan 2019 21:15:11 +0000 (21:15 +0000)]
More checks on header line length during reception

5 years agoDocs: tweak TLS authenticator chapter
Jeremy Harris [Sat, 5 Jan 2019 19:11:18 +0000 (19:11 +0000)]
Docs: tweak TLS authenticator chapter

5 years agoDocs: missing options
Jeremy Harris [Fri, 4 Jan 2019 11:29:19 +0000 (11:29 +0000)]
Docs: missing options

Broken-by: b3ef41c94a
5 years agoDocs: tweak new-drivers chapter
Jeremy Harris [Thu, 3 Jan 2019 21:20:33 +0000 (21:20 +0000)]
Docs: tweak new-drivers chapter

5 years agoPIPE_CONNECT: fix feature-cache refresh
Jeremy Harris [Mon, 31 Dec 2018 13:58:26 +0000 (13:58 +0000)]
PIPE_CONNECT: fix feature-cache refresh

5 years agoDocs: clarify logging from filter
Jeremy Harris [Fri, 28 Dec 2018 20:40:33 +0000 (20:40 +0000)]
Docs: clarify logging from filter

5 years agoUpdate Changelog for GnuTLS and TLS 1.3 Bug 2359 exim-4.92-RC4
Heiko Schlittermann (HS12-RIPE) [Wed, 26 Dec 2018 11:04:29 +0000 (12:04 +0100)]
Update Changelog for GnuTLS and TLS 1.3 Bug 2359

Fix is in 4896a3192ffac48885347460377edcd893eb9600

5 years agoGnuTLS: repeat lowlevel read and write operations while they request retry
Andreas Metzler [Mon, 24 Dec 2018 16:11:41 +0000 (16:11 +0000)]
GnuTLS: repeat lowlevel read and write operations while they request retry

(cherry picked from commit 06faf21f3a84a3ac4aa4f7b1512087423d8c8541)

5 years agomk_exim_release: more perlish
Heiko Schlittermann (HS12-RIPE) [Tue, 25 Dec 2018 19:38:42 +0000 (20:38 +0100)]
mk_exim_release: more perlish

5 years agomk_exim_release: integrate signing and checksumming
Heiko Schlittermann (HS12-RIPE) [Tue, 25 Dec 2018 18:17:12 +0000 (19:17 +0100)]
mk_exim_release: integrate signing and checksumming

5 years agoDKIM: better debug for key/signature size mismatch
Jeremy Harris [Sat, 22 Dec 2018 13:36:07 +0000 (13:36 +0000)]
DKIM: better debug for key/signature size mismatch

5 years agoOpenSSL: clear any leftover errors from the stack after SSL_accept succeeds
Jeremy Harris [Fri, 21 Dec 2018 15:36:42 +0000 (15:36 +0000)]
OpenSSL: clear any leftover errors from the stack after SSL_accept succeeds

5 years agomk_exim_release: output an useful error message when used for older versions
Heiko Schlittermann (HS12-RIPE) [Thu, 20 Dec 2018 22:06:38 +0000 (23:06 +0100)]
mk_exim_release: output an useful error message when used for older versions

Older releases can't be built with the newer mk_exim_release script,
as there are interdependencies with scripts/reversion and version.sh

5 years agoRecent commit is thanks to Josh Soref
Heiko Schlittermann (HS12-RIPE) [Thu, 20 Dec 2018 21:40:53 +0000 (22:40 +0100)]
Recent commit is thanks to Josh Soref

I managed to drop his name, sorry for that.

5 years agoGrammar changes in docs
Heiko Schlittermann (HS12-RIPE) [Thu, 20 Dec 2018 21:25:23 +0000 (22:25 +0100)]
Grammar changes in docs

5 years agoFix copyright year and exim website URL schema
Heiko Schlittermann (HS12-RIPE) [Thu, 20 Dec 2018 21:11:52 +0000 (22:11 +0100)]
Fix copyright year and exim website URL schema

5 years agospelling fixes
klemens [Sun, 16 Apr 2017 18:49:32 +0000 (20:49 +0200)]
spelling fixes

5 years agoDocs: tweaks
Jeremy Harris [Thu, 20 Dec 2018 17:48:52 +0000 (17:48 +0000)]
Docs: tweaks

5 years agoDefault config: use ROUTER_SMARTHOST macro; document exim-4.92-RC3
Phil Pennock [Wed, 19 Dec 2018 00:41:06 +0000 (19:41 -0500)]
Default config: use ROUTER_SMARTHOST macro; document

Work around the `$host` vs CNAME issue for now by re-specifying the
`tls_sni` value on the example `smarthost_smtp` transport, using the
same macro which we use to turn on use of a smarthost.

Uncomment both dnslookup and smarthost routers by default and let the
macro choose between them.

Bring the documentation of the default configuration closer to
up-to-date, on this issue and others which I spotted while in there.

5 years agostats_for_email: Do not auto-select the release directory
Heiko Schlittermann (HS12-RIPE) [Tue, 18 Dec 2018 15:19:11 +0000 (16:19 +0100)]
stats_for_email: Do not auto-select the release directory

5 years agoRe-create test/configure script exim-4.92-RC2
Heiko Schlittermann (HS12-RIPE) [Tue, 18 Dec 2018 14:06:00 +0000 (15:06 +0100)]
Re-create test/configure script

5 years agoUpdate Changelog for Bug 2351
Heiko Schlittermann (HS12-RIPE) [Tue, 18 Dec 2018 14:03:46 +0000 (15:03 +0100)]
Update Changelog for Bug 2351

5 years agoLog failures to extract envelope addresses from message headers. Bug 2351
Jeremy Harris [Sun, 16 Dec 2018 16:33:32 +0000 (16:33 +0000)]
Log failures to extract envelope addresses from message headers.  Bug 2351

(cherry picked from commit 60c02b350a7d325e64ae0a656cfd37a9fbd162a7)

5 years agodoc: gsasl: be clearer that server-side only
Phil Pennock [Sun, 16 Dec 2018 09:29:30 +0000 (04:29 -0500)]
doc: gsasl: be clearer that server-side only

5 years agoFix build with content-scan enabled but all malware types disabled
Jeremy Harris [Sat, 15 Dec 2018 14:25:09 +0000 (14:25 +0000)]
Fix build with content-scan enabled but all malware types disabled

6 years agoFix parsing of option type Kint (integer, stored in K). Bug 2348
Jeremy Harris [Fri, 14 Dec 2018 14:03:18 +0000 (14:03 +0000)]
Fix parsing of option type Kint (integer, stored in K).  Bug 2348

Broken-by: a45431fa71
6 years agosign_exim_package: do not auto-select the packages directory exim-4.92-RC1
Heiko Schlittermann (HS12-RIPE) [Thu, 13 Dec 2018 21:48:08 +0000 (22:48 +0100)]
sign_exim_package: do not auto-select the packages directory

6 years agomk_exim_release: rework for dotted release scheme
Heiko Schlittermann (HS12-RIPE) [Mon, 5 Feb 2018 23:13:40 +0000 (00:13 +0100)]
mk_exim_release: rework for dotted release scheme

6 years agoreversion: Adapt to dotted release scheme
Heiko Schlittermann (HS12-RIPE) [Mon, 3 Dec 2018 15:44:35 +0000 (16:44 +0100)]
reversion: Adapt to dotted release scheme

6 years agoreversion: tidy
Heiko Schlittermann (HS12-RIPE) [Mon, 3 Dec 2018 15:44:05 +0000 (16:44 +0100)]
reversion: tidy

6 years agoDocs: SPF lookup type
Jeremy Harris [Thu, 6 Dec 2018 20:04:29 +0000 (20:04 +0000)]
Docs: SPF lookup type

6 years agoSend delay-MDN for any queurun past delay_warning, even if not retry time yet. Bug...
Jeremy Harris [Wed, 5 Dec 2018 16:09:01 +0000 (16:09 +0000)]
Send delay-MDN for any queurun past delay_warning, even if not retry time yet.  Bug 2341

6 years agotidying
Jeremy Harris [Sun, 2 Dec 2018 01:27:51 +0000 (01:27 +0000)]
tidying

6 years agoMore debug in smtp transport
Jeremy Harris [Sun, 2 Dec 2018 00:29:41 +0000 (00:29 +0000)]
More debug in smtp transport

6 years agoLogging: outgoing_port on temporary errors for non-last hosts
Jeremy Harris [Sat, 1 Dec 2018 16:55:26 +0000 (16:55 +0000)]
Logging: outgoing_port on temporary errors for non-last hosts

Also show nonstandard ports in process info for exiwhat

6 years agoHarden string-list handling
Jeremy Harris [Sat, 1 Dec 2018 16:49:50 +0000 (16:49 +0000)]
Harden string-list handling

6 years agoTestsuite: handle change in GnuTLS cert preference
Jeremy Harris [Thu, 29 Nov 2018 20:46:46 +0000 (20:46 +0000)]
Testsuite: handle change in GnuTLS cert preference

6 years agoTestsuite: output changes resulting
Jeremy Harris [Thu, 29 Nov 2018 19:52:39 +0000 (19:52 +0000)]
Testsuite: output changes resulting

Broken-by: a7a1ad1447
6 years agoGnuTLS: fix build with older libraries
Jeremy Harris [Thu, 29 Nov 2018 10:01:52 +0000 (10:01 +0000)]
GnuTLS: fix build with older libraries

Broken-by: 6aac3239b4
6 years agoTestsuite: regenerate CA trees with 2048-bit keys
Jeremy Harris [Tue, 27 Nov 2018 23:06:16 +0000 (23:06 +0000)]
Testsuite: regenerate CA trees with 2048-bit keys

This is to support RHEL 8.0 where OpenSSL dislikes 1024

6 years agoOpenSSL: fail the handshake when SNI processing hits a problem
Jeremy Harris [Wed, 28 Nov 2018 20:54:53 +0000 (20:54 +0000)]
OpenSSL: fail the handshake when SNI processing hits a problem

6 years agoTLS: Increase RSA keysize of autogen selfsign cert
Jeremy Harris [Wed, 28 Nov 2018 19:45:24 +0000 (19:45 +0000)]
TLS: Increase RSA keysize of autogen selfsign cert

6 years agoTestsuite: switch ciphersuite use
Jeremy Harris [Tue, 27 Nov 2018 20:50:28 +0000 (20:50 +0000)]
Testsuite: switch ciphersuite use

This is to accomodate RHEL 7, where openssl seems to not support ECDHE Kx + CAMELIA
nor any of the CHACHA20s, but does support DHE Kx + CAMELIA.

All we really wanted was something distinguishable from default
(which is commonly ECDHE-RSA-AUE256-GCM-SHA).

6 years agoTestsuite: ignore OCSP option output; fixes runs on non-OCSP builds
Jeremy Harris [Sun, 25 Nov 2018 21:58:54 +0000 (21:58 +0000)]
Testsuite: ignore OCSP option output; fixes runs on non-OCSP builds

6 years agoFix AUTH_GSASL build
Jeremy Harris [Sat, 24 Nov 2018 15:37:54 +0000 (15:37 +0000)]
Fix AUTH_GSASL build

6 years agoAvoid leaving $domain live with bogus info, during server connection startup
Jeremy Harris [Fri, 23 Nov 2018 23:55:36 +0000 (23:55 +0000)]
Avoid leaving $domain live with bogus info, during server connection startup

Recent efforts to reduce string-copy ops while also avoiding using excessive memory
tripped a check on freeing the still-live variable.  It is unclear why the variable
was set anyway, even though commented.  The use was introduced between Exim 3.36 and 4.0

6 years agonit (typo fix; docs)
Phil Pennock [Thu, 22 Nov 2018 02:07:49 +0000 (21:07 -0500)]
nit (typo fix; docs)

6 years agoFix cyrus-sasl authenticator for $authenticated_fail_id. Bug 2338
Jeremy Harris [Wed, 21 Nov 2018 08:30:20 +0000 (08:30 +0000)]
Fix cyrus-sasl authenticator for $authenticated_fail_id.  Bug 2338

Relabel for commit c0fb53b74e which which had a typo in the commit message.

6 years agoFix cyrus-sasl authenticator for $authenticated_fail_id. Bug 2238
Jeremy Harris [Wed, 21 Nov 2018 00:50:38 +0000 (00:50 +0000)]
Fix cyrus-sasl authenticator for $authenticated_fail_id.  Bug 2238

6 years agoDocs: more on $authenticated_fail_id
Jeremy Harris [Tue, 20 Nov 2018 21:42:48 +0000 (21:42 +0000)]
Docs: more on $authenticated_fail_id

6 years agoTestsuite: document noisy-comment script commands
Jeremy Harris [Sun, 18 Nov 2018 22:11:35 +0000 (22:11 +0000)]
Testsuite: document noisy-comment script commands

6 years agoDocs: add note on manualroute route-lists
Jeremy Harris [Sun, 18 Nov 2018 17:27:38 +0000 (17:27 +0000)]
Docs: add note on manualroute route-lists

6 years agoDocs: indexing of retry final-cutoff
Jeremy Harris [Sun, 18 Nov 2018 16:45:44 +0000 (16:45 +0000)]
Docs: indexing of retry final-cutoff

6 years agotidying
Jeremy Harris [Thu, 15 Nov 2018 15:08:53 +0000 (15:08 +0000)]
tidying

6 years agoLose more string-copy operations
Jeremy Harris [Sat, 17 Nov 2018 19:40:01 +0000 (19:40 +0000)]
Lose more string-copy operations

6 years agoFix growable-string sprintf
Jeremy Harris [Thu, 15 Nov 2018 18:55:51 +0000 (18:55 +0000)]
Fix growable-string sprintf

Broken-by d12746bc15

6 years agoOpenBSD: bump dns-result buffer to 64kB
Jeremy Harris [Thu, 15 Nov 2018 17:21:45 +0000 (17:21 +0000)]
OpenBSD: bump dns-result buffer to 64kB

This just to take out a difference in testsuite behaviour.  Builds
for memory-constrained devices could legitimately use 16kB.

6 years agoRecast more internal string routines to use growable-strings
Jeremy Harris [Wed, 14 Nov 2018 22:32:58 +0000 (22:32 +0000)]
Recast more internal string routines to use growable-strings

6 years agotidying
Jeremy Harris [Wed, 14 Nov 2018 20:22:50 +0000 (20:22 +0000)]
tidying

6 years agoDocs: Add cross-refs for $h_<name>
Jeremy Harris [Tue, 13 Nov 2018 11:50:40 +0000 (11:50 +0000)]
Docs: Add cross-refs for $h_<name>

6 years agoTestsuite: account for hostname-dependent output in debug output
Jeremy Harris [Sun, 11 Nov 2018 18:30:22 +0000 (18:30 +0000)]
Testsuite: account for hostname-dependent output in debug output

6 years agoTestsuite: fix testcases for /etc/services not having smtps
Jeremy Harris [Sun, 11 Nov 2018 18:16:29 +0000 (18:16 +0000)]
Testsuite: fix testcases for /etc/services not having smtps

6 years agoDocs: add notes on smtps
Jeremy Harris [Sun, 11 Nov 2018 18:08:05 +0000 (18:08 +0000)]
Docs: add notes on smtps

6 years agoTestsuite: increase retry time (for really slow test host)
Jeremy Harris [Sat, 10 Nov 2018 20:37:31 +0000 (20:37 +0000)]
Testsuite: increase retry time (for really slow test host)

6 years agoTestsuite: avoid time-quantization issue
Jeremy Harris [Fri, 9 Nov 2018 19:56:32 +0000 (19:56 +0000)]
Testsuite: avoid time-quantization issue

6 years agoTestsuite: avoid time-quantization issue
Jeremy Harris [Fri, 9 Nov 2018 17:12:09 +0000 (17:12 +0000)]
Testsuite: avoid time-quantization issue

6 years agoTestsuite: check for conflicting host name
Jeremy Harris [Thu, 8 Nov 2018 12:58:27 +0000 (12:58 +0000)]
Testsuite: check for conflicting host name

6 years agotidying
Jeremy Harris [Sat, 27 Oct 2018 16:03:09 +0000 (17:03 +0100)]
tidying

6 years agoFix build on FreeBSD 11
Jeremy Harris [Tue, 6 Nov 2018 16:00:26 +0000 (16:00 +0000)]
Fix build on FreeBSD 11