Skip to content

Commit f3f1eb0

Browse files
authored
GH-49341: [Packaging] Add support for Ubuntu 26.04 (#49345)
### Rationale for this change Ubuntu 26.04 will be the next LTS for Ubuntu. It'll be released on 2026-04. ### What changes are included in this PR? * Add `Dockerfile`s for Ubuntu 26.04 * Add Ubuntu 26.04 entries * Add a labeler configuration for Linux packages ### Are these changes tested? Yes. ### Are there any user-facing changes? Yes. * GitHub Issue: #49341 Authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
1 parent 376afb8 commit f3f1eb0

9 files changed

Lines changed: 179 additions & 6 deletions

File tree

.github/workflows/dev_pr/labeler.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,12 @@
7979
- any-glob-to-any-file:
8080
- .github/workflows/cpp_extra.yml
8181
- cpp/src/arrow/flight/sql/odbc/**/*
82+
83+
"CI: Extra: Package: Linux":
84+
- changed-files:
85+
- any-glob-to-any-file:
86+
- .github/workflows/package_linux.yml
87+
- dev/release/binary-task.rb
88+
- dev/release/verify-apt.sh
89+
- dev/release/verify-yum.sh
90+
- dev/tasks/linux-packages/**/*

.github/workflows/package_linux.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ jobs:
109109
- ubuntu-jammy-arm64
110110
- ubuntu-noble-amd64
111111
- ubuntu-noble-arm64
112+
- ubuntu-resolute-amd64
113+
- ubuntu-resolute-arm64
112114
env:
113115
DOCKER_VOLUME_PREFIX: ".docker/"
114116
steps:

dev/release/binary-task.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,6 +1433,7 @@ def available_apt_targets
14331433
["debian", "forky", "main"],
14341434
["ubuntu", "jammy", "main"],
14351435
["ubuntu", "noble", "main"],
1436+
["ubuntu", "resolute", "main"],
14361437
]
14371438
end
14381439

@@ -2333,6 +2334,8 @@ def apt_test_targets_default
23332334
# "ubuntu-jammy-arm64",
23342335
"ubuntu-noble",
23352336
# "ubuntu-noble-arm64",
2337+
"ubuntu-resolute",
2338+
# "ubuntu-resolute-arm64",
23362339
]
23372340
end
23382341

