Saturday, December 31, 2022

Re: [RFC v1 2/2] Use arc4random_range() instead of arc4random_uniform() when appropriate

Your proposal is junk. Not going to happen.

>From owner-misc+M195331=deraadt=cvs.openbsd.org@openbsd.org Sat Dec 31 11:19:48 2022
>Delivered-To: deraadt@cvs.openbsd.org
>DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=selector1; bh=/JVUSEqVR3
> /k8gFGm9V8QDDc/a7fMpZ1djd/RE+G3ho=; h=list-unsubscribe:list-subscribe:
> list-post:list-owner:list-id:list-help:references:in-reply-to:date:
> subject:cc:to:from; d=openbsd.org; b=9QbHsEP2Cs5GzwJFaRcKYtGgmTEdJNstk
> WG0moKjzSa7hfEBKsJsJdfiisq/xmQ6cDJ22kKl4rA0btSsjHthLFkJhvak9A132n8Pyv0
> wHmF/q53tJzAvwHHCPGNFmCMXdKVzN/k2IQUyrA/USls/x58VaRfuLYO2ooxbL3pPr9sSj
> Vi8PjayN3X1XksgfEJZj38LMOv8l2knvBBYrubQmLM21+bY1ilB6kq7yPUs/BneF7lG0Gt
> lgAGRJitijIAy8hZzgbgZEfs49Bx1Q5hT0Bw7T7OH6EkWtQ5ez59TiUzRWGXRkQSRAaTPy
> JyU3jjcTVd/NV3BmkdVTjMBONmpuQ==
>X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
> d=1e100.net; s=20210112;
> h=content-transfer-encoding:mime-version:references:in-reply-to
> :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
> :subject:date:message-id:reply-to;
> bh=2UYUeZysQqtf/KOzlblpSVrwo2fzTbMjuWtz4tikOe0=;
> b=URJZ9YXpK7xe7laZ33ubdezrA7RmZ3aI+F8YaDpyZ8BuETxr7k+J6TzjjXbjvzj+vm
> kxI3RFU0zRcggCh/Xt6lIRYxViBYS2SuA7JB1VsDDAOrOwpRSq5s3ryoTggMtlFj4zD/
> HpWkBBML0zkmoLQHYmdk8jSx2gKUGpDdJaIA8uUD6mIkmZlxKEFMRagUyisXR8O5RH6W
> P23r5w9dlLu7sPfHCHDkwR76xUTp97+yVgHsKzcAc9OlLsKr0+aacNq8uuXQhztxNY3W
> JgQc5MhOOahuEI97xN8xI3L0e6BKFZmNS5vvUCLXEiFdt7jbx2JbZ9czZSeZwa87p6Wn
> Ru1g==
>X-Gm-Message-State: AFqh2krJps2B1CZ8kRCvS5Dm15CqO5h8/P3AzqvbHRPKj9lPOh8DWcFW
> ypZJNU0vfcYp+NudScdH0MILST5jvj8=
>X-Google-Smtp-Source: AMrXdXuh8Ked2AQA4K81PjC0dktKBv52w3jykbg/aF2xwJVEjOAuMNvGippMa6MPtJ+V948C79+izw==
>X-Received: by 2002:a05:600c:500a:b0:3d3:5b56:b834 with SMTP id n10-20020a05600c500a00b003d35b56b834mr25309242wmr.5.1672510739398;
> Sat, 31 Dec 2022 10:18:59 -0800 (PST)
>From: Alejandro Colomar <alx.manpages@gmail.com>
>X-Google-Original-From: Alejandro Colomar <alx@kernel.org>
>To: misc@openbsd.org
>Cc: Alejandro Colomar <alx@kernel.org>,
> schwarze@openbsd.org
>Subject: [RFC v1 2/2] Use arc4random_range() instead of arc4random_uniform() when appropriate
>Date: Sat, 31 Dec 2022 19:18:56 +0100
>X-Mailer: git-send-email 2.39.0
>In-Reply-To: <20221231181856.13173-1-alx@kernel.org>
>References: <20221231181856.13173-1-alx@kernel.org>
>MIME-Version: 1.0
>Content-Transfer-Encoding: 8bit
>List-Help: <mailto:majordomo@openbsd.org?body=help>
>List-ID: <misc.openbsd.org>
>List-Owner: <mailto:owner-misc@openbsd.org>
>List-Post: <mailto:misc@openbsd.org>
>List-Subscribe: <mailto:majordomo@openbsd.org?body=sub%20misc>
>List-Unsubscribe: <mailto:majordomo@openbsd.org?body=unsub%20misc>
>X-Loop: misc@openbsd.org
>Precedence: list
>Sender: owner-misc@openbsd.org
>
>This makes the code much more readable and self-documented. While doing
>this, I noticed a few bugs, and other cases which may be bugs or not.
>Switching to this specialized API makes it easier to spot such bugs, but
>since I'm not familiar with the code, I kept some bugs unfixed. The
>most obvious ones (although I may be wrong) I fixed them. And in some
>cases where it was very unclear, I didn't touch the old *_uniform() code.
>
>Below are the cases where I changed the behavior (I considered it a bug):
>
>* usr.bin/ssh/auth.c:
>
> - *cp = hashchars[arc4random_uniform(sizeof(hashchars) - 1)];
> + *cp = hashchars[arc4random_range(0, sizeof(hashchars) - 1)];
>
>* usr.sbin/ftp-proxy/ftp-proxy.c:
>
> - return (IPPORT_HIFIRSTAUTO +
> - arc4random_uniform(IPPORT_HILASTAUTO - IPPORT_HIFIRSTAUTO));
> + return arc4random_range(IPPORT_HIFIRSTAUTO, IPPORT_HILASTAUTO);
>
>* usr.sbin/rad/engine.c:
>
> - tv.tv_sec = MIN_RTR_ADV_INTERVAL +
> - arc4random_uniform(MAX_RTR_ADV_INTERVAL - MIN_RTR_ADV_INTERVAL);
> + tv.tv_sec = arc4random_range(MIN_RTR_ADV_INTERVAL, MAX_RTR_ADV_INTERVAL);
>
>In the following change, I didn't use the temporary variable 'num3'.
>AFAICS, this doesn't affect other uses of the variable in other places,
>because they set it before use. But please check carefully; I may have
>missed something:
>
>* usr.sbin/cron/entry.c:
>
> - /* get a random number in the interval [num1, num2]
> - */
> - num3 = num1;
> - num1 = arc4random_uniform(num2 - num3 + 1) + num3;
> + num1 = arc4random_range(num1, num2);
>
>Signed-off-by: Alejandro Colomar <alx@kernel.org>
>---
> games/boggle/boggle/bog.c | 2 +-
> games/canfield/canfield/canfield.c | 2 +-
> games/mille/init.c | 2 +-
> gnu/gcc/gcc/cfgexpand.c | 2 +-
> lib/libevent/select.c | 2 +-
> regress/lib/libc/malloc/malloc_general/malloc_general.c | 2 +-
> regress/sys/sys/tree/rb/rb-test.c | 3 +--
> regress/sys/sys/tree/splay/splay-test.c | 3 +--
> sbin/iked/ikev2.c | 2 +-
> sys/dev/pci/drm/drm_linux.c | 2 +-
> sys/dev/pci/drm/include/linux/random.h | 2 +-
> sys/kern/kern_fork.c | 2 +-
> sys/net/if_spppsubr.c | 7 ++-----
> sys/net/pf.c | 2 +-
> sys/net/pf_lb.c | 4 ++--
> sys/netinet/ip_ipsp.c | 2 +-
> usr.bin/nc/netcat.c | 2 +-
> usr.bin/skeyinit/skeyinit.c | 2 +-
> usr.bin/ssh/auth.c | 2 +-
> usr.sbin/cron/entry.c | 5 +----
> usr.sbin/ftp-proxy/ftp-proxy.c | 3 +--
> usr.sbin/pppd/chap.c | 5 +----
> usr.sbin/rad/engine.c | 3 +--
> usr.sbin/relayd/shuffle.c | 2 +-
> 24 files changed, 26 insertions(+), 39 deletions(-)
>
>diff --git a/games/boggle/boggle/bog.c b/games/boggle/boggle/bog.c
>index c0e19454a27..3ed4888fc43 100644
>--- a/games/boggle/boggle/bog.c
>+++ b/games/boggle/boggle/bog.c
>@@ -607,7 +607,7 @@ newgame(char *b)
> /* Shuffle the cubes using Fisher-Yates (aka Knuth P). */
> p = ncubes;
> while (--p) {
>- q = (int)arc4random_uniform(p + 1);
>+ q = (int)arc4random_range(0, p);
> tmp = cubes[p];
> cubes[p] = cubes[q];
> cubes[q] = tmp;
>diff --git a/games/canfield/canfield/canfield.c b/games/canfield/canfield/canfield.c
>index 346fd20a1d2..dec75f6531f 100644
>--- a/games/canfield/canfield/canfield.c
>+++ b/games/canfield/canfield/canfield.c
>@@ -531,7 +531,7 @@ shuffle(struct cardtype *deck[])
> deck[i]->paid = FALSE;
> }
> for (i = decksize - 1; i > 0; i--) {
>- j = arc4random_uniform(i + 1);
>+ j = arc4random_range(0, i);
> if (i != j) {
> temp = deck[i];
> deck[i] = deck[j];
>diff --git a/games/mille/init.c b/games/mille/init.c
>index a86157739dd..c0cc6ac1f02 100644
>--- a/games/mille/init.c
>+++ b/games/mille/init.c
>@@ -90,7 +90,7 @@ shuffle(void)
> CARD temp;
>
> for (i = DECK_SZ - 1; i > 0; i--) {
>- r = arc4random_uniform(i + 1);
>+ r = arc4random_range(0, i);
> temp = Deck[r];
> Deck[r] = Deck[i];
> Deck[i] = temp;
>diff --git a/gnu/gcc/gcc/cfgexpand.c b/gnu/gcc/gcc/cfgexpand.c
>index 17aff165f6d..0cb8a21289b 100644
>--- a/gnu/gcc/gcc/cfgexpand.c
>+++ b/gnu/gcc/gcc/cfgexpand.c
>@@ -438,7 +438,7 @@ partition_stack_vars (void)
> for (si = n - 1; si > 0; si--)
> {
> size_t tmp;
>- sj = arc4random_uniform(si + 1);
>+ sj = arc4random_range(0, si);
>
> tmp = stack_vars_sorted[si];
> stack_vars_sorted[si] = stack_vars_sorted[sj];
>diff --git a/lib/libevent/select.c b/lib/libevent/select.c
>index fb38b850155..8d5ff6ff34f 100644
>--- a/lib/libevent/select.c
>+++ b/lib/libevent/select.c
>@@ -155,7 +155,7 @@ select_dispatch(struct event_base *base, void *arg, struct timeval *tv)
> event_debug(("%s: select reports %d", __func__, res));
>
> check_selectop(sop);
>- i = arc4random_uniform(sop->event_fds + 1);
>+ i = arc4random_range(0, sop->event_fds);
> for (j = 0; j <= sop->event_fds; ++j) {
> struct event *r_ev = NULL, *w_ev = NULL;
> if (++i >= sop->event_fds+1)
>diff --git a/regress/lib/libc/malloc/malloc_general/malloc_general.c b/regress/lib/libc/malloc/malloc_general/malloc_general.c
>index b243787bcf7..3980ed5e277 100644
>--- a/regress/lib/libc/malloc/malloc_general/malloc_general.c
>+++ b/regress/lib/libc/malloc/malloc_general/malloc_general.c
>@@ -27,7 +27,7 @@
> size_t
> size(void)
> {
>- int p = arc4random_uniform(17) + 3;
>+ int p = arc4random_range(3, 19);
> return arc4random_uniform(1 << p);
> }
>
>diff --git a/regress/sys/sys/tree/rb/rb-test.c b/regress/sys/sys/tree/rb/rb-test.c
>index 409cc22393a..5bf54013d95 100644
>--- a/regress/sys/sys/tree/rb/rb-test.c
>+++ b/regress/sys/sys/tree/rb/rb-test.c
>@@ -67,8 +67,7 @@ main(int argc, char **argv)
> tmp = malloc(sizeof(struct node));
> if (tmp == NULL) err(1, "malloc");
> do {
>- tmp->key = arc4random_uniform(MAX-MIN);
>- tmp->key += MIN;
>+ tmp->key = arc4random_uniform(MIN, MAX - 1);
> } while (RB_FIND(tree, &root, tmp) != NULL);
> if (i == 0)
> max = min = tmp->key;
>diff --git a/regress/sys/sys/tree/splay/splay-test.c b/regress/sys/sys/tree/splay/splay-test.c
>index 56084a0c71e..69c9e87fa6c 100644
>--- a/regress/sys/sys/tree/splay/splay-test.c
>+++ b/regress/sys/sys/tree/splay/splay-test.c
>@@ -67,8 +67,7 @@ main(int argc, char **argv)
> tmp = malloc(sizeof(struct node));
> if (tmp == NULL) err(1, "malloc");
> do {
>- tmp->key = arc4random_uniform(MAX-MIN);
>- tmp->key += MIN;
>+ tmp->key = arc4random_range(MIN, MAX - 1);
> } while (SPLAY_FIND(tree, &root, tmp) != NULL);
> if (i == 0)
> max = min = tmp->key;
>diff --git a/sbin/iked/ikev2.c b/sbin/iked/ikev2.c
>index 9579b8a2ea5..3b4566bb3ae 100644
>--- a/sbin/iked/ikev2.c
>+++ b/sbin/iked/ikev2.c
>@@ -7186,7 +7186,7 @@ ikev2_cp_setaddr_pool(struct iked *env, struct iked_sa *sa,
> if (upper < lower)
> upper = lower;
> /* Randomly select start from [lower, upper-1] */
>- start = arc4random_uniform(upper - lower) + lower;
>+ start = arc4random_range(lower, upper - 1);
>
> for (host = start;;) {
> log_debug("%s: mask %x start %x lower %x host %x upper %x",
>diff --git a/sys/dev/pci/drm/drm_linux.c b/sys/dev/pci/drm/drm_linux.c
>index 2b975cda9fb..4e5aa29c228 100644
>--- a/sys/dev/pci/drm/drm_linux.c
>+++ b/sys/dev/pci/drm/drm_linux.c
>@@ -776,7 +776,7 @@ idr_alloc(struct idr *idr, void *ptr, int start, int end, gfp_t gfp_mask)
> end = INT_MAX;
>
> #ifdef notyet
>- id->id = begin = start + arc4random_uniform(end - start);
>+ id->id = begin = arc4random_range(start, end - 1);
> #else
> id->id = begin = start;
>

Re: Possible off-by-one bug in usr.sbin/rad/engine.c

On 2022-12-31 23:54 +01, Ingo Schwarze <schwarze@usta.de> wrote:
> Hi Alejandro,
>
> Alejandro Colomar wrote on Sat, Dec 31, 2022 at 05:56:27PM +0100:
>
>> I've started auditing the OpenBSD source code after the discussion on
>> arc4random_uniform(3) and my suggestion of arc4random_range() on the glibc
>> mailing list.
>>
>> I found some cases where it seems like there's an off-by-one bug, which
>> would be solved by providing arc4random_range(). I'll show here one,
>> to confirm that it's a bug, and if you confirm it, I'll continue fixing
>> similar bugs around the OpenBSD tree.
>>
>> Here's the first one I found, which I hope is fixed by my patch:
>>
>>
>> diff --git a/usr.sbin/rad/engine.c b/usr.sbin/rad/engine.c
>> index ceb11d574e3..a61ea3835a6 100644
>> --- a/usr.sbin/rad/engine.c
>> +++ b/usr.sbin/rad/engine.c
>> @@ -641,8 +641,7 @@ iface_timeout(int fd, short events, void *arg)
>> struct imsg_send_ra send_ra;
>> struct timeval tv;
>>
>> - tv.tv_sec = MIN_RTR_ADV_INTERVAL +
>> - arc4random_uniform(MAX_RTR_ADV_INTERVAL - MIN_RTR_ADV_INTERVAL);
>> + tv.tv_sec = arc4random_range(MIN_RTR_ADV_INTERVAL, MAX_RTR_ADV_INTERVAL);
>> tv.tv_usec = arc4random_uniform(1000000);
>
> Currently, the code puts a number in the range [200, 600) in tv_sec
> and a random number of microseconds into tv_usec,
> i.e. the timeout will be greater than or equal to 200 seconds
> and strictly less than 600 seconds with a uniform distribution.
>
> Isn't that exactly what is intended?
>
>> log_debug("%s new timeout in %lld", __func__, tv.tv_sec);
>>
>>
>> If I'm correct, it should have been 'min + (max - min + 1)' instead
>> of 'min + (max - min)'. Please confirm.
>
> With your change, the timeout could go up to 600.999999, i.e. almost 601
> seconds. I don't know the protocol and can't say whether the change
> would matter, but naively, exceeding the MAX_ feels surprising to me.
>
> Really, this doesn't look like a bug to me...

Unfortunately the OP did not explain why they think this is a bug.

>
> Yours,
> Ingo

--
I'm not entirely sure you are real.

UPDATE: handbrake 1.6.0

Here is an update to HandBrake 1.6.0.

I did a bit of cleaning up after upstreaming the local patches.

https://github.com/HandBrake/HandBrake/releases/tag/1.6.0


Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/Makefile,v
retrieving revision 1.17
diff -u -p -u -p -r1.17 Makefile
--- Makefile 30 Dec 2022 00:13:29 -0000 1.17
+++ Makefile 1 Jan 2023 05:56:39 -0000
@@ -1,8 +1,8 @@
-V = 1.3.3
COMMENT = open source video transcoder
+
+V = 1.6.0
DISTNAME = HandBrake-${V}-source
PKGNAME = handbrake-${V}
-REVISION = 5
EXTRACT_SUFX = .tar.bz2
CATEGORIES = multimedia x11

@@ -12,20 +12,20 @@ MAINTAINER = Brian Callahan <bcallah@ope
# GPLv2 only
PERMIT_PACKAGE = Yes

-WANTLIB += ${COMPILER_LIBCXX} X11 Xau Xcomposite Xcursor Xdamage
-WANTLIB += Xdmcp Xext Xfixes Xi Xinerama Xrandr Xrender aom ass
-WANTLIB += atk-1.0 atk-bridge-2.0 atspi avcodec avfilter avformat
-WANTLIB += avutil bluray bz2 c cairo cairo-gobject
-WANTLIB += crypto dav1d dbus-1 dvdnav dvdread epoxy execinfo expat
-WANTLIB += ffi fontconfig freetype fribidi gdk-3 gdk_pixbuf-2.0
-WANTLIB += gio-2.0 glib-2.0 gmodule-2.0 gobject-2.0 graphite2
-WANTLIB += gsm gstaudio-1.0 gstbase-1.0 gstpbutils-1.0 gstreamer-1.0
-WANTLIB += gsttag-1.0 gstvideo-1.0 gthread-2.0 gtk-3 harfbuzz
-WANTLIB += iconv intl jansson jpeg lzma m mp3lame ogg opus orc-0.4
-WANTLIB += pango-1.0 pangocairo-1.0 pangoft2-1.0 pcre2-8 pixman-1
-WANTLIB += png postproc speex ssl swresample swscale theoradec
-WANTLIB += theoraenc udfread vidstab vorbis vorbisenc vpx x264
-WANTLIB += x265 xcb xcb-render xcb-shm xml2 xvidcore z zimg
+WANTLIB += ${COMPILER_LIBCXX} SvtAv1Enc X11 Xau Xcomposite Xcursor
+WANTLIB += Xdamage Xdmcp Xext Xfixes Xi Xinerama Xrandr Xrender
+WANTLIB += aom ass atk-1.0 atk-bridge-2.0 atspi avcodec avfilter
+WANTLIB += avformat avutil bluray bz2 c cairo cairo-gobject crypto
+WANTLIB += dav1d dbus-1 dvdnav dvdread epoxy execinfo expat ffi
+WANTLIB += fontconfig freetype fribidi gdk-3 gdk_pixbuf-2.0 gio-2.0
+WANTLIB += glib-2.0 gmodule-2.0 gobject-2.0 graphite2 gsm gstaudio-1.0
+WANTLIB += gstbase-1.0 gstpbutils-1.0 gstreamer-1.0 gsttag-1.0
+WANTLIB += gstvideo-1.0 gthread-2.0 gtk-3 harfbuzz iconv intl
+WANTLIB += jansson jpeg lzma m mp3lame ogg opus orc-0.4 pango-1.0
+WANTLIB += pangocairo-1.0 pangoft2-1.0 pcre2-8 pixman-1 png postproc
+WANTLIB += speex ssl swresample swscale theoradec theoraenc turbojpeg
+WANTLIB += udfread vidstab vorbis vorbisenc vpx x264 x265 xcb
+WANTLIB += xcb-render xcb-shm xml2 xvidcore z zimg

MASTER_SITES = https://github.com/HandBrake/HandBrake/releases/download/${V}/

@@ -40,17 +40,32 @@ BUILD_DEPENDS = devel/autoconf/${AUTOCON
devel/libtool \
textproc/intltool

-LIB_DEPENDS = devel/jansson \
- devel/orc \
+LIB_DEPENDS = archivers/bzip2 \
+ archivers/xz \
+ audio/lame \
+ audio/libogg \
+ audio/libvorbis \
+ audio/opus \
+ audio/speex \
+ converters/libiconv \
+ devel/fribidi \
+ devel/harfbuzz \
+ devel/jansson \
+ devel/libdvdread \
graphics/ffmpeg \
+ graphics/jpeg \
+ graphics/zimg \
multimedia/aom \
+ multimedia/libass \
multimedia/libbluray \
multimedia/gstreamer1/plugins-base \
multimedia/libdvdnav \
multimedia/libtheora \
multimedia/libvpx \
+ multimedia/svt-av1 \
multimedia/x264 \
multimedia/x265 \
+ textproc/libxml \
x11/gtk+3

RUN_DEPENDS = devel/desktop-file-utils \
@@ -60,8 +75,6 @@ SEPARATE_BUILD = Yes

CONFIGURE_STYLE = simple
CONFIGURE_SCRIPT = ${MODPY_BIN} ${WRKSRC}/make/configure.py
-CONFIGURE_ARGS = --disable-gtk-update-checks \
- --enable-x265

# Yes, autoconf is called *during* the build but not at configure time...
USE_GMAKE = Yes
@@ -70,22 +83,20 @@ MAKE_ENV = AUTOCONF_VERSION="${AUTOCONF_
AUTOMAKE_VERSION="${AUTOMAKE_VERSION}" \
MKDIR_P='/bin/mkdir -p'
MAKE_FILE = GNUmakefile
-MAKE_FLAGS = CFLAGS="${CFLAGS} -I${LOCALBASE}/include/libxml2 -D_NO_UPDATE_CHECK" \
- LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib -L${X11BASE}/lib -lx265 -liconv"
+MAKE_FLAGS = CFLAGS="${CFLAGS}" \
+ LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib"

.if ${MACHINE_ARCH:Mi386}
CFLAGS += -msse2
CXXFLAGS += -msse2
.endif

-AUTOCONF_VERSION = 2.69
+CFLAGS+= -D_NO_UPDATE_CHECK
+
+AUTOCONF_VERSION = 2.71
AUTOMAKE_VERSION = 1.16

WRKDIST = ${WRKDIR}/HandBrake-${V}
-
-post-extract:
- ln -s ${WRKSRC}/make/variant/freebsd.defs \
- ${WRKSRC}/make/variant/openbsd.defs

post-install:
ln -s ${TRUEPREFIX}/bin/ghb ${PREFIX}/bin/HandBrake
Index: distinfo
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/distinfo,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 distinfo
--- distinfo 20 Jun 2020 21:12:38 -0000 1.5
+++ distinfo 1 Jan 2023 05:56:39 -0000
@@ -1,2 +1,2 @@
-SHA256 (HandBrake-1.3.3-source.tar.bz2) = IYo32V9ItefPKFNj06sWwxTZdienpxDKs3WJAq6Hf4U=
-SIZE (HandBrake-1.3.3-source.tar.bz2) = 16804119
+SHA256 (HandBrake-1.6.0-source.tar.bz2) = fyPHYDi3vzKQidDrM8FImEAPzAQm4xDofcEeU4wQPNo=
+SIZE (HandBrake-1.6.0-source.tar.bz2) = 15968851
Index: patches/patch-gtk_configure_ac
===================================================================
RCS file: /cvs/ports/multimedia/handbrake/patches/patch-gtk_configure_ac,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 patch-gtk_configure_ac
--- patches/patch-gtk_configure_ac 11 Mar 2022 19:39:19 -0000 1.5
+++ patches/patch-gtk_configure_ac 1 Jan 2023 05:56:39 -0000
@@ -1,25 +1,14 @@
Get the proper library directory for -lhandbrake.
-No -ldl on OpenBSD.

Index: gtk/configure.ac
--- gtk/configure.ac.orig
+++ gtk/configure.ac
-@@ -199,7 +199,7 @@ AM_CONDITIONAL([GHB_GTK_3_16], [test "$HAVE_GTK_316" -
+@@ -203,7 +203,7 @@ AM_CONDITIONAL([GHB_GTK_3_16], [test "$HAVE_GTK_316" -

AM_CONDITIONAL([MINGW], [test "x$mingw_flag" = "xyes"])

--HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -llzma"
-+HB_LIBS="-L../../libhb $HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -llzma"
+-HB_LIBS="$HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -lSvtAv1Enc"
++HB_LIBS="-L../../libhb $HB_LIBS -lhandbrake -lavformat -lavfilter -lavcodec -lavutil -ldav1d -lswresample -lpostproc -ldvdnav -ldvdread -lmp3lame -lvorbis -lvorbisenc -logg -lswscale -ltheoraenc -ltheoradec -lvpx -lz -lbz2 -lbluray -lass -lfontconfig -lfreetype -lxml2 -ljansson -lopus -lspeex -lturbojpeg -llzma -lzimg -lSvtAv1Enc"
HB_CPPFLAGS="$HB_CPPFLAGS $HBINC"

PKG_CHECK_MODULES([x264], [x264], sys_x264=yes, sys_x264=no)
-@@ -236,6 +236,9 @@ case $host in
- HB_LIBS="$HB_LIBS -lbcrypt -lregex -luuid -lole32"
- ;;
- *-*-freebsd*)
-+ HB_LIBS="$HB_LIBS -lpthread"
-+ ;;
-+ *-*-openbsd*)
- HB_LIBS="$HB_LIBS -lpthread"
- ;;
- *-*-netbsd*)
Index: patches/patch-gtk_src_callbacks_c
===================================================================
RCS file: patches/patch-gtk_src_callbacks_c
diff -N patches/patch-gtk_src_callbacks_c
--- patches/patch-gtk_src_callbacks_c 11 Mar 2022 19:39:19 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-We need this include too.
-
-Index: gtk/src/callbacks.c
---- gtk/src/callbacks.c.orig
-+++ gtk/src/callbacks.c
-@@ -43,7 +43,7 @@
- #include <gudev/gudev.h>
-

Re: Possible off-by-one bug in usr.sbin/rad/engine.c

Hi Alejandro,

Alejandro Colomar wrote on Sat, Dec 31, 2022 at 05:56:27PM +0100:

> I've started auditing the OpenBSD source code after the discussion on
> arc4random_uniform(3) and my suggestion of arc4random_range() on the glibc
> mailing list.
>
> I found some cases where it seems like there's an off-by-one bug, which
> would be solved by providing arc4random_range(). I'll show here one,
> to confirm that it's a bug, and if you confirm it, I'll continue fixing
> similar bugs around the OpenBSD tree.
>
> Here's the first one I found, which I hope is fixed by my patch:
>
>
> diff --git a/usr.sbin/rad/engine.c b/usr.sbin/rad/engine.c
> index ceb11d574e3..a61ea3835a6 100644
> --- a/usr.sbin/rad/engine.c
> +++ b/usr.sbin/rad/engine.c
> @@ -641,8 +641,7 @@ iface_timeout(int fd, short events, void *arg)
> struct imsg_send_ra send_ra;
> struct timeval tv;
>
> - tv.tv_sec = MIN_RTR_ADV_INTERVAL +
> - arc4random_uniform(MAX_RTR_ADV_INTERVAL - MIN_RTR_ADV_INTERVAL);
> + tv.tv_sec = arc4random_range(MIN_RTR_ADV_INTERVAL, MAX_RTR_ADV_INTERVAL);
> tv.tv_usec = arc4random_uniform(1000000);

Currently, the code puts a number in the range [200, 600) in tv_sec
and a random number of microseconds into tv_usec,
i.e. the timeout will be greater than or equal to 200 seconds
and strictly less than 600 seconds with a uniform distribution.

Isn't that exactly what is intended?

> log_debug("%s new timeout in %lld", __func__, tv.tv_sec);
>
>
> If I'm correct, it should have been 'min + (max - min + 1)' instead
> of 'min + (max - min)'. Please confirm.

With your change, the timeout could go up to 600.999999, i.e. almost 601
seconds. I don't know the protocol and can't say whether the change
would matter, but naively, exceeding the MAX_ feels surprising to me.

Really, this doesn't look like a bug to me...

Yours,
Ingo

[Maintainer Update] databases/sqlcipher 4.5.2 -> 4.5.3

Hi all,

Here is an update for databases/sqlcipher that updates it to v4.5.3
which was released on December 19th. Changelog:

Updates baseline to upstream SQLite 3.39.4

Checked the shared library and no functions were added or removed so
it's not been cranked.

Thanks,
Tom

Index: Makefile
===================================================================
RCS file: /cvs/ports/databases/sqlcipher/Makefile,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 Makefile
--- Makefile 16 Oct 2022 15:59:04 -0000 1.5
+++ Makefile 31 Dec 2022 22:04:58 -0000
@@ -2,7 +2,7 @@ COMMENT = encrypted SQLite database

GH_ACCOUNT = sqlcipher
GH_PROJECT = sqlcipher
-GH_TAGNAME = v4.5.2
+GH_TAGNAME = v4.5.3

SHARED_LIBS += sqlcipher 0.3 # 8.6

Index: distinfo
===================================================================
RCS file: /cvs/ports/databases/sqlcipher/distinfo,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 distinfo
--- distinfo 16 Oct 2022 15:59:04 -0000 1.4
+++ distinfo 31 Dec 2022 22:04:58 -0000
@@ -1,2 +1,2 @@
-SHA256 (sqlcipher-4.5.2.tar.gz) = aSXwEt61WC45dhp9SBaIPMFbQYUajnC0R8IjuO9Abio=
-SIZE (sqlcipher-4.5.2.tar.gz) = 18371300
+SHA256 (sqlcipher-4.5.3.tar.gz) = XJ1nLrpr5NBamoFw9wFw5Teuc1oJw95ESorWKbWV1eI=
+SIZE (sqlcipher-4.5.3.tar.gz) = 18372471

aarch64 bulk build report

bulk build on arm64.ports.openbsd.org
started on Thu Dec 29 08:31:13 MST 2022
finished at Sat Dec 31 14:20:51 MST 2022
lasted 2D05h49m
done with kern.version=OpenBSD 7.2-current (GENERIC.MP) #1947: Wed Dec 28 14:24:23 MST 2022

built packages:11527
Dec 29:3675
Dec 30:1604
Dec 31:6247


critical path missing pkgs: http://build-failures.rhaalovely.net/aarch64/2022-12-29/summary.log

build failures: 4
http://build-failures.rhaalovely.net/aarch64/2022-12-29/devel/quirks.log
http://build-failures.rhaalovely.net/aarch64/2022-12-29/games/naev,-data.log
http://build-failures.rhaalovely.net/aarch64/2022-12-29/sysutils/py-filelock,python3.log
http://build-failures.rhaalovely.net/aarch64/2022-12-29/textproc/catfish.log

recurrent failures
new failures
+++ ls-failures Sat Dec 31 14:22:24 2022
+failures/devel/quirks.log
+failures/games/naev,-data.log
+failures/sysutils/py-filelock,python3.log
+failures/textproc/catfish.log
resolved failures
--- ../old/aarch64/last//ls-failures Tue Dec 27 09:44:25 2022

Re: [RFC v1 1/2] Add arc4random_range(min, max)

Hi Alexandro,

i fail to see the point. We do not usually add extra functions
if the same effect can be be attained with one-liners. There is
significant value in keeping the API as small as possible, it
makes the API easier to learn and it makes programming mistakes
less likely. On top of that, code using the one-liner is usually
easier to read than code involving yet another wrapper.

On top of that, consider that arc4random_uniform(upper_bound)
produces a number in [0, upper_bound), *not* in [0, upper_bound].
Consistency of an API is similarly important as smallness.
So introducing a variant that produces [min, max] rather than
[min, max) looks like a non-starter to me. You are setting a
giant trap provoking off-by-one errors!

Some additional comments follow in-line, even though i doubt they
matter much: i think that nothing should be added, and you did not
provide any rationale why this might be needed.


Alejandro Colomar wrote on Sat, Dec 31, 2022 at 07:18:55PM +0100:

> diff --git a/include/stdlib.h b/include/stdlib.h
> index ab8a2ae90c3..16b7dc43afc 100644
> --- a/include/stdlib.h
> +++ b/include/stdlib.h
> @@ -313,6 +313,7 @@ u_quad_t strtouq(const char *__restrict, char **__restrict, int);
>
> uint32_t arc4random(void);
> uint32_t arc4random_uniform(uint32_t);
> +uint32_t arc4random_uniform(uint32_t, uint32_t);

Uh oh. That looks doubleplusungood.

> --- a/lib/libc/crypt/arc4random.3
> +++ b/lib/libc/crypt/arc4random.3
> @@ -46,6 +46,8 @@
[...]
> @@ -95,16 +97,47 @@
> In the worst case, this function may consume multiple iterations
> to ensure uniformity; see the source code to understand the problem
> and solution.
> +.Pp
> +.Fn arc4random_range
> +is similar to
> +.Fn arc4random_uniform ,

I very strongly object to this description. I is an outright lie!
arc4random_uniform -> upper_bound) *exclusive*
arc4random_range -> upper_bound] *inclusive*

> +and will return a single 32-bit value,

The word "will" is unwelcome in manual pages, unless you have
some exceptional justification why it is needed in a particular case.

> +uniformly distributed,
> +within the inclusive range
> +.Pf [ Fa min ,
> +.Fa max ].
> +If the arguments are reversed,
> +that is,
> +if
> +.Fa max
> +<
> +.Fa min ,
> +it will return a single 32-bit value,
> +uniformly distributed,
> +outside of the exclusive range
> +.Pf ( Fa max ,
> +.Fa min ).

Is this ever needed in practice?
It sounds complicated and confusing.
We should not add API specifications just because we can,
espially not in libc.

> .Sh RETURN VALUES
> These functions are always successful, and no return value is
> reserved to indicate an error.
> +.Sh CAVEATS
> +.Fn arc4random_range
> +doesn't produce correct output when
> +.Fa max
> +==
> +.Fa min
> +- 1.

Looks like a landmark symptom of bad API design: setting a trap for
the unwary with no good reason. We should not provide bad API
functions and then document their shortcomings.

> .Sh SEE ALSO
> .Xr rand 3 ,
> .Xr rand48 3 ,
> .Xr random 3
> .Sh HISTORY
> These functions first appeared in
> -.Ox 2.1 .
> +.Ox 2.1 ,
> +except
> +.Fn arc4random_range ,
> +which appeared in
> +.Ox XXX .
> .Pp
> The original version of this random number generator used the
> RC4 (also known as ARC4) algorithm.
> diff --git a/lib/libc/crypt/arc4random_uniform.c b/lib/libc/crypt/arc4random_uniform.c
> index a18b5b12381..40957910b96 100644
> --- a/lib/libc/crypt/arc4random_uniform.c
> +++ b/lib/libc/crypt/arc4random_uniform.c
> @@ -2,6 +2,7 @@
>
> /*
> * Copyright (c) 2008, Damien Miller <djm@openbsd.org>
> + * Copyright (c) 2022, Alejandro Colomar <alx@kernel.org>

Adding a Copyright notice is inappropriate in most parts of OpenBSD
except for the main authors of the file. Merely adding something
that is Copyright-worthy is not enough. Besides, i suspect your
patch reaches the Copyright threshold only due to the comment -
the function itself is likely trivial even according to the low
threshold of Copyright law.

Yours,
Ingo

> *
> * Permission to use, copy, modify, and distribute this software for any
> * purpose with or without fee is hereby granted, provided that the above
> @@ -55,3 +56,14 @@ arc4random_uniform(uint32_t upper_bound)
> return r % upper_bound;
> }
> DEF_WEAK(arc4random_uniform);
> +
> +/*
> + * Calculate a uniformly-distributed random number in the range [min, max],
> + * avoiding bias.
> + */
> +uint32_t
> +arc4random_range(uint32_t min, uint32_t max)
> +{
> + return arc4random_uniform(max - min + 1) + min;
> +}
> +DEF_WEAK(arc4random_range);
[...]

Re: Some NFS clients won't mount

I did some tests and I'm now pretty sure the problem revolves around
the point naddy made: Kodi and VLC try to mount my NFS share through a
non-privileged port. As both Kodi and VLC use the same NFS client
library (libnfs), I tried to find out a bit more about how it works.
According to its readme, libnfs uses standard NFS ports when run as
root and non-privileged ports when run non-root. Here is the relevant
part of the readme file: "When running as root, libnfs tries to
allocate a system port for its connection to the NFS server. When
running as non-root it will use a normal ephemeral port". I find it
strange that a client library should be run as root in order to use a
privileged port. My (very poor, I confess) understanding was that only
server processes should be run as root in order to use privileged
ports. Anyway, as things stand I can only mount my OpenBSD NFS shares
if the client is run as root, since the usual way to circumvent this
problem on the server side (set the insecure flag on exports) is not
available on OpenBSD and, I hope, won't ever be. As I don't have root
access to my Fire Stick TV, there is no way to mount my OpenBSD NFS
shares on it. As I'm no expert on security though, I'd like an opinion
from you guys regarding this: is it reasonable to require an NFS
client to be run as root?

Best,
Vitor



Em sex., 30 de dez. de 2022 às 15:20, Bodie <bodie@bodie.cz> escreveu:
>
> On Fri Dec 30, 2022 at 3:59 PM CET, vitmaubra@gmail.com wrote:
> > Thank you guys for the tips. I think naddy is right, which means I was
> > wrong in thinking that I finally had a doubt that couldn't be solved
> > by OpenBSD's manuals. I'll do some tests and report back on this
> > thread soon.
>
> Don't forget to check firewall as NFSv4 from your Fedora 34 has
> way less requirements then NFSv3 served by OpenBSD
>
> You can compare 'rpcinfo -p localhost' on your OpenBSD server
> vs same command remotely from client (with proper hostname/IP)
>
> And NFSv3 is by default UDP while NFSv4 is TCP
>
> >
> > Best,
> > Vitor
> >
> > Em qui., 29 de dez. de 2022 às 16:55, Christian Weisgerber
> > <naddy@mips.inka.de> escreveu:
> > >
> > > "vitmaubra@gmail.com":
> > >
> > > > My /var/log/daemon regarding the issue:
> > > > mountd[91001]: Refused mount RPC from host 192.168.1.4 port 57264
> > >
> > > The client's mount request didn't come from a reserved port, i.e. <1024.
> > > OpenBSD's mountd(8) does not accept this.
> > >
> > > --
> > > Christian "naddy" Weisgerber naddy@mips.inka.de
>

[RFC v1 2/2] Use arc4random_range() instead of arc4random_uniform() when appropriate

This makes the code much more readable and self-documented. While doing
this, I noticed a few bugs, and other cases which may be bugs or not.
Switching to this specialized API makes it easier to spot such bugs, but
since I'm not familiar with the code, I kept some bugs unfixed. The
most obvious ones (although I may be wrong) I fixed them. And in some
cases where it was very unclear, I didn't touch the old *_uniform() code.

Below are the cases where I changed the behavior (I considered it a bug):

* usr.bin/ssh/auth.c:

- *cp = hashchars[arc4random_uniform(sizeof(hashchars) - 1)];
+ *cp = hashchars[arc4random_range(0, sizeof(hashchars) - 1)];

* usr.sbin/ftp-proxy/ftp-proxy.c:

- return (IPPORT_HIFIRSTAUTO +
- arc4random_uniform(IPPORT_HILASTAUTO - IPPORT_HIFIRSTAUTO));
+ return arc4random_range(IPPORT_HIFIRSTAUTO, IPPORT_HILASTAUTO);

* usr.sbin/rad/engine.c:

- tv.tv_sec = MIN_RTR_ADV_INTERVAL +
- arc4random_uniform(MAX_RTR_ADV_INTERVAL - MIN_RTR_ADV_INTERVAL);
+ tv.tv_sec = arc4random_range(MIN_RTR_ADV_INTERVAL, MAX_RTR_ADV_INTERVAL);

In the following change, I didn't use the temporary variable 'num3'.
AFAICS, this doesn't affect other uses of the variable in other places,
because they set it before use. But please check carefully; I may have
missed something:

* usr.sbin/cron/entry.c:

- /* get a random number in the interval [num1, num2]
- */
- num3 = num1;
- num1 = arc4random_uniform(num2 - num3 + 1) + num3;
+ num1 = arc4random_range(num1, num2);

Signed-off-by: Alejandro Colomar <alx@kernel.org>
---
games/boggle/boggle/bog.c | 2 +-
games/canfield/canfield/canfield.c | 2 +-
games/mille/init.c | 2 +-
gnu/gcc/gcc/cfgexpand.c | 2 +-
lib/libevent/select.c | 2 +-
regress/lib/libc/malloc/malloc_general/malloc_general.c | 2 +-
regress/sys/sys/tree/rb/rb-test.c | 3 +--
regress/sys/sys/tree/splay/splay-test.c | 3 +--
sbin/iked/ikev2.c | 2 +-
sys/dev/pci/drm/drm_linux.c | 2 +-
sys/dev/pci/drm/include/linux/random.h | 2 +-
sys/kern/kern_fork.c | 2 +-
sys/net/if_spppsubr.c | 7 ++-----
sys/net/pf.c | 2 +-
sys/net/pf_lb.c | 4 ++--
sys/netinet/ip_ipsp.c | 2 +-
usr.bin/nc/netcat.c | 2 +-
usr.bin/skeyinit/skeyinit.c | 2 +-
usr.bin/ssh/auth.c | 2 +-
usr.sbin/cron/entry.c | 5 +----
usr.sbin/ftp-proxy/ftp-proxy.c | 3 +--
usr.sbin/pppd/chap.c | 5 +----
usr.sbin/rad/engine.c | 3 +--
usr.sbin/relayd/shuffle.c | 2 +-
24 files changed, 26 insertions(+), 39 deletions(-)

diff --git a/games/boggle/boggle/bog.c b/games/boggle/boggle/bog.c
index c0e19454a27..3ed4888fc43 100644
--- a/games/boggle/boggle/bog.c
+++ b/games/boggle/boggle/bog.c
@@ -607,7 +607,7 @@ newgame(char *b)
/* Shuffle the cubes using Fisher-Yates (aka Knuth P). */
p = ncubes;
while (--p) {
- q = (int)arc4random_uniform(p + 1);
+ q = (int)arc4random_range(0, p);
tmp = cubes[p];
cubes[p] = cubes[q];
cubes[q] = tmp;
diff --git a/games/canfield/canfield/canfield.c b/games/canfield/canfield/canfield.c
index 346fd20a1d2..dec75f6531f 100644
--- a/games/canfield/canfield/canfield.c
+++ b/games/canfield/canfield/canfield.c
@@ -531,7 +531,7 @@ shuffle(struct cardtype *deck[])
deck[i]->paid = FALSE;
}
for (i = decksize - 1; i > 0; i--) {
- j = arc4random_uniform(i + 1);
+ j = arc4random_range(0, i);
if (i != j) {
temp = deck[i];
deck[i] = deck[j];
diff --git a/games/mille/init.c b/games/mille/init.c
index a86157739dd..c0cc6ac1f02 100644
--- a/games/mille/init.c
+++ b/games/mille/init.c
@@ -90,7 +90,7 @@ shuffle(void)
CARD temp;

for (i = DECK_SZ - 1; i > 0; i--) {
- r = arc4random_uniform(i + 1);
+ r = arc4random_range(0, i);
temp = Deck[r];
Deck[r] = Deck[i];
Deck[i] = temp;
diff --git a/gnu/gcc/gcc/cfgexpand.c b/gnu/gcc/gcc/cfgexpand.c
index 17aff165f6d..0cb8a21289b 100644
--- a/gnu/gcc/gcc/cfgexpand.c
+++ b/gnu/gcc/gcc/cfgexpand.c
@@ -438,7 +438,7 @@ partition_stack_vars (void)
for (si = n - 1; si > 0; si--)
{
size_t tmp;
- sj = arc4random_uniform(si + 1);
+ sj = arc4random_range(0, si);

tmp = stack_vars_sorted[si];
stack_vars_sorted[si] = stack_vars_sorted[sj];
diff --git a/lib/libevent/select.c b/lib/libevent/select.c
index fb38b850155..8d5ff6ff34f 100644
--- a/lib/libevent/select.c
+++ b/lib/libevent/select.c
@@ -155,7 +155,7 @@ select_dispatch(struct event_base *base, void *arg, struct timeval *tv)
event_debug(("%s: select reports %d", __func__, res));

check_selectop(sop);
- i = arc4random_uniform(sop->event_fds + 1);
+ i = arc4random_range(0, sop->event_fds);
for (j = 0; j <= sop->event_fds; ++j) {
struct event *r_ev = NULL, *w_ev = NULL;
if (++i >= sop->event_fds+1)
diff --git a/regress/lib/libc/malloc/malloc_general/malloc_general.c b/regress/lib/libc/malloc/malloc_general/malloc_general.c
index b243787bcf7..3980ed5e277 100644
--- a/regress/lib/libc/malloc/malloc_general/malloc_general.c
+++ b/regress/lib/libc/malloc/malloc_general/malloc_general.c
@@ -27,7 +27,7 @@
size_t
size(void)
{
- int p = arc4random_uniform(17) + 3;
+ int p = arc4random_range(3, 19);
return arc4random_uniform(1 << p);
}

diff --git a/regress/sys/sys/tree/rb/rb-test.c b/regress/sys/sys/tree/rb/rb-test.c
index 409cc22393a..5bf54013d95 100644
--- a/regress/sys/sys/tree/rb/rb-test.c
+++ b/regress/sys/sys/tree/rb/rb-test.c
@@ -67,8 +67,7 @@ main(int argc, char **argv)
tmp = malloc(sizeof(struct node));
if (tmp == NULL) err(1, "malloc");
do {
- tmp->key = arc4random_uniform(MAX-MIN);
- tmp->key += MIN;
+ tmp->key = arc4random_uniform(MIN, MAX - 1);
} while (RB_FIND(tree, &root, tmp) != NULL);
if (i == 0)
max = min = tmp->key;
diff --git a/regress/sys/sys/tree/splay/splay-test.c b/regress/sys/sys/tree/splay/splay-test.c
index 56084a0c71e..69c9e87fa6c 100644
--- a/regress/sys/sys/tree/splay/splay-test.c
+++ b/regress/sys/sys/tree/splay/splay-test.c
@@ -67,8 +67,7 @@ main(int argc, char **argv)
tmp = malloc(sizeof(struct node));
if (tmp == NULL) err(1, "malloc");
do {
- tmp->key = arc4random_uniform(MAX-MIN);
- tmp->key += MIN;
+ tmp->key = arc4random_range(MIN, MAX - 1);
} while (SPLAY_FIND(tree, &root, tmp) != NULL);
if (i == 0)
max = min = tmp->key;
diff --git a/sbin/iked/ikev2.c b/sbin/iked/ikev2.c
index 9579b8a2ea5..3b4566bb3ae 100644
--- a/sbin/iked/ikev2.c
+++ b/sbin/iked/ikev2.c
@@ -7186,7 +7186,7 @@ ikev2_cp_setaddr_pool(struct iked *env, struct iked_sa *sa,
if (upper < lower)
upper = lower;
/* Randomly select start from [lower, upper-1] */
- start = arc4random_uniform(upper - lower) + lower;
+ start = arc4random_range(lower, upper - 1);

for (host = start;;) {
log_debug("%s: mask %x start %x lower %x host %x upper %x",
diff --git a/sys/dev/pci/drm/drm_linux.c b/sys/dev/pci/drm/drm_linux.c
index 2b975cda9fb..4e5aa29c228 100644
--- a/sys/dev/pci/drm/drm_linux.c
+++ b/sys/dev/pci/drm/drm_linux.c
@@ -776,7 +776,7 @@ idr_alloc(struct idr *idr, void *ptr, int start, int end, gfp_t gfp_mask)
end = INT_MAX;

#ifdef notyet
- id->id = begin = start + arc4random_uniform(end - start);
+ id->id = begin = arc4random_range(start, end - 1);
#else
id->id = begin = start;

[RFC v1 1/2] Add arc4random_range(min, max)

Signed-off-by: Alejandro Colomar <alx@kernel.org>
---

Hi,

The patch to the manual page is still a draft; I know it has formatting
issues; I don't know mdoc(7) enough to write in it. I CCd Ingo so that
he may help me improve it.

Theo, and any others, please consider the addition of this function,
since it helps make some of these bugs shallow. My audit of the
existing code is incomplete, since I don't have much knowledge of
OpenBSD's internals. Moreover, this patch set is only a draft for
discussion, and I didn't yet even attempt to compile; I may have written
typos and may fail to even compile. I just want to start the discussion
with facts and code, and when there's some agreement, I'll be try to
compile this.

Cheers,

Alex


include/stdlib.h | 1 +
lib/libc/crypt/arc4random.3 | 35 ++++++++++++++++++++++++++++-
lib/libc/crypt/arc4random_uniform.c | 12 ++++++++++
sys/dev/rnd.c | 11 +++++++++
sys/sys/systm.h | 1 +
5 files changed, 59 insertions(+), 1 deletion(-)

diff --git a/include/stdlib.h b/include/stdlib.h
index ab8a2ae90c3..16b7dc43afc 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -313,6 +313,7 @@ u_quad_t strtouq(const char *__restrict, char **__restrict, int);

uint32_t arc4random(void);
uint32_t arc4random_uniform(uint32_t);
+uint32_t arc4random_uniform(uint32_t, uint32_t);
void arc4random_buf(void *, size_t)
__attribute__((__bounded__ (__buffer__,1,2)));

diff --git a/lib/libc/crypt/arc4random.3 b/lib/libc/crypt/arc4random.3
index 411860c28f2..78b4c18b3da 100644
--- a/lib/libc/crypt/arc4random.3
+++ b/lib/libc/crypt/arc4random.3
@@ -46,6 +46,8 @@
.Fn arc4random_buf "void *buf" "size_t nbytes"
.Ft uint32_t
.Fn arc4random_uniform "uint32_t upper_bound"
+.Ft uint32_t
+.Fn arc4random_uniform "uint32_t min" "uint32_t max"
.Sh DESCRIPTION
This family of functions provides higher quality data than those
described in
@@ -95,16 +97,47 @@
In the worst case, this function may consume multiple iterations
to ensure uniformity; see the source code to understand the problem
and solution.
+.Pp
+.Fn arc4random_range
+is similar to
+.Fn arc4random_uniform ,
+and will return a single 32-bit value,
+uniformly distributed,
+within the inclusive range
+.Pf [ Fa min ,
+.Fa max ].
+If the arguments are reversed,
+that is,
+if
+.Fa max
+<
+.Fa min ,
+it will return a single 32-bit value,
+uniformly distributed,
+outside of the exclusive range
+.Pf ( Fa max ,
+.Fa min ).
.Sh RETURN VALUES
These functions are always successful, and no return value is
reserved to indicate an error.
+.Sh CAVEATS
+.Fn arc4random_range
+doesn't produce correct output when
+.Fa max
+==
+.Fa min
+- 1.
.Sh SEE ALSO
.Xr rand 3 ,
.Xr rand48 3 ,
.Xr random 3
.Sh HISTORY
These functions first appeared in
-.Ox 2.1 .
+.Ox 2.1 ,
+except
+.Fn arc4random_range ,
+which appeared in
+.Ox XXX .
.Pp
The original version of this random number generator used the
RC4 (also known as ARC4) algorithm.
diff --git a/lib/libc/crypt/arc4random_uniform.c b/lib/libc/crypt/arc4random_uniform.c
index a18b5b12381..40957910b96 100644
--- a/lib/libc/crypt/arc4random_uniform.c
+++ b/lib/libc/crypt/arc4random_uniform.c
@@ -2,6 +2,7 @@

/*
* Copyright (c) 2008, Damien Miller <djm@openbsd.org>
+ * Copyright (c) 2022, Alejandro Colomar <alx@kernel.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -55,3 +56,14 @@ arc4random_uniform(uint32_t upper_bound)
return r % upper_bound;
}
DEF_WEAK(arc4random_uniform);
+
+/*
+ * Calculate a uniformly-distributed random number in the range [min, max],
+ * avoiding bias.
+ */
+uint32_t
+arc4random_range(uint32_t min, uint32_t max)
+{
+ return arc4random_uniform(max - min + 1) + min;
+}
+DEF_WEAK(arc4random_range);
diff --git a/sys/dev/rnd.c b/sys/dev/rnd.c
index 5139d4288c9..0ac0c380430 100644
--- a/sys/dev/rnd.c
+++ b/sys/dev/rnd.c
@@ -5,6 +5,7 @@
* Copyright (c) 2008 Damien Miller.
* Copyright (c) 1996, 1997, 2000-2002 Michael Shalayeff.
* Copyright (c) 2013 Markus Friedl.
+ * Copyright (c) 2022 Alejandro Colomar <alx@kernel.org>
* Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999.
* All rights reserved.
*
@@ -616,6 +617,16 @@ arc4random_uniform(u_int32_t upper_bound)
return r % upper_bound;
}

+/*
+ * Calculate a uniformly distributed random number in the range [min, max],
+ * avoiding bias.
+ */
+u_int32_t
+arc4random_range(u_int32_t min, u_int32_t max)
+{
+ return arc4random_uniform(max - min + 1) + min;
+}
+
/* ARGSUSED */
void
rnd_init(void *null)
diff --git a/sys/sys/systm.h b/sys/sys/systm.h
index 75c99a6dd9b..624b2ced0e8 100644
--- a/sys/sys/systm.h
+++ b/sys/sys/systm.h
@@ -224,6 +224,7 @@ void arc4random_ctx_free(struct arc4random_ctx *);
void arc4random_ctx_buf(struct arc4random_ctx *, void *, size_t);
u_int32_t arc4random(void);
u_int32_t arc4random_uniform(u_int32_t);
+u_int32_t arc4random_range(u_int32_t, u_int32_t);

struct timeval;
struct timespec;
--
2.39.0

Possible off-by-one bug in usr.sbin/rad/engine.c

Hi Theo and Florian,

I've started auditing the OpenBSD source code after the discussion on
arc4random_uniform(3) and my suggestion of arc4random_range() on the glibc
mailing list.

I found some cases where it seems like there's an off-by-one bug, which would be
solved by providing arc4random_range(). I'll show here one, to confirm that
it's a bug, and if you confirm it, I'll continue fixing similar bugs around the
OpenBSD tree.

Here's the first one I found, which I hope is fixed by my patch:


diff --git a/usr.sbin/rad/engine.c b/usr.sbin/rad/engine.c
index ceb11d574e3..a61ea3835a6 100644
--- a/usr.sbin/rad/engine.c
+++ b/usr.sbin/rad/engine.c
@@ -641,8 +641,7 @@ iface_timeout(int fd, short events, void *arg)
struct imsg_send_ra send_ra;
struct timeval tv;

- tv.tv_sec = MIN_RTR_ADV_INTERVAL +
- arc4random_uniform(MAX_RTR_ADV_INTERVAL - MIN_RTR_ADV_INTERVAL);
+ tv.tv_sec = arc4random_range(MIN_RTR_ADV_INTERVAL, MAX_RTR_ADV_INTERVAL);
tv.tv_usec = arc4random_uniform(1000000);

log_debug("%s new timeout in %lld", __func__, tv.tv_sec);


If I'm correct, it should have been 'min + (max - min + 1)' instead of 'min +
(max - min)'. Please confirm.


Cheers,

Alex

--
<http://www.alejandro-colomar.es/>

Re: "/bsd: cannot forward" ip6 traffic messages

Hi Gábor,

Yes, these are ULA addresses I've assigned, each interface has a /64 (fd58:6af3:2ff6:aa::1/64 and fd58:6af3:2ff6:c8::1/64). Those two host addresses, however, have not changed. They are still active as I write this. I believe Apple only assigns temporary addresses for globally routable prefixes.

I should have mentioned that these are not one-off messages. For example, these two hosts generated this message 36 times over a ~45 minute period yesterday. While that was happening I could see that both hosts are active. Traffic would pass and occasionally generate these messages.

Thanks,
Brian

> On Dec 31, 2022, at 5:45 AM, Gábor LENCSE <lencse@hit.bme.hu> wrote:
>
> Hi Brian,
>
> I am not familiar with Apple devices, but I am familiar with IPv6.
>
> The IPv6 addresses in your log file have the fc00::/7 prefix, that is, they are from the RFC4193 "unique local unicast" range: https://datatracker.ietf.org/doc/html/rfc4193#section-3.1
> The L bit is 1, the next pseudorandom 40 bits are: 58:6af3:2ff, and the two networks are distinguished by the next 16bits: 00aa and 00c0.
>
> Does the last 64 bits change over time?
>
> If yes, then my hypothesis is that perhaps the devices use RFC 8981 temporary IPv6 addresses in an uncoordinated way: they just generate a new address and stop using the old one, whereas the other party still tries to use the old one.
>
> Best regards,
>
> Gábor
>
> 12/31/2022 6:50 AM keltezéssel, Landy, Brian írta:
>> I'm seeing messages like these frequently in /var/log/messages:
>>
>> /bsd: cannot forward from fd58:6af3:2ff6:aa:895:e4a:8bf9:5759 to
>> fd58:6af3:2ff6:c8:97:5360:bd73:6a88 nxt 17 received on interface 9
>>
>> The two hosts are on separate networks (one is the lan, the other a
>> vlan). I've tracked it down to traffic on udp port 3722 between
>> Apple devices; the messages stop if I block traffic on that port.
>> When unblocked, I can see the traffic is passed successfully by using
>> tcpdump on both vlans. Maybe some packets are occsionally dropped?
>>
>> I'm wondering if anyone knows why this message is logged, and if there
>> is anything I can tune with sysctl or pf to prevent it. I'm on 7.2
>> with the latest patches.
>>
>> Thanks,
>> Brian
>>
>

xfce4: pass --enable-debug only when DEBUG is set

xfc4-wavelan spams ~/.xsession with state changes which stems from the
xfce DBG macro which gets defined when the DEBUG macro is set, which
comes from --enable-debug that is currently passed for every port using
XFCE_COMMIT.

landry pointed out the XFCE_COMMIT/--enable-debug connection and
suggested a DEBUG test -- I failed to look at xfce4.port.mk in the first
place.

Only four ports use a commit, so bumping them is easy to pick up
potential object changes.

Feeback? Objection? OK?

Index: xfce4.port.mk
===================================================================
RCS file: /cvs/ports/x11/xfce4/xfce4.port.mk,v
retrieving revision 1.37
diff -u -p -r1.37 xfce4.port.mk
--- xfce4.port.mk 15 Dec 2022 14:43:16 -0000 1.37
+++ xfce4.port.mk 31 Dec 2022 12:12:31 -0000
@@ -79,7 +79,7 @@ PORTROACH+= limitw:1,even
.if defined(XFCE_COMMIT)
DISTNAME = ${DISTNAME_GIT}
MASTER_SITES = ${MASTER_SITES_GIT}
-CONFIGURE_ARGS += --enable-maintainer-mode --enable-debug
+CONFIGURE_ARGS += --enable-maintainer-mode
AUTOMAKE_VERSION = 1.14
AUTOCONF_VERSION = 2.69
MODXFCE4_gen = cd ${WRKSRC} && env NOCONFIGURE=yes \
@@ -89,6 +89,10 @@ BUILD_DEPENDS += ${MODGNU_AUTOCONF_DEPEN
${MODGNU_AUTOMAKE_DEPENDS} \
x11/xfce4/xfce4-dev-tools

+.endif
+
+.if defined(DEBUG)
+CONFIGURE_ARGS += --enable-debug
.endif

# remove useless .la file
Index: orage/Makefile
===================================================================
RCS file: /cvs/ports/x11/xfce4/orage/Makefile,v
retrieving revision 1.66
diff -u -p -r1.66 Makefile
--- orage/Makefile 25 Dec 2022 07:16:37 -0000 1.66
+++ orage/Makefile 31 Dec 2022 12:15:16 -0000
@@ -3,6 +3,7 @@ COMMENT= Xfce4 calendar
XFCE_VERSION= 4.17.0pre0
XFCE_COMMIT= cf27a483c40188bb
XFCE_GOODIE= orage
+REVISION= 0

# GPLv2
PERMIT_PACKAGE= Yes
Index: xfce4-mixer/Makefile
===================================================================
RCS file: /cvs/ports/x11/xfce4/xfce4-mixer/Makefile,v
retrieving revision 1.62
diff -u -p -r1.62 Makefile
--- xfce4-mixer/Makefile 21 Dec 2022 09:15:26 -0000 1.62
+++ xfce4-mixer/Makefile 31 Dec 2022 12:14:17 -0000
@@ -3,6 +3,7 @@ COMMENT= Xfce4 volume mixer
XFCE_GOODIE= xfce4-mixer
XFCE_VERSION= 4.18.0pre0
XFCE_COMMIT= a71951036481ca08a670ad8bf3cd107d37bfb774
+REVISION= 0

# GPLv2
PERMIT_PACKAGE= Yes
Index: xfce4-taskmanager/Makefile
===================================================================
RCS file: /cvs/ports/x11/xfce4/xfce4-taskmanager/Makefile,v
retrieving revision 1.41
diff -u -p -r1.41 Makefile
--- xfce4-taskmanager/Makefile 27 Dec 2022 09:14:37 -0000 1.41
+++ xfce4-taskmanager/Makefile 31 Dec 2022 12:15:24 -0000
@@ -3,7 +3,7 @@ COMMENT= Xfce4 task manager and system m
XFCE_VERSION= 1.5.5
XFCE_COMMIT= c4564879
XFCE_GOODIE= xfce4-taskmanager
-REVISION= 0
+REVISION= 1

# GPLv2
PERMIT_PACKAGE= Yes
Index: xfce4-wavelan/Makefile
===================================================================
RCS file: /cvs/ports/x11/xfce4/xfce4-wavelan/Makefile,v
retrieving revision 1.53
diff -u -p -r1.53 Makefile
--- xfce4-wavelan/Makefile 23 Dec 2022 08:03:10 -0000 1.53
+++ xfce4-wavelan/Makefile 31 Dec 2022 12:15:04 -0000
@@ -3,7 +3,7 @@ COMMENT= Xfce4 wireless interface monito
XFCE_VERSION= 0.6.3
XFCE_PLUGIN= wavelan
XFCE_COMMIT= 56657a9cc08ce4da022db9233dcf3241aaf13794
-REVISION= 4
+REVISION= 5

# BSD
PERMIT_PACKAGE= Yes

Re: equivalent to linux/serial.h?

On 2022-12-31, chohag@jtan.com <chohag@jtan.com> wrote:
> Justin Muir writes:
>> Hello,
>>
>> Just attempting to compile SDRAngel from source and I'm getting some errors
>> in the process.
>>
>> The latest is: "linux/serial.h" missing. Is there an equivalent I can
>> point to on OpenBSD?
>>
>> I'm also having difficulties with the dab-cmdline library. The compile goes
>> haywire with a bunch of mismatches in header definitions. Is there an
>> equivalent to dab-cmdline in OBSD??
>
> OpenBSD has two files named serial.h:
>
> llama$ find /usr/include/ /usr/src/ -name serial.h
> /usr/src/gnu/usr.bin/binutils/gdb/serial.h
> /usr/src/usr.bin/dig/lib/isc/include/isc/serial.h

That is a linux-kernel-specific header, those files aren't going to
be what this software wants. It's only used in the ambe plugin, which
can be disabled with a cmake flag, which will likely get you past that
issue.

But I suspect there will be wider problems, USB SDRs usually need
asynchronous input/output and that doesn't work via libusb on OpenBSD
(and generally there is fairly poor support for userland access to USB
devices).

> But nothing named dab-like, even in ports.

At least the rtl-sdr support in dab-cmdline/libdab definitely needs
async support in the rtl-sdr library which doesn't work on OpenBSD.

Unless you feel like digging into libusb and the kernel USB interface,
I would recommend running this software on a Linux box instead.

--
Please keep replies on the mailing list.

mips64 bulk build report

bulk build on octeon.ports.openbsd.org
started on Wed Dec 21 16:10:14 UTC 2022
finished at Fri Dec 30 17:21:05 UTC 2022
lasted 10D01h10m
done with kern.version=OpenBSD 7.2-current (GENERIC.MP) #1140: Tue Dec 20 20:26:05 MST 2022

built packages:8882
Dec 21:1830
Dec 22:948
Dec 23:509
Dec 24:684
Dec 25:533
Dec 26:1397
Dec 27:620
Dec 28:721
Dec 29:1520
Dec 30:119


build failures: 88
http://build-failures.rhaalovely.net/mips64/2022-12-21/audio/espeak.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/biology/emboss.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/chinese/libpinyin.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/databases/postgresql-pllua.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/devel/clang-tools-extra.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/devel/go-sys.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/devel/protobuf.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/devel/py-thrift,python3.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/devel/py-unicorn,python3.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/devel/sdcc.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/emulators/openmsx.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/emulators/snes9x.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/emulators/spike.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/games/astromenace.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/games/hyperrogue.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/games/irrlamb.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/games/residualvm.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/games/wesnoth.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/games/witchblast.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/geo/gpstk.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/graphics/enblend-enfuse.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/graphics/openvdb.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/lang/STk.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/lang/gambit.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/lang/gforth.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/lang/librep.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/lang/pfe.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/lang/php/8.1.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/lang/php/8.2.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/libdigidocpp:libdigidocpp/iconv-470.patch.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/mail/opensmtpd-filters/rspamd.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/math/gbc.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/math/igraph.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/math/lean.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/math/lrs.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/math/mlpack,-main.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/math/ntl.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/misc/remind.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/multimedia/assimp.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/eduvpn/vpn-daemon.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/gortr.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/gtk-gnutella.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/icinga/core2.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/libtorrent-rasterbar.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/minio/client.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/minio/server.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/powerdns_recursor.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/syncthing.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/net/utox.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/plan9/drawterm.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/qdigidoc4:qdigidoc4-0/config.json.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/qdigidoc4:qdigidoc4-0/config.rsa.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/botan2.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/go-siphash.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/gobuster.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/libdigidocpp.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/step-cli.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/security/vault.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/shells/elvish.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/amazon-ecs-cli.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/beats/filebeat.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/beats/heartbeat.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/beats/metricbeat.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/beats/packetbeat.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/dep.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/direnv.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/gitlab-runner.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/kubectl.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/libvirt.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/loki,-main.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/nomad.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/rclone.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/telegraf.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/terraform.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/terragrunt.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/u-boot,aarch64.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/sysutils/u-boot-asahi.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/telephony/asterisk/16.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/telephony/asterisk/18.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/telephony/asterisk/20.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/textproc/go-text.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/textproc/mupdf,js.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/textproc/p5-SWISH-API.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/textproc/uni.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/x11/gnome/secrets.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/x11/jgmenu.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/x11/qt5/qtbase.log
http://build-failures.rhaalovely.net/mips64/2022-12-21/x11/qt6/qtbase.log

Re: "/bsd: cannot forward" ip6 traffic messages

Hi Brian,

I am not familiar with Apple devices, but I am familiar with IPv6.

The IPv6 addresses in your log file have the fc00::/7 prefix, that is,
they are from the RFC4193 "unique local unicast" range:
https://datatracker.ietf.org/doc/html/rfc4193#section-3.1
The L bit is 1, the next pseudorandom 40 bits are: 58:6af3:2ff, and the
two networks are distinguished by the next 16bits: 00aa and 00c0.

Does the last 64 bits change over time?

If yes, then my hypothesis is that perhaps the devices use RFC 8981
temporary IPv6 addresses in an uncoordinated way: they just generate a
new address and stop using the old one, whereas the other party still
tries to use the old one.

Best regards,

Gábor

12/31/2022 6:50 AM keltezéssel, Landy, Brian írta:
> I'm seeing messages like these frequently in /var/log/messages:
>
> /bsd: cannot forward from fd58:6af3:2ff6:aa:895:e4a:8bf9:5759 to
> fd58:6af3:2ff6:c8:97:5360:bd73:6a88 nxt 17 received on interface 9
>
> The two hosts are on separate networks (one is the lan, the other a
> vlan). I've tracked it down to traffic on udp port 3722 between
> Apple devices; the messages stop if I block traffic on that port.
> When unblocked, I can see the traffic is passed successfully by using
> tcpdump on both vlans. Maybe some packets are occsionally dropped?
>
> I'm wondering if anyone knows why this message is logged, and if there
> is anything I can tune with sysctl or pf to prevent it. I'm on 7.2
> with the latest patches.
>
> Thanks,
> Brian
>

Re: [update][proposal] sysutils/nnn add nerd font flavor

On 2022/12/30 23:36:02 +0000, Stuart Henderson <stu@spacehopper.org> wrote:
> On 2022/12/30 10:58, Omar Polo wrote:
> > looks good to me. just some nitpicks
>
> ok for your updated tgz.

imported, thanks!

Friday, December 30, 2022

Re: equivalent to linux/serial.h?

Justin Muir writes:
> Hello,
>
> Just attempting to compile SDRAngel from source and I'm getting some errors
> in the process.
>
> The latest is: "linux/serial.h" missing. Is there an equivalent I can
> point to on OpenBSD?
>
> I'm also having difficulties with the dab-cmdline library. The compile goes
> haywire with a bunch of mismatches in header definitions. Is there an
> equivalent to dab-cmdline in OBSD??

OpenBSD has two files named serial.h:

llama$ find /usr/include/ /usr/src/ -name serial.h
/usr/src/gnu/usr.bin/binutils/gdb/serial.h
/usr/src/usr.bin/dig/lib/isc/include/isc/serial.h
llama$

But nothing named dab-like, even in ports.

llama$ find /usr/src/ /usr/ports/ -name dab\*
llama$

Matthew

"/bsd: cannot forward" ip6 traffic messages

I'm seeing messages like these frequently in /var/log/messages:

/bsd: cannot forward from fd58:6af3:2ff6:aa:895:e4a:8bf9:5759 to
fd58:6af3:2ff6:c8:97:5360:bd73:6a88 nxt 17 received on interface 9

The two hosts are on separate networks (one is the lan, the other a
vlan). I've tracked it down to traffic on udp port 3722 between
Apple devices; the messages stop if I block traffic on that port.
When unblocked, I can see the traffic is passed successfully by using
tcpdump on both vlans. Maybe some packets are occsionally dropped?

I'm wondering if anyone knows why this message is logged, and if there
is anything I can tune with sysctl or pf to prevent it. I'm on 7.2
with the latest patches.

Thanks,
Brian

equivalent to linux/serial.h?

Hello,

Just attempting to compile SDRAngel from source and I'm getting some errors
in the process.

The latest is: "linux/serial.h" missing. Is there an equivalent I can
point to on OpenBSD?

I'm also having difficulties with the dab-cmdline library. The compile goes
haywire with a bunch of mismatches in header definitions. Is there an
equivalent to dab-cmdline in OBSD??


Tia!

[MAINTAINER UPDATE] archivers/zpaqfranz-56.4

diff --git a/archivers/zpaqfranz/Makefile b/archivers/zpaqfranz/Makefile
index 73865fd73cd..4b15954c77a 100644
--- a/archivers/zpaqfranz/Makefile
+++ b/archivers/zpaqfranz/Makefile
@@ -4,7 +4,7 @@ COMMENT = journaling archiver for incremental backup, fork of ZPAQ

GH_ACCOUNT = fcorbelli
GH_PROJECT = zpaqfranz
-GH_TAGNAME = 56.2
+GH_TAGNAME = 56.4

CATEGORIES = archivers
MAINTAINER = tux0r <tux0r@rosaelefanten.org>
diff --git a/archivers/zpaqfranz/distinfo b/archivers/zpaqfranz/distinfo
index c5a94301d9d..4ca7bdcbab1 100644
--- a/archivers/zpaqfranz/distinfo
+++ b/archivers/zpaqfranz/distinfo
@@ -1,2 +1,2 @@
-SHA256 (zpaqfranz-56.2.tar.gz) = Art3KZh72ifm8/vHC8O3VnmYforfiTc5ftJPVBwEdD0=
-SIZE (zpaqfranz-56.2.tar.gz) = 6419845
+SHA256 (zpaqfranz-56.4.tar.gz) = CjYqjJ0FMHrOllymnuaqsV10y7lKGJ+I7c2ko0yGG90=
+SIZE (zpaqfranz-56.4.tar.gz) = 6431696
A new version has dropped five hours ago. Patch attached.

Re: [update][proposal] sysutils/nnn add nerd font flavor

On 2022/12/30 10:58, Omar Polo wrote:
> looks good to me. just some nitpicks

ok for your updated tgz.

On 2022/12/30 23:32, Joel Carnat wrote:
> I noticed that some fonts (Lilex and 3270) provide both otf and ttf. I'm not
> sure whether it makes sense to ship both or only one. I've never used them
> though.

I think for the purposes of packages it probably makes most sense to
just include otf.

Re: [update][proposal] sysutils/nnn add nerd font flavor

Le 30/12/2022 à 10:58, Omar Polo a écrit :
> On 2022/12/29 19:19:23 +0100, Joel Carnat <joel@carnat.net> wrote:
>> Le 29/12/2022 à 12:42, Stuart Henderson a écrit :
>>> For the fonts I think I'd probably pick a couple that already exist in
>>> ports/fonts. Simplest approach for ports layout is probably like
>>> ports/fonts/nerd-fonts/{terminus,profont,noto) or similar, using the release
>>> zips rather than downloading the full repo, factoring out as much as possible
>>> to Makefile.inc.
>>>
>>
>> Attached is an archive to deploy such
>> ports/fonts/nerd-fonts/{terminus,profont,noto}. I'm sorry, I couldn't find the
>> proper cvs command to generate the diff file for those.
>
> it's not straightforward to generate a diff that adds directory,
> tarball for new ports are fine.
>
>> Does this seem right?
>
> looks good to me. just some nitpicks
>
> - REVISION starts empty, then goes 0, 1, ... so dropped it
> - COMMENT and CATEGORIES can be moved to Makefile.inc too
> - could set PKG_ARCH=*
>
> I probably got too overboard then but if you define NF_FONT with the
> capitalized name (i.e. CodeNewRoman instead of codenewroman) you can
> move PKGNAME, DISTFILES and EXTRACT_SUFX to Makefile.inc, with the
> only package affected being 'ubunut-mono' becoming 'ubuntumono'.
>
> it could also use the font.port.mk module, allowing to drop all the
> do-install targets. (well, kept the licenses installing as
> post-install.)
>
> (for a moment I thought of defining NF_FONT=${.CURDIR:T} and renaming
> the dirs, that would made most of the makefiles a one-liner, too
> extreme tho.)

This looks great, thank you.

I noticed that some fonts (Lilex and 3270) provide both otf and ttf. I'm not
sure whether it makes sense to ship both or only one. I've never used them though.

Regards,
Joel C.

Re: go syscall/error/ioctl numbers etc.

On 2022/12/31 04:02, Joel Sing wrote:
> > Thanks - I'll look at respinning and upstreaming them in the coming weeks.
>
> This has been done:
>
> https://go-review.googlesource.com/c/sys/+/459499

Great, thank you!

[UPDATE]: security/kc

Hi!

Update to kc 2.5.1.
This fixes compilation warnings and subsequent erroneous parameter parsing on arm and powerpc (thanks to tb@ for noticing and providing the fix too!).

Daniel


diff --git a/security/kc/Makefile b/security/kc/Makefile
index bb73e24a451..9581e04cd2c 100644
--- a/security/kc/Makefile
+++ b/security/kc/Makefile
@@ -2,7 +2,7 @@ COMMENT = console based password storing application

GH_ACCOUNT = levaidaniel
GH_PROJECT = kc
-GH_TAGNAME = 2.5.0
+GH_TAGNAME = 2.5.1

CATEGORIES = security

diff --git a/security/kc/distinfo b/security/kc/distinfo
index 70dbd7a942e..a77c2f56933 100644
--- a/security/kc/distinfo
+++ b/security/kc/distinfo
@@ -1,2 +1,2 @@
-SHA256 (kc-2.5.0.tar.gz) = e2qyCIwulrcTVvVUz9XSZNE7NouPtnGXLPAxDZRvv64=
-SIZE (kc-2.5.0.tar.gz) = 99969
+SHA256 (kc-2.5.1.tar.gz) = 0CZdohmGwmG9FQKzE1QL/pka+Ll+RKcpbYIv4OLgpjI=
+SIZE (kc-2.5.1.tar.gz) = 100143

[UPDATE] net/rabbitmq 3.10.13

Index: Makefile
===================================================================
RCS file: /cvs/ports/net/rabbitmq/Makefile,v
retrieving revision 1.48
diff -u -p -r1.48 Makefile
--- Makefile 13 Nov 2022 15:28:53 -0000 1.48
+++ Makefile 30 Dec 2022 19:45:46 -0000
@@ -1,10 +1,9 @@
COMMENT = highly reliable Enterprise Messaging System

-V = 3.10.7
+V = 3.10.13
DISTNAME = rabbitmq-server-$V
PKGNAME = rabbitmq-$V
CATEGORIES = net
-REVISION = 1

HOMEPAGE = https://www.rabbitmq.com/

@@ -49,6 +48,40 @@ NO_TEST = Yes

ALL_TARGET = all manpages
INSTALL_TARGET = install install-bin
+
+PLUGIN_VERSIONS= \
+ACCEPT_VSN 0.3.5 \
+ATEN_VSN 0.5.8 \
+BASE64URL_VSN 1.0.1 \
+COWBOY_VSN 2.8.0 \
+COWLIB_VSN 2.9.1 \
+CREDENTIALS_OBFUSCATION_VSN 3.2.0 \
+CUTTLEFISH_VSN 3.1.0 \
+EETCD_VSN 0.3.6 \
+ENOUGH_VSN 0.1.0 \
+GEN_BATCH_SERVER_VSN 0.8.8 \
+GETOPT_VSN 1.0.2 \
+GUN_VSN 1.3.3 \
+JOSE_VSN 1.11.1 \
+JSX_VSN 3.1.0 \
+OBSERVER_CLI_VSN 1.7.3 \
+OSIRIS_VSN 1.3.3 \
+PROMETHEUS_VSN 4.9.1 \
+QUANTILE_ESTIMATOR_VSN 0.2.1 \
+RA_VSN 2.4.5 \
+RANCH_VSN 2.1.0 \
+RECON_VSN 2.5.2 \
+SESHAT_VSN 0.4.0 \
+STDOUT_FORMATTER_VSN 0.2.4 \
+SYSLOG_VSN 4.0.0 \
+SYSMON_HANDLER_VSN 1.3.0 \
+SYSTEMD_VSN 0.6.1
+
+.for _n _v in ${PLUGIN_VERSIONS}
+${_n} = ${_v}
+RABBIT_${_n:S/_VSN//} = ${_n:S/_VSN//:L}-${_v}
+SUBST_VARS += RABBIT_${_n:S/_VSN//}
+.endfor

pre-configure:
${SUBST_CMD} ${WRKSRC}/deps/rabbit/scripts/rabbitmq-{server,env}
Index: distinfo
===================================================================
RCS file: /cvs/ports/net/rabbitmq/distinfo,v
retrieving revision 1.12
diff -u -p -r1.12 distinfo
--- distinfo 3 Sep 2022 14:02:22 -0000 1.12
+++ distinfo 30 Dec 2022 19:45:46 -0000
@@ -1,2 +1,2 @@
-SHA256 (rabbitmq-server-3.10.7.tar.xz) = tV4wWEGH8ZZQUFPbH+kGAerHyQY0Ff/4DbBsJH1pLrU=
-SIZE (rabbitmq-server-3.10.7.tar.xz) = 3579880
+SHA256 (rabbitmq-server-3.10.13.tar.xz) = 2YEOXVVSyRD8R92kg2t7QqcLd1HMRmm0IE1Xd4PD87A=
+SIZE (rabbitmq-server-3.10.13.tar.xz) = 3648572
Index: patches/patch-deps_rabbit_scripts_rabbitmq-defaults
===================================================================
RCS file: patches/patch-deps_rabbit_scripts_rabbitmq-defaults
diff -N patches/patch-deps_rabbit_scripts_rabbitmq-defaults
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-deps_rabbit_scripts_rabbitmq-defaults 30 Dec 2022 19:45:46 -0000
@@ -0,0 +1,15 @@
+Index: deps/rabbit/scripts/rabbitmq-defaults
+--- deps/rabbit/scripts/rabbitmq-defaults.orig
++++ deps/rabbit/scripts/rabbitmq-defaults
+@@ -9,6 +9,11 @@
+ ### next line potentially updated in package install steps
+ SYS_PREFIX=
+
++export RABBITMQ_MNESIA_BASE=/var/rabbitmq/mnesia
++export RABBITMQ_CONF_ENV_FILE=/etc/rabbitmq/rabbitmq-env.conf
++# ensure VM and Elixir scripts are running under the same locale
++export LANG=en_US.UTF-8
++
+ CLEAN_BOOT_FILE=start_clean
+ SASL_BOOT_FILE=start_sasl
+ BOOT_MODULE="rabbit"
Index: patches/patch-deps_rabbit_scripts_rabbitmq-env
===================================================================
RCS file: /cvs/ports/net/rabbitmq/patches/patch-deps_rabbit_scripts_rabbitmq-env,v
retrieving revision 1.3
diff -u -p -r1.3 patch-deps_rabbit_scripts_rabbitmq-env
--- patches/patch-deps_rabbit_scripts_rabbitmq-env 31 Jul 2022 12:20:42 -0000 1.3
+++ patches/patch-deps_rabbit_scripts_rabbitmq-env 30 Dec 2022 19:45:46 -0000
@@ -1,7 +1,7 @@
Index: deps/rabbit/scripts/rabbitmq-env
--- deps/rabbit/scripts/rabbitmq-env.orig
+++ deps/rabbit/scripts/rabbitmq-env
-@@ -177,7 +177,7 @@ run_escript()
+@@ -188,7 +188,7 @@ run_escript()
# Important: do not quote RABBITMQ_CTL_ERL_ARGS as they must be
# word-split
# shellcheck disable=SC2086
Index: patches/patch-deps_rabbit_scripts_rabbitmq-server
===================================================================
RCS file: /cvs/ports/net/rabbitmq/patches/patch-deps_rabbit_scripts_rabbitmq-server,v
retrieving revision 1.3
diff -u -p -r1.3 patch-deps_rabbit_scripts_rabbitmq-server
--- patches/patch-deps_rabbit_scripts_rabbitmq-server 31 Jul 2022 12:20:42 -0000 1.3
+++ patches/patch-deps_rabbit_scripts_rabbitmq-server 30 Dec 2022 19:45:46 -0000
@@ -1,7 +1,7 @@
Index: deps/rabbit/scripts/rabbitmq-server
--- deps/rabbit/scripts/rabbitmq-server.orig
+++ deps/rabbit/scripts/rabbitmq-server
-@@ -70,7 +70,7 @@ start_rabbitmq_server() {
+@@ -65,7 +65,7 @@ start_rabbitmq_server() {

check_start_params

Index: patches/patch-deps_rabbitmq_cli_mix_exs
===================================================================
RCS file: patches/patch-deps_rabbitmq_cli_mix_exs
diff -N patches/patch-deps_rabbitmq_cli_mix_exs
--- patches/patch-deps_rabbitmq_cli_mix_exs 3 Sep 2022 14:02:22 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-Whitelist Elixir 1.14. Already committed upstream with
-https://github.com/rabbitmq/rabbitmq-server/commit/c4bc7b60154dee39282231e22e1fe40fb73ca7d7
-Index
: deps/rabbitmq_cli/mix.exs
---- deps/rabbitmq_cli/mix.exs.orig
-+++ deps/rabbitmq_cli/mix.exs
-@@ -11,7 +11,7 @@ defmodule RabbitMQCtl.MixfileBase do
- [
- app: :rabbitmqctl,
- version: "3.8.0-dev",
-- elixir: ">= 1.10.4 and < 1.14.0",
-+ elixir: ">= 1.10.4 and < 1.15.0",
- build_embedded: Mix.env == :prod,
- start_permanent: Mix.env == :prod,
- escript: [main_module: RabbitMQCtl,
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/rabbitmq/pkg/PLIST,v
retrieving revision 1.17
diff -u -p -r1.17 PLIST
--- pkg/PLIST 8 Nov 2022 11:17:00 -0000 1.17
+++ pkg/PLIST 30 Dec 2022 19:45:46 -0000
@@ -31,15 +31,15 @@ lib/rabbitmq/escript/rabbitmq-upgrade
lib/rabbitmq/escript/rabbitmqctl
lib/rabbitmq/plugins/
lib/rabbitmq/plugins/README
-lib/rabbitmq/plugins/accept-0.3.5/
-lib/rabbitmq/plugins/accept-0.3.5/ebin/
-lib/rabbitmq/plugins/accept-0.3.5/ebin/accept.app
-lib/rabbitmq/plugins/accept-0.3.5/ebin/accept_encoding_header.beam
-lib/rabbitmq/plugins/accept-0.3.5/ebin/accept_header.beam
-lib/rabbitmq/plugins/accept-0.3.5/ebin/accept_neg.beam
-lib/rabbitmq/plugins/accept-0.3.5/ebin/accept_parser.beam
-lib/rabbitmq/plugins/accept-0.3.5/include/
-lib/rabbitmq/plugins/accept-0.3.5/include/accept.hrl
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/ebin/
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/ebin/accept.app
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/ebin/accept_encoding_header.beam
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/ebin/accept_header.beam
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/ebin/accept_neg.beam
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/ebin/accept_parser.beam
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/include/
+lib/rabbitmq/plugins/${RABBIT_ACCEPT}/include/accept.hrl
lib/rabbitmq/plugins/amqp10_client-${V}/
lib/rabbitmq/plugins/amqp10_client-${V}/ebin/
lib/rabbitmq/plugins/amqp10_client-${V}/ebin/amqp10_client.app
@@ -95,432 +95,432 @@ lib/rabbitmq/plugins/amqp_client-${V}/in
lib/rabbitmq/plugins/amqp_client-${V}/include/amqp_client_internal.hrl
lib/rabbitmq/plugins/amqp_client-${V}/include/amqp_gen_consumer_spec.hrl
lib/rabbitmq/plugins/amqp_client-${V}/include/rabbit_routing_prefixes.hrl
-lib/rabbitmq/plugins/aten-0.5.8/
-lib/rabbitmq/plugins/aten-0.5.8/ebin/
-lib/rabbitmq/plugins/aten-0.5.8/ebin/aten.app
-lib/rabbitmq/plugins/aten-0.5.8/ebin/aten.beam
-lib/rabbitmq/plugins/aten-0.5.8/ebin/aten_app.beam
-lib/rabbitmq/plugins/aten-0.5.8/ebin/aten_detect.beam
-lib/rabbitmq/plugins/aten-0.5.8/ebin/aten_detector.beam
-lib/rabbitmq/plugins/aten-0.5.8/ebin/aten_emitter.beam
-lib/rabbitmq/plugins/aten-0.5.8/ebin/aten_sink.beam
-lib/rabbitmq/plugins/aten-0.5.8/ebin/aten_sup.beam
-lib/rabbitmq/plugins/base64url-1.0.1/
-lib/rabbitmq/plugins/base64url-1.0.1/ebin/
-lib/rabbitmq/plugins/base64url-1.0.1/ebin/base64url.app
-lib/rabbitmq/plugins/base64url-1.0.1/ebin/base64url.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy.app
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_app.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_bstr.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_children.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_clear.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_clock.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_compress_h.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_constraints.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_handler.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_http.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_http2.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_loop.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_metrics_h.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_middleware.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_req.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_rest.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_router.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_static.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_stream.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_stream_h.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_sub_protocol.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_sup.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_tls.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_tracer_h.beam
-lib/rabbitmq/plugins/cowboy-2.8.0/ebin/cowboy_websocket.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_base64url.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_cookie.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_date.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_hpack.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_http.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_http2.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_http2_machine.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_http_hd.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_http_struct_hd.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_http_te.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_iolists.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_link.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_mimetypes.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_multipart.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_qs.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_spdy.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_sse.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_uri.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_uri_template.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cow_ws.beam
-lib/rabbitmq/plugins/cowlib-2.9.1/ebin/cowlib.app
-lib/rabbitmq/plugins/cowlib-2.9.1/include/
-lib/rabbitmq/plugins/cowlib-2.9.1/include/cow_inline.hrl
-lib/rabbitmq/plugins/cowlib-2.9.1/include/cow_parse.hrl
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/ebin/
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/ebin/credentials_obfuscation.app
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/ebin/credentials_obfuscation.beam
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/ebin/credentials_obfuscation_app.beam
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/ebin/credentials_obfuscation_pbe.beam
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/ebin/credentials_obfuscation_sup.beam
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/ebin/credentials_obfuscation_svc.beam
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/include/
-lib/rabbitmq/plugins/credentials_obfuscation-3.1.0/include/credentials_obfuscation.hrl
-lib/rabbitmq/plugins/cuttlefish-3.0.1/
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/conf_parse.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish.app
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_advanced.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_bytesize.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_conf.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_datatypes.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_duration.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_duration_parse.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_effective.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_enum.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_error.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_escript.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_flag.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_generator.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_mapping.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_rebar_plugin.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_schema.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_translation.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_unit.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_util.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_validator.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_variable.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/ebin/cuttlefish_vmargs.beam
-lib/rabbitmq/plugins/cuttlefish-3.0.1/priv/
-lib/rabbitmq/plugins/cuttlefish-3.0.1/priv/erlang_vm.schema
-lib/rabbitmq/plugins/eetcd-0.3.5/
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/auth_pb.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd.app
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_app.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_auth.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_auth_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_cluster.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_cluster_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_compare.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_conn.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_conn_sup.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_data_coercion.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_election.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_election_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_grpc.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_health_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_kv.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_kv_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_lease.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_lease_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_lease_sup.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_lock.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_lock_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_maintenance.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_maintenance_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_op.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_stream.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_sup.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_watch.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/eetcd_watch_gen.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/gogo_pb.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/health_pb.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/kv_pb.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/ebin/router_pb.beam
-lib/rabbitmq/plugins/eetcd-0.3.5/include/
-lib/rabbitmq/plugins/eetcd-0.3.5/include/eetcd.hrl
-lib/rabbitmq/plugins/eetcd-0.3.5/priv/
-lib/rabbitmq/plugins/eetcd-0.3.5/priv/protos/
-lib/rabbitmq/plugins/eetcd-0.3.5/priv/protos/auth.proto
-lib/rabbitmq/plugins/eetcd-0.3.5/priv/protos/gogo.proto
-lib/rabbitmq/plugins/eetcd-0.3.5/priv/protos/kv.proto
-lib/rabbitmq/plugins/eetcd-0.3.5/priv/protos/router.proto
-lib/rabbitmq/plugins/enough-0.1.0/
-lib/rabbitmq/plugins/enough-0.1.0/ebin/
-lib/rabbitmq/plugins/enough-0.1.0/ebin/enough.app
-lib/rabbitmq/plugins/enough-0.1.0/ebin/enough.beam
-lib/rabbitmq/plugins/gen_batch_server-0.8.8/
-lib/rabbitmq/plugins/gen_batch_server-0.8.8/ebin/
-lib/rabbitmq/plugins/gen_batch_server-0.8.8/ebin/gen_batch_server.app
-lib/rabbitmq/plugins/gen_batch_server-0.8.8/ebin/gen_batch_server.beam
-lib/rabbitmq/plugins/getopt-1.0.2/
-lib/rabbitmq/plugins/getopt-1.0.2/ebin/
-lib/rabbitmq/plugins/getopt-1.0.2/ebin/getopt.app
-lib/rabbitmq/plugins/getopt-1.0.2/ebin/getopt.beam
-lib/rabbitmq/plugins/gun-1.3.3/
-lib/rabbitmq/plugins/gun-1.3.3/ebin/
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun.app
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_app.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_content_handler.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_data_h.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_http.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_http2.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_sse_h.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_sup.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_tcp.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_tls.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_ws.beam
-lib/rabbitmq/plugins/gun-1.3.3/ebin/gun_ws_h.beam
-lib/rabbitmq/plugins/jose-1.11.1/
-lib/rabbitmq/plugins/jose-1.11.1/ebin/
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose.app
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_app.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_base.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_base64.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_base64url.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_block_encryptor.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_chacha20_poly1305.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_chacha20_poly1305_crypto.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_chacha20_poly1305_libsodium.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_chacha20_poly1305_unsupported.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_crypto_compat.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_curve25519.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_curve25519_libdecaf.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_curve25519_libsodium.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_curve25519_unsupported.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_curve448.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_curve448_libdecaf.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_curve448_unsupported.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_jason.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_jiffy.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_jsone.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_jsx.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_ojson.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_poison.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_poison_compat_encoder.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_poison_lexical_encoder.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_json_unsupported.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_aes.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_aes_kw.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_base64url.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_bench.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_chacha20.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_chacha20_poly1305.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_concat_kdf.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_curve25519.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_curve448.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_ed25519.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_ed448.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_hchacha20.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_math.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_pkcs1.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_pkcs5.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_pkcs7.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_poly1305.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_sha3.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_unsupported.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_x25519.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_x448.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_xchacha20.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwa_xchacha20_poly1305.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg_aes_kw.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg_c20p_kw.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg_dir.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg_ecdh_1pu.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg_ecdh_es.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg_pbes2.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg_rsa.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_alg_xc20p_kw.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_enc.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_enc_aes.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_enc_c20p.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_enc_xc20p.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwe_zip.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_der.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_ec.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_oct.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_okp_ed25519.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_okp_ed25519ph.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_okp_ed448.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_okp_ed448ph.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_okp_x25519.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_okp_x448.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_kty_rsa.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_oct.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_openssh_key.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_pem.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_set.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_use_enc.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwk_use_sig.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws_alg.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws_alg_ecdsa.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws_alg_eddsa.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws_alg_hmac.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws_alg_none.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws_alg_poly1305.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws_alg_rsa_pkcs1_v1_5.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jws_alg_rsa_pss.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_jwt.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_public_key.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_server.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_sha3.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_sha3_keccakf1600_driver.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_sha3_keccakf1600_nif.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_sha3_libdecaf.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_sha3_unsupported.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_sup.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_xchacha20_poly1305.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_xchacha20_poly1305_crypto.beam
-lib/rabbitmq/plugins/jose-1.11.1/ebin/jose_xchacha20_poly1305_unsupported.beam
-lib/rabbitmq/plugins/jose-1.11.1/include/
-lib/rabbitmq/plugins/jose-1.11.1/include/jose.hrl
-lib/rabbitmq/plugins/jose-1.11.1/include/jose_base.hrl
-lib/rabbitmq/plugins/jose-1.11.1/include/jose_compat.hrl
-lib/rabbitmq/plugins/jose-1.11.1/include/jose_jwe.hrl
-lib/rabbitmq/plugins/jose-1.11.1/include/jose_jwk.hrl
-lib/rabbitmq/plugins/jose-1.11.1/include/jose_jws.hrl
-lib/rabbitmq/plugins/jose-1.11.1/include/jose_jwt.hrl
-lib/rabbitmq/plugins/jose-1.11.1/include/jose_public_key.hrl
-lib/rabbitmq/plugins/jose-1.11.1/priv/
-lib/rabbitmq/plugins/jose-1.11.1/priv/Dockerfile
-lib/rabbitmq/plugins/jsx-3.1.0/
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx.app
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx.beam
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx_config.beam
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx_consult.beam
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx_decoder.beam
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx_encoder.beam
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx_parser.beam
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx_to_json.beam
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx_to_term.beam
-lib/rabbitmq/plugins/jsx-3.1.0/ebin/jsx_verify.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli.app
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_application.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_escriptize.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_ets.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_help.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_inet.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_lib.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_mnesia.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_plugin.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_port.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_process.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_store.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/ebin/observer_cli_system.beam
-lib/rabbitmq/plugins/observer_cli-1.7.3/include/
-lib/rabbitmq/plugins/observer_cli-1.7.3/include/observer_cli.hrl
-lib/rabbitmq/plugins/osiris-1.3.0/
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris.app
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_app.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_bench.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_counters.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_log.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_replica.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_replica_reader.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_replica_reader_sup.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_retention.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_server_sup.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_sup.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_tracking.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_util.beam
-lib/rabbitmq/plugins/osiris-1.3.0/ebin/osiris_writer.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus.app
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_boolean.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_buckets.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_collector.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_counter.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_format.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_gauge.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_histogram.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_http.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_instrumenter.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_metric.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_metric_spec.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_misc.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_mnesia.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_mnesia_collector.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_model.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_model_helpers.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_protobuf_format.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_quantile_summary.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_registry.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_summary.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_sup.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_test_instrumenter.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_text_format.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_time.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_vm_dist_collector.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_vm_memory_collector.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_vm_msacc_collector.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_vm_statistics_collector.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/ebin/prometheus_vm_system_info_collector.beam
-lib/rabbitmq/plugins/prometheus-4.8.2/include/
-lib/rabbitmq/plugins/prometheus-4.8.2/include/prometheus.hrl
-lib/rabbitmq/plugins/prometheus-4.8.2/include/prometheus_model.hrl
-lib/rabbitmq/plugins/quantile_estimator-0.2.1/
-lib/rabbitmq/plugins/quantile_estimator-0.2.1/ebin/
-lib/rabbitmq/plugins/quantile_estimator-0.2.1/ebin/quantile.beam
-lib/rabbitmq/plugins/quantile_estimator-0.2.1/ebin/quantile_estimator.app
-lib/rabbitmq/plugins/quantile_estimator-0.2.1/ebin/quantile_estimator.beam
-lib/rabbitmq/plugins/quantile_estimator-0.2.1/include/
-lib/rabbitmq/plugins/quantile_estimator-0.2.1/include/quantile_estimator.hrl
-lib/rabbitmq/plugins/ra-2.2.0/
-lib/rabbitmq/plugins/ra-2.2.0/ebin/
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra.app
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_app.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_bench.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_counters.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_dbg.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_directory.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_env.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_file_handle.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_flru.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_leaderboard.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_lib.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_ets.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_meta.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_pre_init.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_reader.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_segment.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_segment_writer.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_snapshot.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_sup.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_wal.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_log_wal_sup.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_machine.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_machine_ets.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_machine_simple.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_metrics_ets.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_monitors.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_server.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_server_proc.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_server_sup.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_server_sup_sup.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_snapshot.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_sup.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_system.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_system_sup.beam
-lib/rabbitmq/plugins/ra-2.2.0/ebin/ra_systems_sup.beam
+lib/rabbitmq/plugins/${RABBIT_ATEN}/
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/aten.app
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/aten.beam
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/aten_app.beam
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/aten_detect.beam
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/aten_detector.beam
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/aten_emitter.beam
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/aten_sink.beam
+lib/rabbitmq/plugins/${RABBIT_ATEN}/ebin/aten_sup.beam
+lib/rabbitmq/plugins/${RABBIT_BASE64URL}/
+lib/rabbitmq/plugins/${RABBIT_BASE64URL}/ebin/
+lib/rabbitmq/plugins/${RABBIT_BASE64URL}/ebin/base64url.app
+lib/rabbitmq/plugins/${RABBIT_BASE64URL}/ebin/base64url.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy.app
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_app.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_bstr.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_children.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_clear.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_clock.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_compress_h.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_constraints.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_handler.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_http.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_http2.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_loop.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_metrics_h.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_middleware.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_req.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_rest.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_router.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_static.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_stream.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_stream_h.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_sub_protocol.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_sup.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_tls.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_tracer_h.beam
+lib/rabbitmq/plugins/${RABBIT_COWBOY}/ebin/cowboy_websocket.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_base64url.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_cookie.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_date.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_hpack.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_http.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_http2.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_http2_machine.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_http_hd.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_http_struct_hd.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_http_te.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_iolists.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_link.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_mimetypes.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_multipart.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_qs.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_spdy.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_sse.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_uri.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_uri_template.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cow_ws.beam
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/ebin/cowlib.app
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/include/
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/include/cow_inline.hrl
+lib/rabbitmq/plugins/${RABBIT_COWLIB}/include/cow_parse.hrl
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/ebin/
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/ebin/credentials_obfuscation.app
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/ebin/credentials_obfuscation.beam
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/ebin/credentials_obfuscation_app.beam
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/ebin/credentials_obfuscation_pbe.beam
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/ebin/credentials_obfuscation_sup.beam
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/ebin/credentials_obfuscation_svc.beam
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/include/
+lib/rabbitmq/plugins/${RABBIT_CREDENTIALS_OBFUSCATION}/include/credentials_obfuscation.hrl
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/conf_parse.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish.app
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_advanced.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_bytesize.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_conf.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_datatypes.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_duration.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_duration_parse.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_effective.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_enum.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_error.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_escript.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_flag.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_generator.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_mapping.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_rebar_plugin.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_schema.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_translation.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_unit.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_util.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_validator.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_variable.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/ebin/cuttlefish_vmargs.beam
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/priv/
+lib/rabbitmq/plugins/${RABBIT_CUTTLEFISH}/priv/erlang_vm.schema
+lib/rabbitmq/plugins/${RABBIT_EETCD}/
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/auth_pb.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd.app
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_app.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_auth.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_auth_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_cluster.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_cluster_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_compare.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_conn.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_conn_sup.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_data_coercion.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_election.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_election_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_grpc.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_health_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_kv.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_kv_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_lease.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_lease_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_lease_sup.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_lock.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_lock_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_maintenance.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_maintenance_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_op.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_stream.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_sup.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_watch.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/eetcd_watch_gen.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/gogo_pb.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/health_pb.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/kv_pb.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/ebin/router_pb.beam
+lib/rabbitmq/plugins/${RABBIT_EETCD}/include/
+lib/rabbitmq/plugins/${RABBIT_EETCD}/include/eetcd.hrl
+lib/rabbitmq/plugins/${RABBIT_EETCD}/priv/
+lib/rabbitmq/plugins/${RABBIT_EETCD}/priv/protos/
+lib/rabbitmq/plugins/${RABBIT_EETCD}/priv/protos/auth.proto
+lib/rabbitmq/plugins/${RABBIT_EETCD}/priv/protos/gogo.proto
+lib/rabbitmq/plugins/${RABBIT_EETCD}/priv/protos/kv.proto
+lib/rabbitmq/plugins/${RABBIT_EETCD}/priv/protos/router.proto
+lib/rabbitmq/plugins/${RABBIT_ENOUGH}/
+lib/rabbitmq/plugins/${RABBIT_ENOUGH}/ebin/
+lib/rabbitmq/plugins/${RABBIT_ENOUGH}/ebin/enough.app
+lib/rabbitmq/plugins/${RABBIT_ENOUGH}/ebin/enough.beam
+lib/rabbitmq/plugins/${RABBIT_GEN_BATCH_SERVER}/
+lib/rabbitmq/plugins/${RABBIT_GEN_BATCH_SERVER}/ebin/
+lib/rabbitmq/plugins/${RABBIT_GEN_BATCH_SERVER}/ebin/gen_batch_server.app
+lib/rabbitmq/plugins/${RABBIT_GEN_BATCH_SERVER}/ebin/gen_batch_server.beam
+lib/rabbitmq/plugins/${RABBIT_GETOPT}/
+lib/rabbitmq/plugins/${RABBIT_GETOPT}/ebin/
+lib/rabbitmq/plugins/${RABBIT_GETOPT}/ebin/getopt.app
+lib/rabbitmq/plugins/${RABBIT_GETOPT}/ebin/getopt.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun.app
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_app.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_content_handler.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_data_h.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_http.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_http2.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_sse_h.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_sup.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_tcp.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_tls.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_ws.beam
+lib/rabbitmq/plugins/${RABBIT_GUN}/ebin/gun_ws_h.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose.app
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_app.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_base.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_base64.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_base64url.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_block_encryptor.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_chacha20_poly1305.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_chacha20_poly1305_crypto.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_chacha20_poly1305_libsodium.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_chacha20_poly1305_unsupported.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_crypto_compat.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_curve25519.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_curve25519_libdecaf.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_curve25519_libsodium.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_curve25519_unsupported.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_curve448.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_curve448_libdecaf.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_curve448_unsupported.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_jason.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_jiffy.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_jsone.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_jsx.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_ojson.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_poison.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_poison_compat_encoder.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_poison_lexical_encoder.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_json_unsupported.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_aes.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_aes_kw.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_base64url.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_bench.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_chacha20.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_chacha20_poly1305.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_concat_kdf.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_curve25519.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_curve448.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_ed25519.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_ed448.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_hchacha20.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_math.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_pkcs1.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_pkcs5.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_pkcs7.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_poly1305.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_sha3.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_unsupported.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_x25519.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_x448.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_xchacha20.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwa_xchacha20_poly1305.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg_aes_kw.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg_c20p_kw.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg_dir.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg_ecdh_1pu.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg_ecdh_es.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg_pbes2.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg_rsa.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_alg_xc20p_kw.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_enc.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_enc_aes.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_enc_c20p.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_enc_xc20p.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwe_zip.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_der.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_ec.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_oct.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_okp_ed25519.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_okp_ed25519ph.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_okp_ed448.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_okp_ed448ph.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_okp_x25519.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_okp_x448.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_kty_rsa.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_oct.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_openssh_key.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_pem.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_set.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_use_enc.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwk_use_sig.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws_alg.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws_alg_ecdsa.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws_alg_eddsa.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws_alg_hmac.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws_alg_none.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws_alg_poly1305.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws_alg_rsa_pkcs1_v1_5.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jws_alg_rsa_pss.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_jwt.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_public_key.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_server.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_sha3.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_sha3_keccakf1600_driver.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_sha3_keccakf1600_nif.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_sha3_libdecaf.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_sha3_unsupported.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_sup.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_xchacha20_poly1305.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_xchacha20_poly1305_crypto.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/ebin/jose_xchacha20_poly1305_unsupported.beam
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/jose.hrl
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/jose_base.hrl
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/jose_compat.hrl
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/jose_jwe.hrl
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/jose_jwk.hrl
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/jose_jws.hrl
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/jose_jwt.hrl
+lib/rabbitmq/plugins/${RABBIT_JOSE}/include/jose_public_key.hrl
+lib/rabbitmq/plugins/${RABBIT_JOSE}/priv/
+lib/rabbitmq/plugins/${RABBIT_JOSE}/priv/Dockerfile
+lib/rabbitmq/plugins/${RABBIT_JSX}/
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx.app
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx.beam
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx_config.beam
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx_consult.beam
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx_decoder.beam
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx_encoder.beam
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx_parser.beam
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx_to_json.beam
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx_to_term.beam
+lib/rabbitmq/plugins/${RABBIT_JSX}/ebin/jsx_verify.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli.app
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_application.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_escriptize.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_ets.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_help.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_inet.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_lib.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_mnesia.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_plugin.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_port.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_process.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_store.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/ebin/observer_cli_system.beam
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/include/
+lib/rabbitmq/plugins/${RABBIT_OBSERVER_CLI}/include/observer_cli.hrl
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris.app
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_app.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_bench.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_counters.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_log.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_replica.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_replica_reader.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_replica_reader_sup.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_retention.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_server_sup.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_sup.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_tracking.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_util.beam
+lib/rabbitmq/plugins/${RABBIT_OSIRIS}/ebin/osiris_writer.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus.app
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_boolean.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_buckets.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_collector.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_counter.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_format.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_gauge.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_histogram.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_http.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_instrumenter.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_metric.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_metric_spec.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_misc.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_mnesia.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_mnesia_collector.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_model.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_model_helpers.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_protobuf_format.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_quantile_summary.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_registry.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_summary.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_sup.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_test_instrumenter.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_text_format.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_time.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_vm_dist_collector.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_vm_memory_collector.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_vm_msacc_collector.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_vm_statistics_collector.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/ebin/prometheus_vm_system_info_collector.beam
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/include/
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/include/prometheus.hrl
+lib/rabbitmq/plugins/${RABBIT_PROMETHEUS}/include/prometheus_model.hrl
+lib/rabbitmq/plugins/${RABBIT_QUANTILE_ESTIMATOR}/
+lib/rabbitmq/plugins/${RABBIT_QUANTILE_ESTIMATOR}/ebin/
+lib/rabbitmq/plugins/${RABBIT_QUANTILE_ESTIMATOR}/ebin/quantile.beam
+lib/rabbitmq/plugins/${RABBIT_QUANTILE_ESTIMATOR}/ebin/quantile_estimator.app
+lib/rabbitmq/plugins/${RABBIT_QUANTILE_ESTIMATOR}/ebin/quantile_estimator.beam
+lib/rabbitmq/plugins/${RABBIT_QUANTILE_ESTIMATOR}/include/
+lib/rabbitmq/plugins/${RABBIT_QUANTILE_ESTIMATOR}/include/quantile_estimator.hrl
+lib/rabbitmq/plugins/${RABBIT_RA}/
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra.app
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_app.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_bench.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_counters.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_dbg.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_directory.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_env.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_file_handle.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_flru.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_leaderboard.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_lib.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_ets.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_meta.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_pre_init.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_reader.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_segment.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_segment_writer.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_snapshot.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_wal.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_log_wal_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_machine.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_machine_ets.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_machine_simple.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_metrics_ets.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_monitors.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_server.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_server_proc.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_server_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_server_sup_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_snapshot.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_system.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_system_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RA}/ebin/ra_systems_sup.beam
lib/rabbitmq/plugins/rabbit-${V}/
lib/rabbitmq/plugins/rabbit-${V}/ebin/
lib/rabbitmq/plugins/rabbit-${V}/ebin/amqqueue.beam
@@ -646,6 +646,8 @@ lib/rabbitmq/plugins/rabbit-${V}/ebin/ra
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_networking.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_node_monitor.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_nodes.beam
+lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_observer_cli.beam
+lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_observer_cli_classic_queues.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_osiris_metrics.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_parameter_validation.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_password.beam
@@ -683,6 +685,7 @@ lib/rabbitmq/plugins/rabbit-${V}/ebin/ra
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_ra_systems.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_reader.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_recovery_terms.beam
+lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_release_series.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_restartable_sup.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_router.beam
lib/rabbitmq/plugins/rabbit-${V}/ebin/rabbit_runtime_parameters.beam
@@ -987,10 +990,12 @@ lib/rabbitmq/plugins/rabbitmq_management
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_cluster_name.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_connection.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_connection_channels.beam
+lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_connection_user_name.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_connections.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_connections_vhost.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_consumers.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_definitions.beam
+lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_environment.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_exchange.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_exchange_publish.beam
lib/rabbitmq/plugins/rabbitmq_management-${V}/ebin/rabbit_mgmt_wm_exchanges.beam
@@ -1544,91 +1549,91 @@ lib/rabbitmq/plugins/rabbitmq_web_stomp_
lib/rabbitmq/plugins/rabbitmq_web_stomp_examples-${V}/priv/pencil.cur
lib/rabbitmq/plugins/rabbitmq_web_stomp_examples-${V}/priv/stomp.js
lib/rabbitmq/plugins/rabbitmq_web_stomp_examples-${V}/priv/temp-queue.html
-lib/rabbitmq/plugins/ranch-2.1.0/
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch.app
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch.appup
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_acceptor.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_acceptors_sup.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_app.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_conns_sup.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_conns_sup_sup.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_crc32c.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_embedded_sup.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_listener_sup.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_protocol.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_proxy_header.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_server.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_server_proxy.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_ssl.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_sup.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_tcp.beam
-lib/rabbitmq/plugins/ranch-2.1.0/ebin/ranch_transport.beam
-lib/rabbitmq/plugins/recon-2.5.2/
-lib/rabbitmq/plugins/recon-2.5.2/ebin/
-lib/rabbitmq/plugins/recon-2.5.2/ebin/recon.app
-lib/rabbitmq/plugins/recon-2.5.2/ebin/recon.beam
-lib/rabbitmq/plugins/recon-2.5.2/ebin/recon_alloc.beam
-lib/rabbitmq/plugins/recon-2.5.2/ebin/recon_lib.beam
-lib/rabbitmq/plugins/recon-2.5.2/ebin/recon_map.beam
-lib/rabbitmq/plugins/recon-2.5.2/ebin/recon_rec.beam
-lib/rabbitmq/plugins/recon-2.5.2/ebin/recon_trace.beam
-lib/rabbitmq/plugins/seshat-0.3.2/
-lib/rabbitmq/plugins/seshat-0.3.2/ebin/
-lib/rabbitmq/plugins/seshat-0.3.2/ebin/seshat.app
-lib/rabbitmq/plugins/seshat-0.3.2/ebin/seshat.beam
-lib/rabbitmq/plugins/seshat-0.3.2/ebin/seshat_app.beam
-lib/rabbitmq/plugins/seshat-0.3.2/ebin/seshat_counters_server.beam
-lib/rabbitmq/plugins/seshat-0.3.2/ebin/seshat_sup.beam
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/ebin/
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/ebin/stdout_formatter.app
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/ebin/stdout_formatter.beam
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/ebin/stdout_formatter_paragraph.beam
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/ebin/stdout_formatter_table.beam
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/ebin/stdout_formatter_utils.beam
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/include/
-lib/rabbitmq/plugins/stdout_formatter-0.2.4/include/stdout_formatter.hrl
-lib/rabbitmq/plugins/syslog-4.0.0/
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog.app
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog.beam
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog_error_h.beam
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog_lager_backend.beam
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog_lib.beam
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog_logger.beam
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog_logger_h.beam
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog_monitor.beam
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog_rfc3164.beam
-lib/rabbitmq/plugins/syslog-4.0.0/ebin/syslog_rfc5424.beam
-lib/rabbitmq/plugins/syslog-4.0.0/include/
-lib/rabbitmq/plugins/syslog-4.0.0/include/syslog.hrl
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/ebin/
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/ebin/sysmon_handler.app
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/ebin/sysmon_handler_app.beam
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/ebin/sysmon_handler_example_handler.beam
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/ebin/sysmon_handler_filter.beam
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/ebin/sysmon_handler_sup.beam
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/ebin/sysmon_handler_testhandler.beam
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/include/
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/include/sysmon_handler.hrl
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/priv/
-lib/rabbitmq/plugins/sysmon_handler-1.3.0/priv/sysmon_handler.schema
-lib/rabbitmq/plugins/systemd-0.6.1/
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd.app
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd.beam
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd_app.beam
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd_journal_h.beam
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd_kmsg_formatter.beam
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd_protocol.beam
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd_socket.beam
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd_sup.beam
-lib/rabbitmq/plugins/systemd-0.6.1/ebin/systemd_watchdog.beam
-lib/rabbitmq/plugins/systemd-0.6.1/include/
-lib/rabbitmq/plugins/systemd-0.6.1/include/systemd.hrl
+lib/rabbitmq/plugins/${RABBIT_RANCH}/
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch.app
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch.appup
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_acceptor.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_acceptors_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_app.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_conns_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_conns_sup_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_crc32c.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_embedded_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_listener_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_protocol.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_proxy_header.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_server.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_server_proxy.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_ssl.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_sup.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_tcp.beam
+lib/rabbitmq/plugins/${RABBIT_RANCH}/ebin/ranch_transport.beam
+lib/rabbitmq/plugins/${RABBIT_RECON}/
+lib/rabbitmq/plugins/${RABBIT_RECON}/ebin/
+lib/rabbitmq/plugins/${RABBIT_RECON}/ebin/recon.app
+lib/rabbitmq/plugins/${RABBIT_RECON}/ebin/recon.beam
+lib/rabbitmq/plugins/${RABBIT_RECON}/ebin/recon_alloc.beam
+lib/rabbitmq/plugins/${RABBIT_RECON}/ebin/recon_lib.beam
+lib/rabbitmq/plugins/${RABBIT_RECON}/ebin/recon_map.beam
+lib/rabbitmq/plugins/${RABBIT_RECON}/ebin/recon_rec.beam
+lib/rabbitmq/plugins/${RABBIT_RECON}/ebin/recon_trace.beam
+lib/rabbitmq/plugins/${RABBIT_SESHAT}/
+lib/rabbitmq/plugins/${RABBIT_SESHAT}/ebin/
+lib/rabbitmq/plugins/${RABBIT_SESHAT}/ebin/seshat.app
+lib/rabbitmq/plugins/${RABBIT_SESHAT}/ebin/seshat.beam
+lib/rabbitmq/plugins/${RABBIT_SESHAT}/ebin/seshat_app.beam
+lib/rabbitmq/plugins/${RABBIT_SESHAT}/ebin/seshat_counters_server.beam
+lib/rabbitmq/plugins/${RABBIT_SESHAT}/ebin/seshat_sup.beam
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/ebin/
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/ebin/stdout_formatter.app
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/ebin/stdout_formatter.beam
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/ebin/stdout_formatter_paragraph.beam
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/ebin/stdout_formatter_table.beam
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/ebin/stdout_formatter_utils.beam
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/include/
+lib/rabbitmq/plugins/${RABBIT_STDOUT_FORMATTER}/include/stdout_formatter.hrl
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog.app
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog_error_h.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog_lager_backend.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog_lib.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog_logger.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog_logger_h.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog_monitor.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog_rfc3164.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/ebin/syslog_rfc5424.beam
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/include/
+lib/rabbitmq/plugins/${RABBIT_SYSLOG}/include/syslog.hrl
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/ebin/
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/ebin/sysmon_handler.app
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/ebin/sysmon_handler_app.beam
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/ebin/sysmon_handler_example_handler.beam
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/ebin/sysmon_handler_filter.beam
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/ebin/sysmon_handler_sup.beam
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/ebin/sysmon_handler_testhandler.beam
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/include/
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/include/sysmon_handler.hrl
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/priv/
+lib/rabbitmq/plugins/${RABBIT_SYSMON_HANDLER}/priv/sysmon_handler.schema
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd.app
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd.beam
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd_app.beam
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd_journal_h.beam
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd_kmsg_formatter.beam
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd_protocol.beam
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd_socket.beam
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd_sup.beam
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/ebin/systemd_watchdog.beam
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/include/
+lib/rabbitmq/plugins/${RABBIT_SYSTEMD}/include/systemd.hrl
lib/rabbitmq/sbin/
lib/rabbitmq/sbin/rabbitmq-defaults
lib/rabbitmq/sbin/rabbitmq-diagnostics
@@ -1647,6 +1652,7 @@ lib/rabbitmq/sbin/rabbitmqctl
@man man/man8/rabbitmq-queues.8
@man man/man8/rabbitmq-server.8
@man man/man8/rabbitmq-service.8
+@man man/man8/rabbitmq-streams.8
@man man/man8/rabbitmq-upgrade.8
@man man/man8/rabbitmqctl.8
share/bash-completions/
Index: pkg/rabbitmq.rc
===================================================================
RCS file: /cvs/ports/net/rabbitmq/pkg/rabbitmq.rc,v
retrieving revision 1.11
diff -u -p -r1.11 rabbitmq.rc
--- pkg/rabbitmq.rc 31 Jul 2022 16:28:15 -0000 1.11
+++ pkg/rabbitmq.rc 30 Dec 2022 19:45:46 -0000
@@ -5,19 +5,20 @@ daemon_user="_rabbitmq"

. /etc/rc.d/rc.subr

+pexp="s rabbit boot"
rc_reload=NO
rc_usercheck=NO

rc_pre() {
- install -d -o ${daemon_user} /var/run/rabbitmq
+ install -d -o ${daemon_user} /var/run/rabbitmq
}

rc_check() {
- ${TRUEPREFIX}/bin/rabbitmqctl status
+ pgrep -q -f "${pexp}"
}

rc_stop() {
- ${TRUEPREFIX}/bin/rabbitmqctl stop
+ ${TRUEPREFIX}/bin/rabbitmqctl stop
}

rc_cmd $1
Updates net/rabbitmq to the most recent 3.10.x release.

* Reinstates patch-deps_rabbit_scripts_rabbitmq-defaults that shouldn't
have been dropped

* Drops patch-deps_rabbitmq_cli_mix_exs that is now upstreamed

* Substitutes versions of bundled dependencies to avoid PLIST churn
further down the line (adding lots of PLIST churn now...)

* Prevents epmd from being started as root, albeit in a very ugly way:

While rabbitmq.rc always started the rabbitmq launch script as
_rabbitmq, it contained a call to rabbitmqctl in rc_check(). rabbitmqctl
always starts an instance of epmd if none is running, and since the
first call to rc_check() is run by root, it always launches epmd as root.

Besides having a server running with root privileges now, this leads to
the problem that the first startup might fail because
/var/rabbitmq/.erlang.cookie is now owned by root and not accessible by
_rabbitmq anymore.

What I'm proposing now is to use a pexp in rabbitmq.rc for rc_check().

Given rabbitmq's giant invocation of erl25, the pattern I'm looking for
might be a little flaky, but it's the best working idea I could come up
with so far - better solutions are highly welcome, as is of course any
other feedback.