Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project X doesn't compile/work #265

Closed
essen opened this issue Jun 5, 2015 · 17 comments
Closed

Project X doesn't compile/work #265

essen opened this issue Jun 5, 2015 · 17 comments

Comments

@essen
Copy link
Member

essen commented Jun 5, 2015

This is a meta ticket referencing the current dependency compilation issues. While all projects in the index compile just fine, a small number of projects can't be added yet because we are not compatible with them yet. This issue comment will be updated with all known issues. Everyone is invited to contribute patches that make those projects work, or knowledge of a "better fork" if it has fixed the issues and is also maintained.

If you need a project on this list, please post a comment requesting a fix for it. We will do our best to help.

  • abnfc has hardcoded ERL and ERLC in its Makefile
  • amoc has a makefile which is not patched
  • autohelp just doesn't compile
  • avz depends on an old Cowboy that uses 'pkg' dep format
  • axiom uses a pre-erlang.mk Cowboy that has warnings as errors; waiting for an update as per Upgrade Cowboy to 0̶.̶9̶ 1.0 tsujigiri/axiom#20
  • barrel works with js185 package installed; but we need to add dependencies not the top-level project
  • cassanderl depends on a very old jsx which has a makefile file that fails; asking if project will be eventually updated in lpgauth/cassanderl#22
  • chatterbox rebar detection fails, rebar is in an included Makefile
  • chef-server has its own directory structure, not sure much can be done about it
  • concuerror is falsely detected as a rebar project; also has a dep in its Makefile that is fetched to the wrong location
  • czmq has 2 issues: the 'check' target uses 1 colon instead of 2; and a C dependency fails to compile with recent gcc as per The v2.2.0 branch of czmq dose not build with gcc-4.9.2 gar1t/erlang-czmq#33
  • dht requires Erlang 18+
  • ejabberd has various errors during autopatch of dependencies
  • elixir has an elixir directory structure with a Makefile at the bottom but it uses rebar which is patched out so compilation ends up failing; needed for Elixir plugin #237 and probably needs to wait project-specific patches
  • enacl requires dirty schedulers
  • enet requires manual user intervention for building
  • epb has a .yrl file that includes another file and the compiler can't find it
  • ephp has a rebar dependency ezic with a Makefile used only in hooks; rebar detection fails
  • eraft depends on stdlib2 and tulib which have GNUmakefile that aren't patched
  • erlang-algorithms has no .app file
  • erlang_mesos requires specific versions of the mesos and protocol buffers library to build; the ones for my system are too recent
  • erlson is a clusterfuck; I am not even sure where to start to make it work; works fine in rebar
  • erlyberly is JAVA
  • erlyssh requires you to install it to run it
  • escalus ends up in an infinite loop while trying to determine the contents of the COMPILE_FIRST variable
  • etcd depends on broken lhttpc
  • evins has a very old erlang.mk
  • exmpp compiles fine, but the list of modules is autopatched (when it shouldn't)
  • ezic has manual steps required; proposal for adding them to the Makefile is at drfloob/ezic#22
  • fgraph has a .app.src file that isn't patched properly
  • forge forces a default goal that doesn't fetch required dependencies
  • fubar has a broken dependency as per jinnipark/fubar#4
  • gen_client is Emakefile based and rely on missing dependency exmpp
  • i18n preprocess rebar hook sets environment variables with os:putenv
  • ircbot compiles fine, but the list of modules in the .app.src should be autopatched (but isn't)
  • katt depends on broken lhttpc
  • leptus depends on an old Cowboy/erlang.mk; project is in the process of being updated as per Building on FreeBSD with Cowboy 0.9 sinasamavati/leptus#36 so wait and see
  • lhttpc has UTF-8 encoding issues; it is also not supported anymore so an upstream fix is unlikely
  • logplex has a default rebar.config that doesn't work for anyone; the good one is public.rebar.config so we need to move it before attempting to patch the project normally
  • luvviescript... I'm not even sure
  • meshup has a GNUmakefile which isn't patched
  • mzbench has a non-standard directory structure
  • ngerlguten has its own or sinan's directory structure; can't do much about it until we can fetch subdirectories of repositories
  • nksip depends on an old Cowboy that uses 'pkg' dep format; waiting for an update as per Update Cowboy to 1.0 NetComposer/nksip#47
  • ns_server has a configure script that requires an option
  • numer requires CUDA and is missing instructions for Linux
  • piqi throws an emfile when trying to patch it, probably while trying to determine the contents of the COMPILE_FIRST variable
  • poxa has a dependency unreachable (cannot read remote repository uuid hosted on gitorious, which has been shut down and is now hosted graciously and read-only, with all that implies)
  • pusherman depends on an old Cowboy before erlang.mk which depends on a Ranch that uses rebar; waiting for an update as per make compatible with erlang.mk inaka/pusherman#3
  • py requires LFE compilation support
  • rabbitmq_webhooks depends on broken lhttpc
  • rcouch's couch dependency has hardcoded paths back to rcouch
  • rtpproxy requires include file from "rtplib" which isn't set as a dependency
  • scm ends up in an infinite loop while trying to determine the contents of the COMPILE_FIRST variable
  • snarl has an 'apps' project structure
  • spell1 probably needs LFE support first
  • stdlib2 has a GNUmakefile which isn't patched
  • sumo_db has one of its dependencies use a Gun version that breaks current erlang.mk; waiting for an update as per Update tirerl inaka/sumo_db#166
  • tsung has 3 OTP applications inside a single OTP directory structure; requires a project-specific patch (either separate or make everything under 'tsung' depending on what works best)
  • tulib has a GNUmakefile which isn't patched
  • ubf has an issue with COMPILE_FIRST, and then a parse_transform error; works fine in rebar
  • uriak_pool has riak_pb dependency use an old protobuffs that doesn't work with erlang.mk; updating protobuffs makes it work though; might be further issues
  • wings requires manual setup
  • wpi requires the WiringPi library for the Raspberry Pi
  • yawndb uses ecirca which has a rebar hook that needs env variable set (CC, ERL_CFLAGS)
  • zeta depends on a repository 'eqc' which doesn't exist; also has a name conflict, unrelated projects
  • zotonic has its own Makefile, and while it pulls the dependencies in the right place, it fails to compile them because of "warnings_as_error" (a new gcc warning is the culprit at the time of writing, but it could be anything)

The following projects have a name that conflict with another package in the index. Down the line the index will allow different projects to have the same name.

  • active is more or less the same as the one in the index
  • mysql is probably a much better option than what we currently have in the index, as per Application name conflict mysql-otp/mysql-otp#19
  • sqerl is not the same kind of project as the one we got in the index
  • syslog is more or less the same as the one in the index
  • uuid is more or less the same as the other uuid projects
  • uuid is more or less the same as the other uuid projects

The following projects are in the index but experience some issues:

  • aberth: a dependency was replaced overnight (barrel) and broke the project entirely; PR opened as fix barrel link a13x/aberth#5
  • cl: I need to get confirmation that it actually works as intended
  • dhtcrawler: seems to have a dependency that's broken and requires auth
  • mcerlang: doesn't seem to load anything

See #281 and #282 for OSX and FreeBSD issues with packages that are currently in the index.

@essen essen changed the title Project X doesn't compile Project X doesn't compile/work Jun 6, 2015
msantos added a commit to msantos/verx that referenced this issue Jun 6, 2015
Commit dc61c3b modified the gen_remote_protocol.escript to include a
header file. If ERL_LIBS is unset, the escript would fail to find the
header:

==> verx (compile)
/home/essen/ninenines/erlang.mk/test/app1/deps/verx/bin/gen_remote_protocol.escript:8: can't find include lib "verx/include/libvirt_constants.hrl"
/home/essen/ninenines/erlang.mk/test/app1/deps/verx/bin/gen_remote_protocol.escript:12: undefined macro 'VIR_SECURITY_MODEL_BUFLEN'

Set a default search path.

See:
#4
ninenines/erlang.mk#265

Thanks @essen!
@essen
Copy link
Member Author

essen commented Jun 6, 2015

Project verx has been fixed upstream and is now part of the index.

msantos added a commit to msantos/evum that referenced this issue Jun 6, 2015
Update the deps to point at tags as reported in:

#2
ninenines/erlang.mk#265

Also, amazingly, evum still works. Tested with the busybox image from:

http://fs.devloop.org.uk/filesystems/BusyBox-1.13.2/BusyBox-1.13.2-amd64-root_fs.bz2

The configuration:
~~~
{image, [
    {busybox, [
        {file, "BusyBox-1.13.2-amd64-root_fs"},
        {uri, "http://fs.devloop.org.uk/filesystems/BusyBox-1.13.2/BusyBox-1.13.2-amd64-root_fs.bz2"},
        {md5, "28adb144440ae21e450db2398a7c951d"},
        {args, [{net, false}]}
    ]}]}.
~~~

Thanks @essen!
@essen
Copy link
Member Author

essen commented Jun 6, 2015

Project evum has been fixed upstream and is now part of the index.

@essen
Copy link
Member Author

essen commented Jun 7, 2015

Project antidote has been fixed upstream and is now part of the index.

@essen
Copy link
Member Author

essen commented Jun 9, 2015

Project color has been fixed upstream and is now part of the index.

@essen essen mentioned this issue Jun 13, 2015
@essen
Copy link
Member Author

essen commented Jun 14, 2015

The poxa project seems to be broken on all platforms.

@essen
Copy link
Member Author

essen commented Jun 15, 2015

cloudi_service_db_pgsql and cloudi_service_oauth1 have been fixed upstream and are now part of the index.

@jhw
Copy link

jhw commented Jun 16, 2015

amqp_client + rabbit_common; many thanks.

@jhw
Copy link

jhw commented Jun 16, 2015

#ihavenoideawhatimdoingwithmakefiles

#197

https://www.rabbitmq.com/erlang-client.html

https://www.rabbitmq.com/erlang-client-user-guide.html

RABBITMQ_VERSION=3.4.2

deps::
# amqp_client
if [ -d "deps/amqp_client" ]; then
echo "==> amqp_client";
else
curl -o deps/amqp_client-$(RABBITMQ_VERSION).ez https://www.rabbitmq.com/releases/rabbitmq-erlang-client/v$(RABBITMQ_VERSION)/amqp_client-$(RABBITMQ_VERSION).ez;
unzip -o -d deps deps/amqp_client-$(RABBITMQ_VERSION).ez;
mv deps/amqp_client-$(RABBITMQ_VERSION) deps/amqp_client;
rm deps/amqp_client-$(RABBITMQ_VERSION).ez;
fi
# rabbit_common
if [ -d "deps/rabbit_common" ]; then
echo "==> rabbit_common";
else
curl -o deps/rabbit_common-$(RABBITMQ_VERSION).ez https://www.rabbitmq.com/releases/rabbitmq-erlang-client/v$(RABBITMQ_VERSION)/rabbit_common-$(RABBITMQ_VERSION).ez;
unzip -o -d deps deps/rabbit_common-$(RABBITMQ_VERSION).ez;
mv deps/rabbit_common-$(RABBITMQ_VERSION) deps/rabbit_common;
rm deps/rabbit_common-$(RABBITMQ_VERSION).ez;
fi

@essen
Copy link
Member Author

essen commented Jun 17, 2015

amqp_client now works! All you have to do is define RABBITMQ_CLIENT_PATCH and erlang.mk will fetch the corresponding repositories for you (only tracking master at this point, I want to get feedback).

@essen
Copy link
Member Author

essen commented Jun 18, 2015

rabbit (rabbitmq-server) was also added today. You need to define RABBITMQ_SERVER_PATCH.

@essen
Copy link
Member Author

essen commented Jun 20, 2015

See #281 and #282 for OSX and FreeBSD issues with packages that are currently in the index.

@essen
Copy link
Member Author

essen commented Jun 24, 2015

actordb_thrift was fixed as soon as it was added, pushing!

@essen
Copy link
Member Author

essen commented Jul 4, 2015

gut has just been fixed, and rebar3/relx have been fixed a few days ago.

@sata
Copy link

sata commented Jul 21, 2015

when adding eper to SHELL_DEPS and calling make shell. The expected behaviour of beams being compiled to deps/eper/ebin doesn't happen.

Not 100% sure but the dep_target define does run the autoreconf and configure, which generates Makefiles in eper, eper/src and priv/bin/. The generated Makefiles isn't what I expect when I compare for instance the result in sync dep.

Easy to replicate, adding dep_eper with github path, then SHELL_DEPS = eper, make shell.

@essen
Copy link
Member Author

essen commented Jul 22, 2015

Opened ticket: massemanet/eper#40

@essen
Copy link
Member Author

essen commented Sep 29, 2015

Will need to look into lhttpc, it's normally been fixed as per: esl/lhttpc#43 (comment)

@essen
Copy link
Member Author

essen commented Nov 22, 2018

Closing because it needs reactualizing.

@essen essen closed this as completed Nov 22, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants