Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/call-build-macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
- name: Install dependencies
run: |
brew update
brew install bison flex libyaml openssl pkgconfig || true
brew install bison flex libyaml openssl pkgconfig rabbitmq-c || true

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably required for the unit tests as well?


- name: Install cmake
uses: jwlawson/actions-setup-cmake@v2
Expand Down
8 changes: 8 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1443,6 +1443,14 @@ if (FLB_IN_EBPF)

endif()

# AMQP
# ==========
find_package(rabbitmq-c 0.12)
if(FLB_IN_AMQP AND (NOT rabbitmq-c_FOUND))
Comment thread
matwey marked this conversation as resolved.
message(STATUS "rabbitmq-c is not found. Disabling AMQP support.")
FLB_OPTION(FLB_IN_AMQP OFF)
endif()

# Pthread Local Storage
# =====================
# By default we expect the compiler already support thread local storage
Expand Down
1 change: 1 addition & 0 deletions cmake/plugins_options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ option(FLB_MINIMAL "Enable minimal build configuration" No)

# Inputs (sources, data collectors)
# =================================
DEFINE_OPTION(FLB_IN_AMQP "Enable AMQP input plugin" ON)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this compile for all supported targets, including Windows and macOS? If not you need to provide the cmake overrides for those targets appropriately - there are macOS and Windows ones plus you can do the usual CMake config approach to enable/disable as required.

We provide a linked build script in the PR template to help test Linux targets.

There are no changes to any of the builds so no new dependencies are required?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tested this only on Linux since I don't have macOS and Windows. From what I see, this PR should work on all platforms.

There is single new dependency for this plugin:
https://github.com/matwey/fluent-bit/blob/8d485c33e5eeab4b42489f56caeafb58bce3b166/CMakeLists.txt#L1337

rabbitmq-c is cross-platform library. Existing vcpkg port proves that it can be built for all platforms.

@patrick-stephens patrick-stephens Mar 18, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will need to include the dependency for all builds as part of this change then , it might be easier to disable as well for macos/windows for now - there are config files in cmake/ for this.

Linux builds are done using the containers under the packaging/ directory so we can add the dependencies there if required, or include a vendored version of it if we are building from source under lib/.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've just rebased the branch onto master to get rid of in_tail failures in unit tests (they are unrelated to this PR)

DEFINE_OPTION(FLB_IN_BLOB "Enable Blob input plugin" ON)
DEFINE_OPTION(FLB_IN_CALYPTIA_FLEET "Enable Calyptia Fleet input plugin" ON)
DEFINE_OPTION(FLB_IN_COLLECTD "Enable Collectd input plugin" ON)
Expand Down
1 change: 1 addition & 0 deletions cmake/windows-setup.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ if(FLB_WINDOWS_DEFAULTS)

# INPUT plugins
# =============
set(FLB_IN_AMQP No)
set(FLB_IN_CPU No)
set(FLB_IN_DISK No)
set(FLB_IN_EXEC Yes)
Expand Down
31 changes: 25 additions & 6 deletions packaging/distros/almalinux/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,14 @@ RUN yum -y update && \
yum install -y rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
wget unzip systemd-devel wget flex bison \
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config \
librabbitmq-devel && \
yum clean all

ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# almalinux/8.arm64v8 base image
# hadolint ignore=DL3029
Expand All @@ -40,14 +43,17 @@ RUN yum -y update && \
yum install -y rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
wget unzip systemd-devel wget flex bison \
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config \
librabbitmq-devel && \
yum clean all

ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
# Need larger page size
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

FROM almalinux:9 AS almalinux-9-base

Expand All @@ -59,11 +65,14 @@ RUN yum -y update && \
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
wget unzip systemd-devel wget flex bison \
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config \
librabbitmq-devel && \
yum clean all

ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_IN_AMQP=Off
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# almalinux/8.arm64v8 base image
# hadolint ignore=DL3029
Expand All @@ -79,14 +88,17 @@ RUN yum -y update && \
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
wget unzip systemd-devel wget flex bison \
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config \
librabbitmq-devel && \
yum clean all

ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
# Need larger page size
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
ARG FLB_IN_AMQP=Off
ENV FLB_IN_AMQP=$FLB_IN_AMQP

FROM almalinux:10 AS almalinux-10-base

