Skip to content

Commit 5e39445

Browse files
authored
Backport rpm: add fluent-lts-release for v6 LTS channel (#874) (#891)
Signed-off-by: Kentaro Hayashi <[email protected]>
1 parent a1bc881 commit 5e39445

File tree

21 files changed

+665
-12
lines changed

21 files changed

+665
-12
lines changed

.github/workflows/yum-arm.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ jobs:
3535
path: |
3636
fluent-package/yum/repositories
3737
fluent-release/yum/repositories
38+
fluent-lts-release/yum/repositories
3839
key: ${{ runner.os }}-cache-${{ matrix.rake-job }}-aarch64-${{ hashFiles('**/config.rb', '**/Rakefile', '**/Gemfile*', '**/*.spec.in', 'fluent-package/templates/**', 'fluent-package/yum/**/Dockerfile') }}
3940
- name: Install dependencies
4041
if: ${{ ! steps.cache-rpm.outputs.cache-hit }}

.github/workflows/yum.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
path: |
3737
fluent-package/yum/repositories
3838
fluent-release/yum/repositories
39+
fluent-lts-release/yum/repositories
3940
key: ${{ runner.os }}-cache-${{ matrix.rake-job }}-${{ hashFiles('**/config.rb', '**/Rakefile', '**/Gemfile*', '**/*.spec.in', 'fluent-package/templates/**', 'fluent-package/yum/**/Dockerfile') }}
4041
- name: Install dependencies
4142
if: ${{ ! steps.cache-rpm.outputs.cache-hit }}

Rakefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,16 @@ APT_SOURCE_PACKAGES = [
2525
]
2626

2727
YUM_RELEASE_PACKAGES = [
28-
"fluent-release"
28+
"fluent-release",
29+
"fluent-lts-release"
2930
]
3031

3132
ALL_PACKAGE = [
3233
"fluent-package",
3334
"fluent-apt-source",
3435
"fluent-lts-apt-source",
3536
"fluent-release",
37+
"fluent-lts-release"
3638
]
3739

3840
def define_bulked_task(name, description, packages = PACKAGES)
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
3+
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
51+
=nE26
52+
-----END PGP PUBLIC KEY BLOCK-----
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
3+
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
50+
5Ow=
51+
=Me4L
52+
-----END PGP PUBLIC KEY BLOCK-----

fluent-lts-release/Rakefile

Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
# -*- ruby -*-
2+
3+
require_relative "../lib/package-task"
4+
require "rake/clean"
5+
require "time"
6+
7+
CLEAN.include("yum/tmp")
8+
CLEAN.include("yum/build.sh")
9+
CLEAN.include("yum/env.sh")
10+
CLOBBER.include("yum/repositories")
11+
12+
class FluentReleasePackageTask < PackageTask
13+
def initialize
14+
super("fluent-lts-release",
15+
repository_version,
16+
latest_commit_time(File.join(__dir__, "..")))
17+
CLEAN.include(@archive_name)
18+
end
19+
20+
def repository_version
21+
"2025.8.29"
22+
end
23+
24+
def repository_label
25+
"Fluentd Project"
26+
end
27+
28+
def repository_description
29+
"Fluentd Project related packages"
30+
end
31+
32+
def repository_url
33+
# Navigate to R2 by default
34+
# "https://packages.treasuredata.com"
35+
"https://fluentd.cdn.cncf.io"
36+
end
37+
38+
def define
39+
super
40+
define_yum_latest_task
41+
end
42+
43+
def generate_repo_files
44+
targets = [
45+
{
46+
id: "rhel-compat",
47+
distribution: "redhat",
48+
version: "$releasever",
49+
},
50+
{
51+
id: "amazonlinux2023",
52+
distribution: "amazon",
53+
version: "2023",
54+
},
55+
# For v5
56+
{
57+
id: "amazonlinux2",
58+
distribution: "amazon",
59+
version: "2",
60+
},
61+
]
62+
# fluent-release source tar.gz contains some fluent-package-${TARGET_DISTRIBUTION}-${RELEASE_CHANNEL}.repo files
63+
targets.each do |target|
64+
repo_path = "#{@archive_base_name}/fluent-package-#{target[:id]}.repo"
65+
prefix = "gpgkey="
66+
gpgkey = ""
67+
repository_gpg_key_ids.each do |gpg_key_id|
68+
gpgkey += <<-KEY
69+
#{prefix}file:///etc/pki/rpm-gpg/#{rpm_gpg_key_path(gpg_key_id)}
70+
KEY
71+
prefix = " " * prefix.size
72+
end
73+
File.open(repo_path, "w") do |repo|
74+
repo.puts(<<-REPOSITORY)
75+
[fluent-package-v5-lts]
76+
name=#{repository_label}
77+
baseurl=#{repository_url}/lts/5/#{target[:distribution]}/#{target[:version]}/$basearch/
78+
gpgcheck=1
79+
enabled=1
80+
#{gpgkey}
81+
[fluent-package-v6-lts]
82+
name=#{repository_label}
83+
baseurl=#{repository_url}/lts/6/#{target[:distribution]}/#{target[:version]}/$basearch/
84+
gpgcheck=1
85+
enabled=0
86+
#{gpgkey}
87+
REPOSITORY
88+
end
89+
end
90+
end
91+
92+
private
93+
94+
def git_directory?(directory)
95+
candidate_paths = [".git", "HEAD"]
96+
candidate_paths.any? do |candidate_path|
97+
File.exist?(File.join(directory, candidate_path))
98+
end
99+
end
100+
101+
def latest_commit_time(git_directory)
102+
return nil unless git_directory?(git_directory)
103+
Dir.chdir(git_directory) do
104+
return Time.iso8601(`git log -n 1 --format=%aI`.chomp).utc
105+
end
106+
end
107+
108+
def td_agent_key_id
109+
"BEE682289B2217F45AF4CC3F901F9177AB97ACBE"
110+
end
111+
112+
def fluent_package_key_id
113+
"B40948B6A3B80E90F40E841F977D7A0943FA320E"
114+
end
115+
116+
def rpm_gpg_key_path(id)
117+
case id
118+
when td_agent_key_id
119+
"RPM-GPG-KEY-td-agent"
120+
when fluent_package_key_id
121+
"RPM-GPG-KEY-fluent-package"
122+
end
123+
end
124+
125+
def generate_gpg_keys
126+
repository_gpg_key_ids.each do |gpg_key_id|
127+
unless system("gpg", "--list-keys", gpg_key_id, out: IO::NULL)
128+
sh("gpg",
129+
"--keyserver", "keyserver.ubuntu.com",
130+
"--recv-key", gpg_key_id)
131+
end
132+
sh("gpg", "--armor", "--export", gpg_key_id, out: "#{@archive_base_name}/#{rpm_gpg_key_path(gpg_key_id)}")
133+
end
134+
end
135+
136+
def repository_gpg_key_ids
137+
[td_agent_key_id, fluent_package_key_id]
138+
end
139+
140+
def define_archive_task
141+
file @archive_name do
142+
rm_rf(@archive_base_name)
143+
mkdir(@archive_base_name)
144+
generate_gpg_keys
145+
generate_repo_files
146+
cp("yum/fluent-lts-release.spec.in", "#{@archive_base_name}/fluent-lts-release.spec.in")
147+
sh("tar", "czf", @archive_name, @archive_base_name)
148+
end
149+
end
150+
151+
def yum_targets_default
152+
[
153+
"rockylinux-8",
154+
"almalinux-9",
155+
"amazonlinux-2",
156+
"amazonlinux-2023"
157+
]
158+
end
159+
160+
def define_yum_latest_task
161+
namespace :yum do
162+
task :build do
163+
yum_targets.each do |target|
164+
distribution, version, arch = target.split("-", 3)
165+
arch = "x86_64" if arch.nil?
166+
suffix = case version
167+
when "2"
168+
"amzn2"
169+
when "2023"
170+
"amzn2023"
171+
else
172+
"el#{version}"
173+
end
174+
distribution = case distribution
175+
when "rockylinux"
176+
"rocky"
177+
when "amazonlinux"
178+
"amazon"
179+
else
180+
distribution
181+
end
182+
rpm = [
183+
yum_dir,
184+
"repositories",
185+
distribution,
186+
version,
187+
arch,
188+
"Packages",
189+
"#{@package}-#{@rpm_version}-#{@rpm_release}.#{suffix}.noarch.rpm",
190+
].join("/")
191+
rpm_dir = File.dirname(rpm)
192+
directory rpm_dir
193+
end
194+
end
195+
end
196+
end
197+
198+
def enable_apt?
199+
false
200+
end
201+
end
202+
203+
task = FluentReleasePackageTask.new
204+
task.define
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
arm64v8/almalinux:9
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
ARG FROM=almalinux:9
19+
FROM ${FROM}
20+
21+
ARG DEBUG
22+
23+
RUN \
24+
quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
25+
dnf install redhat-release -y && \
26+
dnf install --enablerepo=crb -y ${quiet} \
27+
make \
28+
rpm-build \
29+
rpmdevtools \
30+
redhat-rpm-config \
31+
rpmlint \
32+
&& \
33+
# raise IPv4 priority
34+
echo "precedence ::ffff:0:0/96 100" > /etc/gai.conf && \
35+
yum clean ${quiet} all

0 commit comments

Comments
 (0)