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"]) %}

Reply via email to