This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new c51ce740dc ARROW-16763: [Packaging][RPM] Add support for CentOS Stream
9 (#13474)
c51ce740dc is described below
commit c51ce740dc167531cf0f52fc79fac35c57c25cb9
Author: Sutou Kouhei <[email protected]>
AuthorDate: Fri Jul 1 12:45:46 2022 +0900
ARROW-16763: [Packaging][RPM] Add support for CentOS Stream 9 (#13474)
Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
dev/release/binary-task.rb | 1 +
dev/release/verify-release-candidate.sh | 17 +++---
dev/tasks/linux-packages/Rakefile | 15 +++--
.../yum/centos-9-stream/Dockerfile | 26 +++++++++
.../apache-arrow/yum/centos-9-stream-aarch64/from | 18 ++++++
.../apache-arrow/yum/centos-9-stream/Dockerfile | 67 ++++++++++++++++++++++
dev/tasks/linux-packages/package-task.rb | 4 +-
dev/tasks/tasks.yml | 1 +
8 files changed, 135 insertions(+), 14 deletions(-)
diff --git a/dev/release/binary-task.rb b/dev/release/binary-task.rb
index d7dd591b3b..2cedd9c734 100644
--- a/dev/release/binary-task.rb
+++ b/dev/release/binary-task.rb
@@ -1457,6 +1457,7 @@ APT::FTPArchive::Release::Description
"#{apt_repository_description}";
["almalinux", "9"],
["almalinux", "8"],
["amazon-linux", "2"],
+ ["centos", "9-stream"],
["centos", "8-stream"],
["centos", "7"],
]
diff --git a/dev/release/verify-release-candidate.sh
b/dev/release/verify-release-candidate.sh
index 63cfbb0776..bf6f4b153a 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -182,9 +182,7 @@ test_binary() {
test_apt() {
show_header "Testing APT packages"
- for target in "debian:buster" \
- "arm64v8/debian:buster" \
- "debian:bullseye" \
+ for target in "debian:bullseye" \
"arm64v8/debian:bullseye" \
"debian:bookworm" \
"arm64v8/debian:bookworm" \
@@ -192,8 +190,6 @@ test_apt() {
"arm64v8/ubuntu:bionic" \
"ubuntu:focal" \
"arm64v8/ubuntu:focal" \
- "ubuntu:impish" \
- "arm64v8/ubuntu:impish" \
"ubuntu:jammy" \
"arm64v8/ubuntu:jammy"; do \
case "${target}" in
@@ -227,11 +223,15 @@ test_apt() {
test_yum() {
show_header "Testing Yum packages"
- for target in "almalinux:8" \
+ for target in "almalinux:9" \
+ "arm64v8/almalinux:9" \
+ "almalinux:8" \
"arm64v8/almalinux:8" \
"amazonlinux:2" \
+ "quay.io/centos/centos:stream9" \
"quay.io/centos/centos:stream8" \
- "centos:7"; do
+ "centos:7" \
+ "arm64v8/centos:7"; do
case "${target}" in
arm64v8/*)
if [ "$(arch)" = "aarch64" -o -e /usr/bin/qemu-aarch64-static ]; then
@@ -255,7 +255,8 @@ test_yum() {
done
if [ "$(arch)" != "aarch64" -a -e /usr/bin/qemu-aarch64-static ]; then
- for target in "quay.io/centos/centos:stream8"; do
+ for target in "quay.io/centos/centos:stream9" \
+ "quay.io/centos/centos:stream8"; do
if ! docker run \
--platform linux/arm64 \
--rm \
diff --git a/dev/tasks/linux-packages/Rakefile
b/dev/tasks/linux-packages/Rakefile
index 421d26c913..28fc37bb2a 100644
--- a/dev/tasks/linux-packages/Rakefile
+++ b/dev/tasks/linux-packages/Rakefile
@@ -118,8 +118,9 @@ class LocalBinaryTask < BinaryTask
end
case target
- when "centos-8-stream"
- image = "quay.io/centos/centos:stream8"
+ when /\Acentos-(\d+)-stream\z/
+ centos_stream_version = $1
+ image = "quay.io/centos/centos:stream#{centos_stream_version}"
else
case platform
when "linux/arm64"
@@ -205,7 +206,7 @@ class LocalBinaryTask < BinaryTask
@packages.each do |package|
package_repositories = "#{package}/apt/repositories"
next unless File.exist?(package_repositories)
- sh("rsync", "-a", "#{package_repositories}/", repositories_dir)
+ sh("rsync", "-av", "#{package_repositories}/", repositories_dir)
end
Dir.glob("#{repositories_dir}/ubuntu/pool/*") do |code_name_dir|
universe_dir = "#{code_name_dir}/universe"
@@ -237,11 +238,15 @@ class LocalBinaryTask < BinaryTask
# Disable aarch64 targets by default for now
# because they require some setups on host.
[
+ "almalinux-9",
+ # "almalinux-9-aarch64",
"almalinux-8",
# "almalinux-8-aarch64",
"amazon-linux-2",
# "amazon-linux-2-aarch64",
- "centos-8-stream-8",
+ "centos-9-stream",
+ # "centos-9-stream-aarch64",
+ "centos-8-stream",
# "centos-8-stream-aarch64",
"centos-7",
# "centos-7-aarch64",
@@ -257,7 +262,7 @@ class LocalBinaryTask < BinaryTask
@packages.each do |package|
package_repositories = "#{package}/yum/repositories"
next unless File.exist?(package_repositories)
- sh("rsync", "-a", "#{package_repositories}/", repositories_dir)
+ sh("rsync", "-av", "#{package_repositories}/", repositories_dir)
end
rpm_sign(repositories_dir)
base_dir = "nonexistent"
diff --git
a/dev/tasks/linux-packages/apache-arrow-release/yum/centos-9-stream/Dockerfile
b/dev/tasks/linux-packages/apache-arrow-release/yum/centos-9-stream/Dockerfile
new file mode 100644
index 0000000000..896566598c
--- /dev/null
+++
b/dev/tasks/linux-packages/apache-arrow-release/yum/centos-9-stream/Dockerfile
@@ -0,0 +1,26 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM quay.io/centos/centos:stream9
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ dnf install -y ${quiet} \
+ rpmdevtools && \
+ dnf clean ${quiet} all
diff --git
a/dev/tasks/linux-packages/apache-arrow/yum/centos-9-stream-aarch64/from
b/dev/tasks/linux-packages/apache-arrow/yum/centos-9-stream-aarch64/from
new file mode 100644
index 0000000000..10bdff67f6
--- /dev/null
+++ b/dev/tasks/linux-packages/apache-arrow/yum/centos-9-stream-aarch64/from
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+--platform=linux/arm64 quay.io/centos/centos:stream9
diff --git
a/dev/tasks/linux-packages/apache-arrow/yum/centos-9-stream/Dockerfile
b/dev/tasks/linux-packages/apache-arrow/yum/centos-9-stream/Dockerfile
new file mode 100644
index 0000000000..2bc036432c
--- /dev/null
+++ b/dev/tasks/linux-packages/apache-arrow/yum/centos-9-stream/Dockerfile
@@ -0,0 +1,67 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+ARG FROM=quay.io/centos/centos:stream9
+FROM ${FROM}
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ dnf install -y ${quiet} epel-release && \
+ dnf install --enablerepo=crb -y ${quiet} \
+ bison \
+ boost-devel \
+ brotli-devel \
+ bzip2-devel \
+ c-ares-devel \
+ ccache \
+ clang \
+ cmake \
+ curl-devel \
+ flex \
+ gcc-c++ \
+ gflags-devel \
+ git \
+ gobject-introspection-devel \
+ gtk-doc \
+ jemalloc-devel \
+ json-devel \
+ libarchive \
+ libzstd-devel \
+ llvm-devel \
+ llvm-static \
+ lz4-devel \
+ make \
+ ncurses-devel \
+ ninja-build \
+ openssl-devel \
+ pkg-config \
+ python3 \
+ python3-devel \
+ python3-numpy \
+ python3-pip \
+ re2-devel \
+ rapidjson-devel \
+ rpmdevtools \
+ snappy-devel \
+ tar \
+ thrift-devel \
+ utf8proc-devel \
+ vala \
+ zlib-devel && \
+ dnf clean ${quiet} all
diff --git a/dev/tasks/linux-packages/package-task.rb
b/dev/tasks/linux-packages/package-task.rb
index 19ae456760..2c259b22a5 100644
--- a/dev/tasks/linux-packages/package-task.rb
+++ b/dev/tasks/linux-packages/package-task.rb
@@ -252,7 +252,7 @@ class PackageTask
components = target.split("-")
if components[0, 2] == ["amazon", "linux"]
components[0, 2] = components[0, 2].join("-")
- elsif components[0, 3] == ["centos", "8", "stream"]
+ elsif components.values_at(0, 2) == ["centos", "stream"]
components[1, 2] = components[1, 2].join("-")
end
if components.size >= 3
@@ -430,6 +430,8 @@ VERSION=#{@deb_upstream_version}
# "almalinux-8-arch64",
"amazon-linux-2",
# "amazon-linux-2-arch64",
+ "centos-9-stream",
+ # "centos-9-stream-aarch64",
"centos-8-stream",
# "centos-8-stream-aarch64",
"centos-7",
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index 12afbcc5d5..5e6a2c2a3e 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -657,6 +657,7 @@ tasks:
{% for target in ["almalinux-9",
"almalinux-8",
"amazon-linux-2",
+ "centos-9-stream",
"centos-8-stream",
"centos-7"] %}
{% set is_rhel7_based = (target in ["amazon-linux-2", "centos-7"]) %}