You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2022/10/06 21:46:13 UTC

[arrow] branch master updated: ARROW-17684: [CI][deb] Disable Flight for arm64 (#14300)

This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new 353ab45cd4 ARROW-17684: [CI][deb] Disable Flight for arm64 (#14300)
353ab45cd4 is described below

commit 353ab45cd4af163723a990ce06d438f1bd308008
Author: Sutou Kouhei <ko...@clear-code.com>
AuthorDate: Fri Oct 7 06:46:03 2022 +0900

    ARROW-17684: [CI][deb] Disable Flight for arm64 (#14300)
    
    Because we have enough resource to build Flight on Travis CI.
    
    Authored-by: Sutou Kouhei <ko...@clear-code.com>
    Signed-off-by: Sutou Kouhei <ko...@clear-code.com>
---
 cpp/cmake_modules/ThirdpartyToolchain.cmake        |   3 +
 dev/release/verify-apt.sh                          |  25 +-
 dev/tasks/linux-packages/apache-arrow/Rakefile     |  52 +++-
 .../apache-arrow/apt/debian-bookworm/Dockerfile    |   2 +-
 .../apache-arrow/apt/debian-bullseye/Dockerfile    |   2 +-
 .../apache-arrow/apt/ubuntu-bionic/Dockerfile      |   3 +
 .../apache-arrow/apt/ubuntu-focal/Dockerfile       |   3 +
 .../apache-arrow/apt/ubuntu-jammy/Dockerfile       |   2 +-
 .../linux-packages/apache-arrow/debian/control.in  | 313 +++++++++++----------
 dev/tasks/linux-packages/apache-arrow/debian/rules |  13 +-
 dev/tasks/linux-packages/apt/build.sh              |   4 +-
 dev/tasks/linux-packages/travis.linux.arm64.yml    |   1 -
 dev/tasks/linux-packages/yum/build.sh              |   4 +-
 dev/tasks/tasks.yml                                |   4 +
 14 files changed, 246 insertions(+), 185 deletions(-)

diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index d281075cf4..e9e71328af 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -4270,6 +4270,8 @@ macro(build_orc)
   set(ORC_STATIC_LIB
       "${ORC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}orc${CMAKE_STATIC_LIBRARY_SUFFIX}")
 
+  get_target_property(ORC_PROTOBUF_EXECUTABLE ${ARROW_PROTOBUF_PROTOC} IMPORTED_LOCATION)
+
   get_target_property(ORC_PROTOBUF_INCLUDE_DIR ${ARROW_PROTOBUF_LIBPROTOBUF}
                       INTERFACE_INCLUDE_DIRECTORIES)
   get_filename_component(ORC_PROTOBUF_ROOT "${ORC_PROTOBUF_INCLUDE_DIR}" DIRECTORY)
@@ -4298,6 +4300,7 @@ macro(build_orc)
       -DINSTALL_VENDORED_LIBS=OFF
       "-DSNAPPY_HOME=${ORC_SNAPPY_ROOT}"
       "-DSNAPPY_INCLUDE_DIR=${ORC_SNAPPY_INCLUDE_DIR}"
+      "-DPROTOBUF_EXECUTABLE=${ORC_PROTOBUF_EXECUTABLE}"
       "-DPROTOBUF_HOME=${ORC_PROTOBUF_ROOT}"
       "-DPROTOBUF_INCLUDE_DIR=${ORC_PROTOBUF_INCLUDE_DIR}"
       "-DPROTOBUF_LIBRARY=${ORC_PROTOBUF_LIBRARY}"
diff --git a/dev/release/verify-apt.sh b/dev/release/verify-apt.sh
index 69229b012a..15e31bf4b4 100755
--- a/dev/release/verify-apt.sh
+++ b/dev/release/verify-apt.sh
@@ -61,6 +61,7 @@ case "${TYPE}" in
     ;;
 esac
 
+have_flight=yes
 have_plasma=yes
 have_python=yes
 workaround_missing_packages=()
@@ -76,6 +77,7 @@ case "${distribution}-${code_name}" in
     ;;
 esac
 if [ "$(arch)" = "aarch64" ]; then
+  have_flight=no
   have_plasma=no
 fi
 
@@ -184,18 +186,19 @@ ruby -r gi -e "p GI.load('ArrowDataset')"
 echo "::endgroup::"
 
 
-echo "::group::Test Apache Arrow Flight"
-${APT_INSTALL} libarrow-flight-glib-dev=${package_version}
-${APT_INSTALL} libarrow-flight-glib-doc=${package_version}
-ruby -r gi -e "p GI.load('ArrowFlight')"
-echo "::endgroup::"
-
+if [ "${have_flight}" = "yes" ]; then
+  echo "::group::Test Apache Arrow Flight"
+  ${APT_INSTALL} libarrow-flight-glib-dev=${package_version}
+  ${APT_INSTALL} libarrow-flight-glib-doc=${package_version}
+  ruby -r gi -e "p GI.load('ArrowFlight')"
+  echo "::endgroup::"
 
-echo "::group::Test Apache Arrow Flight SQL"
-${APT_INSTALL} libarrow-flight-sql-glib-dev=${package_version}
-${APT_INSTALL} libarrow-flight-sql-glib-doc=${package_version}
-ruby -r gi -e "p GI.load('ArrowFlightSQL')"
-echo "::endgroup::"
+  echo "::group::Test Apache Arrow Flight SQL"
+  ${APT_INSTALL} libarrow-flight-sql-glib-dev=${package_version}
+  ${APT_INSTALL} libarrow-flight-sql-glib-doc=${package_version}
+  ruby -r gi -e "p GI.load('ArrowFlightSQL')"
+  echo "::endgroup::"
+fi
 
 
 if [ "${have_plasma}" = "yes" ]; then
diff --git a/dev/tasks/linux-packages/apache-arrow/Rakefile b/dev/tasks/linux-packages/apache-arrow/Rakefile
index cff8e468fe..d8149c07b2 100644
--- a/dev/tasks/linux-packages/apache-arrow/Rakefile
+++ b/dev/tasks/linux-packages/apache-arrow/Rakefile
@@ -87,6 +87,16 @@ class ApacheArrowPackageTask < PackageTask
     false
   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_cuda_architecture(control, target)
     if apt_arm64_cuda_available_target?(target)
       cuda_architecture = "any"
@@ -96,14 +106,15 @@ class ApacheArrowPackageTask < PackageTask
     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 = "#"
+  def apt_prepare_debian_control_flight(control, target)
+    # We disable Flight for arm64 because Travis CI doesn't have
+    # enough resource to build with Flight.
+    if target.end_with?("-arm64")
+      enable_flight = "#"
     else
-      use_system_c_ares = ""
+      enable_flight = ""
     end
-    control.gsub(/@USE_SYSTEM_C_ARES@/, use_system_c_ares)
+    control.gsub(/@ENABLE_FLIGHT@/, enable_flight)
   end
 
   def apt_prepare_debian_control_grpc(control, target)
@@ -116,6 +127,31 @@ class ApacheArrowPackageTask < PackageTask
     control.gsub(/@USE_SYSTEM_GRPC@/, use_system_grpc)
   end
 
+  def apt_prepare_debian_control_protobuf(control, target)
+    # Flight requires Protobuf 3.15.0 or later but Debian GNU/Linux
+    # bookwarm and Ubuntu 22.04 don't provide Protobuf 3.15.0 or later
+    # yet.
+    #
+    # See also:
+    #   * cpp/cmake_modules/ThirdpartyToolchain.cmake
+    #   * https://packages.debian.org/search?keywords=libprotobuf-dev
+    #   * https://packages.ubuntu.com/search?keywords=libprotobuf-dev
+    #
+    # We can use system Protobuf without Flight because we can use
+    # Protobuf 3.0.0 or later without Flight.
+    #
+    # We disable Flight for arm64 because Travis CI doesn't have
+    # enough resource to build with Flight.
+    #
+    # So, we can use system Protobuf only for arm64 for now.
+    if target.end_with?("-arm64")
+      use_system_protobuf = ""
+    else
+      use_system_protobuf = "#"
+    end
+    control.gsub(/@USE_SYSTEM_PROTOBUF@/, use_system_protobuf)
+  end
+
   def apt_prepare_debian_control_python(control, target)
     case target
     when /\Aubuntu-bionic/
@@ -158,9 +194,11 @@ class ApacheArrowPackageTask < PackageTask
 
   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_cuda_architecture(control, target)
+    control = apt_prepare_debian_control_flight(control, target)
     control = apt_prepare_debian_control_grpc(control, target)
+    control = apt_prepare_debian_control_protobuf(control, target)
     control = apt_prepare_debian_control_python(control, target)
     control = apt_prepare_debian_control_thrift(control, target)
     control = apt_prepare_debian_control_utf8proc(control, target)
diff --git a/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm/Dockerfile
index 0b50d88712..aee005726a 100644
--- a/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm/Dockerfile
+++ b/dev/tasks/linux-packages/apache-arrow/apt/debian-bookworm/Dockerfile
@@ -54,8 +54,8 @@ RUN \
     libgrpc++-dev \
     libgtest-dev \
     liblz4-dev \
-    libprotoc-dev \
     libprotobuf-dev \
+    libprotoc-dev \
     libre2-dev \
     libsnappy-dev \
     libssl-dev \
diff --git a/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye/Dockerfile
index 600ecc6962..bf5c24c016 100644
--- a/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye/Dockerfile
+++ b/dev/tasks/linux-packages/apache-arrow/apt/debian-bullseye/Dockerfile
@@ -54,8 +54,8 @@ RUN \
     libgrpc++-dev \
     libgtest-dev \
     liblz4-dev \
-    libprotoc-dev \
     libprotobuf-dev \
+    libprotoc-dev \
     libre2-dev \
     libsnappy-dev \
     libssl-dev \
diff --git a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile
index b897fa73a3..12bc265b00 100644
--- a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile
+++ b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-bionic/Dockerfile
@@ -49,6 +49,8 @@ RUN \
     libgoogle-glog-dev \
     libgtest-dev \
     liblz4-dev \
+    libprotobuf-dev \
+    libprotoc-dev \
     libre2-dev \
     libsnappy-dev \
     libssl-dev \
@@ -57,6 +59,7 @@ RUN \
     ninja-build \
     nlohmann-json-dev \
     pkg-config \
+    protobuf-compiler \
     python3-dev \
     python3-pip \
     python3-setuptools \
diff --git a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
index cea9eeb6fa..0a76938267 100644
--- a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
+++ b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-focal/Dockerfile
@@ -51,6 +51,8 @@ RUN \
     libgoogle-glog-dev \
     libgtest-dev \
     liblz4-dev \
+    libprotobuf-dev \
+    libprotoc-dev \
     libre2-dev \
     libsnappy-dev \
     libssl-dev \
@@ -62,6 +64,7 @@ RUN \
     ninja-build \
     nlohmann-json3-dev \
     pkg-config \
+    protobuf-compiler \
     python3-dev \
     python3-pip \
     python3-setuptools \
diff --git a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-jammy/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-jammy/Dockerfile
index e305479f72..df36652c69 100644
--- a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-jammy/Dockerfile
+++ b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-jammy/Dockerfile
@@ -52,8 +52,8 @@ RUN \
     libgrpc++-dev \
     libgtest-dev \
     liblz4-dev \
-    libprotoc-dev \
     libprotobuf-dev \
+    libprotoc-dev \
     libre2-dev \
     libsnappy-dev \
     libssl-dev \
diff --git a/dev/tasks/linux-packages/apache-arrow/debian/control.in b/dev/tasks/linux-packages/apache-arrow/debian/control.in
index 1e05faf282..e0768f73d6 100644
--- a/dev/tasks/linux-packages/apache-arrow/debian/control.in
+++ b/dev/tasks/linux-packages/apache-arrow/debian/control.in
@@ -16,11 +16,11 @@ Build-Depends:
   libcurl4-openssl-dev,
   libgirepository1.0-dev,
   libgoogle-glog-dev,
-@USE_SYSTEM_GRPC@  libgrpc++-dev,
+@ENABLE_FLIGHT@@USE_SYSTEM_GRPC@  libgrpc++-dev,
   libgtest-dev,
   liblz4-dev,
-@USE_SYSTEM_GRPC@  libprotoc-dev,
-@USE_SYSTEM_GRPC@  libprotobuf-dev,
+@USE_SYSTEM_PROTOBUF@  libprotobuf-dev,
+@USE_SYSTEM_PROTOBUF@  libprotoc-dev,
   libre2-dev,
   libsnappy-dev,
   libssl-dev,
@@ -31,7 +31,8 @@ Build-Depends:
   nlohmann-json-dev | nlohmann-json3-dev,
   nvidia-cuda-toolkit [!arm64],
   pkg-config,
-@USE_SYSTEM_GRPC@  protobuf-compiler-grpc,
+@USE_SYSTEM_PROTOBUF@  protobuf-compiler,
+@ENABLE_FLIGHT@@USE_SYSTEM_GRPC@  protobuf-compiler-grpc,
   valac,
   tzdata,
   zlib1g-dev
@@ -91,31 +92,31 @@ Description: Apache Arrow is a data processing library for analysis
  .
  This package provides C++ library files for Dataset module.
 
-Package: libarrow-flight1000
-Section: libs
-Architecture: any
-Multi-Arch: same
-Pre-Depends: ${misc:Pre-Depends}
-Depends:
-  ${misc:Depends},
-  ${shlibs:Depends},
-  libarrow1000 (= ${binary:Version})
-Description: Apache Arrow is a data processing library for analysis
- .
- This package provides C++ library files for Flight RPC system.
-
-Package: libarrow-flight-sql1000
-Section: libs
-Architecture: any
-Multi-Arch: same
-Pre-Depends: ${misc:Pre-Depends}
-Depends:
-  ${misc:Depends},
-  ${shlibs:Depends},
-  libarrow-flight1000 (= ${binary:Version})
-Description: Apache Arrow is a data processing library for analysis
- .
- This package provides C++ library files for Flight SQL system.
+@ENABLE_FLIGHT@Package: libarrow-flight1000
+@ENABLE_FLIGHT@Section: libs
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Pre-Depends: ${misc:Pre-Depends}
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  ${shlibs:Depends},
+@ENABLE_FLIGHT@  libarrow1000 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides C++ library files for Flight RPC system.
+
+@ENABLE_FLIGHT@Package: libarrow-flight-sql1000
+@ENABLE_FLIGHT@Section: libs
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Pre-Depends: ${misc:Pre-Depends}
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  ${shlibs:Depends},
+@ENABLE_FLIGHT@  libarrow-flight1000 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides C++ library files for Flight SQL system.
 
 Package: libarrow-dev
 Section: libdevel
@@ -130,6 +131,8 @@ Depends:
   libcurl4-openssl-dev,
 @USE_SYSTEM_GRPC@  libgrpc++-dev,
   liblz4-dev,
+@USE_SYSTEM_PROTOBUF@  libprotobuf-dev,
+@USE_SYSTEM_PROTOBUF@  libprotoc-dev,
   libre2-dev,
   libsnappy-dev,
   libssl-dev,
@@ -168,29 +171,29 @@ 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-flight1000 (= ${binary:Version})
-Description: Apache Arrow is a data processing library for analysis
- .
- This package provides C++ header files for Flight RPC system.
-
-Package: libarrow-flight-sql-dev
-Section: libdevel
-Architecture: any
-Multi-Arch: same
-Depends:
-  ${misc:Depends},
-  libarrow-flight-dev (= ${binary:Version}),
-  libarrow-flight-sql1000 (= ${binary:Version})
-Description: Apache Arrow is a data processing library for analysis
- .
- This package provides C++ header files for Flight SQL system.
+@ENABLE_FLIGHT@Package: libarrow-flight-dev
+@ENABLE_FLIGHT@Section: libdevel
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  libarrow-dev (= ${binary:Version}),
+@ENABLE_FLIGHT@  libarrow-flight1000 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides C++ header files for Flight RPC system.
+
+@ENABLE_FLIGHT@Package: libarrow-flight-sql-dev
+@ENABLE_FLIGHT@Section: libdevel
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  libarrow-flight-dev (= ${binary:Version}),
+@ENABLE_FLIGHT@  libarrow-flight-sql1000 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides C++ header files for Flight SQL system.
 
 Package: libgandiva1000
 Section: libs
@@ -434,109 +437,109 @@ Description: Apache Arrow is a data processing library for analysis
  .
  This package provides documentations for dataset module.
 
-Package: libarrow-flight-glib1000
-Section: libs
-Architecture: any
-Multi-Arch: same
-Pre-Depends: ${misc:Pre-Depends}
-Depends:
-  ${misc:Depends},
-  ${shlibs:Depends},
-  libarrow-glib1000 (= ${binary:Version}),
-  libarrow-flight1000 (= ${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},
-  gir1.2-arrow-1.0 (= ${binary:Version})
-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-glib1000 (= ${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: libarrow-flight-sql-glib1000
-Section: libs
-Architecture: any
-Multi-Arch: same
-Pre-Depends: ${misc:Pre-Depends}
-Depends:
-  ${misc:Depends},
-  ${shlibs:Depends},
-  libarrow-flight-glib1000 (= ${binary:Version}),
-  libarrow-flight-sql1000 (= ${binary:Version})
-Description: Apache Arrow is a data processing library for analysis
- .
- This package provides GLib based library files for Apache Arrow Flight SQL.
-
-Package: gir1.2-arrow-flight-sql-1.0
-Section: introspection
-Architecture: any
-Multi-Arch: same
-Depends:
-  ${gir:Depends},
-  ${misc:Depends},
-  gir1.2-arrow-flight-1.0 (= ${binary:Version})
-Description: Apache Arrow is a data processing library for analysis
- .
- This package provides GObject Introspection typelib files for Apache Arrow
- Flight SQL.
-
-Package: libarrow-flight-sql-glib-dev
-Section: libdevel
-Architecture: any
-Multi-Arch: same
-Depends:
-  ${misc:Depends},
-  libarrow-flight-sql-dev (= ${binary:Version}),
-  libarrow-flight-glib-dev (= ${binary:Version}),
-  libarrow-flight-sql-glib1000 (= ${binary:Version}),
-  gir1.2-arrow-flight-sql-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 SQL.
-
-Package: libarrow-flight-sql-glib-doc
-Section: doc
-Architecture: any
-Multi-Arch: foreign
-Depends:
-  ${misc:Depends}
-Recommends: libarrow-flight-glib-doc
-Description: Apache Arrow is a data processing library for analysis
- .
- This package provides documentations for Apache Arrow Flight SQL.
+@ENABLE_FLIGHT@Package: libarrow-flight-glib1000
+@ENABLE_FLIGHT@Section: libs
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Pre-Depends: ${misc:Pre-Depends}
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  ${shlibs:Depends},
+@ENABLE_FLIGHT@  libarrow-glib1000 (= ${binary:Version}),
+@ENABLE_FLIGHT@  libarrow-flight1000 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides GLib based library files for Apache Arrow Flight.
+
+@ENABLE_FLIGHT@Package: gir1.2-arrow-flight-1.0
+@ENABLE_FLIGHT@Section: introspection
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${gir:Depends},
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  gir1.2-arrow-1.0 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides GObject Introspection typelib files for Apache Arrow
+@ENABLE_FLIGHT@ Flight.
+
+@ENABLE_FLIGHT@Package: libarrow-flight-glib-dev
+@ENABLE_FLIGHT@Section: libdevel
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  libarrow-flight-dev (= ${binary:Version}),
+@ENABLE_FLIGHT@  libarrow-glib-dev (= ${binary:Version}),
+@ENABLE_FLIGHT@  libarrow-flight-glib1000 (= ${binary:Version}),
+@ENABLE_FLIGHT@  gir1.2-arrow-flight-1.0 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides GLib based header files for Apache Arrow Flight.
+
+@ENABLE_FLIGHT@Package: libarrow-flight-glib-doc
+@ENABLE_FLIGHT@Section: doc
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: foreign
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends}
+@ENABLE_FLIGHT@Recommends: libarrow-glib-doc
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides documentations for Apache Arrow Flight.
+
+@ENABLE_FLIGHT@Package: libarrow-flight-sql-glib1000
+@ENABLE_FLIGHT@Section: libs
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Pre-Depends: ${misc:Pre-Depends}
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  ${shlibs:Depends},
+@ENABLE_FLIGHT@  libarrow-flight-glib1000 (= ${binary:Version}),
+@ENABLE_FLIGHT@  libarrow-flight-sql1000 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides GLib based library files for Apache Arrow Flight SQL.
+
+@ENABLE_FLIGHT@Package: gir1.2-arrow-flight-sql-1.0
+@ENABLE_FLIGHT@Section: introspection
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${gir:Depends},
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  gir1.2-arrow-flight-1.0 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides GObject Introspection typelib files for Apache Arrow
+@ENABLE_FLIGHT@ Flight SQL.
+
+@ENABLE_FLIGHT@Package: libarrow-flight-sql-glib-dev
+@ENABLE_FLIGHT@Section: libdevel
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: same
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends},
+@ENABLE_FLIGHT@  libarrow-flight-sql-dev (= ${binary:Version}),
+@ENABLE_FLIGHT@  libarrow-flight-glib-dev (= ${binary:Version}),
+@ENABLE_FLIGHT@  libarrow-flight-sql-glib1000 (= ${binary:Version}),
+@ENABLE_FLIGHT@  gir1.2-arrow-flight-sql-1.0 (= ${binary:Version})
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides GLib based header files for Apache Arrow Flight SQL.
+
+@ENABLE_FLIGHT@Package: libarrow-flight-sql-glib-doc
+@ENABLE_FLIGHT@Section: doc
+@ENABLE_FLIGHT@Architecture: any
+@ENABLE_FLIGHT@Multi-Arch: foreign
+@ENABLE_FLIGHT@Depends:
+@ENABLE_FLIGHT@  ${misc:Depends}
+@ENABLE_FLIGHT@Recommends: libarrow-flight-glib-doc
+@ENABLE_FLIGHT@Description: Apache Arrow is a data processing library for analysis
+@ENABLE_FLIGHT@ .
+@ENABLE_FLIGHT@ This package provides documentations for Apache Arrow Flight SQL.
 
 Package: libgandiva-glib1000
 Section: libs
diff --git a/dev/tasks/linux-packages/apache-arrow/debian/rules b/dev/tasks/linux-packages/apache-arrow/debian/rules
index b9664c15a7..c8d0628efa 100755
--- a/dev/tasks/linux-packages/apache-arrow/debian/rules
+++ b/dev/tasks/linux-packages/apache-arrow/debian/rules
@@ -21,6 +21,13 @@ override_dh_auto_configure:
 	  ARROW_CUDA=OFF;					\
 	  ARROW_PLASMA=OFF;					\
 	fi;							\
+	if [ $$(arch) = "x86_64" ]; then				\
+	  ARROW_FLIGHT=ON;					\
+	  ARROW_FLIGHT_SQL=ON;					\
+	else							\
+	  ARROW_FLIGHT=OFF;					\
+	  ARROW_FLIGHT_SQL=OFF;					\
+	fi;							\
 	dh_auto_configure					\
 	  --sourcedirectory=cpp					\
 	  --builddirectory=cpp_build				\
@@ -32,10 +39,9 @@ override_dh_auto_configure:
 	  -DARROW_CUDA=$${ARROW_CUDA}				\
 	  -DARROW_DATASET=ON					\
 	  -DARROW_FILESYSTEM=ON					\
-	  -DARROW_FLIGHT=ON					\
-	  -DARROW_FLIGHT_SQL=ON					\
+	  -DARROW_FLIGHT=$${ARROW_FLIGHT}			\
+	  -DARROW_FLIGHT_SQL=$${ARROW_FLIGHT_SQL}		\
 	  -DARROW_GANDIVA=ON					\
-	  -DARROW_GANDIVA_JAVA=OFF				\
 	  -DARROW_GCS=ON					\
 	  -DARROW_HDFS=ON					\
 	  -DARROW_JSON=ON					\
@@ -53,7 +59,6 @@ override_dh_auto_configure:
 	  -DARROW_WITH_ZLIB=ON					\
 	  -DARROW_WITH_ZSTD=ON					\
 	  -DCMAKE_BUILD_TYPE=$(BUILD_TYPE)			\
-	  -DCMAKE_UNITY_BUILD=ON				\
 	  -DCUDAToolkit_ROOT=/usr				\
 	  -DPARQUET_BUILD_EXECUTABLES=ON			\
 	  -DPARQUET_REQUIRE_ENCRYPTION=ON
diff --git a/dev/tasks/linux-packages/apt/build.sh b/dev/tasks/linux-packages/apt/build.sh
index fd057613e6..80566f5740 100755
--- a/dev/tasks/linux-packages/apt/build.sh
+++ b/dev/tasks/linux-packages/apt/build.sh
@@ -57,7 +57,7 @@ if which ccache > /dev/null 2>&1; then
   export CCACHE_COMPRESSLEVEL=6
   export CCACHE_DIR="${PWD}/ccache"
   export CCACHE_MAXSIZE=500M
-  ccache --show-stats
+  ccache --show-stats --verbose || :
   debuild_options+=(-eCCACHE_COMPILERCHECK)
   debuild_options+=(-eCCACHE_COMPRESS)
   debuild_options+=(-eCCACHE_COMPRESSLEVEL)
@@ -98,7 +98,7 @@ else
   run debuild "${debuild_options[@]}" "${dpkg_buildpackage_options[@]}" > /dev/null
 fi
 if which ccache > /dev/null 2>&1; then
-  ccache --show-stats
+  ccache --show-stats --verbose || :
 fi
 run cd -
 
diff --git a/dev/tasks/linux-packages/travis.linux.arm64.yml b/dev/tasks/linux-packages/travis.linux.arm64.yml
index 78a086fc77..bc2311a33d 100644
--- a/dev/tasks/linux-packages/travis.linux.arm64.yml
+++ b/dev/tasks/linux-packages/travis.linux.arm64.yml
@@ -120,7 +120,6 @@ script:
         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
diff --git a/dev/tasks/linux-packages/yum/build.sh b/dev/tasks/linux-packages/yum/build.sh
index 735b7afa1e..133c55029d 100755
--- a/dev/tasks/linux-packages/yum/build.sh
+++ b/dev/tasks/linux-packages/yum/build.sh
@@ -63,7 +63,7 @@ if which ccache > /dev/null 2>&1; then
   export CCACHE_COMPRESSLEVEL=6
   export CCACHE_MAXSIZE=500M
   export CCACHE_DIR="${PWD}/ccache"
-  ccache --show-stats
+  ccache --show-stats --verbose || :
   if [ -d "${lib_directory}/ccache" ]; then
     PATH="${lib_directory}/ccache:$PATH"
   fi
@@ -156,7 +156,7 @@ else
 fi
 
 if which ccache > /dev/null 2>&1; then
-  ccache --show-stats
+  ccache --show-stats --verbose || :
 fi
 
 run mv rpmbuild/RPMS/*/* "${rpm_dir}/"
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index 2cd6c259ec..91e011205a 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -591,8 +591,10 @@ tasks:
     {% endif %}
       - gir1.2-arrow-1.0_{no_rc_version}-1_[a-z0-9]+.deb
       - gir1.2-arrow-dataset-1.0_{no_rc_version}-1_[a-z0-9]+.deb
+    {% if architecture == "amd64" %}
       - gir1.2-arrow-flight-1.0_{no_rc_version}-1_[a-z0-9]+.deb
       - gir1.2-arrow-flight-sql-1.0_{no_rc_version}-1_[a-z0-9]+.deb
+    {% endif %}
       - gir1.2-gandiva-1.0_{no_rc_version}-1_[a-z0-9]+.deb
       - gir1.2-parquet-1.0_{no_rc_version}-1_[a-z0-9]+.deb
       - libarrow-dataset-dev_{no_rc_version}-1_[a-z0-9]+.deb
@@ -603,6 +605,7 @@ tasks:
       - libarrow-dataset1000-dbgsym_{no_rc_version}-1_[a-z0-9]+.d?deb
       - libarrow-dataset1000_{no_rc_version}-1_[a-z0-9]+.deb
       - libarrow-dev_{no_rc_version}-1_[a-z0-9]+.deb
+    {% if architecture == "amd64" %}
       - libarrow-flight-dev_{no_rc_version}-1_[a-z0-9]+.deb
       - libarrow-flight-glib-dev_{no_rc_version}-1_[a-z0-9]+.deb
       - libarrow-flight-glib-doc_{no_rc_version}-1_[a-z0-9]+.deb
@@ -617,6 +620,7 @@ tasks:
       - libarrow-flight-sql1000_{no_rc_version}-1_[a-z0-9]+.deb
       - libarrow-flight1000-dbgsym_{no_rc_version}-1_[a-z0-9]+.d?deb
       - libarrow-flight1000_{no_rc_version}-1_[a-z0-9]+.deb
+    {% endif %}
       - libarrow-glib-dev_{no_rc_version}-1_[a-z0-9]+.deb
       - libarrow-glib-doc_{no_rc_version}-1_[a-z0-9]+.deb
       - libarrow-glib1000-dbgsym_{no_rc_version}-1_[a-z0-9]+.d?deb