[erlang-bugs] Reltool and code clash

Siri Hansen <>
Thu May 5 11:16:39 CEST 2011

Hi Jay - I'm trying to re-create this, but so far I haven't succeeded. Could
you please help me getting on??

What I have so far is:

Application c, which only has one module, c_lib.
Application a, which uses the c_lib.
Application b, which is a copy of application a, only with different names.

And the following reltool config:


I have tried with c listed as 'applications' and as 'included_applications'
in a.app and b.app. I have also tried without mentioning c in a.app and
b.app. In all cases, I get c_lib.beam in the target system.

I have tried with a, b and c all in the same lib dir, and I have tried to
move c to a different lib dir - no difference.

Any ideas??


2011/5/3 Jay Nelson <>

> I may have more info on this.  It seems to be a reltool bug. I don't have a
> simple case, but I discovered the problem using rebar in conjunction with a
> tsung installation (which doesn't use rebar and instead installs itself into
> the erlang lib directory).
> We customized tsung by adding protobuffs and a new module as dependencies
> of the .app file. When we use rebar to generate the app (which relies on
> reltool to do the work), reltool crashes because some dependencies in tsung
> are in the wrong directory (tsung, rather than in tsung_controller) in the
> /usr/local/lib/erlang/lib/ directory. Uninstalling tsung allows reltool to
> generate the app.
> To avoid this problem, we instruct reltool to ignore the apps in the erlang
> directory:
>      {app, tsung, [{incl_cond, exclude}]},
>      {app, tsung_recorder, [{incl_cond, exclude}]},
>      {app, tsung_controller, [{incl_cond, exclude}]}
> And the dependency that we created by customizing tsung gets excluded even
> though it is included explicitly as a separate app:
>        {app, my_shared_lib, [{incl_cond, include}]},
> There are two issues:
> 1) tsung is releasing 3 applications and I believe the module dependencies
> are incomplete or incorrect.
>     [Not an erlang issue, the tsung guys need to fix this one]
> 2) reltool does not handle include + exclude of an app dependency
>      [This is the simple case you need to create]
> To recreate the problem simply, you need 3 apps (in this case, C is an
> included application that is just a standalone library of a single module,
> whereas A and B are executable apps):
>  A => relies on C
>  B => relies on C
> Create a reltool spec that excludes A but includes B. You will find the
> release area contains C.app but no C.beam files. It doesn't matter which of
> A or B is excluded as long as the other one is included, you should see the
> same results. I am not sure, but I don't think it matters if C is listed as
> an application or as an included_application.
> Hope this helps! Feel free to ask more questions. We are working around it
> by just copying the beams into place as a separate step in the Makefile.
> Everything else seems to work.
> jay
> _______________________________________________
> erlang-bugs mailing list
> http://erlang.org/mailman/listinfo/erlang-bugs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20110505/900abf36/attachment.html>

More information about the erlang-bugs mailing list