Page MenuHomeFreeBSD

net/rabbitmq: update to 3.8.18 and OTP24 with jit support
AbandonedPublic

Authored by dch on Dec 10 2020, 9:36 AM.

Details

Reviewers
None
Group Reviewers
Erlang
Summary

RabbitMQ has moved to a much tighter cycle of support, now that the
Erlang OTP team has also made clear their support policy is penultimate
+ current release only.

Now we have OTP24 in ports let's move to that because JIT.

  • PATH leakage fixed
  • linuxisms for /var/db/rabbitmq fixed
  • rc.d works
  • man pages use hier(7) paths

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 35289
Build 32222: arc lint + arc unit

Event Timeline

dch requested review of this revision.Dec 10 2020, 9:36 AM
  • PATH needs to have erlang23/bin prepended in all the usual places
  • HOMEDIR isn't being set properly with the amended scripts
  • o tiny cuttlefish, we miss you
  • fix more /var/lib/rabbitmq linuxisms
  • more ERL_DIR path injection

drop cuttlefish binary it has been superceded

  • damn you cuttlefish hiding in so many crevices

addressed HOMEDIR issue via RABBITMQ_MNESIA_BASE

Hi!

After seeing the significant amount of patching being done to tune the defaults to FreeBSD file hierarchy, I believe it would be way easier to install a ${LOCALBASE}/etc/rabbitmq/rabbitmq-env.conf file instead. The only patch required would be setting SYS_PREFIX in rabbitmq-defaults.

Then, the content of rabbitmq-env.conf would be:

# rabbitmq user's home.
HOME=/var/db/rabbitmq

# Adjust $PATH to default to Erlang 23.
PATH=${LOCALBASE}/lib/erlang23/bin:$PATH

# Data & log files locations.
RABBITMQ_MNESIA_BASE=${HOME}/mnesia
RABBITMQ_LOG_BASE=/var/log/rabbitmq

What do you think?

Hi!

After seeing the significant amount of patching being done to tune the defaults to FreeBSD file hierarchy, I believe it would be way easier to install a ${LOCALBASE}/etc/rabbitmq/rabbitmq-env.conf file instead. The only patch required would be setting SYS_PREFIX in rabbitmq-defaults.

Then, the content of rabbitmq-env.conf would be:

# rabbitmq user's home.
HOME=/var/db/rabbitmq

# Adjust $PATH to default to Erlang 23.
PATH=${LOCALBASE}/lib/erlang23/bin:$PATH

# Data & log files locations.
RABBITMQ_MNESIA_BASE=${HOME}/mnesia
RABBITMQ_LOG_BASE=/var/log/rabbitmq

What do you think?

this is 10x better, yes thanks! how can we handle the very common situation
of a rabbitmq-env.conf already existing, that wouldn't have these settings?

port builds, using OTP23 as baseline but runtime PATH for /var/db/rabbitmq
still defaults incorrectly to /var/lib/rabbitmq. further debugging needed.

dch retitled this revision from net/rabbitmq: update to 3.8.9 and latest OTP23 to net/rabbitmq: update to 3.8.18 and OTP24 with jit support.Jun 26 2021, 3:19 PM
dch edited the summary of this revision. (Show Details)
dch edited the test plan for this revision. (Show Details)
dch added a reviewer: Erlang.
dch added a project: Erlang.

remove PATH tweaks in favour of SYS_PREFIX introduced in 3.8.4

fix path handling
fix directory location

resolve rc.d script issues in start|stop|status

ensure HOME is set as su -m does not acquire this from GECOS info

align man pages with hier(7)

  • add permissions for /usr/local/etc/rabbitmq so they are writable by scripts
  • force locale in rabbitmq-defaults so that all scripts inherit this