summaryrefslogtreecommitdiffstats
path: root/src/arrow/dev/tasks/linux-packages
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/arrow/dev/tasks/linux-packages
parentInitial commit. (diff)
downloadceph-upstream/18.2.2.tar.xz
ceph-upstream/18.2.2.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/arrow/dev/tasks/linux-packages')
-rw-r--r--src/arrow/dev/tasks/linux-packages/.gitignore28
-rw-r--r--src/arrow/dev/tasks/linux-packages/README.md40
-rw-r--r--src/arrow/dev/tasks/linux-packages/Rakefile249
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/Rakefile64
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-bookworm/Dockerfile40
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-bullseye/Dockerfile41
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-buster/Dockerfile41
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-bionic/Dockerfile41
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-focal/Dockerfile41
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-hirsute/Dockerfile41
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-impish/Dockerfile41
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/apache-arrow-apt-source.install2
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/changelog11
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/compat1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/control23
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/copyright26
-rwxr-xr-xsrc/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/rules37
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/source/format1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-release/Rakefile66
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/Apache-Arrow.repo44
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/almalinux-8/Dockerfile26
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/amazon-linux-2/Dockerfile26
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/apache-arrow-release.spec.in113
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/centos-7/Dockerfile26
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/centos-8/Dockerfile26
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/Rakefile162
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm-arm64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm/Dockerfile81
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye-arm64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye/Dockerfile82
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-buster-arm64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-buster/Dockerfile82
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic-arm64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile84
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal-arm64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile77
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-hirsute-arm64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-hirsute/Dockerfile83
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-impish-arm64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-impish/Dockerfile83
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/changelog123
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/compat1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/control.in640
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/copyright193
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-1.0.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-cuda-1.0.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-dataset-1.0.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-gandiva-1.0.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-parquet-1.0.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-plasma-1.0.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-dev.install6
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-glib-dev.install4
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-glib600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-dev.install6
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-dev.install4
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.doc-base9
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.links3
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dev.install19
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-dev.install6
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-dev.install4
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.doc-base9
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.links3
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-dev.install6
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.doc-base9
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.install2
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.links3
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-dev.install6
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-flight-dev.install6
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-flight600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-dev.install7
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-dev.install4
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.doc-base9
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.links3
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-dev.install7
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-dev.install4
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.doc-base9
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.links3
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-dev.install7
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-dev.install4
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.doc-base9
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.links3
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma600.install1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/patches/series0
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/plasma-store-server.install1
-rwxr-xr-xsrc/arrow/dev/tasks/linux-packages/apache-arrow/debian/rules104
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/source/format1
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/debian/watch2
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/yum/almalinux-8-aarch64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/yum/almalinux-8/Dockerfile64
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/yum/amazon-linux-2/Dockerfile55
-rwxr-xr-xsrc/arrow/dev/tasks/linux-packages/apache-arrow/yum/amazon-linux-2/qemu-dummy-static33
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in892
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-7/Dockerfile59
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-8-aarch64/from18
-rw-r--r--src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-8/Dockerfile64
-rwxr-xr-xsrc/arrow/dev/tasks/linux-packages/apt/build.sh117
-rw-r--r--src/arrow/dev/tasks/linux-packages/github.linux.amd64.yml138
-rw-r--r--src/arrow/dev/tasks/linux-packages/helper.rb70
-rw-r--r--src/arrow/dev/tasks/linux-packages/package-task.rb645
-rw-r--r--src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml155
-rwxr-xr-xsrc/arrow/dev/tasks/linux-packages/yum/build.sh158
119 files changed, 5707 insertions, 0 deletions
diff --git a/src/arrow/dev/tasks/linux-packages/.gitignore b/src/arrow/dev/tasks/linux-packages/.gitignore
new file mode 100644
index 000000000..0e49a90c1
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/.gitignore
@@ -0,0 +1,28 @@
+# 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.
+
+/*/*.tar.gz
+/*/apt/repositories/
+/*/apt/tmp/
+/*/apt/build.sh
+/*/apt/env.sh
+/*/yum/repositories/
+/*/yum/tmp/
+/*/yum/build.sh
+/*/yum/env.sh
+/apt/repositories/
+/yum/repositories/
diff --git a/src/arrow/dev/tasks/linux-packages/README.md b/src/arrow/dev/tasks/linux-packages/README.md
new file mode 100644
index 000000000..cafcc04ed
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/README.md
@@ -0,0 +1,40 @@
+<!---
+ 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.
+-->
+
+# Linux packages for Apache Arrow C++ and GLib
+
+## Requirements
+
+ * Ruby
+ * Docker
+ * Tools to build tar.gz for Apache Arrow C++ and GLib
+
+## How to build .deb packages
+
+```console
+% rake version:update
+% rake apt
+```
+
+## How to build .rpm packages
+
+```console
+% rake version:update
+% rake yum
+```
diff --git a/src/arrow/dev/tasks/linux-packages/Rakefile b/src/arrow/dev/tasks/linux-packages/Rakefile
new file mode 100644
index 000000000..58cd981fe
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/Rakefile
@@ -0,0 +1,249 @@
+# -*- ruby -*-
+#
+# 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.
+
+require "English"
+
+require_relative "../../release/binary-task"
+require_relative "helper"
+
+packages = [
+ "apache-arrow",
+ "apache-arrow-apt-source",
+ "apache-arrow-release",
+]
+
+
+namespace :apt do
+ desc "Build deb packages"
+ task :build do
+ packages.each do |package|
+ cd(package) do
+ ruby("-S", "rake", "apt:build")
+ end
+ end
+ end
+end
+
+namespace :yum do
+ desc "Build RPM packages"
+ task :build do
+ packages.each do |package|
+ cd(package) do
+ ruby("-S", "rake", "yum:build")
+ end
+ end
+ end
+end
+
+namespace :version do
+ desc "Update versions"
+ task :update do
+ packages.each do |package|
+ cd(package) do
+ ruby("-S", "rake", "version:update")
+ end
+ end
+ end
+end
+
+namespace :docker do
+ desc "Pull built images"
+ task :pull do
+ packages.each do |package|
+ cd(package) do
+ ruby("-S", "rake", "docker:pull")
+ end
+ end
+ end
+
+ desc "Push built images"
+ task :push do
+ packages.each do |package|
+ cd(package) do
+ ruby("-S", "rake", "docker:push")
+ end
+ end
+ end
+end
+
+
+class LocalBinaryTask < BinaryTask
+ include Helper::ApacheArrow
+
+ def initialize(packages)
+ @packages = packages
+ super()
+ end
+
+ def define
+ define_apt_test_task
+ define_yum_test_task
+ end
+
+ private
+ def latest_commit_time(git_directory)
+ cd(git_directory) do
+ return Time.iso8601(`git log -n 1 --format=%aI`.chomp).utc
+ end
+ end
+
+ def version
+ @version ||= detect_version(detect_release_time)
+ end
+
+ def resolve_docker_image(target)
+ image = ""
+ target = target.gsub(/\Aamazon-linux/, "amazonlinux")
+ case target
+ when /-(?:arm64|aarch64)\z/
+ target = $PREMATCH
+ image << "arm64v8/"
+ end
+ image << target.gsub(/-/, ":")
+ end
+
+ def verify(target)
+ verify_command_line = [
+ "docker",
+ "run",
+ "--rm",
+ "--log-driver", "none",
+ "--volume", "#{File.expand_path(arrow_source_dir)}:/arrow:delegated",
+ ]
+ if $stdin.tty?
+ verify_command_line << "--interactive"
+ verify_command_line << "--tty"
+ else
+ verify_command_line.concat(["--attach", "STDOUT"])
+ verify_command_line.concat(["--attach", "STDERR"])
+ end
+ verify_command_line << resolve_docker_image(target)
+ case target
+ when /\Adebian-/, /\Aubuntu-/
+ verify_command_line << "/arrow/dev/release/verify-apt.sh"
+ else
+ verify_command_line << "/arrow/dev/release/verify-yum.sh"
+ end
+ verify_command_line << version
+ verify_command_line << "local"
+ sh(*verify_command_line)
+ end
+
+ def apt_test_targets
+ targets = (ENV["APT_TARGETS"] || "").split(",")
+ targets = apt_test_targets_default if targets.empty?
+ targets
+ end
+
+ def apt_test_targets_default
+ # Disable arm64 targets by default for now
+ # because they require some setups on host.
+ [
+ "debian-buster",
+ # "debian-buster-arm64",
+ "debian-bullseye",
+ # "debian-bullseye-arm64",
+ "ubuntu-xenial",
+ # "ubuntu-xenial-arm64",
+ "ubuntu-bionic",
+ # "ubuntu-bionic-arm64",
+ "ubuntu-focal",
+ # "ubuntu-focal-arm64",
+ "ubuntu-hirsute",
+ # "ubuntu-hirsute-arm64",
+ "ubuntu-impish",
+ # "ubuntu-impish-arm64",
+ ]
+ end
+
+ def define_apt_test_task
+ namespace :apt do
+ desc "Test deb packages"
+ task :test do
+ repositories_dir = "apt/repositories"
+ rm_rf(repositories_dir)
+ @packages.each do |package|
+ package_repositories = "#{package}/apt/repositories"
+ next unless File.exist?(package_repositories)
+ sh("rsync", "-a", "#{package_repositories}/", repositories_dir)
+ end
+ Dir.glob("#{repositories_dir}/ubuntu/pool/*") do |code_name_dir|
+ universe_dir = "#{code_name_dir}/universe"
+ next unless File.exist?(universe_dir)
+ mv(universe_dir, "#{code_name_dir}/main")
+ end
+ base_dir = "nonexistent"
+ merged_dir = "apt/merged"
+ apt_update(base_dir, repositories_dir, merged_dir)
+ Dir.glob("#{merged_dir}/*/dists/*") do |dists_code_name_dir|
+ prefix = dists_code_name_dir.split("/")[-3..-1].join("/")
+ mv(Dir.glob("#{dists_code_name_dir}/*Release*"),
+ "#{repositories_dir}/#{prefix}")
+ end
+ apt_test_targets.each do |target|
+ verify(target)
+ end
+ end
+ end
+ end
+
+ def yum_test_targets
+ targets = (ENV["YUM_TARGETS"] || "").split(",")
+ targets = yum_test_targets_default if targets.empty?
+ targets
+ end
+
+ def yum_test_targets_default
+ # Disable aarch64 targets by default for now
+ # because they require some setups on host.
+ [
+ "almalinux-8",
+ # "almalinux-8-aarch64",
+ "amazon-linux-2",
+ # "amazon-linux-2-aarch64",
+ "centos-7",
+ "centos-8",
+ # "centos-8-aarch64",
+ ]
+ end
+
+ def define_yum_test_task
+ namespace :yum do
+ desc "Test RPM packages"
+ task :test do
+ repositories_dir = "yum/repositories"
+ rm_rf(repositories_dir)
+ @packages.each do |package|
+ package_repositories = "#{package}/yum/repositories"
+ next unless File.exist?(package_repositories)
+ sh("rsync", "-a", "#{package_repositories}/", repositories_dir)
+ end
+ rpm_sign(repositories_dir)
+ base_dir = "nonexistent"
+ yum_update(base_dir, repositories_dir)
+ yum_test_targets.each do |target|
+ verify(target)
+ end
+ end
+ end
+ end
+end
+
+local_binary_task = LocalBinaryTask.new(packages)
+local_binary_task.define
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/Rakefile b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/Rakefile
new file mode 100644
index 000000000..210fa951e
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/Rakefile
@@ -0,0 +1,64 @@
+# -*- ruby -*-
+#
+# 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.
+
+require_relative "../helper"
+require_relative "../package-task"
+
+class ApacheArrowAptSourcePackageTask < PackageTask
+ include Helper::ApacheArrow
+
+ def initialize
+ release_time = detect_release_time
+ super("apache-arrow-apt-source",
+ detect_version(release_time),
+ release_time,
+ :rc_build_type => :release)
+ end
+
+ private
+ def define_archive_task
+ file @archive_name do
+ rm_rf(@archive_base_name)
+ mkdir(@archive_base_name)
+ download("https://downloads.apache.org/arrow/KEYS",
+ "#{@archive_base_name}/KEYS")
+ sh("tar", "czf", @archive_name, @archive_base_name)
+ rm_rf(@archive_base_name)
+ end
+
+ if deb_archive_name != @archive_name
+ file deb_archive_name => @archive_name do
+ if @archive_base_name == deb_archive_base_name
+ cp(@archive_name, deb_archive_name)
+ else
+ sh("tar", "xf", @archive_name)
+ mv(@archive_base_name, deb_archive_base_name)
+ sh("tar", "czf", deb_archive_name, deb_archive_base_name)
+ end
+ end
+ end
+ end
+
+ def enable_yum?
+ false
+ end
+end
+
+task = ApacheArrowAptSourcePackageTask.new
+task.define
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-bookworm/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-bookworm/Dockerfile
new file mode 100644
index 000000000..f9541efde
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-bookworm/Dockerfile
@@ -0,0 +1,40 @@
+# 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 debian:bookworm
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ debhelper \
+ devscripts \
+ fakeroot \
+ gnupg \
+ lsb-release && \
+ apt clean
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-bullseye/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-bullseye/Dockerfile
new file mode 100644
index 000000000..b0842a0c0
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-bullseye/Dockerfile
@@ -0,0 +1,41 @@
+# 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 debian:bullseye
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ debhelper \
+ devscripts \
+ fakeroot \
+ gnupg \
+ lsb-release && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-buster/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-buster/Dockerfile
new file mode 100644
index 000000000..0d37f5dee
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/debian-buster/Dockerfile
@@ -0,0 +1,41 @@
+# 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 debian:buster
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ debhelper \
+ devscripts \
+ fakeroot \
+ gnupg \
+ lsb-release && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-bionic/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-bionic/Dockerfile
new file mode 100644
index 000000000..53e11fb7e
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-bionic/Dockerfile
@@ -0,0 +1,41 @@
+# 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 ubuntu:bionic
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ debhelper \
+ devscripts \
+ fakeroot \
+ gnupg \
+ lsb-release && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-focal/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-focal/Dockerfile
new file mode 100644
index 000000000..dc902d14d
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-focal/Dockerfile
@@ -0,0 +1,41 @@
+# 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 ubuntu:focal
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ debhelper \
+ devscripts \
+ fakeroot \
+ gnupg \
+ lsb-release && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-hirsute/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-hirsute/Dockerfile
new file mode 100644
index 000000000..8b6fd7f0e
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-hirsute/Dockerfile
@@ -0,0 +1,41 @@
+# 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 ubuntu:hirsute
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ debhelper \
+ devscripts \
+ fakeroot \
+ gnupg \
+ lsb-release && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-impish/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-impish/Dockerfile
new file mode 100644
index 000000000..640cd715d
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/apt/ubuntu-impish/Dockerfile
@@ -0,0 +1,41 @@
+# 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 ubuntu:impish
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ debhelper \
+ devscripts \
+ fakeroot \
+ gnupg \
+ lsb-release && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/apache-arrow-apt-source.install b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/apache-arrow-apt-source.install
new file mode 100644
index 000000000..7bcb2ecc9
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/apache-arrow-apt-source.install
@@ -0,0 +1,2 @@
+etc/apt/sources.list.d/*
+usr/share/keyrings/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/changelog b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/changelog
new file mode 100644
index 000000000..27e14c802
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/changelog
@@ -0,0 +1,11 @@
+apache-arrow-apt-source (6.0.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Sutou Kouhei <kou@clear-code.com> Wed, 10 Nov 2021 02:04:45 -0000
+
+apache-arrow-apt-source (6.0.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Thu, 21 Oct 2021 19:01:54 -0000
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/compat b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/compat
new file mode 100644
index 000000000..ec635144f
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/control b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/control
new file mode 100644
index 000000000..f54d52f98
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/control
@@ -0,0 +1,23 @@
+Source: apache-arrow-apt-source
+Section: misc
+Priority: important
+Maintainer: Apache Arrow Developers <dev@arrow.apache.org>
+Build-Depends:
+ debhelper (>= 9),
+ gnupg,
+ lsb-release
+Standards-Version: 3.9.7
+Homepage: https://arrow.apache.org/
+
+Package: apache-arrow-apt-source
+Section: misc
+Architecture: all
+Replaces: apache-arrow-archive-keyring
+Breaks: apache-arrow-archive-keyring
+Depends:
+ ${misc:Depends},
+ apt-transport-https,
+ gnupg
+Description: GnuPG archive key of the Apache Arrow archive
+ The Apache Arrow project digitally signs its Release files. This
+ package contains the archive key used for that.
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/copyright b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/copyright
new file mode 100644
index 000000000..274d64ca0
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/copyright
@@ -0,0 +1,26 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Apache Arrow
+Upstream-Contact: Apache Arrow Developers <dev@arrow.apache.org>
+
+Files: *
+Copyright: 2016 The Apache Software Foundation
+License: Apache-2.0
+
+License: Apache-2.0
+ 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.
+ .
+ On Debian systems, the full text of the Apache Software License version 2 can
+ be found in the file `/usr/share/common-licenses/Apache-2.0'.
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/rules b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/rules
new file mode 100755
index 000000000..bf7a85c8c
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/rules
@@ -0,0 +1,37 @@
+#!/usr/bin/make -f
+# -*- makefile-gmake -*-
+#
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+%:
+ dh $@
+
+override_dh_auto_build:
+ gpg \
+ --no-default-keyring \
+ --keyring ./apache-arrow-apt-source.gpg \
+ --import KEYS
+
+ ( \
+ distribution=$$(lsb_release --id --short | tr 'A-Z' 'a-z'); \
+ code_name=$$(lsb_release --codename --short); \
+ echo "Types: deb deb-src"; \
+ echo "URIs: https://apache.jfrog.io/artifactory/arrow/$${distribution}/"; \
+ echo "Suites: $${code_name}"; \
+ echo "Components: main"; \
+ echo "Signed-By: /usr/share/keyrings/apache-arrow-apt-source.gpg"; \
+ ) > apache-arrow.sources
+
+override_dh_install:
+ install -d debian/tmp/usr/share/keyrings/
+ install -m 0644 apache-arrow-apt-source.gpg \
+ debian/tmp/usr/share/keyrings/
+
+ install -d debian/tmp/etc/apt/sources.list.d/
+ install -m 0644 apache-arrow.sources \
+ debian/tmp/etc/apt/sources.list.d/
+
+ dh_install
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/source/format b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/source/format
new file mode 100644
index 000000000..163aaf8d8
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-apt-source/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-release/Rakefile b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/Rakefile
new file mode 100644
index 000000000..4a341c6f1
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/Rakefile
@@ -0,0 +1,66 @@
+# -*- ruby -*-
+#
+# 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.
+
+require_relative "../helper"
+require_relative "../package-task"
+
+class ApacheArrowReleasePackageTask < PackageTask
+ include Helper::ApacheArrow
+
+ def initialize
+ release_time = detect_release_time
+ super("apache-arrow-release",
+ detect_version(release_time),
+ release_time,
+ :rc_build_type => :release)
+ end
+
+ private
+ def repo_path
+ "#{yum_dir}/Apache-Arrow.repo"
+ end
+
+ def define_archive_task
+ file @archive_name => [repo_path] do
+ rm_rf(@archive_base_name)
+ mkdir(@archive_base_name)
+ download("https://downloads.apache.org/arrow/KEYS",
+ "#{@archive_base_name}/KEYS")
+ cp(repo_path, @archive_base_name)
+ sh("tar", "czf", @archive_name, @archive_base_name)
+ rm_rf(@archive_base_name)
+ end
+
+ if rpm_archive_name != @archive_name
+ file rpm_archive_name => @archive_name do
+ sh("tar", "xf", @archive_name)
+ rpm_archive_base_name = File.basename(rpm_archive_name, ".tar.gz")
+ mv(@archive_base_name, rpm_archive_base_name)
+ sh("tar", "czf", rpm_archive_name, rpm_archive_base_name)
+ end
+ end
+ end
+
+ def enable_apt?
+ false
+ end
+end
+
+task = ApacheArrowReleasePackageTask.new
+task.define
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/Apache-Arrow.repo b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/Apache-Arrow.repo
new file mode 100644
index 000000000..0d1666520
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/Apache-Arrow.repo
@@ -0,0 +1,44 @@
+# 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.
+
+[apache-arrow-almalinux]
+name=Apache Arrow for AlmaLinux $releasever - $basearch
+baseurl=https://apache.jfrog.io/artifactory/arrow/almalinux/$releasever/$basearch/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Apache-Arrow
+
+[apache-arrow-amazon-linux]
+name=Apache Arrow for Amazon Linux $releasever - $basearch
+baseurl=https://apache.jfrog.io/artifactory/arrow/amazon-linux/$releasever/$basearch/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Apache-Arrow
+
+[apache-arrow-centos]
+name=Apache Arrow for CentOS $releasever - $basearch
+baseurl=https://apache.jfrog.io/artifactory/arrow/centos/$releasever/$basearch/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Apache-Arrow
+
+[apache-arrow-rhel]
+name=Apache Arrow for RHEL $releasever - $basearch
+baseurl=https://apache.jfrog.io/artifactory/arrow/centos/$releasever/$basearch/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Apache-Arrow
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/almalinux-8/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/almalinux-8/Dockerfile
new file mode 100644
index 000000000..5be1edc3d
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/almalinux-8/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 almalinux:8
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ dnf install --enablerepo=powertools -y ${quiet} \
+ rpmdevtools && \
+ dnf clean ${quiet} all
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/amazon-linux-2/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/amazon-linux-2/Dockerfile
new file mode 100644
index 000000000..800df6c68
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/amazon-linux-2/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 amazonlinux:2
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ yum install -y ${quiet} \
+ rpmdevtools && \
+ yum clean ${quiet} all
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/apache-arrow-release.spec.in b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/apache-arrow-release.spec.in
new file mode 100644
index 000000000..594cda373
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/apache-arrow-release.spec.in
@@ -0,0 +1,113 @@
+# -*- sh-shell: rpm -*-
+#
+# 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.
+
+%define use_dnf (%{rhel} >= 8)
+%if %{use_dnf}
+%define yum_repository_enable() (dnf config-manager --set-enabled %1)
+%define yum_repository_disable() (dnf config-manager --set-disabled %1)
+%else
+%define yum_repository_enable() (yum-config-manager --enable %1)
+%define yum_repository_disable() (yum-config-manager --disable %1)
+%endif
+
+Name: @PACKAGE@
+Version: @VERSION@
+Release: @RELEASE@%{?dist}
+Summary: Apache Arrow release files
+
+License: Apache-2.0
+URL: https://arrow.apache.org/
+Source0: @PACKAGE@-%{version}.tar.gz
+
+BuildArch: noarch
+
+Requires: epel-release
+%if %{use_dnf}
+Requires: dnf-command(config-manager)
+%else
+Requires: yum-utils
+%endif
+
+%description
+Apache Arrow release files.
+
+%prep
+%setup -q
+
+%build
+distribution=$(. /etc/os-release && echo "${ID}")
+if [ "${distribution}" = "rhel" ]; then
+ # We use distribution version explicitly for RHEL because we can't
+ # use symbolic link on Artifactory. CentOS uses 7 and 8 but RHEL uses
+ # 7Server and 8Server for $releasever. If we can use symbolic link
+ # on Artifactory we can use $releasever directly.
+ distribution_version=$(. /etc/os-release && echo "${VERSION_ID}")
+ sed -i'' -e "s/\\\$releasever/${distribution_version}/g" Apache-Arrow.repo
+fi
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__install} -Dp -m0644 KEYS \
+ $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-Apache-Arrow
+
+%{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/
+%{__install} -Dp -m0644 Apache-Arrow.repo \
+ $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/Apache-Arrow.repo
+
+%files
+%defattr(-, root, root, 0755)
+%doc
+%dir %{_sysconfdir}/yum.repos.d/
+%dir %{_sysconfdir}/pki/rpm-gpg/
+%{_sysconfdir}/pki/rpm-gpg/RPM-GPG-KEY-Apache-Arrow
+%config(noreplace) %{_sysconfdir}/yum.repos.d/Apache-Arrow.repo
+
+%post
+if grep -q 'Amazon Linux release 2' /etc/system-release 2>/dev/null; then
+ %{yum_repository_enable apache-arrow-amazon-linux}
+elif grep -q 'Red Hat Enterprise Linux' /etc/system-release 2>/dev/null; then
+ %{yum_repository_enable apache-arrow-rhel}
+elif grep -q 'AlmaLinux' /etc/system-release 2>/dev/null; then
+ %{yum_repository_enable apache-arrow-almalinux}
+else
+ %{yum_repository_enable apache-arrow-centos}
+fi
+
+%changelog
+* Wed Nov 10 2021 Sutou Kouhei <kou@clear-code.com> - 6.0.1-1
+- New upstream release.
+
+* Thu Oct 21 2021 Krisztián Szűcs <szucs.krisztian@gmail.com> - 6.0.0-1
+- New upstream release.
+
+* Mon Jan 18 2021 Krisztián Szűcs <szucs.krisztian@gmail.com> - 3.0.0-1
+- New upstream release.
+
+* Mon Oct 12 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 2.0.0-1
+- New upstream release.
+
+* Mon Jul 20 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 1.0.0-1
+- New upstream release.
+
+* Thu Apr 16 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.17.0-1
+- New upstream release.
+
+* Thu Jan 30 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.16.0-1
+- New upstream release.
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/centos-7/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/centos-7/Dockerfile
new file mode 100644
index 000000000..236b0e297
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/centos-7/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 centos:7
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ yum install -y ${quiet} \
+ rpmdevtools && \
+ yum clean ${quiet} all
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/centos-8/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/centos-8/Dockerfile
new file mode 100644
index 000000000..e36850630
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow-release/yum/centos-8/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 centos:8
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ dnf install --enablerepo=powertools -y ${quiet} \
+ rpmdevtools && \
+ dnf clean ${quiet} all
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/Rakefile b/src/arrow/dev/tasks/linux-packages/apache-arrow/Rakefile
new file mode 100644
index 000000000..9dfae955e
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/Rakefile
@@ -0,0 +1,162 @@
+# -*- ruby -*-
+#
+# 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.
+
+require_relative "../helper"
+require_relative "../package-task"
+
+class ApacheArrowPackageTask < PackageTask
+ include Helper::ApacheArrow
+
+ def initialize
+ release_time = detect_release_time
+ super("apache-arrow",
+ detect_version(release_time),
+ release_time,
+ :rc_build_type => :release)
+ @rpm_package = "arrow"
+ end
+
+ private
+ def define_archive_task
+ file @archive_name do
+ case @version
+ when /\A\d+\.\d+\.\d+-rc\d+\z/
+ download_rc_archive
+ when /\A\d+\.\d+\.\d+\z/
+ download_released_archive
+ else
+ build_archive
+ end
+ end
+
+ if deb_archive_name != @archive_name
+ file deb_archive_name => @archive_name do
+ cp(@archive_name, deb_archive_name)
+ end
+ end
+
+ if rpm_archive_name != @archive_name
+ file rpm_archive_name => @archive_name do
+ cp(@archive_name, rpm_archive_name)
+ end
+ end
+ end
+
+ def download_rc_archive
+ base_url = "https://dist.apache.org/repos/dist/dev/arrow"
+ archive_name_no_rc = @archive_name.gsub(/-rc\d+(\.tar\.gz)\z/, "\\1")
+ url = "#{base_url}/#{@package}-#{@version}/#{archive_name_no_rc}"
+ download(url, @archive_name)
+ end
+
+ def download_released_archive
+ mirror_base_url = "https://www.apache.org/dyn/closer.lua/arrow"
+ mirror_list_url = "#{mirror_base_url}/arrow-#{@version}/#{@archive_name}"
+ open(mirror_list_url) do |response|
+ if /href="(.+?\/#{Regexp.escape(@archive_name)})"/ =~ response.read
+ download($1, ".")
+ end
+ end
+ end
+
+ def build_archive
+ cd(arrow_source_dir) do
+ sh("git", "archive", "HEAD",
+ "--prefix", "#{@archive_base_name}/",
+ "--output", @full_archive_name)
+ end
+ end
+
+ def apt_arm64_cuda_available_target?(target)
+ false
+ end
+
+ def apt_prepare_debian_control_cuda_architecture(control, target)
+ if apt_arm64_cuda_available_target?(target)
+ cuda_architecture = "any"
+ else
+ cuda_architecture = "i386 amd64"
+ end
+ control.gsub(/@CUDA_ARCHITECTURE@/, cuda_architecture)
+ end
+
+ def apt_prepare_debian_control_c_ares(control, target)
+ case target
+ when /\Aubuntu-bionic/
+ use_system_c_ares = "#"
+ else
+ use_system_c_ares = ""
+ end
+ control.gsub(/@USE_SYSTEM_C_ARES@/, use_system_c_ares)
+ end
+
+ def apt_prepare_debian_control_grpc(control, target)
+ case target
+ when /\Adebian-buster/, /\Aubuntu-(?:bionic|focal)/
+ use_system_grpc = "#"
+ else
+ use_system_grpc = ""
+ end
+ control.gsub(/@USE_SYSTEM_GRPC@/, use_system_grpc)
+ end
+
+ def apt_prepare_debian_control_thrift(control, target)
+ case target
+ when /\Aubuntu-bionic/
+ use_system_thrift = "#"
+ else
+ use_system_thrift = ""
+ end
+ control.gsub(/@USE_SYSTEM_THRIFT@/, use_system_thrift)
+ end
+
+ def apt_prepare_debian_control_utf8proc(control, target)
+ case target
+ when /\Aubuntu-bionic/
+ use_system_utf8proc = "#"
+ else
+ use_system_utf8proc = ""
+ end
+ control.gsub(/@USE_SYSTEM_UTF8PROC@/, use_system_utf8proc)
+ end
+
+ def apt_prepare_debian_control_zstd(control, target)
+ case target
+ when /\Adebian-buster/, /\Aubuntu-bionic/
+ use_system_zstd = "#"
+ else
+ use_system_zstd = ""
+ end
+ control.gsub(/@USE_SYSTEM_ZSTD@/, use_system_zstd)
+ end
+
+ def apt_prepare_debian_control(control_in, target)
+ control = control_in.dup
+ control = apt_prepare_debian_control_cuda_architecture(control, target)
+ control = apt_prepare_debian_control_c_ares(control, target)
+ control = apt_prepare_debian_control_grpc(control, target)
+ control = apt_prepare_debian_control_thrift(control, target)
+ control = apt_prepare_debian_control_utf8proc(control, target)
+ control = apt_prepare_debian_control_zstd(control, target)
+ control
+ end
+end
+
+task = ApacheArrowPackageTask.new
+task.define
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm-arm64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm-arm64/from
new file mode 100644
index 000000000..022eaf290
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm-arm64/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.
+
+arm64v8/debian:bookworm
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm/Dockerfile
new file mode 100644
index 000000000..e88ed53ff
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm/Dockerfile
@@ -0,0 +1,81 @@
+# 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=debian:bookworm
+FROM ${FROM}
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+RUN sed -i'' -e 's/main$/main contrib non-free/g' /etc/apt/sources.list
+
+ARG DEBUG
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ ccache \
+ clang \
+ cmake \
+ debhelper \
+ devscripts \
+ git \
+ gtk-doc-tools \
+ libboost-filesystem-dev \
+ libboost-system-dev \
+ libbrotli-dev \
+ libbz2-dev \
+ libc-ares-dev \
+ libcurl4-openssl-dev \
+ libgirepository1.0-dev \
+ libglib2.0-doc \
+ libgmock-dev \
+ libgoogle-glog-dev \
+ libgrpc++-dev \
+ libgtest-dev \
+ liblz4-dev \
+ libprotoc-dev \
+ libprotobuf-dev \
+ libre2-dev \
+ libsnappy-dev \
+ libssl-dev \
+ libthrift-dev \
+ libutf8proc-dev \
+ libzstd-dev \
+ llvm-dev \
+ lsb-release \
+ ninja-build \
+ pkg-config \
+ protobuf-compiler-grpc \
+ python3-dev \
+ python3-numpy \
+ python3-pip \
+ rapidjson-dev \
+ tzdata \
+ zlib1g-dev && \
+ if apt list | grep '^nvidia-cuda-toolkit/'; then \
+ apt install -y -V ${quiet} nvidia-cuda-toolkit; \
+ fi && \
+ pip3 install --upgrade meson && \
+ ln -s /usr/local/bin/meson /usr/bin/ && \
+ apt clean
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye-arm64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye-arm64/from
new file mode 100644
index 000000000..34187b2af
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye-arm64/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.
+
+arm64v8/debian:bullseye
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye/Dockerfile
new file mode 100644
index 000000000..2a5b18f5b
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye/Dockerfile
@@ -0,0 +1,82 @@
+# 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=debian:bullseye
+FROM ${FROM}
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+RUN sed -i'' -e 's/main$/main contrib non-free/g' /etc/apt/sources.list
+
+ARG DEBUG
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ ccache \
+ clang \
+ cmake \
+ debhelper \
+ devscripts \
+ git \
+ gtk-doc-tools \
+ libboost-filesystem-dev \
+ libboost-system-dev \
+ libbrotli-dev \
+ libbz2-dev \
+ libc-ares-dev \
+ libcurl4-openssl-dev \
+ libgirepository1.0-dev \
+ libglib2.0-doc \
+ libgmock-dev \
+ libgoogle-glog-dev \
+ libgrpc++-dev \
+ libgtest-dev \
+ liblz4-dev \
+ libprotoc-dev \
+ libprotobuf-dev \
+ libre2-dev \
+ libsnappy-dev \
+ libssl-dev \
+ libthrift-dev \
+ libutf8proc-dev \
+ libzstd-dev \
+ llvm-dev \
+ lsb-release \
+ ninja-build \
+ pkg-config \
+ protobuf-compiler-grpc \
+ python3-dev \
+ python3-numpy \
+ python3-pip \
+ rapidjson-dev \
+ tzdata \
+ zlib1g-dev && \
+ if apt list | grep '^nvidia-cuda-toolkit/'; then \
+ apt install -y -V ${quiet} nvidia-cuda-toolkit; \
+ fi && \
+ pip3 install --upgrade meson && \
+ ln -s /usr/local/bin/meson /usr/bin/ && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-buster-arm64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-buster-arm64/from
new file mode 100644
index 000000000..8da222b86
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-buster-arm64/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.
+
+arm64v8/debian:buster
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-buster/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-buster/Dockerfile
new file mode 100644
index 000000000..11a33a130
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/debian-buster/Dockerfile
@@ -0,0 +1,82 @@
+# 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=debian:buster
+FROM ${FROM}
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+RUN sed -i'' -e 's/main$/main contrib non-free/g' /etc/apt/sources.list
+
+RUN \
+ echo "deb http://deb.debian.org/debian buster-backports main" > \
+ /etc/apt/sources.list.d/backports.list
+
+ARG DEBUG
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ ccache \
+ cmake \
+ debhelper \
+ devscripts \
+ git \
+ gtk-doc-tools \
+ libboost-filesystem-dev \
+ libboost-system-dev \
+ libbrotli-dev \
+ libbz2-dev \
+ libc-ares-dev \
+ libcurl4-openssl-dev \
+ libgirepository1.0-dev \
+ libglib2.0-doc \
+ libgmock-dev \
+ libgoogle-glog-dev \
+ libgtest-dev \
+ liblz4-dev \
+ libre2-dev \
+ libsnappy-dev \
+ libssl-dev \
+ libthrift-dev \
+ libutf8proc-dev \
+ lsb-release \
+ ninja-build \
+ pkg-config \
+ python3-dev \
+ python3-numpy \
+ python3-pip \
+ rapidjson-dev \
+ tzdata \
+ zlib1g-dev && \
+ apt install -y -V -t buster-backports ${quiet} \
+ clang-11 \
+ llvm-11-dev && \
+ if apt list | grep '^nvidia-cuda-toolkit/'; then \
+ apt install -y -V ${quiet} nvidia-cuda-toolkit; \
+ fi && \
+ pip3 install --upgrade meson && \
+ ln -s /usr/local/bin/meson /usr/bin/ && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic-arm64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic-arm64/from
new file mode 100644
index 000000000..c3ba00cf0
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic-arm64/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.
+
+arm64v8/ubuntu:bionic
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile
new file mode 100644
index 000000000..ac0c6a58d
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile
@@ -0,0 +1,84 @@
+# 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=ubuntu:bionic
+FROM ${FROM}
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ ccache \
+ clang-10 \
+ cmake \
+ devscripts \
+ fakeroot \
+ git \
+ gtk-doc-tools \
+ libboost-filesystem-dev \
+ libboost-system-dev \
+ libbrotli-dev \
+ libbz2-dev \
+ libcurl4-openssl-dev \
+ libgirepository1.0-dev \
+ libglib2.0-doc \
+ libgoogle-glog-dev \
+ libgtest-dev \
+ liblz4-dev \
+ libre2-dev \
+ libsnappy-dev \
+ libssl-dev \
+ llvm-10-dev \
+ lsb-release \
+ ninja-build \
+ pkg-config \
+ python3-dev \
+ python3-numpy \
+ python3-pip \
+ python3-setuptools \
+ python3-wheel \
+ rapidjson-dev \
+ tzdata \
+ zlib1g-dev && \
+ (echo "includedir=/usr/include" && \
+ echo "libdir=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)" && \
+ echo "" && \
+ echo "Name: re2" && \
+ echo "Description: RE2 is a fast, safe, thread-friendly regular expression engine." && \
+ echo "Version: 0.0.0" && \
+ echo "Cflags: -std=c++11 -pthread -I\${includedir}" && \
+ echo "Libs: -pthread -L\${libdir} -lre2") | \
+ tee "/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/pkgconfig/re2.pc" && \
+ if apt list | grep '^nvidia-cuda-toolkit/'; then \
+ apt install -y -V ${quiet} nvidia-cuda-toolkit; \
+ fi && \
+ apt install -y -V -t bionic-backports ${quiet} \
+ debhelper && \
+ pip3 install --upgrade meson && \
+ ln -s /usr/local/bin/meson /usr/bin/ && \
+ apt clean && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal-arm64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal-arm64/from
new file mode 100644
index 000000000..52ab48b66
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal-arm64/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.
+
+arm64v8/ubuntu:focal
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
new file mode 100644
index 000000000..112cc1846
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
@@ -0,0 +1,77 @@
+# 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=ubuntu:focal
+FROM ${FROM}
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ ccache \
+ clang \
+ cmake \
+ debhelper \
+ devscripts \
+ git \
+ gtk-doc-tools \
+ libboost-filesystem-dev \
+ libboost-system-dev \
+ libbrotli-dev \
+ libbz2-dev \
+ libc-ares-dev \
+ libcurl4-openssl-dev \
+ libgirepository1.0-dev \
+ libglib2.0-doc \
+ libgmock-dev \
+ libgoogle-glog-dev \
+ libgtest-dev \
+ liblz4-dev \
+ libre2-dev \
+ libsnappy-dev \
+ libssl-dev \
+ libthrift-dev \
+ libutf8proc-dev \
+ libzstd-dev \
+ llvm-dev \
+ lsb-release \
+ ninja-build \
+ pkg-config \
+ python3-dev \
+ python3-numpy \
+ python3-pip \
+ python3-setuptools \
+ rapidjson-dev \
+ tzdata \
+ zlib1g-dev && \
+ if apt list | grep '^nvidia-cuda-toolkit/'; then \
+ apt install -y -V ${quiet} nvidia-cuda-toolkit; \
+ fi && \
+ apt clean && \
+ python3 -m pip install --no-use-pep517 meson && \
+ ln -s /usr/local/bin/meson /usr/bin/ && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-hirsute-arm64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-hirsute-arm64/from
new file mode 100644
index 000000000..f19ea9022
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-hirsute-arm64/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.
+
+arm64v8/ubuntu:hirsute
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-hirsute/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-hirsute/Dockerfile
new file mode 100644
index 000000000..7e26d3eb2
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-hirsute/Dockerfile
@@ -0,0 +1,83 @@
+# 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=ubuntu:hirsute
+FROM ${FROM}
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ ccache \
+ clang \
+ cmake \
+ debhelper \
+ devscripts \
+ git \
+ gtk-doc-tools \
+ libboost-filesystem-dev \
+ libboost-system-dev \
+ libbrotli-dev \
+ libbz2-dev \
+ libc-ares-dev \
+ libcurl4-openssl-dev \
+ libgirepository1.0-dev \
+ libglib2.0-doc \
+ libgmock-dev \
+ libgoogle-glog-dev \
+ libgrpc++-dev \
+ libgtest-dev \
+ liblz4-dev \
+ libprotoc-dev \
+ libprotobuf-dev \
+ libre2-dev \
+ libsnappy-dev \
+ libssl-dev \
+ libthrift-dev \
+ libutf8proc-dev \
+ libzstd-dev \
+ llvm-dev \
+ lsb-release \
+ ninja-build \
+ pkg-config \
+ protobuf-compiler-grpc \
+ python3-dev \
+ python3-numpy \
+ python3-pip \
+ python3-setuptools \
+ rapidjson-dev \
+ tzdata \
+ zlib1g-dev && \
+ if apt list | grep -q '^libcuda1'; then \
+ apt install -y -V ${quiet} nvidia-cuda-toolkit; \
+ else \
+ :; \
+ fi && \
+ apt clean && \
+ python3 -m pip install --no-use-pep517 meson && \
+ ln -s /usr/local/bin/meson /usr/bin/ && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-impish-arm64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-impish-arm64/from
new file mode 100644
index 000000000..0c8a1c7a1
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-impish-arm64/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.
+
+arm64v8/ubuntu:impish
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-impish/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-impish/Dockerfile
new file mode 100644
index 000000000..2e94dd9b6
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-impish/Dockerfile
@@ -0,0 +1,83 @@
+# 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=ubuntu:impish
+FROM ${FROM}
+
+RUN \
+ echo "debconf debconf/frontend select Noninteractive" | \
+ debconf-set-selections
+
+RUN \
+ echo 'APT::Install-Recommends "false";' > \
+ /etc/apt/apt.conf.d/disable-install-recommends
+
+ARG DEBUG
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \
+ apt update ${quiet} && \
+ apt install -y -V ${quiet} \
+ build-essential \
+ ccache \
+ clang \
+ cmake \
+ debhelper \
+ devscripts \
+ git \
+ gtk-doc-tools \
+ libboost-filesystem-dev \
+ libboost-system-dev \
+ libbrotli-dev \
+ libbz2-dev \
+ libc-ares-dev \
+ libcurl4-openssl-dev \
+ libgirepository1.0-dev \
+ libglib2.0-doc \
+ libgmock-dev \
+ libgoogle-glog-dev \
+ libgrpc++-dev \
+ libgtest-dev \
+ liblz4-dev \
+ libprotoc-dev \
+ libprotobuf-dev \
+ libre2-dev \
+ libsnappy-dev \
+ libssl-dev \
+ libthrift-dev \
+ libutf8proc-dev \
+ libzstd-dev \
+ llvm-dev \
+ lsb-release \
+ ninja-build \
+ pkg-config \
+ protobuf-compiler-grpc \
+ python3-dev \
+ python3-numpy \
+ python3-pip \
+ python3-setuptools \
+ rapidjson-dev \
+ tzdata \
+ zlib1g-dev && \
+ if apt list | grep -q '^libcuda1'; then \
+ apt install -y -V ${quiet} nvidia-cuda-toolkit; \
+ else \
+ :; \
+ fi && \
+ apt clean && \
+ python3 -m pip install --no-use-pep517 meson && \
+ ln -s /usr/local/bin/meson /usr/bin/ && \
+ rm -rf /var/lib/apt/lists/*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/changelog b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/changelog
new file mode 100644
index 000000000..65948629e
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/changelog
@@ -0,0 +1,123 @@
+apache-arrow (6.0.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Sutou Kouhei <kou@clear-code.com> Wed, 10 Nov 2021 02:04:45 -0000
+
+apache-arrow (6.0.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Thu, 21 Oct 2021 19:01:54 -0000
+
+apache-arrow (3.0.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Mon, 18 Jan 2021 21:33:18 -0000
+
+apache-arrow (2.0.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Mon, 12 Oct 2020 23:38:01 -0000
+
+apache-arrow (1.0.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Mon, 20 Jul 2020 20:41:07 -0000
+
+apache-arrow (0.17.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Thu, 16 Apr 2020 12:05:43 -0000
+
+apache-arrow (0.16.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Thu, 30 Jan 2020 20:21:44 -0000
+
+apache-arrow (0.15.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Mon, 30 Sep 2019 17:19:02 -0000
+
+apache-arrow (0.14.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Sutou Kouhei <kou@clear-code.com> Fri, 28 Jun 2019 22:22:35 -0000
+
+apache-arrow (0.13.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Kouhei Sutou <kou@clear-code.com> Thu, 28 Mar 2019 02:24:58 -0000
+
+apache-arrow (0.12.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Krisztián Szűcs <szucs.krisztian@gmail.com> Wed, 16 Jan 2019 03:29:25 -0000
+
+apache-arrow (0.11.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Kouhei Sutou <kou@clear-code.com> Thu, 04 Oct 2018 00:33:42 -0000
+
+apache-arrow (0.10.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Phillip Cloud <cpcloud@gmail.com> Thu, 02 Aug 2018 23:58:23 -0000
+
+apache-arrow (0.9.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Kouhei Sutou <kou@clear-code.com> Fri, 16 Mar 2018 16:56:31 -0000
+
+apache-arrow (0.8.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ * Add libarrow-gpu-glib0, libarrow-gpu-glib-dev and gir1.2-arrow-gpu-1.0.
+
+ -- Uwe L. Korn <uwelk@xhochy.com> Sun, 17 Dec 2017 20:24:44 -0000
+
+apache-arrow (0.7.1-2) unstable; urgency=low
+
+ * Add libarrow-gpu0 and libarrow-gpu-dev.
+
+ * Add libarrow-python-dev.
+
+ -- Kouhei Sutou <kou@clear-code.com> Sun, 29 Oct 2017 21:59:13 +0900
+
+apache-arrow (0.7.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Kouhei Sutou <kou@clear-code.com> Wed, 27 Sep 2017 13:19:05 -0000
+
+apache-arrow (0.7.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Wes McKinney <wes.mckinney@twosigma.com> Tue, 12 Sep 2017 22:01:14 -0000
+
+apache-arrow (0.6.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Kouhei Sutou <kou@clear-code.com> Fri, 11 Aug 2017 21:27:51 -0000
+
+apache-arrow (0.6.0.20170802-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Kouhei Sutou <kou@clear-code.com> Wed, 02 Aug 2017 22:28:18 -0000
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/compat b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/compat
new file mode 100644
index 000000000..48082f72f
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/compat
@@ -0,0 +1 @@
+12
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/control.in b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/control.in
new file mode 100644
index 000000000..6b0332ed2
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/control.in
@@ -0,0 +1,640 @@
+Source: apache-arrow
+Section: devel
+Priority: optional
+Maintainer: Apache Arrow Developers <dev@arrow.apache.org>
+Build-Depends:
+ cmake,
+ debhelper (>= 12),
+ git,
+ gobject-introspection,
+ gtk-doc-tools,
+ libboost-filesystem-dev,
+ libboost-system-dev,
+ libbrotli-dev,
+ libbz2-dev,
+@USE_SYSTEM_C_ARES@ libc-ares-dev,
+ libcurl4-openssl-dev,
+ libgirepository1.0-dev,
+ libgoogle-glog-dev,
+@USE_SYSTEM_GRPC@ libgrpc++-dev,
+ libgtest-dev,
+ liblz4-dev,
+@USE_SYSTEM_GRPC@ libprotoc-dev,
+@USE_SYSTEM_GRPC@ libprotobuf-dev,
+ libre2-dev,
+ libsnappy-dev,
+ libssl-dev,
+@USE_SYSTEM_THRIFT@ libthrift-dev,
+@USE_SYSTEM_UTF8PROC@ libutf8proc-dev,
+@USE_SYSTEM_ZSTD@ libzstd-dev,
+ ninja-build,
+ nvidia-cuda-toolkit [!arm64],
+ pkg-config,
+@USE_SYSTEM_GRPC@ protobuf-compiler-grpc,
+ python3-dev,
+ python3-numpy,
+ tzdata,
+ zlib1g-dev
+Build-Depends-Indep: libglib2.0-doc
+Standards-Version: 3.9.8
+Homepage: https://arrow.apache.org/
+
+Package: libarrow600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ library files.
+
+Package: libarrow-cuda600
+Section: libs
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ library files for CUDA support.
+
+Package: libarrow-dataset600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow600 (= ${binary:Version}),
+ libparquet600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ library files for Dataset module.
+
+Package: libarrow-flight600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ library files for Flight RPC system.
+
+Package: libarrow-python600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow600 (= ${binary:Version}),
+ python3,
+ python3-numpy
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ library files for Python support.
+
+Package: libarrow-python-flight600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow-flight600 (= ${binary:Version}),
+ libarrow-python600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ library files for Flight and Python support.
+
+Package: libarrow-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow600 (= ${binary:Version}),
+ libbrotli-dev,
+ libbz2-dev,
+@USE_SYSTEM_C_ARES@ libc-ares-dev,
+@USE_SYSTEM_GRPC@ libgrpc++-dev,
+ liblz4-dev,
+ libre2-dev,
+ libsnappy-dev,
+ libssl-dev,
+@USE_SYSTEM_THRIFT@ libthrift-dev,
+@USE_SYSTEM_UTF8PROC@ libutf8proc-dev,
+@USE_SYSTEM_ZSTD@ libzstd-dev,
+@USE_SYSTEM_GRPC@ protobuf-compiler-grpc,
+ zlib1g-dev
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ header files.
+
+Package: libarrow-cuda-dev
+Section: libdevel
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-dev (= ${binary:Version}),
+ libarrow-cuda600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ header files for CUDA support.
+
+Package: libarrow-dataset-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-dev (= ${binary:Version}),
+ libarrow-dataset600 (= ${binary:Version}),
+ libparquet-dev (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ header files for dataset module.
+
+Package: libarrow-flight-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-dev (= ${binary:Version}),
+ libarrow-flight600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ header files for Flight RPC system.
+
+Package: libarrow-python-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-dev (= ${binary:Version}),
+ libarrow-python600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ header files for Python support.
+
+Package: libarrow-python-flight-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-flight-dev (= ${binary:Version}),
+ libarrow-python-dev (= ${binary:Version}),
+ libarrow-python-flight600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides C++ header files for Flight and Python support.
+
+Package: libgandiva600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow600 (= ${binary:Version})
+Description: Gandiva is a toolset for compiling and evaluating expressions
+ on Arrow Data.
+ .
+ This package provides C++ library files.
+
+Package: libgandiva-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-dev (= ${binary:Version}),
+ libgandiva600 (= ${binary:Version})
+Description: Gandiva is a toolset for compiling and evaluating expressions
+ on Arrow Data.
+ .
+ This package provides C++ header files.
+
+Package: libplasma600
+Section: libs
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow-cuda600 (= ${binary:Version})
+Description: Plasma is an in-memory object store and cache for big data.
+ .
+ This package provides C++ library files to connect plasma-store-server.
+
+Package: plasma-store-server
+Section: utils
+Architecture: @CUDA_ARCHITECTURE@
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libplasma600 (= ${binary:Version})
+Description: Plasma is an in-memory object store and cache for big data.
+ .
+ This package provides plasma-store-server.
+
+Package: libplasma-dev
+Section: libdevel
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-cuda-dev (= ${binary:Version}),
+ libplasma600 (= ${binary:Version})
+Description: Plasma is an in-memory object store and cache for big data.
+ .
+ This package provides C++ header files.
+
+Package: libparquet600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: Apache Parquet is a columnar storage format
+ .
+ This package provides C++ library files to process Apache Parquet format.
+
+Package: libparquet-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-dev (= ${binary:Version}),
+ libparquet600 (= ${binary:Version})
+Description: Apache Parquet is a columnar storage format
+ .
+ This package provides C++ header files.
+
+Package: libarrow-glib600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GLib based library files.
+
+Package: gir1.2-arrow-1.0
+Section: introspection
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${gir:Depends},
+ ${misc:Depends}
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GObject Introspection typelib files.
+
+Package: libarrow-glib-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libglib2.0-dev,
+ libarrow-dev (= ${binary:Version}),
+ libarrow-glib600 (= ${binary:Version}),
+ gir1.2-arrow-1.0 (= ${binary:Version})
+Suggests: libarrow-glib-doc
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GLib based header files.
+
+Package: libarrow-glib-doc
+Section: doc
+Architecture: all
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends}
+Recommends: libglib2.0-doc
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides documentations.
+
+Package: libarrow-cuda-glib600
+Section: libs
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow-glib600 (= ${binary:Version}),
+ libarrow-cuda600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GLib based library files for CUDA support.
+
+Package: gir1.2-arrow-cuda-1.0
+Section: introspection
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Depends:
+ ${gir:Depends},
+ ${misc:Depends}
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GObject Introspection typelib files for CUDA support.
+
+Package: libarrow-cuda-glib-dev
+Section: libdevel
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-cuda-dev (= ${binary:Version}),
+ libarrow-glib-dev (= ${binary:Version}),
+ libarrow-cuda-glib600 (= ${binary:Version}),
+ gir1.2-arrow-cuda-1.0 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GLib based header files for CUDA support.
+
+Package: libarrow-dataset-glib600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow-glib600 (= ${binary:Version}),
+ libarrow-dataset600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GLib based library files for dataset module.
+
+Package: gir1.2-arrow-dataset-1.0
+Section: introspection
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${gir:Depends},
+ ${misc:Depends}
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GObject Introspection typelib files for dataset module.
+
+Package: libarrow-dataset-glib-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-dataset-dev (= ${binary:Version}),
+ libarrow-glib-dev (= ${binary:Version}),
+ libarrow-dataset-glib600 (= ${binary:Version}),
+ gir1.2-arrow-dataset-1.0 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GLib based header files for dataset module.
+
+Package: libarrow-dataset-glib-doc
+Section: doc
+Architecture: any
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends}
+Recommends: libarrow-glib-doc
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides documentations for dataset module.
+
+Package: libarrow-flight-glib600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow-glib600 (= ${binary:Version}),
+ libarrow-flight600 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GLib based library files for Apache Arrow Flight.
+
+Package: gir1.2-arrow-flight-1.0
+Section: introspection
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${gir:Depends},
+ ${misc:Depends}
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GObject Introspection typelib files for Apache Arrow
+ Flight.
+
+Package: libarrow-flight-glib-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-flight-dev (= ${binary:Version}),
+ libarrow-glib-dev (= ${binary:Version}),
+ libarrow-flight-glib600 (= ${binary:Version}),
+ gir1.2-arrow-flight-1.0 (= ${binary:Version})
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides GLib based header files for Apache Arrow Flight.
+
+Package: libarrow-flight-glib-doc
+Section: doc
+Architecture: any
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends}
+Recommends: libarrow-glib-doc
+Description: Apache Arrow is a data processing library for analysis
+ .
+ This package provides documentations for Apache Arrow Flight.
+
+Package: libgandiva-glib600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow-glib600 (= ${binary:Version}),
+ libgandiva600 (= ${binary:Version})
+Description: Gandiva is a toolset for compiling and evaluating expressions
+ on Arrow Data.
+ .
+ This package provides GLib based library files.
+
+Package: gir1.2-gandiva-1.0
+Section: introspection
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${gir:Depends},
+ ${misc:Depends}
+Description: Gandiva is a toolset for compiling and evaluating expressions
+ on Arrow Data.
+ .
+ This package provides GObject Introspection typelib files.
+
+Package: libgandiva-glib-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libgandiva-dev (= ${binary:Version}),
+ libarrow-glib-dev (= ${binary:Version}),
+ libgandiva-glib600 (= ${binary:Version}),
+ gir1.2-gandiva-1.0 (= ${binary:Version})
+Description: Gandiva is a toolset for compiling and evaluating expressions
+ on Arrow Data.
+ .
+ This package provides GLib based header files.
+
+Package: libgandiva-glib-doc
+Section: doc
+Architecture: any
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends}
+Recommends: libglib2.0-doc
+Description: Gandiva is a toolset for compiling and evaluating expressions
+ on Arrow Data.
+ .
+ This package provides documentations.
+
+Package: libplasma-glib600
+Section: libs
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow-cuda-glib600 (= ${binary:Version}),
+ libplasma600 (= ${binary:Version})
+Description: Plasma is an in-memory object store and cache for big data.
+ .
+ This package provides GLib based library files to connect plasma-store-server.
+
+Package: gir1.2-plasma-1.0
+Section: introspection
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Depends:
+ ${gir:Depends},
+ ${misc:Depends}
+Description: Plasma is an in-memory object store and cache for big data.
+ .
+ This package provides GObject Introspection typelib files.
+
+Package: libplasma-glib-dev
+Section: libdevel
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libplasma-dev (= ${binary:Version}),
+ libarrow-cuda-glib-dev (= ${binary:Version}),
+ libplasma-glib600 (= ${binary:Version}),
+ gir1.2-plasma-1.0 (= ${binary:Version})
+Description: Plasma is an in-memory object store and cache for big data.
+ .
+ This package provides GLib based header files.
+
+Package: libplasma-glib-doc
+Section: doc
+Architecture: @CUDA_ARCHITECTURE@
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends}
+Recommends: libglib2.0-doc
+Description: Plasma is an in-memory object store and cache for big data.
+ .
+ This package provides documentations.
+
+Package: libparquet-glib600
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+ libarrow-glib600 (= ${binary:Version}),
+ libparquet600 (= ${binary:Version})
+Description: Apache Parquet is a columnar storage format
+ .
+ This package provides GLib based library files.
+
+Package: gir1.2-parquet-1.0
+Section: introspection
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${gir:Depends},
+ ${misc:Depends}
+Description: Apache Parquet is a columnar storage format
+ .
+ This package provides GObject Introspection typelib files.
+
+Package: libparquet-glib-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libarrow-glib-dev (= ${binary:Version}),
+ libparquet-dev (= ${binary:Version}),
+ libparquet-glib600 (= ${binary:Version}),
+ gir1.2-parquet-1.0 (= ${binary:Version})
+Suggests: libparquet-glib-doc
+Description: Apache Parquet is a columnar storage format
+ .
+ This package provides GLib based header files.
+
+Package: libparquet-glib-doc
+Section: doc
+Architecture: all
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends}
+Recommends: libglib2.0-doc
+Description: Apache Parquet is a columnar storage format
+ .
+ This package provides documentations.
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/copyright b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/copyright
new file mode 100644
index 000000000..9db0ea76f
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/copyright
@@ -0,0 +1,193 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Apache Arrow
+Upstream-Contact: <dev@arrow.apache.org>
+Source: https://dist.apache.org/repos/dist/release/arrow/
+
+Files: *
+Copyright: 2016 The Apache Software Foundation
+License: Apache-2.0
+
+Files: TODO for "This product includes software from the SFrame project"
+Copyright: 2015 Dato, Inc.
+ 2009 Carnegie Mellon University.
+License: BSD-3-clause
+
+Files: TODO for "This product includes software from the Numpy project"
+Copyright: 1995, 1996, 1997 Jim Hugunin, hugunin@mit.edu
+ 2005 Travis E. Oliphant oliphant@ee.byu.edu Brigham Young University
+License: BSD-3-clause
+
+Files: TODO for "This product includes software from the Feather project"
+Copyright: TODO
+License: Apache-2.0
+
+Files: TODO for "This product includes software from the DyND project"
+Copyright: TODO
+License: BSD-2-clause
+
+Files: TODO for "This product includes software from the LLVM project"
+Copyright: 2003-2007 University of Illinois at Urbana-Champaign.
+License: U-OF-I-BSD-LIKE
+
+Files: TODO for "This product includes software from the google-lint project"
+Copyright: 2009 Google Inc. All rights reserved.
+License: BSD-3-clause
+
+Files: TODO for "This product includes software from the mman-win32 project"
+Copyright: 2010 kutuzov.viktor.84
+License: MIT
+
+Files: TODO for "This product includes software from the LevelDB project"
+Copyright: 2011 The LevelDB Authors. All rights reserved.
+License: BSD-3-clause
+
+Files: TODO for "This product includes software from the CMake project"
+Copyright: 2001-2009 Kitware, Inc.
+ 2012-2014 Continuum Analytics, Inc.
+License: BSD-3-clause
+
+Files: TODO for "This product includes software from https://github.com/matthew-brett/multibuild"
+Copyright: 2013-2016, Matt Terry and Matthew Brett; all rights reserved.
+License: BSD-2-clause
+
+Files: TODO for "This product includes software from the Ibis project"
+Copyright: 2015 Cloudera, Inc.
+License: Apache-2.0
+
+Files: TODO for "This product includes code from Apache Kudu"
+Copyright: 2016 The Apache Software Foundation
+License: Apache-2.0
+
+License: Apache-2.0
+ 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.
+ .
+ On Debian systems, the full text of the Apache Software License version 2 can
+ be found in the file `/usr/share/common-licenses/Apache-2.0'.
+
+License: BSD-3-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1) Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ .
+ 2) Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+ WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+License: U-OF-I-BSD-LIKE
+ ==============================================================================
+ LLVM Release License
+ ==============================================================================
+ University of Illinois/NCSA
+ Open Source License
+ .
+ Copyright (c) 2003-2013 University of Illinois at Urbana-Champaign.
+ All rights reserved.
+ .
+ Developed by:
+ .
+ LLVM Team
+ .
+ University of Illinois at Urbana-Champaign
+ .
+ http://llvm.org
+ .
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
+ this software and associated documentation files (the "Software"), to deal with
+ the Software without restriction, including without limitation the rights to
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is furnished to do
+ so, subject to the following conditions:
+ .
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+ .
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+ .
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+ SOFTWARE.
+
+License: MIT
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-1.0.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-1.0.install
new file mode 100644
index 000000000..e0197fcd3
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-1.0.install
@@ -0,0 +1 @@
+usr/lib/*/girepository-1.0/Arrow-1.0.typelib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-cuda-1.0.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-cuda-1.0.install
new file mode 100644
index 000000000..ef0d9f56f
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-cuda-1.0.install
@@ -0,0 +1 @@
+usr/lib/*/girepository-1.0/ArrowCUDA-1.0.typelib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-dataset-1.0.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-dataset-1.0.install
new file mode 100644
index 000000000..27091dab3
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-arrow-dataset-1.0.install
@@ -0,0 +1 @@
+usr/lib/*/girepository-1.0/ArrowDataset-1.0.typelib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-gandiva-1.0.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-gandiva-1.0.install
new file mode 100644
index 000000000..0433b367a
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-gandiva-1.0.install
@@ -0,0 +1 @@
+usr/lib/*/girepository-1.0/Gandiva-1.0.typelib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-parquet-1.0.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-parquet-1.0.install
new file mode 100644
index 000000000..13fde6681
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-parquet-1.0.install
@@ -0,0 +1 @@
+usr/lib/*/girepository-1.0/Parquet-1.0.typelib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-plasma-1.0.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-plasma-1.0.install
new file mode 100644
index 000000000..7b7ce2158
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/gir1.2-plasma-1.0.install
@@ -0,0 +1 @@
+usr/lib/*/girepository-1.0/Plasma-1.0.typelib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-dev.install
new file mode 100644
index 000000000..77e0b70f6
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-dev.install
@@ -0,0 +1,6 @@
+usr/lib/*/cmake/arrow/ArrowCUDAConfig*.cmake
+usr/lib/*/cmake/arrow/ArrowCUDATargets*.cmake
+usr/lib/*/cmake/arrow/FindArrowCUDA.cmake
+usr/lib/*/libarrow_cuda.a
+usr/lib/*/libarrow_cuda.so
+usr/lib/*/pkgconfig/arrow-cuda.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-glib-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-glib-dev.install
new file mode 100644
index 000000000..778ae5fd7
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-glib-dev.install
@@ -0,0 +1,4 @@
+usr/include/arrow-cuda-glib/
+usr/lib/*/libarrow-cuda-glib.so
+usr/lib/*/pkgconfig/arrow-cuda-glib.pc
+usr/share/gir-1.0/ArrowCUDA-1.0.gir
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-glib600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-glib600.install
new file mode 100644
index 000000000..a6d637526
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda-glib600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow-cuda-glib.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda600.install
new file mode 100644
index 000000000..5ae464687
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-cuda600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow_cuda.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-dev.install
new file mode 100644
index 000000000..53e727ae0
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-dev.install
@@ -0,0 +1,6 @@
+usr/lib/*/cmake/arrow/ArrowDatasetConfig*.cmake
+usr/lib/*/cmake/arrow/ArrowDatasetTargets*.cmake
+usr/lib/*/cmake/arrow/FindArrowDataset.cmake
+usr/lib/*/libarrow_dataset.a
+usr/lib/*/libarrow_dataset.so
+usr/lib/*/pkgconfig/arrow-dataset.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-dev.install
new file mode 100644
index 000000000..4c50bde97
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-dev.install
@@ -0,0 +1,4 @@
+usr/include/arrow-dataset-glib/
+usr/lib/*/libarrow-dataset-glib.so
+usr/lib/*/pkgconfig/arrow-dataset-glib.pc
+usr/share/gir-1.0/ArrowDataset-1.0.gir
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.doc-base b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.doc-base
new file mode 100644
index 000000000..5ec8156b0
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.doc-base
@@ -0,0 +1,9 @@
+Document: arrow-dataset-glib
+Title: Apache Arrow Dataset GLib Reference Manual
+Author: The Apache Software Foundation
+Abstract: Apache Arrow Dataset GLib provides an API to read and write semantic datasets stored in different locations and formats that uses GLib.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/gtk-doc/html/arrow-dataset-glib/index.html
+Files: /usr/share/gtk-doc/html/arrow-dataset-glib/*.html
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.install
new file mode 100644
index 000000000..523bc206e
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.install
@@ -0,0 +1 @@
+usr/share/gtk-doc/html/arrow-dataset-glib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.links b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.links
new file mode 100644
index 000000000..3d880362b
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib-doc.links
@@ -0,0 +1,3 @@
+usr/share/gtk-doc/html/arrow-dataset-glib usr/share/doc/libarrow-dataset-glib-doc/arrow-dataset-glib
+usr/share/doc/libglib2.0-doc/glib usr/share/doc/libarrow-dataset-glib-doc/glib
+usr/share/doc/libglib2.0-doc/gobject usr/share/doc/libarrow-dataset-glib-doc/gobject
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib600.install
new file mode 100644
index 000000000..10085f3a0
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset-glib600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow-dataset-glib.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset600.install
new file mode 100644
index 000000000..014634165
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dataset600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow_dataset.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dev.install
new file mode 100644
index 000000000..ccd0c4e5b
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-dev.install
@@ -0,0 +1,19 @@
+usr/include/arrow/
+usr/lib/*/cmake/arrow/ArrowConfig*.cmake
+usr/lib/*/cmake/arrow/ArrowOptions.cmake
+usr/lib/*/cmake/arrow/ArrowTargets*.cmake
+usr/lib/*/cmake/arrow/Find*Alt.cmake
+usr/lib/*/cmake/arrow/FindArrow.cmake
+usr/lib/*/cmake/arrow/FindBrotli.cmake
+usr/lib/*/cmake/arrow/FindLz4.cmake
+usr/lib/*/cmake/arrow/Find[Suz]*.cmake
+usr/lib/*/cmake/arrow/arrow-config.cmake
+usr/lib/*/libarrow.a
+usr/lib/*/libarrow.so
+usr/lib/*/libarrow_bundled_dependencies.a
+usr/lib/*/pkgconfig/arrow-compute.pc
+usr/lib/*/pkgconfig/arrow-csv.pc
+usr/lib/*/pkgconfig/arrow-filesystem.pc
+usr/lib/*/pkgconfig/arrow-json.pc
+usr/lib/*/pkgconfig/arrow-orc.pc
+usr/lib/*/pkgconfig/arrow.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-dev.install
new file mode 100644
index 000000000..20ca33d84
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-dev.install
@@ -0,0 +1,6 @@
+usr/lib/*/cmake/arrow/ArrowFlightConfig*.cmake
+usr/lib/*/cmake/arrow/ArrowFlightTargets*.cmake
+usr/lib/*/cmake/arrow/FindArrowFlight.cmake
+usr/lib/*/libarrow_flight.a
+usr/lib/*/libarrow_flight.so
+usr/lib/*/pkgconfig/arrow-flight.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-dev.install
new file mode 100644
index 000000000..8a8dee3ac
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-dev.install
@@ -0,0 +1,4 @@
+usr/include/arrow-flight-glib/
+usr/lib/*/libarrow-flight-glib.so
+usr/lib/*/pkgconfig/arrow-flight-glib.pc
+usr/share/gir-1.0/ArrowFlight-1.0.gir
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.doc-base b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.doc-base
new file mode 100644
index 000000000..94b17c11b
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.doc-base
@@ -0,0 +1,9 @@
+Document: arrow-flight-glib
+Title: Apache Arrow Flight GLib Reference Manual
+Author: The Apache Software Foundation
+Abstract: Apache Arrow Flight GLib provides a general-purpose client-server framework to simplify high performance transport of large datasets over network interfaces.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/gtk-doc/html/arrow-flight-glib/index.html
+Files: /usr/share/gtk-doc/html/arrow-flight-glib/*.html
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.install
new file mode 100644
index 000000000..3c95f17ed
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.install
@@ -0,0 +1 @@
+usr/share/gtk-doc/html/arrow-flight-glib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.links b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.links
new file mode 100644
index 000000000..d55c89a1b
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib-doc.links
@@ -0,0 +1,3 @@
+usr/share/gtk-doc/html/arrow-flight-glib usr/share/doc/libarrow-flight-glib-doc/arrow-flight-glib
+usr/share/doc/libglib2.0-doc/glib usr/share/doc/libarrow-flight-glib-doc/glib
+usr/share/doc/libglib2.0-doc/gobject usr/share/doc/libarrow-flight-glib-doc/gobject
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib600.install
new file mode 100644
index 000000000..a6156ed94
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight-glib600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow-flight-glib.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight600.install
new file mode 100644
index 000000000..abdb96d4c
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-flight600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow_flight.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-dev.install
new file mode 100644
index 000000000..f6de7eedb
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-dev.install
@@ -0,0 +1,6 @@
+usr/include/arrow-glib/
+usr/lib/*/libarrow-glib.so
+usr/lib/*/pkgconfig/arrow-glib.pc
+usr/lib/*/pkgconfig/arrow-orc-glib.pc
+usr/share/arrow-glib/example/
+usr/share/gir-1.0/Arrow-1.0.gir
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.doc-base b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.doc-base
new file mode 100644
index 000000000..8ae4ffb6d
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.doc-base
@@ -0,0 +1,9 @@
+Document: arrow-glib
+Title: Apache Arrow GLib Reference Manual
+Author: The Apache Software Foundation
+Abstract: Apache Arrow GLib is a data processing library for analysis that uses GLib.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/gtk-doc/html/arrow-glib/index.html
+Files: /usr/share/gtk-doc/html/arrow-glib/*.html
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.install
new file mode 100644
index 000000000..912a29c58
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.install
@@ -0,0 +1,2 @@
+usr/share/doc/arrow-glib/
+usr/share/gtk-doc/html/arrow-glib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.links b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.links
new file mode 100644
index 000000000..556987d0a
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib-doc.links
@@ -0,0 +1,3 @@
+usr/share/gtk-doc/html/arrow-glib usr/share/doc/libarrow-glib-doc/arrow-glib
+usr/share/doc/libglib2.0-doc/glib usr/share/doc/libarrow-glib-doc/glib
+usr/share/doc/libglib2.0-doc/gobject usr/share/doc/libarrow-glib-doc/gobject
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib600.install
new file mode 100644
index 000000000..ec369d153
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-glib600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow-glib.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-dev.install
new file mode 100644
index 000000000..807583f98
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-dev.install
@@ -0,0 +1,6 @@
+usr/lib/*/cmake/arrow/ArrowPythonConfig*.cmake
+usr/lib/*/cmake/arrow/ArrowPythonTargets*.cmake
+usr/lib/*/cmake/arrow/FindArrowPython.cmake
+usr/lib/*/libarrow_python.a
+usr/lib/*/libarrow_python.so
+usr/lib/*/pkgconfig/arrow-python.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-flight-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-flight-dev.install
new file mode 100644
index 000000000..6cf96e227
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-flight-dev.install
@@ -0,0 +1,6 @@
+usr/lib/*/cmake/arrow/ArrowPythonFlightConfig*.cmake
+usr/lib/*/cmake/arrow/ArrowPythonFlightTargets*.cmake
+usr/lib/*/cmake/arrow/FindArrowPythonFlight.cmake
+usr/lib/*/libarrow_python_flight.a
+usr/lib/*/libarrow_python_flight.so
+usr/lib/*/pkgconfig/arrow-python-flight.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-flight600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-flight600.install
new file mode 100644
index 000000000..b7cbfec1f
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python-flight600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow_python_flight.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python600.install
new file mode 100644
index 000000000..eef3e6648
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow-python600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow_python.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow600.install
new file mode 100644
index 000000000..98ef2139c
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libarrow600.install
@@ -0,0 +1 @@
+usr/lib/*/libarrow.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-dev.install
new file mode 100644
index 000000000..26e7e76fb
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-dev.install
@@ -0,0 +1,7 @@
+usr/include/gandiva/
+usr/lib/*/cmake/arrow/GandivaConfig*.cmake
+usr/lib/*/cmake/arrow/GandivaTargets*.cmake
+usr/lib/*/cmake/arrow/FindGandiva.cmake
+usr/lib/*/libgandiva.a
+usr/lib/*/libgandiva.so
+usr/lib/*/pkgconfig/gandiva.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-dev.install
new file mode 100644
index 000000000..fe7d8bb79
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-dev.install
@@ -0,0 +1,4 @@
+usr/include/gandiva-glib/
+usr/lib/*/libgandiva-glib.so
+usr/lib/*/pkgconfig/gandiva-glib.pc
+usr/share/gir-1.0/Gandiva-1.0.gir
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.doc-base b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.doc-base
new file mode 100644
index 000000000..2bf913062
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.doc-base
@@ -0,0 +1,9 @@
+Document: gandiva-glib
+Title: Gandiva GLib Reference Manual
+Author: The Apache Software Foundation
+Abstract: Gandiva GLib is a toolset for compiling and evaluating expressions on Arrow Data that uses GLib.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/gtk-doc/html/gandiva-glib/index.html
+Files: /usr/share/gtk-doc/html/gandiva-glib/*.html
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.install
new file mode 100644
index 000000000..358e4e5c7
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.install
@@ -0,0 +1 @@
+usr/share/gtk-doc/html/gandiva-glib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.links b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.links
new file mode 100644
index 000000000..234794e23
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib-doc.links
@@ -0,0 +1,3 @@
+usr/share/gtk-doc/html/gandiva-glib usr/share/doc/libgandiva-glib-doc/gandiva-glib
+usr/share/doc/libglib2.0-doc/glib usr/share/doc/libgandiva-glib-doc/glib
+usr/share/doc/libglib2.0-doc/gobject usr/share/doc/libgandiva-glib-doc/gobject
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib600.install
new file mode 100644
index 000000000..6257fd438
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva-glib600.install
@@ -0,0 +1 @@
+usr/lib/*/libgandiva-glib.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva600.install
new file mode 100644
index 000000000..1475f49cf
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libgandiva600.install
@@ -0,0 +1 @@
+usr/lib/*/libgandiva.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-dev.install
new file mode 100644
index 000000000..e163115f0
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-dev.install
@@ -0,0 +1,7 @@
+usr/include/parquet/
+usr/lib/*/cmake/arrow/ParquetConfig*.cmake
+usr/lib/*/cmake/arrow/ParquetTargets*.cmake
+usr/lib/*/cmake/arrow/FindParquet.cmake
+usr/lib/*/libparquet.a
+usr/lib/*/libparquet.so
+usr/lib/*/pkgconfig/parquet.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-dev.install
new file mode 100644
index 000000000..9cce737a7
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-dev.install
@@ -0,0 +1,4 @@
+usr/include/parquet-glib/
+usr/lib/*/libparquet-glib.so
+usr/lib/*/pkgconfig/parquet-glib.pc
+usr/share/gir-1.0/Parquet-1.0.gir
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.doc-base b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.doc-base
new file mode 100644
index 000000000..cc68e2df6
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.doc-base
@@ -0,0 +1,9 @@
+Document: parquet-glib
+Title: Apache Parquet GLib Reference Manual
+Author: The Apache Software Foundation
+Abstract: Apache Parquet GLib is a columnar storage format processing library that uses GLib.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/gtk-doc/html/parquet-glib/index.html
+Files: /usr/share/gtk-doc/html/parquet-glib/*.html
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.install
new file mode 100644
index 000000000..5843ea3da
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.install
@@ -0,0 +1 @@
+usr/share/gtk-doc/html/parquet-glib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.links b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.links
new file mode 100644
index 000000000..c31f346b1
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib-doc.links
@@ -0,0 +1,3 @@
+usr/share/gtk-doc/html/parquet-glib usr/share/doc/libparquet-glib-doc/parquet-glib
+usr/share/doc/libglib2.0-doc/glib usr/share/doc/libparquet-glib-doc/glib
+usr/share/doc/libglib2.0-doc/gobject usr/share/doc/libparquet-glib-doc/gobject
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib600.install
new file mode 100644
index 000000000..1c0e44199
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet-glib600.install
@@ -0,0 +1 @@
+usr/lib/*/libparquet-glib.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet600.install
new file mode 100644
index 000000000..540a91d5e
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libparquet600.install
@@ -0,0 +1 @@
+usr/lib/*/libparquet.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-dev.install
new file mode 100644
index 000000000..c315d4dfc
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-dev.install
@@ -0,0 +1,7 @@
+usr/include/plasma/
+usr/lib/*/cmake/arrow/PlasmaConfig*.cmake
+usr/lib/*/cmake/arrow/PlasmaTargets*.cmake
+usr/lib/*/cmake/arrow/FindPlasma.cmake
+usr/lib/*/libplasma.a
+usr/lib/*/libplasma.so
+usr/lib/*/pkgconfig/plasma.pc
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-dev.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-dev.install
new file mode 100644
index 000000000..7800681d2
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-dev.install
@@ -0,0 +1,4 @@
+usr/include/plasma-glib/
+usr/lib/*/libplasma-glib.so
+usr/lib/*/pkgconfig/plasma-glib.pc
+usr/share/gir-1.0/Plasma-1.0.gir
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.doc-base b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.doc-base
new file mode 100644
index 000000000..a9d306d8b
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.doc-base
@@ -0,0 +1,9 @@
+Document: plasma-glib
+Title: Plasma GLib Reference Manual
+Author: The Apache Software Foundation
+Abstract: Plasma GLib is an in-memory object store and cache for big data that uses GLib.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/gtk-doc/html/plasma-glib/index.html
+Files: /usr/share/gtk-doc/html/plasma-glib/*.html
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.install
new file mode 100644
index 000000000..ad13b94cd
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.install
@@ -0,0 +1 @@
+usr/share/gtk-doc/html/plasma-glib
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.links b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.links
new file mode 100644
index 000000000..193262f9b
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib-doc.links
@@ -0,0 +1,3 @@
+usr/share/gtk-doc/html/plasma-glib usr/share/doc/libplasma-glib-doc/plasma-glib
+usr/share/doc/libglib2.0-doc/glib usr/share/doc/libplasma-glib-doc/glib
+usr/share/doc/libglib2.0-doc/gobject usr/share/doc/libplasma-glib-doc/gobject
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib600.install
new file mode 100644
index 000000000..339bcca3e
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma-glib600.install
@@ -0,0 +1 @@
+usr/lib/*/libplasma-glib.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma600.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma600.install
new file mode 100644
index 000000000..f8a744b65
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/libplasma600.install
@@ -0,0 +1 @@
+usr/lib/*/libplasma.so.*
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/patches/series b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/patches/series
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/patches/series
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/plasma-store-server.install b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/plasma-store-server.install
new file mode 100644
index 000000000..bd13b0e81
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/plasma-store-server.install
@@ -0,0 +1 @@
+usr/bin/plasma-store-server
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/rules b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/rules
new file mode 100755
index 000000000..2de533615
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/rules
@@ -0,0 +1,104 @@
+#!/usr/bin/make -f
+# -*- makefile-gmake -*-
+#
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+export DEB_BUILD_MAINT_OPTIONS=reproducible=-timeless
+
+BUILD_TYPE=release
+
+%:
+ dh $@ --with gir
+
+override_dh_auto_configure:
+ if dpkg -l nvidia-cuda-toolkit > /dev/null 2>&1; then \
+ ARROW_CUDA=ON; \
+ ARROW_PLASMA=ON; \
+ else \
+ ARROW_CUDA=OFF; \
+ ARROW_PLASMA=OFF; \
+ fi; \
+ dh_auto_configure \
+ --sourcedirectory=cpp \
+ --builddirectory=cpp_build \
+ --buildsystem=cmake+ninja \
+ -- \
+ -DARROW_CUDA=$${ARROW_CUDA} \
+ -DARROW_FLIGHT=ON \
+ -DARROW_GANDIVA=ON \
+ -DARROW_GANDIVA_JAVA=OFF \
+ -DARROW_MIMALLOC=ON \
+ -DARROW_ORC=ON \
+ -DARROW_PACKAGE_KIND=deb \
+ -DARROW_PARQUET=ON \
+ -DARROW_PLASMA=$${ARROW_PLASMA} \
+ -DARROW_PYTHON=ON \
+ -DARROW_S3=ON \
+ -DARROW_USE_CCACHE=OFF \
+ -DARROW_WITH_BROTLI=ON \
+ -DARROW_WITH_BZ2=ON \
+ -DARROW_WITH_LZ4=ON \
+ -DARROW_WITH_SNAPPY=ON \
+ -DARROW_WITH_ZLIB=ON \
+ -DARROW_WITH_ZSTD=ON \
+ -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
+ -DCMAKE_UNITY_BUILD=ON \
+ -DPARQUET_REQUIRE_ENCRYPTION=ON \
+ -DPythonInterp_FIND_VERSION=ON \
+ -DPythonInterp_FIND_VERSION_MAJOR=3
+
+override_dh_auto_build:
+ dh_auto_build \
+ --sourcedirectory=cpp \
+ --builddirectory=cpp_build
+ dh_auto_configure \
+ --sourcedirectory=c_glib \
+ --builddirectory=c_glib_build \
+ --buildsystem=meson+ninja \
+ -- \
+ -Darrow_cpp_build_type=$(BUILD_TYPE) \
+ -Darrow_cpp_build_dir=../cpp_build \
+ -Dgtk_doc=true
+ env \
+ LD_LIBRARY_PATH=$(CURDIR)/cpp_build/$(BUILD_TYPE) \
+ dh_auto_build \
+ --sourcedirectory=c_glib \
+ --builddirectory=c_glib_build \
+ --buildsystem=meson+ninja
+
+override_dh_auto_install:
+ dh_auto_install \
+ --sourcedirectory=c_glib \
+ --builddirectory=c_glib_build \
+ --buildsystem=meson+ninja
+ # Remove built files to reduce disk usage
+ dh_auto_clean \
+ --sourcedirectory=c_glib \
+ --builddirectory=c_glib_build \
+ --buildsystem=meson+ninja
+
+ dh_auto_install \
+ --sourcedirectory=cpp \
+ --builddirectory=cpp_build
+ # Remove built files to reduce disk usage
+ dh_auto_clean \
+ --sourcedirectory=cpp \
+ --builddirectory=cpp_build
+
+override_dh_auto_test:
+ # TODO: We need Boost 1.64 or later to build tests for
+ # Apache Arrow Flight.
+ # git clone --depth 1 https://github.com/apache/arrow-testing.git
+ # git clone --depth 1 https://github.com/apache/parquet-testing.git
+ # cd cpp_build && \
+ # env \
+ # ARROW_TEST_DATA=$(CURDIR)/arrow-testing/data \
+ # PARQUET_TEST_DATA=$(CURDIR)/parquet-testing/data \
+ # ctest --exclude-regex 'arrow-cuda-test|plasma-client_tests'
+
+# skip file failing with "Unknown DWARF DW_OP_255" (see bug#949296)
+override_dh_dwz:
+ dh_dwz --exclude=libgandiva.so
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/source/format b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/source/format
new file mode 100644
index 000000000..163aaf8d8
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/watch b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/watch
new file mode 100644
index 000000000..5cb3f0091
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/debian/watch
@@ -0,0 +1,2 @@
+version=3
+https://dist.apache.org/repos/dist/release/arrow/arrow-(.+)/apache-arrow-(.+).tar.gz
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/almalinux-8-aarch64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/almalinux-8-aarch64/from
new file mode 100644
index 000000000..b570587e0
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/almalinux-8-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.
+
+arm64v8/almalinux:8
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/almalinux-8/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/almalinux-8/Dockerfile
new file mode 100644
index 000000000..003b26747
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/almalinux-8/Dockerfile
@@ -0,0 +1,64 @@
+# 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=almalinux:8
+FROM ${FROM}
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ dnf install -y ${quiet} epel-release && \
+ dnf install --enablerepo=powertools -y ${quiet} \
+ bison \
+ boost-devel \
+ brotli-devel \
+ bzip2-devel \
+ c-ares-devel \
+ ccache \
+ clang \
+ cmake \
+ curl-devel \
+ flex \
+ gcc-c++ \
+ gflags-devel \
+ git \
+ glog-devel \
+ gobject-introspection-devel \
+ gtk-doc \
+ 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 \
+ # utf8proc-devel \
+ zlib-devel && \
+ dnf clean ${quiet} all
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/amazon-linux-2/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/amazon-linux-2/Dockerfile
new file mode 100644
index 000000000..6ada89729
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/amazon-linux-2/Dockerfile
@@ -0,0 +1,55 @@
+# 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=amazonlinux:2
+FROM ${FROM}
+
+COPY qemu-* /usr/bin/
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ yum update -y ${quiet} && \
+ amazon-linux-extras install -y epel && \
+ yum install -y ${quiet} \
+ bison \
+ brotli-devel \
+ bzip2-devel \
+ ccache \
+ cmake3 \
+ flex \
+ gcc-c++ \
+ git \
+ glog-devel \
+ gobject-introspection-devel \
+ gtk-doc \
+ lz4-devel \
+ make \
+ openssl-devel \
+ pkg-config \
+ rapidjson-devel \
+ rpmdevtools \
+ snappy-devel \
+ tar \
+ utf8proc-devel \
+ zlib-devel && \
+ # Install ninja-build dependencies in amzn2-core
+ yum install -y ${quiet} ninja-build && \
+ # Install ninja-build from EPEL because ninja-build in amzn2-core is old.
+ yum install -y ${quiet} --disablerepo=amzn2-core ninja-build && \
+ yum clean ${quiet} all
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/amazon-linux-2/qemu-dummy-static b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/amazon-linux-2/qemu-dummy-static
new file mode 100755
index 000000000..279d89545
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/amazon-linux-2/qemu-dummy-static
@@ -0,0 +1,33 @@
+#!/usr/bin/env sh
+#
+# 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.
+
+# Do nothing. This exists only for not requiring qemu-aarch64-static copy.
+# Recent Debian (buster or later) and Ubuntu (18.10 or later) on amd64 hosts or
+# arm64 host don't require qemu-aarch64-static in Docker image. But old Debian
+# and Ubuntu hosts on amd64 require qemu-aarch64-static in Docker image.
+#
+# We use "COPY qemu* /usr/bin/" in Dockerfile. If we don't put any "qemnu*",
+# the "COPY" is failed. It means that we always require "qemu*" even if we
+# use recent Debian/Ubuntu or arm64 host. If we have this dummy "qemu*" file,
+# the "COPY" isn't failed. It means that we can copy "qemu*" only when we
+# need.
+#
+# See also "script" in dev/tasks/linux-packages/azure.linux.arm64.yml.
+# Azure Pipelines uses old Ubuntu (18.04).
+# So we need to put "qemu-aarch64-static" into this directory.
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in
new file mode 100644
index 000000000..3a8f71ecc
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in
@@ -0,0 +1,892 @@
+# -*- sh-shell: rpm -*-
+#
+# 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.
+
+%define _amzn %{?amzn:%{amzn}}%{!?amzn:0}
+%define is_amazon_linux (%{_amzn} != 0)
+
+%define boost_version %( \
+ if [ %{rhel} -eq 7 ]; then \
+ echo 169; \
+ fi)
+%define cmake_version %( \
+ if [ %{rhel} -lt 8 ]; then \
+ echo 3; \
+ fi)
+%define python_version %( \
+ if [ %{rhel} -eq 7 ]; then \
+ echo 36; \
+ else \
+ echo 3; \
+ fi)
+
+%define lz4_requirement %( \
+ if [ %{_amzn} -eq 0 ]; then \
+ echo ">= 1.8.0"; \
+ fi)
+
+%define use_boost (!%{is_amazon_linux})
+%define use_flight (%{rhel} >= 8)
+%define use_gandiva (%{rhel} >= 8 && %{_arch} != "aarch64")
+%define use_gflags (!%{is_amazon_linux})
+%define use_mimalloc (%{rhel} >= 8)
+%define use_python (!%{is_amazon_linux})
+# TODO: Enable this. This works on local but is fragile on GitHub Actions and
+# Travis CI.
+# %define use_s3 (%{rhel} >= 8)
+%define use_s3 0
+
+%define have_rapidjson (%{rhel} == 7)
+%define have_re2 (%{rhel} >= 8)
+# EPEL ships utf8proc but it's old.
+# %define have_utf8proc (%{rhel} == 7)
+%define have_utf8proc 0
+%define have_zstd (!%{is_amazon_linux})
+
+Name: @PACKAGE@
+Version: @VERSION@
+Release: @RELEASE@%{?dist}
+Summary: Apache Arrow is a data processing library for analysis
+
+License: Apache-2.0
+URL: https://arrow.apache.org/
+Source0: https://dist.apache.org/repos/dist/release/@PACKAGE@/@PACKAGE@-%{version}/apache-@PACKAGE@-%{version}.tar.gz
+
+BuildRequires: bison
+%if %{use_boost}
+BuildRequires: boost%{boost_version}-devel
+%endif
+BuildRequires: brotli-devel
+BuildRequires: bzip2-devel
+%if %{use_flight}
+BuildRequires: c-ares-devel
+%endif
+BuildRequires: cmake%{cmake_version}
+%if %{use_s3}
+BuildRequires: curl-devel
+%endif
+BuildRequires: flex
+BuildRequires: gcc-c++
+%if %{use_gflags}
+BuildRequires: gflags-devel
+%endif
+BuildRequires: git
+BuildRequires: glog-devel
+%if %{have_zstd}
+BuildRequires: libzstd-devel
+%endif
+BuildRequires: lz4-devel %{lz4_requirement}
+BuildRequires: ninja-build
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
+%if %{use_python}
+BuildRequires: python%{python_version}-devel
+BuildRequires: python%{python_version}-numpy
+%endif
+%if %{have_rapidjson}
+BuildRequires: rapidjson-devel
+%endif
+%if %{have_re2}
+BuildRequires: re2-devel
+%endif
+BuildRequires: snappy-devel
+%if %{have_utf8proc}
+BuildRequires: utf8proc-devel
+%endif
+BuildRequires: zlib-devel
+
+%if %{use_gandiva}
+BuildRequires: llvm-devel
+BuildRequires: ncurses-devel
+%endif
+
+BuildRequires: gobject-introspection-devel
+BuildRequires: gtk-doc
+
+%description
+Apache Arrow is a data processing library for analysis.
+
+%prep
+%setup -q -n apache-@PACKAGE@-%{version}
+
+%build
+cpp_build_type=release
+mkdir cpp/build
+cd cpp/build
+%cmake3 .. \
+ -DARROW_CSV=ON \
+ -DARROW_DATASET=ON \
+%if %{use_flight}
+ -DARROW_FLIGHT=ON \
+%endif
+%if %{use_gandiva}
+ -DARROW_GANDIVA=ON \
+%endif
+ -DARROW_HDFS=ON \
+ -DARROW_JSON=ON \
+%if %{use_mimalloc}
+ -DARROW_MIMALLOC=ON \
+%endif
+ -DARROW_ORC=ON \
+ -DARROW_PACKAGE_KIND=rpm \
+ -DARROW_PARQUET=ON \
+ -DARROW_PLASMA=ON \
+%if %{use_python}
+ -DARROW_PYTHON=ON \
+%endif
+%if %{use_s3}
+ -DARROW_S3=ON \
+%endif
+ -DARROW_WITH_BROTLI=ON \
+ -DARROW_WITH_BZ2=ON \
+ -DARROW_WITH_LZ4=ON \
+ -DARROW_WITH_SNAPPY=ON \
+ -DARROW_WITH_ZLIB=ON \
+ -DARROW_WITH_ZSTD=ON \
+ -DCMAKE_BUILD_TYPE=$cpp_build_type \
+ -DARROW_USE_CCACHE=OFF \
+ -DPARQUET_REQUIRE_ENCRYPTION=ON \
+%if %{use_python}
+ -DPythonInterp_FIND_VERSION=ON \
+ -DPythonInterp_FIND_VERSION_MAJOR=3 \
+%endif
+ -GNinja
+
+ninja %{?_smp_mflags}
+cd -
+
+cd c_glib
+pip3 install meson
+meson setup build \
+ --default-library=both \
+ --libdir=%{_libdir} \
+ --prefix=%{_prefix} \
+ -Darrow_cpp_build_dir=../cpp/build \
+ -Darrow_cpp_build_type=$cpp_build_type \
+ -Dgtk_doc=true
+LD_LIBRARY_PATH=$PWD/../cpp/build/$cpp_build_type \
+ ninja -C build %{?_smp_mflags}
+cd -
+
+%install
+cpp_build_type=release
+
+cd c_glib
+DESTDIR=$RPM_BUILD_ROOT ninja -C build install
+ninja -C build clean
+cd -
+
+cd cpp/build
+DESTDIR=$RPM_BUILD_ROOT ninja install
+ninja clean
+cd -
+
+%package libs
+Summary: Runtime libraries for Apache Arrow C++
+License: Apache-2.0
+Requires: brotli
+%if %{use_gflags}
+Requires: gflags
+%endif
+Requires: glog
+%if %{have_zstd}
+Requires: libzstd
+%endif
+Requires: lz4 %{lz4_requirement}
+%if %{have_re2}
+Requires: re2
+%endif
+Requires: snappy
+%if %{have_utf8proc}
+Requires: utf8proc
+%endif
+Requires: zlib
+
+%description libs
+This package contains the libraries for Apache Arrow C++.
+
+%files libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_docdir}/arrow/
+%{_libdir}/libarrow.so.*
+
+%package devel
+Summary: Libraries and header files for Apache Arrow C++
+License: Apache-2.0
+Requires: %{name}-libs = %{version}-%{release}
+Requires: brotli-devel
+Requires: bzip2-devel
+%if %{use_flight}
+Requires: c-ares-devel
+%endif
+%if %{have_zstd}
+Requires: libzstd-devel
+%endif
+Requires: lz4-devel %{lz4_requirement}
+Requires: openssl-devel
+%if %{have_rapidjson}
+Requires: rapidjson-devel
+%endif
+%if %{have_re2}
+Requires: re2-devel
+%endif
+Requires: snappy-devel
+%if %{have_utf8proc}
+Requires: utf8proc-devel
+%endif
+Requires: zlib-devel
+
+%description devel
+Libraries and header files for Apache Arrow C++.
+
+%files devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/arrow/
+%exclude %{_includedir}/arrow/dataset/
+%if %{use_flight}
+%exclude %{_includedir}/arrow/flight/
+%endif
+%exclude %{_includedir}/arrow/python/
+%{_libdir}/cmake/arrow/ArrowConfig*.cmake
+%{_libdir}/cmake/arrow/ArrowOptions.cmake
+%{_libdir}/cmake/arrow/ArrowTargets*.cmake
+%{_libdir}/cmake/arrow/FindArrow.cmake
+%{_libdir}/cmake/arrow/FindBrotli.cmake
+%{_libdir}/cmake/arrow/FindLz4.cmake
+%{_libdir}/cmake/arrow/FindSnappy.cmake
+%if %{use_flight}
+%{_libdir}/cmake/arrow/Findc-aresAlt.cmake
+%endif
+%if %{have_re2}
+%{_libdir}/cmake/arrow/Findre2Alt.cmake
+%endif
+%if %{have_utf8proc}
+%{_libdir}/cmake/arrow/Findutf8proc.cmake
+%endif
+%if %{have_zstd}
+%{_libdir}/cmake/arrow/Findzstd.cmake
+%endif
+%{_libdir}/cmake/arrow/arrow-config.cmake
+%{_libdir}/libarrow.a
+%{_libdir}/libarrow.so
+%{_libdir}/libarrow_bundled_dependencies.a
+%{_libdir}/pkgconfig/arrow-compute.pc
+%{_libdir}/pkgconfig/arrow-csv.pc
+%{_libdir}/pkgconfig/arrow-filesystem.pc
+%{_libdir}/pkgconfig/arrow-json.pc
+%{_libdir}/pkgconfig/arrow-orc.pc
+%{_libdir}/pkgconfig/arrow.pc
+
+%package dataset-libs
+Summary: C++ library to read and write semantic datasets stored in different locations and formats
+License: Apache-2.0
+Requires: %{name}-libs = %{version}-%{release}
+
+%description dataset-libs
+This package contains the libraries for Apache Arrow dataset.
+
+%files dataset-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libarrow_dataset.so.*
+
+%package dataset-devel
+Summary: Libraries and header files for Apache Arrow dataset.
+License: Apache-2.0
+Requires: %{name}-dataset-libs = %{version}-%{release}
+
+%description dataset-devel
+Libraries and header files for Apache Arrow dataset.
+
+%files dataset-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/arrow/dataset/
+%{_libdir}/cmake/arrow/ArrowDatasetConfig*.cmake
+%{_libdir}/cmake/arrow/ArrowDatasetTargets*.cmake
+%{_libdir}/cmake/arrow/FindArrowDataset.cmake
+%{_libdir}/libarrow_dataset.a
+%{_libdir}/libarrow_dataset.so
+%{_libdir}/pkgconfig/arrow-dataset.pc
+
+%if %{use_flight}
+%package flight-libs
+Summary: C++ library for fast data transport.
+License: Apache-2.0
+Requires: %{name}-libs = %{version}-%{release}
+%if %{use_flight}
+Requires: c-ares
+%endif
+Requires: openssl
+
+%description flight-libs
+This package contains the libraries for Apache Arrow Flight.
+
+%files flight-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libarrow_flight.so.*
+
+%package flight-devel
+Summary: Libraries and header files for Apache Arrow Flight.
+License: Apache-2.0
+Requires: %{name}-flight-libs = %{version}-%{release}
+
+%description flight-devel
+Libraries and header files for Apache Arrow Flight.
+
+%files flight-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/arrow/flight/
+%{_libdir}/cmake/arrow/ArrowFlightConfig*.cmake
+%{_libdir}/cmake/arrow/ArrowFlightTargets*.cmake
+%{_libdir}/cmake/arrow/FindArrowFlight.cmake
+%{_libdir}/libarrow_flight.a
+%{_libdir}/libarrow_flight.so
+%{_libdir}/pkgconfig/arrow-flight.pc
+%endif
+
+%if %{use_gandiva}
+%package -n gandiva-libs
+Summary: C++ library for compiling and evaluating expressions on Apache Arrow data.
+License: Apache-2.0
+Requires: %{name}-libs = %{version}-%{release}
+Requires: ncurses-libs
+
+%description -n gandiva-libs
+This package contains the libraries for Gandiva.
+
+%files -n gandiva-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libgandiva.so.*
+
+%package -n gandiva-devel
+Summary: Libraries and header files for Gandiva.
+License: Apache-2.0
+Requires: gandiva-libs = %{version}-%{release}
+Requires: llvm-devel
+
+%description -n gandiva-devel
+Libraries and header files for Gandiva.
+
+%files -n gandiva-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/gandiva/
+%{_libdir}/cmake/arrow/GandivaConfig*.cmake
+%{_libdir}/cmake/arrow/GandivaTargets*.cmake
+%{_libdir}/cmake/arrow/FindGandiva.cmake
+%{_libdir}/libgandiva.a
+%{_libdir}/libgandiva.so
+%{_libdir}/pkgconfig/gandiva.pc
+%endif
+
+%if %{use_python}
+%package python-libs
+Summary: Python integration library for Apache Arrow
+License: Apache-2.0
+Requires: %{name}-libs = %{version}-%{release}
+Requires: python%{python_version}-numpy
+
+%description python-libs
+This package contains the Python integration library for Apache Arrow.
+
+%files python-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libarrow_python.so.*
+
+%package python-devel
+Summary: Libraries and header files for Python integration library for Apache Arrow
+License: Apache-2.0
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+Requires: python%{python_version}-devel
+
+%description python-devel
+Libraries and header files for Python integration library for Apache Arrow.
+
+%files python-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/arrow/python/
+%exclude %{_includedir}/arrow/python/flight.h
+%{_libdir}/cmake/arrow/ArrowPythonConfig*.cmake
+%{_libdir}/cmake/arrow/ArrowPythonTargets*.cmake
+%{_libdir}/cmake/arrow/FindArrowPython.cmake
+%{_libdir}/libarrow_python.a
+%{_libdir}/libarrow_python.so
+%{_libdir}/pkgconfig/arrow-python.pc
+
+%if %{use_flight}
+%package python-flight-libs
+Summary: Python integration library for Apache Arrow Flight
+License: Apache-2.0
+Requires: %{name}-flight-libs = %{version}-%{release}
+Requires: %{name}-python-libs = %{version}-%{release}
+
+%description python-flight-libs
+This package contains the Python integration library for Apache Arrow Flight.
+
+%files python-flight-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libarrow_python_flight.so.*
+
+%package python-flight-devel
+Summary: Libraries and header files for Python integration library for Apache Arrow Flight.
+License: Apache-2.0
+Requires: %{name}-flight-devel = %{version}-%{release}
+Requires: %{name}-python-devel = %{version}-%{release}
+Requires: %{name}-python-flight-libs = %{version}-%{release}
+
+%description python-flight-devel
+Libraries and header files for Python integration library for
+Apache Arrow Flight.
+
+%files python-flight-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/arrow/python/flight.h
+%{_libdir}/cmake/arrow/ArrowPythonFlightConfig*.cmake
+%{_libdir}/cmake/arrow/ArrowPythonFlightTargets*.cmake
+%{_libdir}/cmake/arrow/FindArrowPythonFlight.cmake
+%{_libdir}/libarrow_python_flight.a
+%{_libdir}/libarrow_python_flight.so
+%{_libdir}/pkgconfig/arrow-python-flight.pc
+%endif
+%endif
+
+%package -n plasma-libs
+Summary: Runtime libraries for Plasma in-memory object store
+License: Apache-2.0
+Requires: %{name}-libs = %{version}-%{release}
+
+%description -n plasma-libs
+This package contains the libraries for Plasma in-memory object store.
+
+%files -n plasma-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libplasma.so.*
+
+%package -n plasma-store-server
+Summary: Server for Plasma in-memory object store
+License: Apache-2.0
+Requires: plasma-libs = %{version}-%{release}
+
+%description -n plasma-store-server
+This package contains the server for Plasma in-memory object store.
+
+%files -n plasma-store-server
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_bindir}/plasma-store-server
+
+%package -n plasma-devel
+Summary: Libraries and header files for Plasma in-memory object store
+License: Apache-2.0
+Requires: plasma-libs = %{version}-%{release}
+
+%description -n plasma-devel
+Libraries and header files for Plasma in-memory object store.
+
+%files -n plasma-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/plasma/
+%{_libdir}/cmake/arrow/PlasmaConfig*.cmake
+%{_libdir}/cmake/arrow/PlasmaTargets*.cmake
+%{_libdir}/cmake/arrow/FindPlasma.cmake
+%{_libdir}/libplasma.a
+%{_libdir}/libplasma.so
+%{_libdir}/pkgconfig/plasma*.pc
+
+%package -n parquet-libs
+Summary: Runtime libraries for Apache Parquet C++
+License: Apache-2.0
+Requires: %{name}-libs = %{version}-%{release}
+Requires: openssl
+
+%description -n parquet-libs
+This package contains the libraries for Apache Parquet C++.
+
+%files -n parquet-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libparquet.so.*
+
+%package -n parquet-devel
+Summary: Libraries and header files for Apache Parquet C++
+License: Apache-2.0
+Requires: parquet-libs = %{version}-%{release}
+Requires: zlib-devel
+
+%description -n parquet-devel
+Libraries and header files for Apache Parquet C++.
+
+%files -n parquet-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/parquet/
+%{_libdir}/cmake/arrow/ParquetConfig*.cmake
+%{_libdir}/cmake/arrow/ParquetTargets*.cmake
+%{_libdir}/cmake/arrow/FindParquet.cmake
+%{_libdir}/libparquet.a
+%{_libdir}/libparquet.so
+%{_libdir}/pkgconfig/parquet*.pc
+
+%package glib-libs
+Summary: Runtime libraries for Apache Arrow GLib
+License: Apache-2.0
+Requires: %{name}-libs = %{version}-%{release}
+Requires: glib2
+
+%description glib-libs
+This package contains the libraries for Apache Arrow GLib.
+
+%files glib-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libarrow-glib.so.*
+%{_datadir}/gir-1.0/Arrow-1.0.gir
+
+%package glib-devel
+Summary: Libraries and header files for Apache Arrow GLib
+License: Apache-2.0
+Requires: %{name}-devel = %{version}-%{release}
+Requires: glib2-devel
+Requires: gobject-introspection-devel
+
+%description glib-devel
+Libraries and header files for Apache Arrow GLib.
+
+%files glib-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/arrow-glib/
+%{_libdir}/libarrow-glib.a
+%{_libdir}/libarrow-glib.so
+%{_libdir}/pkgconfig/arrow-glib.pc
+%{_libdir}/pkgconfig/arrow-orc-glib.pc
+%{_libdir}/girepository-1.0/Arrow-1.0.typelib
+%{_datadir}/arrow-glib/example/
+
+%package glib-doc
+Summary: Documentation for Apache Arrow GLib
+License: Apache-2.0
+
+%description glib-doc
+Documentation for Apache Arrow GLib.
+
+%files glib-doc
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_docdir}/arrow-glib/
+%{_datadir}/gtk-doc/html/arrow-glib/
+
+%package dataset-glib-libs
+Summary: Runtime libraries for Apache Arrow Dataset GLib
+License: Apache-2.0
+Requires: %{name}-dataset-libs = %{version}-%{release}
+Requires: %{name}-glib-libs = %{version}-%{release}
+
+%description dataset-glib-libs
+This package contains the libraries for Apache Arrow Dataset GLib.
+
+%files dataset-glib-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libarrow-dataset-glib.so.*
+%{_datadir}/gir-1.0/ArrowDataset-1.0.gir
+
+%package dataset-glib-devel
+Summary: Libraries and header files for Apache Arrow Dataset GLib
+License: Apache-2.0
+Requires: %{name}-dataset-devel = %{version}-%{release}
+Requires: %{name}-glib-devel = %{version}-%{release}
+
+%description dataset-glib-devel
+Libraries and header files for Apache Arrow Dataset GLib.
+
+%files dataset-glib-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/arrow-dataset-glib/
+%{_libdir}/libarrow-dataset-glib.a
+%{_libdir}/libarrow-dataset-glib.so
+%{_libdir}/pkgconfig/arrow-dataset-glib.pc
+%{_libdir}/girepository-1.0/ArrowDataset-1.0.typelib
+
+%package dataset-glib-doc
+Summary: Documentation for Apache Arrow Dataset GLib
+License: Apache-2.0
+
+%description dataset-glib-doc
+Documentation for Apache Arrow dataset GLib.
+
+%files dataset-glib-doc
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_datadir}/gtk-doc/html/arrow-dataset-glib/
+
+%if %{use_flight}
+%package flight-glib-libs
+Summary: Runtime libraries for Apache Arrow Flight GLib
+License: Apache-2.0
+Requires: %{name}-flight-libs = %{version}-%{release}
+Requires: %{name}-glib-libs = %{version}-%{release}
+
+%description flight-glib-libs
+This package contains the libraries for Apache Arrow Flight GLib.
+
+%files flight-glib-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libarrow-flight-glib.so.*
+%{_datadir}/gir-1.0/ArrowFlight-1.0.gir
+
+%package flight-glib-devel
+Summary: Libraries and header files for Apache Arrow Flight GLib
+License: Apache-2.0
+Requires: %{name}-flight-devel = %{version}-%{release}
+Requires: %{name}-glib-devel = %{version}-%{release}
+
+%description flight-glib-devel
+Libraries and header files for Apache Arrow Flight GLib.
+
+%files flight-glib-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/arrow-flight-glib/
+%{_libdir}/libarrow-flight-glib.a
+%{_libdir}/libarrow-flight-glib.so
+%{_libdir}/pkgconfig/arrow-flight-glib.pc
+%{_libdir}/girepository-1.0/ArrowFlight-1.0.typelib
+
+%package flight-glib-doc
+Summary: Documentation for Apache Arrow Flight GLib
+License: Apache-2.0
+
+%description flight-glib-doc
+Documentation for Apache Arrow Flight GLib.
+
+%files flight-glib-doc
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_datadir}/gtk-doc/html/arrow-flight-glib/
+%endif
+
+%if %{use_gandiva}
+%package -n gandiva-glib-libs
+Summary: Runtime libraries for Gandiva GLib
+License: Apache-2.0
+Requires: gandiva-libs = %{version}-%{release}
+Requires: %{name}-glib-libs = %{version}-%{release}
+
+%description -n gandiva-glib-libs
+This package contains the libraries for Gandiva GLib.
+
+%files -n gandiva-glib-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libgandiva-glib.so.*
+%{_datadir}/gir-1.0/Gandiva-1.0.gir
+
+%package -n gandiva-glib-devel
+Summary: Libraries and header files for Gandiva GLib
+License: Apache-2.0
+Requires: gandiva-devel = %{version}-%{release}
+Requires: %{name}-glib-devel = %{version}-%{release}
+
+%description -n gandiva-glib-devel
+Libraries and header files for Gandiva GLib.
+
+%files -n gandiva-glib-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/gandiva-glib/
+%{_libdir}/libgandiva-glib.a
+%{_libdir}/libgandiva-glib.so
+%{_libdir}/pkgconfig/gandiva-glib.pc
+%{_libdir}/girepository-1.0/Gandiva-1.0.typelib
+
+%package -n gandiva-glib-doc
+Summary: Documentation for Gandiva GLib
+License: Apache-2.0
+
+%description -n gandiva-glib-doc
+Documentation for Gandiva GLib.
+
+%files -n gandiva-glib-doc
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_datadir}/gtk-doc/html/gandiva-glib/
+%endif
+
+%package -n plasma-glib-libs
+Summary: Runtime libraries for Plasma GLib
+License: Apache-2.0
+Requires: plasma-libs = %{version}-%{release}
+Requires: %{name}-glib-libs = %{version}-%{release}
+
+%description -n plasma-glib-libs
+This package contains the libraries for Plasma GLib.
+
+%files -n plasma-glib-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libplasma-glib.so.*
+%{_datadir}/gir-1.0/Plasma-1.0.gir
+
+%package -n plasma-glib-devel
+Summary: Libraries and header files for Plasma GLib
+License: Apache-2.0
+Requires: plasma-devel = %{version}-%{release}
+Requires: %{name}-glib-devel = %{version}-%{release}
+
+%description -n plasma-glib-devel
+Libraries and header files for Plasma GLib.
+
+%files -n plasma-glib-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/plasma-glib/
+%{_libdir}/libplasma-glib.a
+%{_libdir}/libplasma-glib.so
+%{_libdir}/pkgconfig/plasma-glib.pc
+%{_libdir}/girepository-1.0/Plasma-1.0.typelib
+
+%package -n plasma-glib-doc
+Summary: Documentation for Plasma GLib
+License: Apache-2.0
+
+%description -n plasma-glib-doc
+Documentation for Plasma GLib.
+
+%files -n plasma-glib-doc
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_datadir}/gtk-doc/html/plasma-glib/
+
+%package -n parquet-glib-libs
+Summary: Runtime libraries for Apache Parquet GLib
+License: Apache-2.0
+Requires: parquet-libs = %{version}-%{release}
+Requires: %{name}-glib-libs = %{version}-%{release}
+
+%description -n parquet-glib-libs
+This package contains the libraries for Apache Parquet GLib.
+
+%files -n parquet-glib-libs
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_libdir}/libparquet-glib.so.*
+%{_datadir}/gir-1.0/Parquet-1.0.gir
+
+%package -n parquet-glib-devel
+Summary: Libraries and header files for Apache Parquet GLib
+License: Apache-2.0
+Requires: parquet-devel = %{version}-%{release}
+Requires: %{name}-glib-devel = %{version}-%{release}
+
+%description -n parquet-glib-devel
+Libraries and header files for Apache Parquet GLib.
+
+%files -n parquet-glib-devel
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_includedir}/parquet-glib/
+%{_libdir}/libparquet-glib.a
+%{_libdir}/libparquet-glib.so
+%{_libdir}/pkgconfig/parquet-glib.pc
+%{_libdir}/girepository-1.0/Parquet-1.0.typelib
+
+%package -n parquet-glib-doc
+Summary: Documentation for Apache Parquet GLib
+License: Apache-2.0
+
+%description -n parquet-glib-doc
+Documentation for Apache Parquet GLib.
+
+%files -n parquet-glib-doc
+%defattr(-,root,root,-)
+%doc README.md LICENSE.txt NOTICE.txt
+%{_datadir}/gtk-doc/html/parquet-glib/
+
+%changelog
+* Wed Nov 10 2021 Sutou Kouhei <kou@clear-code.com> - 6.0.1-1
+- New upstream release.
+
+* Thu Oct 21 2021 Krisztián Szűcs <szucs.krisztian@gmail.com> - 6.0.0-1
+- New upstream release.
+
+* Mon Jan 18 2021 Krisztián Szűcs <szucs.krisztian@gmail.com> - 3.0.0-1
+- New upstream release.
+
+* Mon Oct 12 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 2.0.0-1
+- New upstream release.
+
+* Mon Jul 20 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 1.0.0-1
+- New upstream release.
+
+* Thu Apr 16 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.17.0-1
+- New upstream release.
+
+* Thu Jan 30 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.16.0-1
+- New upstream release.
+
+* Mon Sep 30 2019 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.15.0-1
+- New upstream release.
+
+* Fri Jun 28 2019 Sutou Kouhei <kou@clear-code.com> - 0.14.0-1
+- New upstream release.
+
+* Thu Mar 28 2019 Kouhei Sutou <kou@clear-code.com> - 0.13.0-1
+- New upstream release.
+
+* Wed Jan 16 2019 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.12.0-1
+- New upstream release.
+
+* Thu Oct 04 2018 Kouhei Sutou <kou@clear-code.com> - 0.11.0-1
+- New upstream release.
+
+* Thu Aug 02 2018 Phillip Cloud <cpcloud@gmail.com> - 0.10.0-1
+- New upstream release.
+
+* Fri Mar 16 2018 Kouhei Sutou <kou@clear-code.com> - 0.9.0-1
+- New upstream release.
+
+* Sun Dec 17 2017 Uwe Korn <uwelk@xhochy.com> - 0.8.0-1
+- New upstream release.
+
+* Wed Sep 27 2017 Kouhei Sutou <kou@clear-code.com> - 0.7.1-1
+- New upstream release.
+
+* Tue Sep 12 2017 Wes McKinney <wes.mckinney@twosigma.com> - 0.7.0-1
+- New upstream release.
+
+* Fri Aug 11 2017 Kouhei Sutou <kou@clear-code.com> - 0.6.0-1
+- New upstream release.
+
+* Wed Aug 02 2017 Kouhei Sutou <kou@clear-code.com> - 0.6.0.20170802-1
+- New upstream release.
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-7/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-7/Dockerfile
new file mode 100644
index 000000000..6856e3854
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-7/Dockerfile
@@ -0,0 +1,59 @@
+# 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=centos:7
+FROM ${FROM}
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ yum update -y ${quiet} && \
+ yum install -y ${quiet} epel-release && \
+ yum install -y ${quiet} \
+ bison \
+ boost169-devel \
+ brotli-devel \
+ bzip2-devel \
+ ccache \
+ cmake3 \
+ flex \
+ gcc-c++ \
+ gflags-devel \
+ git \
+ glog-devel \
+ gobject-introspection-devel \
+ gtk-doc \
+ libzstd-devel \
+ lz4-devel \
+ make \
+ ninja-build \
+ openssl-devel \
+ pkg-config \
+ python36 \
+ python36-devel \
+ python36-numpy \
+ rapidjson-devel \
+ rpmdevtools \
+ snappy-devel \
+ tar \
+ zlib-devel && \
+ yum clean ${quiet} all
+
+ENV \
+ BOOST_INCLUDEDIR=/usr/include/boost169 \
+ BOOST_LIBRARYDIR=/usr/lib64/boost169
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-8-aarch64/from b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-8-aarch64/from
new file mode 100644
index 000000000..587ce9d4a
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-8-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.
+
+arm64v8/centos:8
diff --git a/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-8/Dockerfile b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-8/Dockerfile
new file mode 100644
index 000000000..ad145c4ee
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apache-arrow/yum/centos-8/Dockerfile
@@ -0,0 +1,64 @@
+# 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=centos:8
+FROM ${FROM}
+
+ARG DEBUG
+
+RUN \
+ quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
+ dnf install -y ${quiet} epel-release && \
+ dnf install --enablerepo=powertools -y ${quiet} \
+ bison \
+ boost-devel \
+ brotli-devel \
+ bzip2-devel \
+ c-ares-devel \
+ ccache \
+ clang \
+ cmake \
+ curl-devel \
+ flex \
+ gcc-c++ \
+ gflags-devel \
+ git \
+ glog-devel \
+ gobject-introspection-devel \
+ gtk-doc \
+ 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 \
+ # utf8proc-devel \
+ zlib-devel && \
+ dnf clean ${quiet} all
diff --git a/src/arrow/dev/tasks/linux-packages/apt/build.sh b/src/arrow/dev/tasks/linux-packages/apt/build.sh
new file mode 100755
index 000000000..a54567a5c
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/apt/build.sh
@@ -0,0 +1,117 @@
+#!/usr/bin/env bash
+# -*- sh-indentation: 2; sh-basic-offset: 2 -*-
+#
+# 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.
+
+LANG=C
+
+set -u
+
+run()
+{
+ "$@"
+ if test $? -ne 0; then
+ echo "Failed $@"
+ exit 1
+ fi
+}
+
+. /host/env.sh
+
+distribution=$(lsb_release --id --short | tr 'A-Z' 'a-z')
+code_name=$(lsb_release --codename --short)
+case "${distribution}" in
+ debian)
+ component=main
+ ;;
+ ubuntu)
+ component=universe
+ ;;
+esac
+architecture=$(dpkg-architecture -q DEB_BUILD_ARCH)
+
+debuild_options=()
+dpkg_buildpackage_options=(-us -uc)
+
+run mkdir -p /build
+run cd /build
+find . -not -path ./ccache -a -not -path "./ccache/*" -delete
+if which ccache > /dev/null 2>&1; then
+ export CCACHE_COMPILERCHECK=content
+ export CCACHE_COMPRESS=1
+ export CCACHE_COMPRESSLEVEL=6
+ export CCACHE_DIR="${PWD}/ccache"
+ export CCACHE_MAXSIZE=500M
+ ccache --show-stats
+ debuild_options+=(-eCCACHE_COMPILERCHECK)
+ debuild_options+=(-eCCACHE_COMPRESS)
+ debuild_options+=(-eCCACHE_COMPRESSLEVEL)
+ debuild_options+=(-eCCACHE_DIR)
+ debuild_options+=(-eCCACHE_MAXSIZE)
+ if [ -d /usr/lib/ccache ] ;then
+ debuild_options+=(--prepend-path=/usr/lib/ccache)
+ fi
+fi
+run cp /host/tmp/${PACKAGE}-${VERSION}.tar.gz \
+ ${PACKAGE}_${VERSION}.orig.tar.gz
+run tar xfz ${PACKAGE}_${VERSION}.orig.tar.gz
+case "${VERSION}" in
+ *~dev*)
+ run mv ${PACKAGE}-$(echo $VERSION | sed -e 's/~dev/-dev/') \
+ ${PACKAGE}-${VERSION}
+ ;;
+ *~rc*)
+ run mv ${PACKAGE}-$(echo $VERSION | sed -r -e 's/~rc[0-9]+//') \
+ ${PACKAGE}-${VERSION}
+ ;;
+esac
+run cd ${PACKAGE}-${VERSION}/
+platform="${distribution}-${code_name}"
+if [ -d "/host/tmp/debian.${platform}-${architecture}" ]; then
+ run cp -rp "/host/tmp/debian.${platform}-${architecture}" debian
+elif [ -d "/host/tmp/debian.${platform}" ]; then
+ run cp -rp "/host/tmp/debian.${platform}" debian
+else
+ run cp -rp "/host/tmp/debian" debian
+fi
+: ${DEB_BUILD_OPTIONS:="parallel=$(nproc)"}
+# DEB_BUILD_OPTIONS="${DEB_BUILD_OPTIONS} noopt"
+export DEB_BUILD_OPTIONS
+if [ "${DEBUG:-no}" = "yes" ]; then
+ run debuild "${debuild_options[@]}" "${dpkg_buildpackage_options[@]}"
+else
+ run debuild "${debuild_options[@]}" "${dpkg_buildpackage_options[@]}" > /dev/null
+fi
+if which ccache > /dev/null 2>&1; then
+ ccache --show-stats
+fi
+run cd -
+
+repositories="/host/repositories"
+package_initial=$(echo "${PACKAGE}" | sed -e 's/\(.\).*/\1/')
+pool_dir="${repositories}/${distribution}/pool/${code_name}/${component}/${package_initial}/${PACKAGE}"
+run mkdir -p "${pool_dir}/"
+run \
+ find . \
+ -maxdepth 1 \
+ -type f \
+ -not -path '*.build' \
+ -not -path '*.buildinfo' \
+ -exec cp '{}' "${pool_dir}/" ';'
+
+run chown -R "$(stat --format "%u:%g" "${repositories}")" "${repositories}"
diff --git a/src/arrow/dev/tasks/linux-packages/github.linux.amd64.yml b/src/arrow/dev/tasks/linux-packages/github.linux.amd64.yml
new file mode 100644
index 000000000..557c4ab41
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/github.linux.amd64.yml
@@ -0,0 +1,138 @@
+# 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.
+
+{% import 'macros.jinja' as macros with context %}
+
+{{ macros.github_header() }}
+
+jobs:
+ package:
+ name: Package
+ runs-on: ubuntu-20.04
+ steps:
+ {{ macros.github_checkout_arrow()|indent }}
+ {{ macros.github_login_dockerhub()|indent }}
+
+ - name: Set up Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: '3.0'
+ - name: Free Up Disk Space
+ shell: bash
+ run: arrow/ci/scripts/util_cleanup.sh
+ - name: Cache ccache
+ uses: actions/cache@v2
+ with:
+ path: arrow/dev/tasks/linux-packages/apache-arrow/{{ task_namespace }}/build/{{ target }}/ccache
+ key: linux-{{ task_namespace }}-ccache-{{ target }}-{{ "${{ hashFiles('arrow/cpp/**') }}" }}
+ restore-keys: linux-{{ task_namespace }}-ccache-{{ target }}-
+ - name: Build
+ run: |
+ set -e
+ pushd arrow/dev/tasks/linux-packages
+ rake version:update
+ rake docker:pull || :
+ rake --trace {{ task_namespace }}:build BUILD_DIR=build
+ sudo rm -rf */*/build
+ popd
+ env:
+ APT_TARGETS: {{ target }}
+ ARROW_VERSION: {{ arrow.version }}
+ REPO: {{ '${{ secrets.REPO }}' }}
+ YUM_TARGETS: {{ target }}
+ - uses: actions/upload-artifact@v2
+ with:
+ name: packages
+ path: packages/*/{{ task_namespace }}/repositories/
+ - name: Docker Push
+ continue-on-error: true
+ shell: bash
+ run: |
+ pushd arrow/dev/tasks/linux-packages
+ rake docker:push
+ popd
+ env:
+ APT_TARGETS: {{ target }}
+ REPO: {{ '${{ secrets.REPO }}' }}
+ YUM_TARGETS: {{ target }}
+ - name: Set up test
+ run: |
+ set -e
+ sudo apt update
+ # We can install createrepo_c by package with Ubuntu 22.04.
+ # createrepo_c \
+ sudo apt install -y \
+ apt-utils \
+ devscripts \
+ gpg \
+ rpm
+ gem install apt-dists-merge
+ (echo "Key-Type: RSA"; \
+ echo "Key-Length: 4096"; \
+ echo "Name-Real: Test"; \
+ echo "Name-Email: test@example.com"; \
+ echo "%no-protection") | \
+ gpg --full-generate-key --batch
+ GPG_KEY_ID=$(gpg --list-keys --with-colon test@example.com | grep fpr | cut -d: -f10)
+ echo "GPG_KEY_ID=${GPG_KEY_ID}" >> ${GITHUB_ENV}
+ gpg --export --armor test@example.com > arrow/dev/tasks/linux-packages/KEYS
+ # We can install createrepo_c by package with Ubuntu 22.04.
+ # This is workaround:
+ - name: Install createrepo_c
+ run: |
+ sudo apt install -y \
+ cmake \
+ libbz2-dev \
+ libcurl4-openssl-dev \
+ libglib2.0-dev \
+ liblzma-dev \
+ libmagic-dev \
+ librpm-dev \
+ libsqlite3-dev \
+ libssl-dev \
+ libxml2-dev \
+ libzstd-dev \
+ pkg-config \
+ zlib1g-dev
+ git clone --depth 1 https://github.com/rpm-software-management/createrepo_c.git
+ pushd createrepo_c
+ /usr/bin/cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_BASHCOMP=OFF \
+ -DENABLE_DRPM=OFF \
+ -DENABLE_PYTHON=OFF \
+ -DWITH_LIBMODULEMD=OFF \
+ -DWITH_ZCHUNK=OFF \
+ .
+ make -j$(nproc)
+ sudo make install
+ popd
+ rm -rf createrepo_c
+ - name: Test
+ run: |
+ set -e
+ pushd arrow/dev/tasks/linux-packages
+ rake --trace {{ task_namespace }}:test
+ rm -rf {{ task_namespace }}/repositories
+ popd
+ env:
+ APT_TARGETS: {{ target }}
+ ARROW_VERSION: {{ arrow.version }}
+ YUM_TARGETS: {{ target }}
+
+ {% set patterns = upload_extensions | format_all("arrow/dev/tasks/linux-packages/**/*{}") %}
+ {{ macros.github_upload_releases(patterns)|indent }}
diff --git a/src/arrow/dev/tasks/linux-packages/helper.rb b/src/arrow/dev/tasks/linux-packages/helper.rb
new file mode 100644
index 000000000..30ac3b898
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/helper.rb
@@ -0,0 +1,70 @@
+# 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.
+
+module Helper
+ module ApacheArrow
+ private
+ def detect_release_time
+ release_time_env = ENV["ARROW_RELEASE_TIME"]
+ if release_time_env
+ Time.parse(release_time_env).utc
+ else
+ latest_commit_time(arrow_source_dir) || Time.now.utc
+ end
+ end
+
+ def arrow_source_dir
+ File.join(__dir__, "..", "..", "..")
+ end
+
+ def detect_version(release_time)
+ version_env = ENV["ARROW_VERSION"]
+ return version_env if version_env
+
+ pom_xml_path = File.join(arrow_source_dir, "java", "pom.xml")
+ pom_xml_content = File.read(pom_xml_path)
+ version = pom_xml_content[/^ <version>(.+?)<\/version>/, 1]
+ formatted_release_time = release_time.strftime("%Y%m%d")
+ version.gsub(/-SNAPSHOT\z/) {"-dev#{formatted_release_time}"}
+ end
+
+ def detect_env(name)
+ value = ENV[name]
+ return value if value and not value.empty?
+
+ dot_env_path = File.join(arrow_source_dir, ".env")
+ File.open(dot_env_path) do |dot_env|
+ dot_env.each_line do |line|
+ case line.chomp
+ when /\A#{Regexp.escape(name)}=(.*)/
+ return $1
+ end
+ end
+ end
+ raise "Failed to detect #{name} environment variable"
+ end
+
+ def detect_repo
+ detect_env("REPO")
+ end
+
+ def docker_image(os, architecture)
+ architecture ||= "amd64"
+ "#{detect_repo}:#{architecture}-#{os}-package-#{@package}"
+ end
+ end
+end
diff --git a/src/arrow/dev/tasks/linux-packages/package-task.rb b/src/arrow/dev/tasks/linux-packages/package-task.rb
new file mode 100644
index 000000000..9dd1b2d93
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/package-task.rb
@@ -0,0 +1,645 @@
+# 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.
+
+require "English"
+require "open-uri"
+require "time"
+
+class PackageTask
+ include Rake::DSL
+
+ def initialize(package, version, release_time, options={})
+ @package = package
+ @version = version
+ @release_time = release_time
+
+ @archive_base_name = "#{@package}-#{@version}"
+ @archive_name = "#{@archive_base_name}.tar.gz"
+ @full_archive_name = File.expand_path(@archive_name)
+
+ @rpm_package = @package
+ case @version
+ when /-((dev|rc)\d+)\z/
+ base_version = $PREMATCH
+ sub_version = $1
+ type = $2
+ if type == "rc" and options[:rc_build_type] == :release
+ @deb_upstream_version = base_version
+ @deb_archive_base_name_version = base_version
+ @rpm_version = base_version
+ @rpm_release = "1"
+ else
+ @deb_upstream_version = "#{base_version}~#{sub_version}"
+ @deb_archive_base_name_version = @version
+ @rpm_version = base_version
+ @rpm_release = "0.#{sub_version}"
+ end
+ else
+ @deb_upstream_version = @version
+ @deb_archive_base_name_version = @version
+ @rpm_version = @version
+ @rpm_release = "1"
+ end
+ @deb_release = ENV["DEB_RELEASE"] || "1"
+ end
+
+ def define
+ define_dist_task
+ define_apt_task
+ define_yum_task
+ define_version_task
+ define_docker_tasks
+ end
+
+ private
+ def env_value(name)
+ value = ENV[name]
+ raise "Specify #{name} environment variable" if value.nil?
+ value
+ end
+
+ def debug_build?
+ ENV["DEBUG"] != "no"
+ end
+
+ def git_directory?(directory)
+ candidate_paths = [".git", "HEAD"]
+ candidate_paths.any? do |candidate_path|
+ File.exist?(File.join(directory, candidate_path))
+ end
+ end
+
+ def latest_commit_time(git_directory)
+ return nil unless git_directory?(git_directory)
+ cd(git_directory) do
+ return Time.iso8601(`git log -n 1 --format=%aI`.chomp).utc
+ end
+ end
+
+ def download(url, output_path)
+ if File.directory?(output_path)
+ base_name = url.split("/").last
+ output_path = File.join(output_path, base_name)
+ end
+ absolute_output_path = File.expand_path(output_path)
+
+ unless File.exist?(absolute_output_path)
+ mkdir_p(File.dirname(absolute_output_path))
+ rake_output_message "Downloading... #{url}"
+ open_url(url) do |downloaded_file|
+ File.open(absolute_output_path, "wb") do |output_file|
+ IO.copy_stream(downloaded_file, output_file)
+ end
+ end
+ end
+
+ absolute_output_path
+ end
+
+ def open_url(url, &block)
+ URI(url).open(&block)
+ end
+
+ def substitute_content(content)
+ content.gsub(/@(.+?)@/) do |matched|
+ yield($1, matched)
+ end
+ end
+
+ def docker_image(os, architecture)
+ image = "#{@package}-#{os}"
+ image << "-#{architecture}" if architecture
+ image
+ end
+
+ def docker_run(os, architecture, console: false)
+ id = os
+ id = "#{id}-#{architecture}" if architecture
+ image = docker_image(os, architecture)
+ build_command_line = [
+ "docker",
+ "build",
+ "--cache-from", image,
+ "--tag", image,
+ ]
+ run_command_line = [
+ "docker",
+ "run",
+ "--rm",
+ "--log-driver", "none",
+ "--volume", "#{Dir.pwd}:/host:rw",
+ ]
+ if $stdin.tty?
+ run_command_line << "--interactive"
+ run_command_line << "--tty"
+ else
+ run_command_line.concat(["--attach", "STDOUT"])
+ run_command_line.concat(["--attach", "STDERR"])
+ end
+ build_dir = ENV["BUILD_DIR"]
+ if build_dir
+ build_dir = "#{File.expand_path(build_dir)}/#{id}"
+ mkdir_p(build_dir)
+ run_command_line.concat(["--volume", "#{build_dir}:/build:rw"])
+ end
+ if debug_build?
+ build_command_line.concat(["--build-arg", "DEBUG=yes"])
+ run_command_line.concat(["--env", "DEBUG=yes"])
+ end
+ pass_through_env_names = [
+ "DEB_BUILD_OPTIONS",
+ "RPM_BUILD_NCPUS",
+ ]
+ pass_through_env_names.each do |name|
+ value = ENV[name]
+ next unless value
+ run_command_line.concat(["--env", "#{name}=#{value}"])
+ end
+ if File.exist?(File.join(id, "Dockerfile"))
+ docker_context = id
+ else
+ from = File.readlines(File.join(id, "from")).find do |line|
+ /^[a-z]/i =~ line
+ end
+ build_command_line.concat(["--build-arg", "FROM=#{from.chomp}"])
+ docker_context = os
+ end
+ build_command_line.concat(docker_build_options(os, architecture))
+ run_command_line.concat(docker_run_options(os, architecture))
+ build_command_line << docker_context
+ run_command_line << image
+ run_command_line << "/host/build.sh" unless console
+
+ sh(*build_command_line)
+ sh(*run_command_line)
+ end
+
+ def docker_build_options(os, architecture)
+ []
+ end
+
+ def docker_run_options(os, architecture)
+ []
+ end
+
+ def docker_pull(os, architecture)
+ image = docker_image(os, architecture)
+ command_line = [
+ "docker",
+ "pull",
+ image,
+ ]
+ command_line.concat(docker_pull_options(os, architecture))
+ sh(*command_line)
+ end
+
+ def docker_pull_options(os, architecture)
+ []
+ end
+
+ def docker_push(os, architecture)
+ image = docker_image(os, architecture)
+ command_line = [
+ "docker",
+ "push",
+ image,
+ ]
+ command_line.concat(docker_push_options(os, architecture))
+ sh(*command_line)
+ end
+
+ def docker_push_options(os, architecture)
+ []
+ end
+
+ def define_dist_task
+ define_archive_task
+ desc "Create release package"
+ task :dist => [@archive_name]
+ end
+
+ def split_target(target)
+ components = target.split("-")
+ if components[0, 2] == ["amazon", "linux"]
+ components[0, 2] = components[0, 2].join("-")
+ end
+ if components.size >= 3
+ components[2..-1] = components[2..-1].join("-")
+ end
+ components
+ end
+
+ def enable_apt?
+ true
+ end
+
+ def apt_targets
+ return [] unless enable_apt?
+
+ targets = (ENV["APT_TARGETS"] || "").split(",")
+ targets = apt_targets_default if targets.empty?
+
+ targets.find_all do |target|
+ Dir.exist?(File.join(apt_dir, target))
+ end
+ end
+
+ def apt_targets_default
+ # Disable arm64 targets by default for now
+ # because they require some setups on host.
+ [
+ "debian-buster",
+ # "debian-buster-arm64",
+ "debian-bullseye",
+ # "debian-bullseye-arm64",
+ "debian-bookworm",
+ # "debian-bookworm-arm64",
+ "ubuntu-bionic",
+ # "ubuntu-bionic-arm64",
+ "ubuntu-focal",
+ # "ubuntu-focal-arm64",
+ "ubuntu-hirsute",
+ # "ubuntu-hirsute-arm64",
+ "ubuntu-impish",
+ # "ubuntu-impish-arm64",
+ ]
+ end
+
+ def deb_archive_base_name
+ "#{@package}-#{@deb_archive_base_name_version}"
+ end
+
+ def deb_archive_name
+ "#{@package}-#{@deb_upstream_version}.tar.gz"
+ end
+
+ def apt_dir
+ "apt"
+ end
+
+ def apt_prepare_debian_dir(tmp_dir, target)
+ source_debian_dir = nil
+ specific_debian_dir = "debian.#{target}"
+ distribution, code_name, _architecture = split_target(target)
+ platform = [distribution, code_name].join("-")
+ platform_debian_dir = "debian.#{platform}"
+ if File.exist?(specific_debian_dir)
+ source_debian_dir = specific_debian_dir
+ elsif File.exist?(platform_debian_dir)
+ source_debian_dir = platform_debian_dir
+ else
+ source_debian_dir = "debian"
+ end
+
+ prepared_debian_dir = "#{tmp_dir}/debian.#{target}"
+ cp_r(source_debian_dir, prepared_debian_dir)
+ control_in_path = "#{prepared_debian_dir}/control.in"
+ if File.exist?(control_in_path)
+ control_in = File.read(control_in_path)
+ rm_f(control_in_path)
+ File.open("#{prepared_debian_dir}/control", "w") do |control|
+ prepared_control = apt_prepare_debian_control(control_in, target)
+ control.print(prepared_control)
+ end
+ end
+ end
+
+ def apt_prepare_debian_control(control_in, target)
+ message = "#{__method__} must be defined to use debian/control.in"
+ raise NotImplementedError, message
+ end
+
+ def apt_build(console: false)
+ tmp_dir = "#{apt_dir}/tmp"
+ rm_rf(tmp_dir)
+ mkdir_p(tmp_dir)
+ cp(deb_archive_name,
+ File.join(tmp_dir, deb_archive_name))
+ apt_targets.each do |target|
+ apt_prepare_debian_dir(tmp_dir, target)
+ end
+
+ env_sh = "#{apt_dir}/env.sh"
+ File.open(env_sh, "w") do |file|
+ file.puts(<<-ENV)
+PACKAGE=#{@package}
+VERSION=#{@deb_upstream_version}
+ ENV
+ end
+
+ apt_targets.each do |target|
+ cd(apt_dir) do
+ distribution, version, architecture = split_target(target)
+ os = "#{distribution}-#{version}"
+ docker_run(os, architecture, console: console)
+ end
+ end
+ end
+
+ def define_apt_task
+ namespace :apt do
+ source_build_sh = "#{__dir__}/apt/build.sh"
+ build_sh = "#{apt_dir}/build.sh"
+ repositories_dir = "#{apt_dir}/repositories"
+
+ file build_sh => source_build_sh do
+ cp(source_build_sh, build_sh)
+ end
+
+ directory repositories_dir
+
+ desc "Build deb packages"
+ if enable_apt?
+ build_dependencies = [
+ deb_archive_name,
+ build_sh,
+ repositories_dir,
+ ]
+ else
+ build_dependencies = []
+ end
+ task :build => build_dependencies do
+ apt_build if enable_apt?
+ end
+
+ namespace :build do
+ desc "Open console"
+ task :console => build_dependencies do
+ apt_build(console: true) if enable_apt?
+ end
+ end
+ end
+
+ desc "Release APT repositories"
+ apt_tasks = [
+ "apt:build",
+ ]
+ task :apt => apt_tasks
+ end
+
+ def enable_yum?
+ true
+ end
+
+ def yum_targets
+ return [] unless enable_yum?
+
+ targets = (ENV["YUM_TARGETS"] || "").split(",")
+ targets = yum_targets_default if targets.empty?
+
+ targets.find_all do |target|
+ Dir.exist?(File.join(yum_dir, target))
+ end
+ end
+
+ def yum_targets_default
+ # Disable aarch64 targets by default for now
+ # because they require some setups on host.
+ [
+ "almalinux-8",
+ # "almalinux-8-arch64",
+ "amazon-linux-2",
+ # "amazon-linux-2-arch64",
+ "centos-7",
+ # "centos-7-aarch64",
+ "centos-8",
+ # "centos-8-aarch64",
+ ]
+ end
+
+ def rpm_archive_base_name
+ "#{@package}-#{@rpm_version}"
+ end
+
+ def rpm_archive_name
+ "#{rpm_archive_base_name}.tar.gz"
+ end
+
+ def yum_dir
+ "yum"
+ end
+
+ def yum_build_sh
+ "#{yum_dir}/build.sh"
+ end
+
+ def yum_expand_variable(key)
+ case key
+ when "PACKAGE"
+ @rpm_package
+ when "VERSION"
+ @rpm_version
+ when "RELEASE"
+ @rpm_release
+ else
+ nil
+ end
+ end
+
+ def yum_spec_in_path
+ "#{yum_dir}/#{@rpm_package}.spec.in"
+ end
+
+ def yum_build(console: false)
+ tmp_dir = "#{yum_dir}/tmp"
+ rm_rf(tmp_dir)
+ mkdir_p(tmp_dir)
+ cp(rpm_archive_name,
+ File.join(tmp_dir, rpm_archive_name))
+
+ env_sh = "#{yum_dir}/env.sh"
+ File.open(env_sh, "w") do |file|
+ file.puts(<<-ENV)
+SOURCE_ARCHIVE=#{rpm_archive_name}
+PACKAGE=#{@rpm_package}
+VERSION=#{@rpm_version}
+RELEASE=#{@rpm_release}
+ ENV
+ end
+
+ spec = "#{tmp_dir}/#{@rpm_package}.spec"
+ spec_in_data = File.read(yum_spec_in_path)
+ spec_data = substitute_content(spec_in_data) do |key, matched|
+ yum_expand_variable(key) || matched
+ end
+ File.open(spec, "w") do |spec_file|
+ spec_file.print(spec_data)
+ end
+
+ yum_targets.each do |target|
+ cd(yum_dir) do
+ distribution, version, architecture = split_target(target)
+ os = "#{distribution}-#{version}"
+ docker_run(os, architecture, console: console)
+ end
+ end
+ end
+
+ def define_yum_task
+ namespace :yum do
+ source_build_sh = "#{__dir__}/yum/build.sh"
+ file yum_build_sh => source_build_sh do
+ cp(source_build_sh, yum_build_sh)
+ end
+
+ repositories_dir = "#{yum_dir}/repositories"
+ directory repositories_dir
+
+ desc "Build RPM packages"
+ if enable_yum?
+ build_dependencies = [
+ repositories_dir,
+ rpm_archive_name,
+ yum_build_sh,
+ yum_spec_in_path,
+ ]
+ else
+ build_dependencies = []
+ end
+ task :build => build_dependencies do
+ yum_build if enable_yum?
+ end
+
+ namespace :build do
+ desc "Open console"
+ task :console => build_dependencies do
+ yum_build(console: true) if enable_yum?
+ end
+ end
+ end
+
+ desc "Release Yum repositories"
+ yum_tasks = [
+ "yum:build",
+ ]
+ task :yum => yum_tasks
+ end
+
+ def define_version_task
+ namespace :version do
+ desc "Update versions"
+ task :update do
+ update_debian_changelog
+ update_spec
+ end
+ end
+ end
+
+ def package_changelog_message
+ "New upstream release."
+ end
+
+ def packager_name
+ ENV["DEBFULLNAME"] || ENV["NAME"] || guess_packager_name_from_git
+ end
+
+ def guess_packager_name_from_git
+ name = `git config --get user.name`.chomp
+ return name unless name.empty?
+ `git log -n 1 --format=%aN`.chomp
+ end
+
+ def packager_email
+ ENV["DEBEMAIL"] || ENV["EMAIL"] || guess_packager_email_from_git
+ end
+
+ def guess_packager_email_from_git
+ email = `git config --get user.email`.chomp
+ return email unless email.empty?
+ `git log -n 1 --format=%aE`.chomp
+ end
+
+ def update_content(path)
+ if File.exist?(path)
+ content = File.read(path)
+ else
+ content = ""
+ end
+ content = yield(content)
+ File.open(path, "w") do |file|
+ file.puts(content)
+ end
+ end
+
+ def update_debian_changelog
+ return unless enable_apt?
+
+ Dir.glob("debian*") do |debian_dir|
+ update_content("#{debian_dir}/changelog") do |content|
+ <<-CHANGELOG.rstrip
+#{@package} (#{@deb_upstream_version}-#{@deb_release}) unstable; urgency=low
+
+ * New upstream release.
+
+ -- #{packager_name} <#{packager_email}> #{@release_time.rfc2822}
+
+#{content}
+ CHANGELOG
+ end
+ end
+ end
+
+ def update_spec
+ return unless enable_yum?
+
+ release_time = @release_time.strftime("%a %b %d %Y")
+ update_content(yum_spec_in_path) do |content|
+ content = content.sub(/^(%changelog\n)/, <<-CHANGELOG)
+%changelog
+* #{release_time} #{packager_name} <#{packager_email}> - #{@rpm_version}-#{@rpm_release}
+- #{package_changelog_message}
+
+ CHANGELOG
+ content = content.sub(/^(Release:\s+)\d+/, "\\11")
+ content.rstrip
+ end
+ end
+
+ def define_docker_tasks
+ namespace :docker do
+ pull_tasks = []
+ push_tasks = []
+
+ (apt_targets + yum_targets).each do |target|
+ distribution, version, architecture = split_target(target)
+ os = "#{distribution}-#{version}"
+
+ namespace :pull do
+ desc "Pull built image for #{target}"
+ task target do
+ docker_pull(os, architecture)
+ end
+ pull_tasks << "docker:pull:#{target}"
+ end
+
+ namespace :push do
+ desc "Push built image for #{target}"
+ task target do
+ docker_push(os, architecture)
+ end
+ push_tasks << "docker:push:#{target}"
+ end
+ end
+
+ desc "Pull built images"
+ task :pull => pull_tasks
+
+ desc "Push built images"
+ task :push => push_tasks
+ end
+ end
+end
diff --git a/src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml b/src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml
new file mode 100644
index 000000000..3703f4c46
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml
@@ -0,0 +1,155 @@
+# 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.
+
+{% import 'macros.jinja' as macros with context %}
+
+arch: arm64-graviton2
+virt: vm
+os: linux
+dist: focal
+group: edge
+language: minimal
+
+addons:
+ apt:
+ packages:
+ - apt-utils
+ # We need Ubuntu 20.10 or later
+ # - createrepo_c
+ - devscripts
+ - gpg
+ - libgit2-dev
+ - python3-pip
+ - rake
+ - rpm
+
+ # https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1916485
+ # We need to use runc 1.0.0~rc93 or later from focal-updated.
+ - runc
+
+ # To build createrepo_c from source.
+ # We can remove them when we can install createrepo_c package
+ - cmake
+ - libbz2-dev
+ - libcurl4-openssl-dev
+ - libglib2.0-dev
+ - liblzma-dev
+ - libmagic-dev
+ - librpm-dev
+ - libsqlite3-dev
+ - libssl-dev
+ - libxml2-dev
+ - libzstd-dev
+ - pkg-config
+ - zlib1g-dev
+ update: true
+
+services:
+ - docker
+
+# don't build twice
+if: tag IS blank
+
+env:
+ global:
+ - APT_TARGETS={{ target }}
+ - ARROW_VERSION={{ arrow.version }}
+ - BUILD_REF={{ arrow.head }}
+ - TRAVIS_TAG={{ task.tag }}
+ - YUM_TARGETS={{ target }}
+
+before_script:
+ - set -e
+ {{ macros.travis_checkout_arrow() }}
+ {{ macros.travis_docker_login() }}
+
+ # Build createrepo_c from source.
+ # We can remove them when we can install createrepo_c package
+ - git clone --depth 1 https://github.com/rpm-software-management/createrepo_c.git
+ - pushd createrepo_c
+ - |
+ /usr/bin/cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_BASHCOMP=OFF \
+ -DENABLE_DRPM=OFF \
+ -DENABLE_PYTHON=OFF \
+ -DWITH_LIBMODULEMD=OFF \
+ -DWITH_ZCHUNK=OFF \
+ .
+ - make -j$(nproc)
+ - sudo make install
+ - popd
+ - rm -rf createrepo_c
+
+script:
+ # Build packages
+ - pushd arrow/dev/tasks/linux-packages
+ - rake version:update
+ - |
+ rake docker:pull || :
+ - pushd apache-arrow-apt-source/apt
+ - |
+ for target in debian-* ubuntu-*; do
+ cp -a ${target} ${target}-arm64
+ done
+ - popd
+ - pushd apache-arrow-release/yum
+ - |
+ for target in almalinux-* centos-*; do
+ cp -a ${target} ${target}-aarch64
+ done
+ - popd
+ - |
+ rake \
+ --trace \
+ {{ task_namespace }}:build \
+ BUILD_DIR=build \
+ DEB_BUILD_OPTIONS=parallel=2 \
+ RPM_BUILD_NCPUS=2
+ - sudo rm -rf */*/build
+ - popd
+ # Push Docker image
+ - pushd arrow/dev/tasks/linux-packages
+ - |
+ docker login -u "${DOCKERHUB_USER}" \
+ -p "${DOCKERHUB_TOKEN}" || :
+ - |
+ rake docker:push || :
+ - popd
+ # Test built packages
+ - sudo gem install apt-dists-merge
+ - |
+ (echo "Key-Type: RSA"; \
+ echo "Key-Length: 4096"; \
+ echo "Name-Real: Test"; \
+ echo "Name-Email: test@example.com"; \
+ echo "%no-protection") | \
+ gpg --full-generate-key --batch
+ - |
+ GPG_KEY_ID=$(gpg --list-keys --with-colon test@example.com | grep fpr | cut -d: -f10)
+ - gpg --export --armor test@example.com > arrow/dev/tasks/linux-packages/KEYS
+ - pushd arrow/dev/tasks/linux-packages
+ - |
+ rake --trace {{ task_namespace }}:test \
+ CREATEREPO=createrepo_c \
+ GPG_KEY_ID=${GPG_KEY_ID}
+ - rm -rf {{ task_namespace }}/repositories
+ - popd
+
+after_success:
+ {% set patterns = upload_extensions | format_all("arrow/dev/tasks/linux-packages/**/*{}") %}
+ {{ macros.travis_upload_releases(patterns) }}
diff --git a/src/arrow/dev/tasks/linux-packages/yum/build.sh b/src/arrow/dev/tasks/linux-packages/yum/build.sh
new file mode 100755
index 000000000..5224f23e9
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/yum/build.sh
@@ -0,0 +1,158 @@
+#!/usr/bin/env bash
+# -*- sh-indentation: 2; sh-basic-offset: 2 -*-
+#
+# 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.
+
+set -u
+
+run()
+{
+ "$@"
+ if test $? -ne 0; then
+ echo "Failed $@"
+ exit 1
+ fi
+}
+
+rpmbuild_options=
+
+. /host/env.sh
+
+if grep -q amazon /etc/system-release-cpe; then
+ distribution=$(cut -d ":" -f 5 /etc/system-release-cpe | tr '_' '-')
+ distribution_version=$(cut -d ":" -f 6 /etc/system-release-cpe)
+else
+ distribution=$(cut -d ":" -f 4 /etc/system-release-cpe)
+ distribution_version=$(cut -d ":" -f 5 /etc/system-release-cpe)
+fi
+distribution_version=$(echo ${distribution_version} | sed -e 's/\..*$//g')
+
+architecture="$(arch)"
+lib_directory=/usr/lib64
+case "${architecture}" in
+ i*86)
+ architecture=i386
+ lib_directory=/usr/lib
+ ;;
+esac
+
+run mkdir -p /build
+run cd /build
+find . -not -path ./ccache -a -not -path "./ccache/*" -delete
+if which ccache > /dev/null 2>&1; then
+ export CCACHE_COMPILERCHECK=content
+ export CCACHE_COMPRESS=1
+ export CCACHE_COMPRESSLEVEL=6
+ export CCACHE_MAXSIZE=500M
+ export CCACHE_DIR="${PWD}/ccache"
+ ccache --show-stats
+ if [ -d "${lib_directory}/ccache" ]; then
+ PATH="${lib_directory}/ccache:$PATH"
+ fi
+fi
+
+run mkdir -p rpmbuild
+run cd
+rm -rf rpmbuild
+run ln -fs /build/rpmbuild ./
+if [ -x /usr/bin/rpmdev-setuptree ]; then
+ rm -rf .rpmmacros
+ run rpmdev-setuptree
+else
+ run cat <<RPMMACROS > ~/.rpmmacros
+%_topdir ${HOME}/rpmbuild
+RPMMACROS
+ run mkdir -p rpmbuild/SOURCES
+ run mkdir -p rpmbuild/SPECS
+ run mkdir -p rpmbuild/BUILD
+ run mkdir -p rpmbuild/RPMS
+ run mkdir -p rpmbuild/SRPMS
+fi
+
+repositories="/host/repositories"
+repository="${repositories}/${distribution}/${distribution_version}"
+rpm_dir="${repository}/${architecture}/Packages"
+srpm_dir="${repository}/source/SRPMS"
+run mkdir -p "${rpm_dir}" "${srpm_dir}"
+
+# for debug
+# rpmbuild_options="$rpmbuild_options --define 'optflags -O0 -g3'"
+
+if [ -n "${SOURCE_ARCHIVE}" ]; then
+ case "${RELEASE}" in
+ 0.dev*)
+ source_archive_base_name=$( \
+ echo ${SOURCE_ARCHIVE} | sed -e 's/\.tar\.gz$//')
+ run tar xf /host/tmp/${SOURCE_ARCHIVE} \
+ --transform="s,^[^/]*,${PACKAGE},"
+ run mv \
+ ${PACKAGE} \
+ ${source_archive_base_name}
+ run tar czf \
+ rpmbuild/SOURCES/${SOURCE_ARCHIVE} \
+ ${source_archive_base_name}
+ run rm -rf ${source_archive_base_name}
+ ;;
+ *)
+ run cp /host/tmp/${SOURCE_ARCHIVE} rpmbuild/SOURCES/
+ ;;
+ esac
+else
+ run cp /host/tmp/${PACKAGE}-${VERSION}.* rpmbuild/SOURCES/
+fi
+run cp \
+ /host/tmp/${PACKAGE}.spec \
+ rpmbuild/SPECS/
+
+run cat <<BUILD > build.sh
+#!/usr/bin/env bash
+
+rpmbuild -ba ${rpmbuild_options} rpmbuild/SPECS/${PACKAGE}.spec
+BUILD
+run chmod +x build.sh
+if [ -n "${SCL:-}" ]; then
+ run cat <<WHICH_STRIP > which-strip.sh
+#!/usr/bin/env bash
+
+which strip
+WHICH_STRIP
+ run chmod +x which-strip.sh
+ run cat <<USE_SCL_STRIP >> ~/.rpmmacros
+%__strip $(run scl enable ${SCL} ./which-strip.sh)
+USE_SCL_STRIP
+ if [ "${DEBUG:-no}" = "yes" ]; then
+ run scl enable ${SCL} ./build.sh
+ else
+ run scl enable ${SCL} ./build.sh > /dev/null
+ fi
+else
+ if [ "${DEBUG:-no}" = "yes" ]; then
+ run ./build.sh
+ else
+ run ./build.sh > /dev/null
+ fi
+fi
+
+if which ccache > /dev/null 2>&1; then
+ ccache --show-stats
+fi
+
+run mv rpmbuild/RPMS/*/* "${rpm_dir}/"
+run mv rpmbuild/SRPMS/* "${srpm_dir}/"
+
+run chown -R "$(stat --format "%u:%g" "${repositories}")" "${repositories}"