Hi all! First of all, it's a pleasure for me to be...
# fluent-bit
j
Hi all! First of all, it's a pleasure for me to be here. The reason I popped up is because of this PR: https://github.com/fluent/fluent-bit/pull/11207 The long story is that HTTP header matching should be case-insensitive (ditto RFC 9100) which is not the case for Fluent Bit S3 output stage at least when carrying out multipart uploads on S3-compatible (but not exactly equal) services (ie, EMC ViPR, more information here: https://github.com/fluent/fluent-bit/issues/11201). Actually the rabbit hole is deeper because there are other places in the code where header matching is case-sensitive but let's not get there now. The point I am trying to make it that I am willing to put the hours to fix the issue and go through whatever number of review cycles required by the steering group... but I need some guidance on the norms and ways around here. Not that I'm seasoned with CMake for instance and I rather ask the AI overlords with someone looking over my shoulder to be more effective. So if someone volunteers to show me around I will be eternally grateful.
p
You don't necessarily need to mess with CMake at all to fix anything. You can build packages for any environment via containers using
./packaging/build.sh -d <distro>
or just build the containers to test.
j
Thanks for the answer. My concern is that in order to make the proper handling of header names, that feature should be propagated to all environments and architectures.
(also, I'm a
podman
user....)
p
sure, and CI will build all these for you as well - the code is generally built for all targets (some may be conditionally compiled out or disabled)
podman or docker is fine, it's containers
j
Let me try. I reserve the right to get back at you for this.
😉
p
you can trigger the builds manually for each target (e.g. Linux, macOS, Windows) and then test on VMs?
Windows and macOS can disable some plugins or have specific setup explicitly but not S3: • https://github.com/fluent/fluent-bit/blob/master/cmake/windows-setup.cmake • https://github.com/fluent/fluent-bit/blob/master/cmake/macos-setup.cmake Otherwise all Linux targets follow the CMake defaults generally but you can see their specific builds in each container definition under
/packaging/distros
, e.g. https://github.com/fluent/fluent-bit/blob/master/packaging/distros/ubuntu/Dockerfile
The docs should cover how to set up a local build environment plus there is a Vagrantfile too in the repo although it may be a little old now.