dev/release/verify-release-candidate.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,8 @@ test_apt() {
218218
"debian:trixie" \
219219
"debian:forky" \
220220
"ubuntu:jammy" \
221-
"ubuntu:noble"; do \
221+
"ubuntu:noble" \
222+
"ubuntu:resolute"; do \
222223
if ! docker run \
223224
--platform=linux/x86_64 \
224225
--rm \
@@ -238,7 +239,8 @@ test_apt() {
238239
"arm64v8/debian:trixie" \
239240
"arm64v8/debian:forky" \
240241
"arm64v8/ubuntu:jammy" \
241-
"arm64v8/ubuntu:noble"; do \
242+
"arm64v8/ubuntu:noble" \
243+
"arm64v8/ubuntu:resolute"; do \
242244
if ! docker run \
243245
--platform=linux/arm64 \
244246
--rm \
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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+
FROM ubuntu:resolute
19+
20+
RUN \
21+
echo "debconf debconf/frontend select Noninteractive" | \
22+
debconf-set-selections
23+
24+
RUN \
25+
echo 'APT::Install-Recommends "false";' > \
26+
/etc/apt/apt.conf.d/disable-install-recommends
27+
28+
ARG DEBUG
29+
30+
RUN \
31+
quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
32+
apt update ${quiet} && \
33+
apt install -y -V ${quiet} \
34+
build-essential \
35+
debhelper \
36+
devscripts \
37+
fakeroot \
38+
gnupg \
39+
lsb-release && \
40+
apt clean && \
41+
rm -rf /var/lib/apt/lists/*
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/ubuntu:resolute
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
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=ubuntu:resolute
19+
FROM ${FROM}
20+
21+
RUN \
22+
echo "debconf debconf/frontend select Noninteractive" | \
23+
debconf-set-selections
24+
25+
RUN \
26+
echo 'APT::Install-Recommends "false";' > \
27+
/etc/apt/apt.conf.d/disable-install-recommends
28+
29+
ARG DEBUG
30+
RUN \
31+
quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
32+
apt update ${quiet} && \
33+
apt install -y -V ${quiet} \
34+
build-essential \
35+
clang \
36+
clang-tools \
37+
cmake \
38+
debhelper \
39+
devscripts \
40+
gi-docgen \
41+
git \
42+
libboost-filesystem-dev \
43+
libboost-system-dev \
44+
libbrotli-dev \
45+
libbz2-dev \
46+
libc-ares-dev \
47+
libcurl4-openssl-dev \
48+
libgirepository1.0-dev \
49+
libglib2.0-doc \
50+
libgmock-dev \
51+
libgoogle-glog-dev \
52+
libgrpc++-dev \
53+
libgtest-dev \
54+
liblz4-dev \
55+
libprotobuf-dev \
56+
libprotoc-dev \
57+
libre2-dev \
58+
libsnappy-dev \
59+
libssl-dev \
60+
libthrift-dev \
61+
libutf8proc-dev \
62+
libxxhash-dev \
63+
libzstd-dev \
64+
llvm-dev \
65+
lsb-release \
66+
meson \
67+
mold \
68+
ninja-build \
69+
nlohmann-json3-dev \
70+
pkg-config \
71+
protobuf-compiler-grpc \
72+
python3-dev \
73+
python3-pip \
74+
python3-setuptools \
75+
rapidjson-dev \
76+
tzdata \
77+
valac \
78+
zlib1g-dev && \
79+
if apt list | grep -q '^libcuda'; then \
80+
apt install -y -V ${quiet} nvidia-cuda-toolkit; \
81+
else \
82+
:; \
83+
fi && \
84+
apt clean && \
85+
rm -rf /var/lib/apt/lists/*

dev/tasks/linux-packages/apache-arrow/debian/rules

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,21 @@
66
# This has to be exported to make some magic below work.
77
export DH_OPTIONS
88

9+
# lto1 (GCC 15) on Ubuntu 26.04 crashes with LTO.
10+
include /etc/os-release
11+
ifeq ($(VERSION_CODENAME),resolute)
12+
export DEB_BUILD_MAINT_OPTIONS=optimize=-lto,reproducible=-timeless
13+
else
914
export DEB_BUILD_MAINT_OPTIONS=reproducible=-timeless
15+
endif
1016

1117
BUILD_TYPE=relwithdebinfo
1218

1319
%:
1420
dh $@ --with gir
1521

1622
override_dh_auto_configure:
17-
code_name="$$(. /etc/os-release && \
18-
echo $${VERSION_CODENAME})"; \
19-
if [ "$${code_name}" = "focal" ]; then \
23+
if [ "$(VERSION_CODENAME)" = "focal" ]; then \
2024
ARROW_AZURE=OFF; \
2125
else \
2226
ARROW_AZURE=ON; \
@@ -26,6 +30,12 @@ override_dh_auto_configure:
2630
else \
2731
ARROW_CUDA=OFF; \
2832
fi; \
33+
if [ "$(VERSION_CODENAME)" = "resolute" ]; then \
34+
: "RE2 is not built for C++17 or later"; \
35+
re2_SOURCE=BUNDLED; \
36+
else \
37+
re2_SOURCE=SYSTEM; \
38+
fi; \
2939
dh_auto_configure \
3040
--sourcedirectory=cpp \
3141
--builddirectory=cpp_build \
@@ -61,7 +71,8 @@ override_dh_auto_configure:
6171
-DCUDAToolkit_ROOT=/usr \
6272
-DFETCHCONTENT_FULLY_DISCONNECTED=OFF \
6373
-DPARQUET_BUILD_EXECUTABLES=ON \
64-
-DPARQUET_REQUIRE_ENCRYPTION=ON
74+
-DPARQUET_REQUIRE_ENCRYPTION=ON \
75+
-Dre2_SOURCE=$${re2_SOURCE}
6576

6677
override_dh_auto_build:
6778
dh_auto_build \

dev/tasks/linux-packages/package-task.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,8 @@ def apt_targets_default
278278
# "ubuntu-jammy-arm64",
279279
"ubuntu-noble",
280280
# "ubuntu-noble-arm64",
281+
"ubuntu-resolute",
282+
# "ubuntu-resolute-arm64",
281283
]
282284
end
283285

0 commit comments

Comments
 (0)