<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi,<br>
      <br>
      I'm about to package some Erlang packages/modules for Guix
      <a class="moz-txt-link-rfc2396E" href="https://guix.gnu.org/"><https://guix.gnu.org/></a> and seeking some advice how to do it
      correctly. There are not many Erlang packages in other
      distributions, to make some general rules out ot it (and many are
      still using rebar2). Also I have to admit that I have more or less
      no clue about Erlang. (My motivation for packaging is to get
      ejabberd into guix, though.)<br>
      <br>
      I learned that "rebar3" is the standard build tool, used by many
      packages (according to what I'v seen at hex.pm).<br>
      <br>
      My questions are:<br>
    </p>
    <ul>
      <li>
        <p>Is there some kind of system-wide directory where rebar3 and
          the compiler will search for pre-build packages? (Like
          /usr/lib/ and /usr/include for C, /usr/lib/python3.7 for
          Python, /usr/lib/guile/3.0 for guile). Currently I'm
          symlinking dependencies into "_checkout", which seems awkward.</p>
      </li>
      <li>
        <p>Is there some environment variable where rebar3 and the
          compilers will search for pre-build packages? (Like LIBPAAH,
          INCPATH, PYTHONPATH, GUILE_LOAD_PATH)</p>
      </li>
      <li>
        <p>Is there some rebar3 install sub-command moving all relevant
          file into the correct, system-wide directories? (Like "make
          install" is expected to do)</p>
      </li>
    </ul>
    <blockquote>
      <p>If not: Which ones are the relevant files or directories to
        install? (Currently I'm copying  the directories ebin, include
        and priv.)<br>
      </p>
    </blockquote>
    <ul>
      <li>
        <p>Does it make sense to keep files compiled for the "test"
          profile as part of the built package? If so: Is there some
          standard system-wide location for?</p>
      </li>
      <li>
        <p>Shall the test-suite be run as a specific profile? Which one?
        </p>
      </li>
      <li>When building escripts (rebar3 escript), as far as I've seen,
        this will create a "binary" containing all the required
        libraries - like static linking for C. Is there some way of
        "dynamic linking", where libraries are loaded from a system-wide
        location or from a path specified in some environment variable?<br>
      </li>
    </ul>
    <p>Many thanks in advance for any answer<br>
    </p>
    <pre class="moz-signature" cols="72">-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | <a class="moz-txt-link-abbreviated" href="mailto:h.goebel@crazy-compilers.com">h.goebel@crazy-compilers.com</a>               |
| <a class="moz-txt-link-abbreviated" href="http://www.crazy-compilers.com">www.crazy-compilers.com</a> | compilers which you thought are impossible |
</pre>
  </body>
</html>