Created attachment 174311 [details] poudriere log Fails to build with new erlang version 19.0.5,3 See attached poudriere log
Created attachment 174379 [details] files/patch-Makefile.in
For clarity, ejabberd requires an upgrade from 16.04 to 16.08, per https://blog.process-one.net/ejabberd-16-08/ "Fix compilation issues on R19" I modified the Makefile for 16.08 and applied the patch-Makefile.in patch. Unfortunately both the i386 (using openssl) and amd (libressl) failed at the same point as Philip (I also used the same Makefile options). Following is a log extract: Compiled src/fxmlrpc.erl /var/ports/usr/ports/net-im/ejabberd/work/deps/fast_xml/src/fxml.erl:51: syntax error before: '/' ... /var/ports/usr/ports/net-im/ejabberd/work/deps/fast_xml/src/fxml.erl:384: syntax error before: '/' ERROR: compile failed while processing /var/ports/usr/ports/net-im/ejabberd/work/deps/fast_xml: rebar_abort gmake[1]: *** [Makefile:90: deps/.built] Error 1 gmake[1]: Leaving directory '/var/ports/usr/ports/net-im/ejabberd/work/ejabberd-16.08' *** Error code 1 Unfortunately I'm unable to proceed, hopefully its a start...
The same error appears with 16.08. This error is easy to patch, to change all -specs like this --spec(element_to_binary/1 :: +-spec(element_to_binary but it seems a deeper error, later appears another error: src/ejabberd_config.erl:none: error in parse transform 'lager_transform': {function_clause, [{lager_transform, '-walk_ast/2-fun-0-', [{typed_record_field, {record_field,50, {atom,50,iterationcount}, {integer,50,0}}, {type,50,integer,[]}}], [{file, "src/lager_transform.erl"}, {line,62}]}, {lists,map,2, [{file,"lists.erl"}, {line,1239}]}, {lists,map,2, [{file,"lists.erl"}, {line,1239}]}, {lager_transform,walk_ast,2, [{file, "src/lager_transform.erl"}, {line,62}]}, {compile, '-foldl_transform/2-anonymous-2-', 2, [{file,"compile.erl"}, {line,958}]}, {compile,foldl_transform,2, [{file,"compile.erl"}, {line,960}]}, {compile, '-internal_comp/4-anonymous-1-', 2, [{file,"compile.erl"}, {line,315}]}, {compile,fold_comp,3, [{file,"compile.erl"}, {line,341}]}]} ERROR: compile failed while processing /ram/usr/ports/net-im/ejabberd/work/ejabberd-16.04: rebar_abort gmake[2]: *** [Makefile:90: deps/.built] Error 1 gmake[2]: Leaving directory '/ram/usr/ports/net-im/ejabberd/work/ejabberd-16.04' ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 It is the same on both versions 16.04 and 16.08.
I am rather insecure, but may it is this: ejabberd has an rebar binary in the source-code. Maybe, it should changed ro devel/rebar. (but I don't know too less about erlang).
Created attachment 174450 [details] possible_svn-diff-net_im-ejabberd
Only tested in the port (10.3-RELEASE) this compiles and installs without errors. Maybe there will be a simpler way, with not so many patches.
(In reply to w.schwarzenfeld from comment #6) That's a pretty astonishing patch set for what's supposed to be a working/tested application. Certainly something that should be fed back upstream. Thank-you for your efforts, particularly walk_ast.
A commit references this bug: Author: ashish Date: Wed Sep 7 13:02:08 UTC 2016 New revision: 421499 URL: https://svnweb.freebsd.org/changeset/ports/421499 Log: - Update to 16.08 - Update dependencies tarball - Add a diff for riakc to build it with Erlang 19.x - Temporarily disable LOGDB option - Instead of post-patch, switch to pre-configure target for in-place replacements PR: 212410 212328 Changes: head/net-im/ejabberd/Makefile head/net-im/ejabberd/distinfo head/net-im/ejabberd/files/patch-.._deps_riakc_rebar.config head/net-im/ejabberd/files/patch-Makefile.in head/net-im/ejabberd/files/patch-ejabberdctl.template head/net-im/ejabberd/pkg-plist
Committed update. HTH