Skip to content

Commit 2a44b21

Browse files
packaging: support Alma/Rocky/CentOS 10 [Backport to 4.0]
Signed-off-by: Patrick Stephens <[email protected]>
1 parent 45c6818 commit 2a44b21

File tree

7 files changed

+215
-25
lines changed

7 files changed

+215
-25
lines changed

.github/workflows/call-build-linux-packages.yaml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
contents: read
6161
steps:
6262
- name: Checkout code
63-
uses: actions/checkout@v4
63+
uses: actions/checkout@v5
6464
with:
6565
ref: ${{ inputs.ref }}
6666
path: source
@@ -87,7 +87,7 @@ jobs:
8787
# Pick up latest master version
8888
- name: Checkout code for action
8989
if: inputs.environment == 'staging'
90-
uses: actions/checkout@v4
90+
uses: actions/checkout@v5
9191
with:
9292
path: action-support
9393

@@ -115,7 +115,7 @@ jobs:
115115
continue-on-error: ${{ inputs.ignore_failing_targets || false }}
116116
steps:
117117
- name: Checkout code
118-
uses: actions/checkout@v4
118+
uses: actions/checkout@v5
119119
with:
120120
ref: ${{ inputs.ref }}
121121

@@ -163,7 +163,9 @@ jobs:
163163
# For ubuntu map to codename using the disto-info list (CSV)
164164
run: |
165165
sudo apt-get update
166-
sudo apt-get install -y distro-info awscli
166+
sudo apt-get install -y distro-info
167+
sudo apt-get install -y awscli || sudo snap install aws-cli --classic
168+
167169
TARGET=${DISTRO%*.arm64v8}
168170
if [[ "$TARGET" == "ubuntu/"* ]]; then
169171
UBUNTU_CODENAME=$(cut -d ',' -f 1,3 < "/usr/share/distro-info/ubuntu.csv"|grep "${TARGET##*/}"|cut -d ',' -f 2)
@@ -194,7 +196,7 @@ jobs:
194196
# Pick up latest master version
195197
- name: Checkout code for action
196198
if: inputs.environment == 'staging'
197-
uses: actions/checkout@v4
199+
uses: actions/checkout@v5
198200
with:
199201
path: action-support
200202

@@ -224,12 +226,14 @@ jobs:
224226
timeout-minutes: 10
225227
run: |
226228
sudo apt-get update
227-
sudo apt-get install -y createrepo-c aptly awscli
229+
sudo apt-get install -y createrepo-c aptly
230+
sudo apt-get install -y awscli || sudo snap install aws-cli --classic
231+
shell: bash
228232
env:
229233
DEBIAN_FRONTEND: noninteractive
230234

231235
- name: Checkout code for repo metadata construction - always latest
232-
uses: actions/checkout@v4
236+
uses: actions/checkout@v5
233237

234238
- name: Import GPG key for signing
235239
id: import_gpg

