Commit Graph

12 Commits

Author SHA1 Message Date
Loïc Hoguin c5d150a7ef
Use Erlang.mk's native Elixir support for CLI
This avoids using Mix while compiling which simplifies
a number of things and let us do further build improvements
later on.

Elixir is only enabled from within rabbitmq_cli currently.

Eunit is disabled since there are only Elixir tests.

Dialyzer will force-enable Elixir in order to process
Elixir-compiled beam files.

This commit also includes a few changes that are
related:

 * The Erlang distribution will now be started for parallel-ct

 * Many unnecessary PROJECT_MOD lines have been removed

 * `eunit_formatters` has been removed, it provides little value

 * The new `maybe_flock` Erlang.mk function is used where possible

 * Build test deps when testing rabbitmq_cli (Mix won't do it anymore)

 * rabbitmq_ct_helpers now use the early plugins to have Dialyzer
   properly set up
2025-03-18 10:02:49 +01:00
Philip Kuryloski d041315336 Revert "Remove the packaging directory"
This reverts commit 2067a68735.
2021-02-23 11:26:29 +01:00
Philip Kuryloski 2067a68735 Remove the packaging directory
It has been extracted to https://github.com/rabbitmq/rabbitmq-packaging
2021-01-04 14:42:43 +01:00
Jean-Sébastien Pédron 545a1ee68f
packaging/generic-unix: Fix the way we path files list to tar(1)
If we use xargs(1) to call tar(1), we are limited by the number of
arguments we can put on the command line. Since we switch to use
directories to "package" plugins instead of .ez archives, the number of
files exploded. This led to incomplete generic-unix archives (i.e. some
plugins and CLI scripts were missing for instance).

Now, the list of files is written to a manifest, exactly like we do it
to create the source archive.
2020-08-11 16:28:24 +02:00
Jean-Sébastien Pédron b206b3e4b6
packaging: Set `$XDG_*_HOME` variables on Make command lines
Exactly like we do it with `$HOME`, this is to exercices our hack to
make mix(1) work offline.

Starting with Elixir 1.9.0, mix(1) accepts a `$MIX_HOME` variable to
point it to its own central directory. If it's not defined, it uses
first the `$XDG_DATA_HOME` and `$XDG_CONFIG_HOME` Freedesktop.org
variables. Then it uses `$HOME`.

So here, we specify those two variables explicitely to make sure they do
not disturb the build process.
2019-06-27 12:27:55 +02:00
Jean-Sébastien Pédron 678c1d423e
packaging/generic-unix: Make tarball suffix configurable
It still defaults to `generic-unix`.
2019-06-26 17:54:22 +02:00
Jean-Sébastien Pédron 7062ac9512
packaging: Set `$HOME` on Make command lines
This is to exercices our hack to convince mix(1) to work offline. See
the comments in the Makefiles.
2019-06-26 16:54:51 +02:00
Jean-Sébastien Pédron 4a15ad52d4
packaging: Log Elixir version before compiling
... in addition to the Erlang version.
2019-06-25 18:18:34 +02:00
Jean-Sébastien Pédron 679518f911
packaging: Log the version of Erlang used to compile packages
This should help us diagnose situations where the version of Erlang used
to compile is greater than the minimum supported.
2017-08-03 10:42:47 +02:00
Jean-Sébastien Pédron 892d40a762
packaging: Do not pass command-line variables to potential sub-makes
A Debian package is built with a Makefile, `debian/rules`. This Makefile
inherited all variables defined on the command line, even though we
unexported the dangerous ones.

We need to unset `MAKEOVERRIDES` to prevent GNU Make from passing them
in `MAKEFLAGS`.
2016-09-28 17:12:00 +02:00
Jean-Sébastien Pédron 982ad65328
Fix typo: s/Multile/Multiple/ 2016-09-28 12:29:43 +02:00
Jean-Sébastien Pédron db7f0a0f38
Initial commit of RabbitMQ release handling bits
Everything comes from the rabbitmq-server repository. The goals of this
move are:
    1. separate unrelated files: the broker sources and release
       handling comprising plugins;
    2. resolve an important dependency cycle: plugins depend on the
       broker to run, but the broker depends on plugins to build a
       release.

[#130659985]
2016-09-20 18:19:24 +02:00