erlang-lz4
erlang-lz4 copied to clipboard
Hex.pm package for 0.2.4 is broken on non-OSX
The package in Hex.pm includes OSX (Mach-O) objectfiles. These files break the build on any non-OSX platform. On Linux, I see
$ DEBUG=1 mix deps.compile lz4
===> Expanded command sequence to be run: []
===> Expanded command sequence to be run: [{default,app_discovery},
{bare,compile}]
===> Compiling lz4
===> sh info:
cwd: "/vagrant/deps/lz4"
cmd: make -C c_src
===> opts: [use_stdout,
{cd,"/vagrant/deps/lz4"},
{env,[{"REBAR_DEPS_DIR","/vagrant/deps/lz4/_build/default/lib"},
{"REBAR_BUILD_DIR","/vagrant/deps/lz4/_build/default"},
{"REBAR_ROOT_DIR","/vagrant/deps/lz4/."},
{"REBAR_CHECKOUTS_DIR","/vagrant/deps/lz4/_checkouts"},
{"REBAR_PLUGINS_DIR",
"/vagrant/deps/lz4/_build/default/plugins"},
{"REBAR_GLOBAL_CONFIG_DIR",
"/home/vagrant/.config/rebar3"},
{"REBAR_GLOBAL_CACHE_DIR","/home/vagrant/.cache/rebar3"},
{"REBAR_TEMPLATE_DIR",
"/home/vagrant/.config/rebar3/templates"},
{"REBAR_APP_DIRS",
"/vagrant/deps/lz4/_build/default/apps/*:/vagrant/deps/lz4/_build/default/lib/*:/vagrant/deps/lz4/_build/default/."},
{"REBAR_SRC_DIRS",[]},
{"ERLANG_ERTS_VER","9.1"},
{"ERLANG_ROOT_DIR","/usr/lib64/erlang"},
{"ERLANG_LIB_DIR_erl_interface",
"/usr/lib64/erlang/lib/erl_interface-3.10"},
{"ERLANG_LIB_VER_erl_interface","3.10"},
{"ERL","/usr/lib64/erlang/bin/erl"},
{"ERLC","/usr/lib64/erlang/bin/erlc"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","20.1-x86_64-redhat-linux-gnu-64"}]},
{abort_on_error,"Hook for compile failed!\n"}]
===> Port Cmd: make -C c_src
Port Opts: [{cd,"/vagrant/deps/lz4"},
{env,[{"REBAR_DEPS_DIR","/vagrant/deps/lz4/_build/default/lib"},
{"REBAR_BUILD_DIR","/vagrant/deps/lz4/_build/default"},
{"REBAR_ROOT_DIR","/vagrant/deps/lz4/."},
{"REBAR_CHECKOUTS_DIR","/vagrant/deps/lz4/_checkouts"},
{"REBAR_PLUGINS_DIR",
"/vagrant/deps/lz4/_build/default/plugins"},
{"REBAR_GLOBAL_CONFIG_DIR","/home/vagrant/.config/rebar3"},
{"REBAR_GLOBAL_CACHE_DIR","/home/vagrant/.cache/rebar3"},
{"REBAR_TEMPLATE_DIR",
"/home/vagrant/.config/rebar3/templates"},
{"REBAR_APP_DIRS",
"/vagrant/deps/lz4/_build/default/apps/*:/vagrant/deps/lz4/_build/default/lib/*:/vagrant/deps/lz4/_build/default/."},
{"REBAR_SRC_DIRS",[]},
{"ERLANG_ERTS_VER","9.1"},
{"ERLANG_ROOT_DIR","/usr/lib64/erlang"},
{"ERLANG_LIB_DIR_erl_interface",
"/usr/lib64/erlang/lib/erl_interface-3.10"},
{"ERLANG_LIB_VER_erl_interface","3.10"},
{"ERL","/usr/lib64/erlang/bin/erl"},
{"ERLC","/usr/lib64/erlang/bin/erlc"},
{"ERLANG_ARCH","64"},
{"ERLANG_TARGET","20.1-x86_64-redhat-linux-gnu-64"}]},
exit_status,
{line,16384},
use_stdio,stderr_to_stdout,hide,eof]
make: Entering directory `/vagrant/deps/lz4/c_src'
cc /vagrant/deps/lz4/c_src/lz4.o /vagrant/deps/lz4/c_src/lz4_nif.o /vagrant/deps/lz4/c_src/lz4hc.o -shared -L /usr/lib64/erlang/lib/erl_interface-3.10/lib -lerl_interface -lei -o /vagrant/deps/lz4/c_src/../priv/lz4.so
/vagrant/deps/lz4/c_src/lz4.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
make: *** [/vagrant/deps/lz4/c_src/../priv/lz4.so] Error 1
make: Leaving directory `/vagrant/deps/lz4/c_src'
===> Hook for compile failed!
** (Mix) Could not compile dependency :lz4, "/home/vagrant/.mix/rebar3 bare compile --paths "/vagrant/_build/dev/lib/*/ebin"" command failed. You can recompile this dependency with "mix deps.compile lz4", update it with "mix deps.update lz4" or clean it with "mix deps.clean lz4"
$ file /vagrant/deps/lz4/c_src/lz4.o
/vagrant/deps/lz4/c_src/lz4.o: Mach-O 64-bit object
Grabbing lz4 from github works well.