packaging/build-config.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,14 @@
4040
"target": "centos/9.arm64v8",
4141
"type": "rpm"
4242
},
43+
{
44+
"target": "centos/10",
45+
"type": "rpm"
46+
},
47+
{
48+
"target": "centos/10.arm64v8",
49+
"type": "rpm"
50+
},
4351
{
4452
"target": "rockylinux/8",
4553
"type": "rpm"
@@ -56,6 +64,14 @@
5664
"target": "rockylinux/9.arm64v8",
5765
"type": "rpm"
5866
},
67+
{
68+
"target": "rockylinux/10",
69+
"type": "rpm"
70+
},
71+
{
72+
"target": "rockylinux/10.arm64v8",
73+
"type": "rpm"
74+
},
5975
{
6076
"target": "almalinux/8",
6177
"type": "rpm"
@@ -72,6 +88,14 @@
7288
"target": "almalinux/9.arm64v8",
7389
"type": "rpm"
7490
},
91+
{
92+
"target": "almalinux/10",
93+
"type": "rpm"
94+
},
95+
{
96+
"target": "almalinux/10.arm64v8",
97+
"type": "rpm"
98+
},
7599
{
76100
"target": "debian/bookworm",
77101
"type": "deb"
@@ -96,6 +120,14 @@
96120
"target": "debian/bullseye.arm64v8",
97121
"type": "deb"
98122
},
123+
{
124+
"target": "debian/trixie",
125+
"type": "deb"
126+
},
127+
{
128+
"target": "debian/trixie.arm64v8",
129+
"type": "deb"
130+
},
99131
{
100132
"target": "ubuntu/22.04",
101133
"type": "deb"

packaging/distros/almalinux/Dockerfile

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ ARG BASE_BUILDER
77
# Use buildkit to skip unused base images: DOCKER_BUILDKIT=1
88

99
# Multiarch support
10-
FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64
10+
FROM multiarch/qemu-user-static:x86_64-aarch64 AS multiarch-aarch64
1111

1212
# almalinux/8 base image
13-
FROM almalinux:8 as almalinux-8-base
13+
FROM almalinux:8 AS almalinux-8-base
1414

1515
# Add for the YAML development libraries
1616
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-powertools.repo
@@ -25,7 +25,7 @@ RUN yum -y update && \
2525

2626
# almalinux/8.arm64v8 base image
2727
# hadolint ignore=DL3029
28-
FROM --platform=arm64 almalinux:8 as almalinux-8.arm64v8-base
28+
FROM --platform=arm64 almalinux:8 AS almalinux-8.arm64v8-base
2929

3030
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
3131

@@ -44,7 +44,7 @@ RUN yum -y update && \
4444
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
4545
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
4646

47-
FROM almalinux:9 as almalinux-9-base
47+
FROM almalinux:9 AS almalinux-9-base
4848

4949
# Add for the YAML development libraries
5050
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo
@@ -59,7 +59,41 @@ RUN yum -y update && \
5959

6060
# almalinux/8.arm64v8 base image
6161
# hadolint ignore=DL3029
62-
FROM --platform=arm64 almalinux:9 as almalinux-9.arm64v8-base
62+
FROM --platform=arm64 almalinux:9 AS almalinux-9.arm64v8-base
63+
64+
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
65+
66+
# Add for the YAML development libraries
67+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo
68+
69+
# hadolint ignore=DL3033
70+
RUN yum -y update && \
71+
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
72+
wget unzip systemd-devel wget flex bison \
73+
postgresql-libs postgresql-devel postgresql-server postgresql \
74+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
75+
yum clean all
76+
77+
# Need larger page size
78+
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
79+
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
80+
81+
FROM almalinux:10 AS almalinux-10-base
82+
83+
# Add for the YAML development libraries
84+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo
85+
86+
# hadolint ignore=DL3033
87+
RUN yum -y update && \
88+
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
89+
wget unzip systemd-devel wget flex bison \
90+
postgresql-libs postgresql-devel postgresql-server postgresql \
91+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
92+
yum clean all
93+
94+
# almalinux/8.arm64v8 base image
95+
# hadolint ignore=DL3029
96+
FROM --platform=arm64 almalinux:10 AS almalinux-10.arm64v8-base
6397

6498
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
6599

@@ -80,7 +114,7 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
80114

81115
# Common build for all distributions now
82116
# hadolint ignore=DL3006
83-
FROM $BASE_BUILDER as builder
117+
FROM $BASE_BUILDER AS builder
84118

85119
ARG FLB_NIGHTLY_BUILD
86120
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

packaging/distros/centos/Dockerfile

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,69 @@ ENV FLB_KAFKA=$FLB_KAFKA
225225
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
226226
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
227227

228+
FROM quay.io/centos/centos:stream10 AS centos-10-base
229+
230+
ENV CMAKE_HOME="/opt/cmake"
231+
ARG CMAKE_VERSION="3.31.6"
232+
ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download"
233+
234+
# Add for the YAML development libraries
235+
# hadolint ignore=DL3033,DL3041
236+
RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-enabled crb && \
237+
dnf -y install rpm-build ca-certificates gcc gcc-c++ make bash \
238+
wget unzip systemd-devel wget flex bison \
239+
postgresql-libs postgresql-devel postgresql-server postgresql \
240+
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
241+
libyaml-devel zlib-devel \
242+
tar gzip && \
243+
dnf clean all && \
244+
mkdir -p "${CMAKE_HOME}" && \
245+
cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \
246+
echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \
247+
curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1
248+
249+
ENV PATH="${CMAKE_HOME}/bin:${PATH}"
250+
251+
ARG FLB_OUT_PGSQL=On
252+
ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL
253+
254+
# hadolint ignore=DL3029
255+
FROM --platform=arm64 quay.io/centos/centos:stream10 AS centos-10.arm64v8-base
256+
257+
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
258+
259+
ENV CMAKE_HOME="/opt/cmake"
260+
ARG CMAKE_VERSION="3.31.6"
261+
ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download"
262+
263+
# Add for the YAML development libraries
264+
# hadolint ignore=DL3033,DL3041
265+
RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-enabled crb && \
266+
dnf -y install rpm-build ca-certificates gcc gcc-c++ make bash \
267+
wget unzip systemd-devel wget flex bison \
268+
postgresql-libs postgresql-devel postgresql-server postgresql \
269+
cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \
270+
libyaml-devel zlib-devel \
271+
tar gzip && \
272+
dnf clean all && \
273+
mkdir -p "${CMAKE_HOME}" && \
274+
cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \
275+
echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \
276+
curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1
277+
278+
ENV PATH="${CMAKE_HOME}/bin:${PATH}"
279+
280+
ARG FLB_OUT_PGSQL=On
281+
ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL
282+
ARG FLB_UNICODE_ENCODER=On
283+
ENV FLB_UNICODE_ENCODER=$FLB_UNICODE_ENCODER
284+
ARG FLB_KAFKA=On
285+
ENV FLB_KAFKA=$FLB_KAFKA
286+
287+
# Need larger page size
288+
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
289+
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
290+
228291
# Common build for all distributions now
229292
# hadolint ignore=DL3006
230293
FROM $BASE_BUILDER AS builder

packaging/distros/rockylinux/Dockerfile

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ ARG BASE_BUILDER
77
# Use buildkit to skip unused base images: DOCKER_BUILDKIT=1
88

99
# Multiarch support
10-
FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64
10+
FROM multiarch/qemu-user-static:x86_64-aarch64 AS multiarch-aarch64
1111

1212
# rockylinux/8 base image
13-
FROM rockylinux:8 as rockylinux-8-base
13+
FROM rockylinux/rockylinux:8 AS rockylinux-8-base
1414

1515
# Add for the YAML development libraries
1616
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/Rocky-PowerTools.repo
@@ -25,7 +25,7 @@ RUN yum -y update && \
2525

2626
# rockylinux/8.arm64v8 base image
2727
# hadolint ignore=DL3029
28-
FROM --platform=arm64 rockylinux:8 as rockylinux-8.arm64v8-base
28+
FROM --platform=arm64 rockylinux/rockylinux:8 AS rockylinux-8.arm64v8-base
2929

3030
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
3131

@@ -44,7 +44,7 @@ RUN yum -y update && \
4444
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
4545
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
4646

47-
FROM rockylinux:9 as rockylinux-9-base
47+
FROM rockylinux/rockylinux:9 AS rockylinux-9-base
4848

4949
# Add for the YAML development libraries
5050
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo
@@ -57,9 +57,43 @@ RUN yum -y update && \
5757
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
5858
yum clean all
5959

60-
# rockylinux/8.arm64v8 base image
60+
# rockylinux/9.arm64v8 base image
61+
# hadolint ignore=DL3029
62+
FROM --platform=arm64 rockylinux/rockylinux:9 AS rockylinux-9.arm64v8-base
63+
64+
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
65+
66+
# Add for the YAML development libraries
67+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo
68+
69+
# hadolint ignore=DL3033
70+
RUN yum -y update && \
71+
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
72+
wget unzip systemd-devel wget flex bison \
73+
postgresql-libs postgresql-devel postgresql-server postgresql \
74+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
75+
yum clean all
76+
77+
# Need larger page size
78+
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
79+
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
80+
81+
FROM rockylinux/rockylinux:10 AS rockylinux-10-base
82+
83+
# Add for the YAML development libraries
84+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo
85+
86+
# hadolint ignore=DL3033
87+
RUN yum -y update && \
88+
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
89+
wget unzip systemd-devel wget flex bison \
90+
postgresql-libs postgresql-devel postgresql-server postgresql \
91+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \
92+
yum clean all
93+
94+
# rockylinux/10.arm64v8 base image
6195
# hadolint ignore=DL3029
62-
FROM --platform=arm64 rockylinux:9 as rockylinux-9.arm64v8-base
96+
FROM --platform=arm64 rockylinux/rockylinux:10 AS rockylinux-10.arm64v8-base
6397

6498
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
6599

@@ -80,7 +114,7 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
80114

81115
# Common build for all distributions now
82116
# hadolint ignore=DL3006
83-
FROM $BASE_BUILDER as builder
117+
FROM $BASE_BUILDER AS builder
84118

85119
ARG FLB_NIGHTLY_BUILD
86120
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD

packaging/test-release-packages.sh

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,28 @@ function check_version() {
3737
fi
3838
}
3939

40-
APT_TARGETS=("ubuntu:22.04"
40+
APT_TARGETS=(
41+
"ubuntu:22.04"
42+
"ubuntu:24.04"
4143
"debian:10"
42-
"debian:11")
44+
"debian:11"
45+
"debian:12"
46+
"debian:13"
47+
)
4348

44-
YUM_TARGETS=("centos:7"
49+
YUM_TARGETS=(
50+
"centos:7"
4551
"almalinux:8"
4652
"almalinux:9"
53+
"almalinux:10"
4754
"rockylinux:8"
4855
"rockylinux:9"
56+
"rockylinux:10"
4957
"quay.io/centos/centos:stream9"
58+
"quay.io/centos/centos:stream10"
5059
"amazonlinux:2"
51-
"amazonlinux:2023")
60+
"amazonlinux:2023"
61+
)
5262

5363
for IMAGE in "${YUM_TARGETS[@]}"
5464
do

0 commit comments

Comments
 (0)