This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new a538fe4b4f GH-45416: [CI][C++][Homebrew] Backport the latest formula
changes (#45460)
a538fe4b4f is described below
commit a538fe4b4f87a46c01d0959af8f4128689b921fd
Author: Hiroyuki Sato <[email protected]>
AuthorDate: Fri Feb 7 20:21:15 2025 +0900
GH-45416: [CI][C++][Homebrew] Backport the latest formula changes (#45460)
### Rationale for this change
To check the operation of Homebrew after the new version is released, we
need to sync the latest formula.
### What changes are included in this PR?
Backport the latest formula changes
### Are these changes tested?
Yes.
### Are there any user-facing changes?
No.
Comparison result.
```diff
diff -ur /tmp/arrow/apache-arrow-glib.rb
dev/tasks/homebrew-formulae/apache-arrow-glib.rb
--- /tmp/arrow/apache-arrow-glib.rb 2025-02-03 09:30:42
+++ dev/tasks/homebrew-formulae/apache-arrow-glib.rb 2025-02-07 18:20:47
@@ -1,23 +1,41 @@
+# BSD 2-Clause License
+#
+# Copyright (c) 2009-present, Homebrew contributors
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
met:
+#
+# * Redistributions of source code must retain the above copyright notice,
this
+# list of conditions and the following disclaimer.
+#
+# * 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.
+
+#
https://github.com/Homebrew/homebrew-core/blob/-/Formula/a/apache-arrow-glib.rb
+
class ApacheArrowGlib < Formula
desc "GLib bindings for Apache Arrow"
homepage "https://arrow.apache.org/"
- url
"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-19.0.0/apache-arrow-19.0.0.tar.gz"
- mirror
"https://archive.apache.org/dist/arrow/arrow-19.0.0/apache-arrow-19.0.0.tar.gz"
- sha256 "f89b93f39954740f7184735ff1e1d3b5be2640396febc872c4955274a011f56b"
+ url
"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-20.0.0-SNAPSHOT/apache-arrow-20.0.0-SNAPSHOT.tar.gz"
+ sha256 "9948ddb6d4798b51552d0dca3252dd6e3a7d0f9702714fc6f5a1b59397ce1d28"
license "Apache-2.0"
head "https://github.com/apache/arrow.git", branch: "main"
livecheck do
formula "apache-arrow"
- end
-
- bottle do
- sha256 cellar: :any, arm64_sequoia:
"e420ce8d7c772054c9040a326f54be83306741c3b13f1f95c1aa660bcc3419bc"
- sha256 cellar: :any, arm64_sonoma:
"f7f697c4bb8922d0fd7ebea9fdedcb03798bb3ce641525bd5b5def7e30d9dbe4"
- sha256 cellar: :any, arm64_ventura:
"90c37373807d0607465aeb66dfa6a8f4e1073a1c609ac3d3968234f2f63b12ef"
- sha256 cellar: :any, sonoma:
"2f66ab77233cfaebd4a6cb35ee75a33b6533973ee25608c88a6a4e0f074762c7"
- sha256 cellar: :any, ventura:
"8339abe968a0697213167673c40071a958f1eb636f02da0ce33e4f61d3a8de2a"
- sha256 x86_64_linux:
"6776b45d6bafd3bdc32f1d6d0be57e7ed60b8bf0171e87c5931ad76a176a2191"
end
depends_on "gobject-introspection" => :build
diff -ur /tmp/arrow/apache-arrow.rb
dev/tasks/homebrew-formulae/apache-arrow.rb
--- /tmp/arrow/apache-arrow.rb 2025-02-02 11:32:18
+++ dev/tasks/homebrew-formulae/apache-arrow.rb 2025-02-07 18:10:13
@@ -1,21 +1,38 @@
+# BSD 2-Clause License
+#
+# Copyright (c) 2009-present, Homebrew contributors
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
met:
+#
+# * Redistributions of source code must retain the above copyright notice,
this
+# list of conditions and the following disclaimer.
+#
+# * 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.
+
+#
https://github.com/Homebrew/homebrew-core/blob/-/Formula/a/apache-arrow.rb
+
class ApacheArrow < Formula
desc "Columnar in-memory analytics layer designed to accelerate big data"
homepage "https://arrow.apache.org/"
- url
"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-19.0.0/apache-arrow-19.0.0.tar.gz"
- mirror
"https://archive.apache.org/dist/arrow/arrow-19.0.0/apache-arrow-19.0.0.tar.gz"
- sha256 "f89b93f39954740f7184735ff1e1d3b5be2640396febc872c4955274a011f56b"
+ url
"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-20.0.0-SNAPSHOT/apache-arrow-20.0.0-SNAPSHOT.tar.gz"
+ sha256 "9948ddb6d4798b51552d0dca3252dd6e3a7d0f9702714fc6f5a1b59397ce1d28"
license "Apache-2.0"
- revision 1
head "https://github.com/apache/arrow.git", branch: "main"
-
- bottle do
- sha256 cellar: :any, arm64_sequoia:
"a6c9c00a48857deb74c1d00bbf7858466307853629866e9500fe57dc5889eb58"
- sha256 cellar: :any, arm64_sonoma:
"d1b3aa26f91c7c452a60dca1b590c54b0026a5ee05a9c148782946c66d878c6e"
- sha256 cellar: :any, arm64_ventura:
"5d71a8bd28fd50e5bf190c3764e5cf1367d2c6ee45fc0b3850da6f178cb0d5eb"
- sha256 cellar: :any, sonoma:
"45a9742c35214fd74301c6261a5f137e43b5e4be2c0b1281567e5699d35f46a9"
- sha256 cellar: :any, ventura:
"bac30f19cf4bb0ed2c444a782152b8458ebcdfd3602e0f7f70457e4b0faf9396"
- sha256 cellar: :any_skip_relocation, x86_64_linux:
"4699146750ca07631a98168da1b237315363dbaa0dd4fae8f4ad29044e724545"
- end
depends_on "boost" => :build
depends_on "cmake" => :build
```
* GitHub Issue: #45416
Authored-by: Hiroyuki Sato <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
dev/tasks/homebrew-formulae/apache-arrow-glib.rb | 30 +++---------
dev/tasks/homebrew-formulae/apache-arrow.rb | 61 ++++++++++++++----------
2 files changed, 42 insertions(+), 49 deletions(-)
diff --git a/dev/tasks/homebrew-formulae/apache-arrow-glib.rb
b/dev/tasks/homebrew-formulae/apache-arrow-glib.rb
index 82d8464abe..f403d5db87 100644
--- a/dev/tasks/homebrew-formulae/apache-arrow-glib.rb
+++ b/dev/tasks/homebrew-formulae/apache-arrow-glib.rb
@@ -41,45 +41,27 @@ class ApacheArrowGlib < Formula
depends_on "gobject-introspection" => :build
depends_on "meson" => :build
depends_on "ninja" => :build
- depends_on "pkg-config" => :build
- depends_on "vala" => :build
+ depends_on "pkgconf" => [:build, :test]
depends_on "apache-arrow"
depends_on "glib"
- fails_with gcc: "5"
-
def install
- system "meson", "setup", "build", "c_glib", *std_meson_args, "-Dvapi=true"
+ system "meson", "setup", "build", "c_glib", *std_meson_args
system "meson", "compile", "-C", "build", "--verbose"
system "meson", "install", "-C", "build"
end
test do
- (testpath/"test.c").write <<~SOURCE
+ (testpath/"test.c").write <<~C
#include <arrow-glib/arrow-glib.h>
int main(void) {
GArrowNullArray *array = garrow_null_array_new(10);
g_object_unref(array);
return 0;
}
- SOURCE
- apache_arrow = Formula["apache-arrow"]
- glib = Formula["glib"]
- flags = %W[
- -I#{include}
- -I#{apache_arrow.opt_include}
- -I#{glib.opt_include}/glib-2.0
- -I#{glib.opt_lib}/glib-2.0/include
- -L#{lib}
- -L#{apache_arrow.opt_lib}
- -L#{glib.opt_lib}
- -DNDEBUG
- -larrow-glib
- -larrow
- -lgio-2.0
- -lgobject-2.0
- -lglib-2.0
- ]
+ C
+
+ flags = shell_output("pkgconf --cflags --libs arrow-glib
gobject-2.0").chomp.split
system ENV.cc, "test.c", "-o", "test", *flags
system "./test"
end
diff --git a/dev/tasks/homebrew-formulae/apache-arrow.rb
b/dev/tasks/homebrew-formulae/apache-arrow.rb
index caf82b8db8..6e1505859a 100644
--- a/dev/tasks/homebrew-formulae/apache-arrow.rb
+++ b/dev/tasks/homebrew-formulae/apache-arrow.rb
@@ -36,35 +36,42 @@ class ApacheArrow < Formula
depends_on "boost" => :build
depends_on "cmake" => :build
- depends_on "llvm@15" => :build
+ depends_on "gflags" => :build
+ depends_on "rapidjson" => :build
+ depends_on "xsimd" => :build
+ depends_on "abseil"
+ depends_on "aws-crt-cpp"
depends_on "aws-sdk-cpp"
depends_on "brotli"
- depends_on "bzip2"
- depends_on "glog"
depends_on "grpc"
+ depends_on "llvm"
depends_on "lz4"
- depends_on "mimalloc"
depends_on "openssl@3"
depends_on "protobuf"
- depends_on "rapidjson"
depends_on "re2"
depends_on "snappy"
depends_on "thrift"
depends_on "utf8proc"
depends_on "zstd"
+
uses_from_macos "python" => :build
+ uses_from_macos "bzip2"
+ uses_from_macos "zlib"
- fails_with gcc: "5"
+ # Issue ref: https://github.com/protocolbuffers/protobuf/issues/19447
+ fails_with :gcc do
+ version "12"
+ cause "Protobuf 29+ generated code with visibility and deprecated
attributes needs GCC 13+"
+ end
def install
- # This isn't for https://github.com/Homebrew/homebrew-core/issues/76537 .
- # This may improve performance.
- ENV.runtime_cpu_detection if Hardware::CPU.intel?
+ ENV.llvm_clang if OS.linux?
- # link against system libc++ instead of llvm provided libc++
- ENV.remove "HOMEBREW_LIBRARY_PATHS", Formula["llvm"].opt_lib
+ # We set `ARROW_ORC=OFF` because it fails to build with Protobuf 27.0
args = %W[
-DCMAKE_INSTALL_RPATH=#{rpath}
+ -DLLVM_ROOT=#{Formula["llvm"].opt_prefix}
+ -DARROW_DEPENDENCY_SOURCE=SYSTEM
-DARROW_ACERO=ON
-DARROW_COMPUTE=ON
-DARROW_CSV=ON
@@ -73,29 +80,31 @@ class ApacheArrow < Formula
-DARROW_FLIGHT=ON
-DARROW_FLIGHT_SQL=ON
-DARROW_GANDIVA=ON
- -DARROW_GCS=ON
-DARROW_HDFS=ON
- -DARROW_INSTALL_NAME_RPATH=OFF
-DARROW_JSON=ON
- -DARROW_MIMALLOC=ON
- -DARROW_ORC=ON
+ -DARROW_ORC=OFF
-DARROW_PARQUET=ON
-DARROW_PROTOBUF_USE_SHARED=ON
-DARROW_S3=ON
- -DARROW_WITH_BROTLI=ON
-DARROW_WITH_BZ2=ON
+ -DARROW_WITH_ZLIB=ON
+ -DARROW_WITH_ZSTD=ON
-DARROW_WITH_LZ4=ON
-DARROW_WITH_SNAPPY=ON
+ -DARROW_WITH_BROTLI=ON
-DARROW_WITH_UTF8PROC=ON
- -DARROW_WITH_ZLIB=ON
- -DARROW_WITH_ZSTD=ON
+ -DARROW_INSTALL_NAME_RPATH=OFF
-DPARQUET_BUILD_EXECUTABLES=ON
]
- # Disable runtime SIMD dispatch. It may cause "illegal opcode"
- # error on Intel Mac because of one-definition-rule violation.
- #
- # https://github.com/apache/arrow/issues/36685
- args << "-DARROW_RUNTIME_SIMD_LEVEL=NONE" if OS.mac? and
Hardware::CPU.intel?
+ args << "-DARROW_MIMALLOC=ON" unless Hardware::CPU.arm?
+ # Reduce overlinking. Can remove on Linux if GCC 11 issue is fixed
+ args << "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,#{OS.mac? ? "-dead_strip_dylibs"
: "--as-needed"}"
+ # ARROW_SIMD_LEVEL sets the minimum required SIMD. Since this defaults to
+ # SSE4.2 on x86_64, we need to reduce level to match oldest supported CPU.
+ # Ref:
https://arrow.apache.org/docs/cpp/env_vars.html#envvar-ARROW_USER_SIMD_LEVEL
+ if build.bottle? && Hardware::CPU.intel? && (!OS.mac? ||
!MacOS.version.requires_sse42?)
+ args << "-DARROW_SIMD_LEVEL=NONE"
+ end
system "cmake", "-S", "cpp", "-B", "build", *args, *std_cmake_args
system "cmake", "--build", "build"
@@ -103,13 +112,15 @@ class ApacheArrow < Formula
end
test do
- (testpath/"test.cpp").write <<~EOS
+ ENV.method(DevelopmentTools.default_compiler).call if OS.linux?
+
+ (testpath/"test.cpp").write <<~CPP
#include "arrow/api.h"
int main(void) {
arrow::int64();
return 0;
}
- EOS
+ CPP
system ENV.cxx, "test.cpp", "-std=c++17", "-I#{include}", "-L#{lib}",
"-larrow", "-o", "test"
system "./test"
end