erlang-lz4 icon indicating copy to clipboard operation
erlang-lz4 copied to clipboard

Hex.pm package for 0.2.4 is broken on non-OSX

Open martin-langhoff opened this issue 6 years ago • 0 comments

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.

martin-langhoff avatar Sep 29 '17 20:09 martin-langhoff