hiroyuki-sato opened a new issue, #45416: URL: https://github.com/apache/arrow/issues/45416
### Describe the enhancement requested @kou commented > BTW, we should resync this and apache-arrow-glib.rb https://github.com/apache/arrow/pull/45403#discussion_r1938219175 * +: `arrow`: f8723722341df31c0091c91ec451319ded58c214 * -: `homebrew`: a1a732638478050c5739c2e87a72fb3941c6c5c9 ```diff diff -ru /tmp/arrow dev/tasks/homebrew-formulae/ diff -ru /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-01-31 13:28:00 @@ -1,9 +1,36 @@ +# 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" @@ -11,39 +38,48 @@ 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 depends_on "meson" => :build depends_on "ninja" => :build - depends_on "pkgconf" => [:build, :test] + depends_on "pkg-config" => :build + depends_on "vala" => :build depends_on "apache-arrow" depends_on "glib" + fails_with gcc: "5" + def install - system "meson", "setup", "build", "c_glib", *std_meson_args + system "meson", "setup", "build", "c_glib", *std_meson_args, "-Dvapi=true" system "meson", "compile", "-C", "build", "--verbose" system "meson", "install", "-C", "build" end test do - (testpath/"test.c").write <<~C + (testpath/"test.c").write <<~SOURCE #include <arrow-glib/arrow-glib.h> int main(void) { GArrowNullArray *array = garrow_null_array_new(10); g_object_unref(array); return 0; } - C - - flags = shell_output("pkgconf --cflags --libs arrow-glib gobject-2.0").chomp.split + 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 + ] system ENV.cc, "test.c", "-o", "test", *flags system "./test" end diff -ru /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-02 00:27:59 @@ -1,60 +1,70 @@ +# 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 - depends_on "gflags" => :build - depends_on "rapidjson" => :build - depends_on "xsimd" => :build - depends_on "abseil" - depends_on "aws-crt-cpp" + depends_on "llvm@15" => :build 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" - # 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 + fails_with gcc: "5" def install - ENV.llvm_clang if OS.linux? + # This isn't for https://github.com/Homebrew/homebrew-core/issues/76537 . + # This may improve performance. + ENV.runtime_cpu_detection if Hardware::CPU.intel? - # We set `ARROW_ORC=OFF` because it fails to build with Protobuf 27.0 + # link against system libc++ instead of llvm provided libc++ + ENV.remove "HOMEBREW_LIBRARY_PATHS", Formula["llvm"].opt_lib 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 @@ -63,31 +73,29 @@ -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_ORC=OFF + -DARROW_MIMALLOC=ON + -DARROW_ORC=ON -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_INSTALL_NAME_RPATH=OFF + -DARROW_WITH_ZLIB=ON + -DARROW_WITH_ZSTD=ON -DPARQUET_BUILD_EXECUTABLES=ON ] - 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 + # 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? system "cmake", "-S", "cpp", "-B", "build", *args, *std_cmake_args system "cmake", "--build", "build" @@ -95,15 +103,13 @@ end test do - ENV.method(DevelopmentTools.default_compiler).call if OS.linux? - - (testpath/"test.cpp").write <<~CPP + (testpath/"test.cpp").write <<~EOS #include "arrow/api.h" int main(void) { arrow::int64(); return 0; } - CPP + EOS system ENV.cxx, "test.cpp", "-std=c++17", "-I#{include}", "-L#{lib}", "-larrow", "-o", "test" system "./test" end Only in dev/tasks/homebrew-formulae: github.macos.yml ``` ### Component(s) Continuous Integration -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org