fluent-package-builder (formerly known as td-agent-builder, it was renamed at Aug, 2021) is a new build system for td-agent which aims to replace the traditional build system omnibus-td-agent since it has several problems due to Omnibus‘s limitations.
But if you use older GNU/Linux platforms (e.g. Ubuntu 18.04 or before) as your host OS, you need to copy qemu-aarch64-static into the base directory of the target:
You can also build packages for ppc64le platform like this:
% rake yum:build YUM_TARGETS="centos-8-ppc64le"
But if you use older GNU/Linux platforms (e.g. Ubuntu 18.04 or before) as your host OS, you need to copy qemu-ppc64le-static into the base directory of the target:
You can find other supported platforms under fluent-package/apt directory.
Note for AArch64 platforms
You can also built packages for AArch64 platforms like this:
% rake apt:build APT_TARGETS="ubuntu-jammy-arm64"
But if you use older GNU/Linux platforms (e.g. Ubuntu 18.04 or before) as your host OS, you need to copy qemu-aarch64-static into the base directory of the target:
A fluent-package-${version}.dmg package will be built under fluent-package/dmg directory.
Note for macOS package
GitHub Actions’ built package is ready to run on macOS 10.15 (Catalina).
Be sure to permit to be authorized for for assistive access.
In System Preferences > Security & Privacy > Privacy > Accessibility, you should permit Terminal.app there.
NOTE: Since authorization is at the application level on Terminal.app, it allows any script run from Terminal.app to perform GUI scripting.
How to bump up the package version
Edit fluent-package/config.rb to choose Ruby & Fluentd versions
Edit Gemfile and update .lock files
cd fluent-package && rake lockfile:update
Bump up the versions of rpm & deb packages by the following command:
% cd fluent-package
% rake version:update
% git diff # Check the change log
% git commit -a
fluent-package-builder
About fluent-package-builder
fluent-package-builder (formerly known as td-agent-builder, it was renamed at Aug, 2021) is a new build system for td-agent which aims to replace the traditional build system omnibus-td-agent since it has several problems due to Omnibus‘s limitations.
NOTE: Discussed why re-branding is required Rebranding td-agent-builder
Changes from Treasure Agent 4
td-agentwas renamed tofluent-packagefluent-packagewas changed to install under/opt/fluent/usr/sbin/td-agentand/usr/sbin/td-agent-gemwas changed to/usr/sbin/fluentdand/usr/sbin/fluent-gem/opt/fluent/share/fluentd.conffluentd-apt-sourcewas renamed tofluent-apt-sourcedeb package for maintaining apt-line and keyringChanges from Treasure Agent 3
embeddeddirectory by omnibus/opt/td-agent/bin/fluent-catinstead of/opt/td-agent/embedded/bin/fluent-catapt install, then you can install td-agent viaapt install td-agent.See also this issue for omnibus problems.
Prerequisites
For building .rpm & .deb packages
For building Windows package (.msi)
After installed above software, you need to enable additional features from powershell (as admin).
Then restart Windows.
For building macOS package (.dmg)
How to build .rpm package
By default, yum repositories for following platforms will be built under fluent-package/yum/repositories/ directory:
You can choose target platforms by
YUM_TARGETSenvironment variable like this:You can find other supported platforms under fluent-package/yum directory.
Note for AArch64 platforms
You can also build packages for AArch64 platforms like this:
But if you use older GNU/Linux platforms (e.g. Ubuntu 18.04 or before) as your host OS, you need to copy qemu-aarch64-static into the base directory of the target:
Note for ppc64le platform
You can also build packages for ppc64le platform like this:
But if you use older GNU/Linux platforms (e.g. Ubuntu 18.04 or before) as your host OS, you need to copy qemu-ppc64le-static into the base directory of the target:
How to build .deb package
By default, apt repositories for following platforms will be built under fluent-package/apt/repositories/ directory:
You can choose target platforms by
APT_TARGETSenvironment variable like this:You can find other supported platforms under fluent-package/apt directory.
Note for AArch64 platforms
You can also built packages for AArch64 platforms like this:
But if you use older GNU/Linux platforms (e.g. Ubuntu 18.04 or before) as your host OS, you need to copy qemu-aarch64-static into the base directory of the target:
How to build .msi package
A fluent-package-${version}-x64.msi package will be built under fluent-package/msi directory.
Note for Windows package
You can use with MSYS2 for C extension gem building.
MSI included Ruby can detect MSYS2 environment. So, you can install C extension included gem with MSYS2.
e.g.)
Prepare C extension gem building environment:
Install gem via
ridk exec fluent-gem install:How to build .dmg package
A fluent-package-${version}.dmg package will be built under fluent-package/dmg directory.
Note for macOS package
GitHub Actions’ built package is ready to run on macOS 10.15 (Catalina).
Be sure to permit to be authorized for for assistive access. In System Preferences > Security & Privacy > Privacy > Accessibility, you should permit Terminal.app there.
NOTE: Since authorization is at the application level on Terminal.app, it allows any script run from Terminal.app to perform GUI scripting.
How to bump up the package version
cd fluent-package && rake lockfile:updateNote for bump up the package version
It assumes that Gemfile works with Bundler’s multiplatform feature, so bundler must be 2.2.0 or later.