Expand All @@ -99,12 +111,15 @@ RUN yum -y update && \
wget unzip systemd-devel wget flex bison \
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config \
libzstd-devel && \
libzstd-devel \
librabbitmq-devel && \
yum clean all

# Use system installed libzstd library.
ARG FLB_PREFER_SYSTEM_LIB_ZSTD=On
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# almalinux/8.arm64v8 base image
# hadolint ignore=DL3029
Expand All @@ -121,7 +136,8 @@ RUN yum -y update && \
wget unzip systemd-devel wget flex bison \
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config \
libzstd-devel && \
libzstd-devel \
librabbitmq-devel && \
yum clean all

# Use system installed libzstd library.
Expand All @@ -130,6 +146,8 @@ ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
# Need larger page size
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# Common build for all distributions now
# hadolint ignore=DL3006
Expand Down Expand Up @@ -175,6 +193,7 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DFLB_CHUNK_TRACE="${FLB_CHUNK_TRACE}" \
-DFLB_UNICODE_ENCODER="${FLB_UNICODE_ENCODER}" \
-DFLB_PREFER_SYSTEM_LIB_ZSTD="${FLB_PREFER_SYSTEM_LIB_ZSTD}" \
-DFLB_IN_AMQP="${FLB_IN_AMQP}" \
../

VOLUME [ "/output" ]
Expand Down
11 changes: 11 additions & 0 deletions packaging/distros/amazonlinux/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ RUN yum -y update && \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel \
postgresql-devel postgresql-libs glibc-devel \
libyaml-devel zlib-devel libcurl-devel pkgconf-pkg-config \
librabbitmq-devel \
tar gzip && \
yum clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -49,6 +50,7 @@ RUN yum -y update && \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel \
postgresql-devel postgresql-libs \
libyaml-devel zlib-devel libcurl-devel pkgconf-pkg-config \
librabbitmq-devel \
tar gzip && \
yum clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -60,6 +62,8 @@ RUN yum -y update && \
ENV PATH="${CMAKE_HOME}/bin:${PATH}"
ARG FLB_KAFKA=Off
ENV FLB_KAFKA=$FLB_KAFKA
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

FROM amazonlinux:2023 AS amazonlinux-2023-base

Expand All @@ -74,6 +78,7 @@ RUN yum -y update && \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel \
postgresql-devel postgresql-libs \
libyaml-devel zlib-devel libcurl-devel pkgconf-pkg-config \
librabbitmq-devel \
tar gzip && \
yum clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -84,6 +89,8 @@ RUN yum -y update && \
ENV PATH="${CMAKE_HOME}/bin:${PATH}"
ARG FLB_KAFKA=On
ENV FLB_KAFKA=$FLB_KAFKA
ARG FLB_IN_AMQP=Off
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# hadolint ignore=DL3029
FROM --platform=arm64 amazonlinux:2023 AS amazonlinux-2023.arm64v8-base
Expand All @@ -101,6 +108,7 @@ RUN yum -y update && \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel \
postgresql-devel postgresql-libs \
libyaml-devel zlib-devel libcurl-devel pkgconf-pkg-config \
librabbitmq-devel \
tar gzip && \
yum clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -111,6 +119,8 @@ RUN yum -y update && \
ENV PATH="${CMAKE_HOME}/bin:${PATH}"
ARG FLB_KAFKA=On
ENV FLB_KAFKA=$FLB_KAFKA
ARG FLB_IN_AMQP=Off
ENV FLB_IN_AMQP=$FLB_IN_AMQP


# Common build for all distributions now
Expand Down Expand Up @@ -152,6 +162,7 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
-DFLB_JEMALLOC="${FLB_JEMALLOC}" \
-DFLB_CHUNK_TRACE="${FLB_CHUNK_TRACE}" \
-DFLB_IN_AMQP="${FLB_IN_AMQP}" \
../

VOLUME [ "/output" ]
Expand Down
25 changes: 25 additions & 0 deletions packaging/distros/centos/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ RUN sed -i -e "s/^mirrorlist=http:\/\/mirrorlist.centos.org/#mirrorlist=http:\/\
wget unzip systemd-devel wget flex bison \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
postgresql-libs postgresql-devel postgresql-server postgresql libyaml-devel \
librabbitmq-devel \
tar gzip && \
yum install -y epel-release && \
yum install -y cmake3 && \
Expand All @@ -45,6 +46,8 @@ ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_RIPSER=Off
ENV FLB_RIPSER=$FLB_RIPSER
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# centos/7.arm64v8 base image
FROM arm64v8/centos:7 AS centos-7.arm64v8-base
Expand All @@ -63,6 +66,7 @@ RUN sed -i -e "s/^mirrorlist=http:\/\/mirrorlist.centos.org/#mirrorlist=http:\/\
wget unzip systemd-devel wget flex bison \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
postgresql-libs postgresql-devel postgresql-server postgresql libyaml-devel \
librabbitmq-devel \
tar gzip && \
yum install -y epel-release && \
yum install -y cmake3 && \
Expand All @@ -85,6 +89,8 @@ ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_RIPSER=Off
ENV FLB_RIPSER=$FLB_RIPSER
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# Need larger page size
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
Expand All @@ -111,6 +117,7 @@ RUN yum -y update && \
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
libyaml-devel zlib-devel \
librabbitmq-devel \
tar gzip && \
yum clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -130,6 +137,8 @@ ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_RIPSER=On
ENV FLB_RIPSER=$FLB_RIPSER
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# centos/8.arm64v8 base image
FROM arm64v8/centos:8 AS centos-8.arm64v8-base
Expand All @@ -154,6 +163,7 @@ RUN yum -y update && \
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
libyaml-devel zlib-devel \
librabbitmq-devel \
tar gzip && \
yum clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -173,6 +183,8 @@ ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_RIPSER=On
ENV FLB_RIPSER=$FLB_RIPSER
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# Need larger page size
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
Expand All @@ -192,6 +204,7 @@ RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
libyaml-devel zlib-devel \
librabbitmq-devel \
tar gzip && \
dnf clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -205,6 +218,8 @@ ARG FLB_OUT_PGSQL=On
ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL
ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_IN_AMQP=Off
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# hadolint ignore=DL3029
FROM --platform=arm64 quay.io/centos/centos:stream9 AS centos-9.arm64v8-base
Expand All @@ -223,6 +238,7 @@ RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
libyaml-devel zlib-devel \
librabbitmq-devel \
tar gzip && \
dnf clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -242,6 +258,8 @@ ARG FLB_PREFER_SYSTEM_LIB_ZSTD=Off
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_RIPSER=On
ENV FLB_RIPSER=$FLB_RIPSER
ARG FLB_IN_AMQP=Off
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# Need larger page size
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
Expand All @@ -261,6 +279,7 @@ RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
libyaml-devel zlib-devel libzstd-devel \
librabbitmq-devel \
tar gzip && \
dnf clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -275,6 +294,8 @@ ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL
# Use system installed libzstd library.
ARG FLB_PREFER_SYSTEM_LIB_ZSTD=On
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# hadolint ignore=DL3029
FROM --platform=arm64 quay.io/centos/centos:stream10 AS centos-10.arm64v8-base
Expand All @@ -293,6 +314,7 @@ RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-
postgresql-libs postgresql-devel postgresql-server postgresql \
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
libyaml-devel zlib-devel libzstd-devel \
librabbitmq-devel \
tar gzip && \
dnf clean all && \
mkdir -p "${CMAKE_HOME}" && \
Expand All @@ -313,6 +335,8 @@ ARG FLB_PREFER_SYSTEM_LIB_ZSTD=On
ENV FLB_PREFER_SYSTEM_LIB_ZSTD=$FLB_PREFER_SYSTEM_LIB_ZSTD
ARG FLB_RIPSER=On
ENV FLB_RIPSER=$FLB_RIPSER
ARG FLB_IN_AMQP=On
ENV FLB_IN_AMQP=$FLB_IN_AMQP

# Need larger page size
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
Expand Down Expand Up @@ -360,6 +384,7 @@ RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
-DFLB_UNICODE_ENCODER="${FLB_UNICODE_ENCODER}" \
-DFLB_PREFER_SYSTEM_LIB_ZSTD="${FLB_PREFER_SYSTEM_LIB_ZSTD}" \
-DFLB_RIPSER="${FLB_RIPSER}" \
-DFLB_IN_AMQP="${FLB_IN_AMQP}" \
../

VOLUME [ "/output" ]
Expand Down
Loading
Loading