blob: 2487568b1de1a7b373c9eb60e6bfb042bb6d7ebc [file] [log] [blame]
# -*- 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 "lib/arrow/version"
Gem::Specification.new do |spec|
is_jruby = RUBY_ENGINE == "jruby"
spec.name = "red-arrow"
spec.platform = "java" if is_jruby
version_components = [
Arrow::Version::MAJOR.to_s,
Arrow::Version::MINOR.to_s,
Arrow::Version::MICRO.to_s,
Arrow::Version::TAG,
]
spec.version = version_components.compact.join(".")
spec.homepage = "https://arrow.apache.org/"
spec.authors = ["The Apache Software Foundation"]
spec.email = ["dev@arrow.apache.org"]
spec.summary = "Red Arrow is the Ruby bindings of Apache Arrow"
spec.description =
"Apache Arrow is a common in-memory columnar data store. " +
"It's useful to share and process large data efficiently."
spec.license = "Apache-2.0"
spec.files = ["README.md", "Rakefile", "Gemfile", "#{spec.name}.gemspec"]
spec.files += ["LICENSE.txt", "NOTICE.txt"]
spec.files += Dir.glob("ext/**/*.{cpp,hpp,rb}")
spec.files += Dir.glob("lib/**/*.rb")
spec.files += Dir.glob("image/*.*")
spec.files += Dir.glob("doc/text/*")
spec.extensions = ["ext/arrow/extconf.rb"] unless is_jruby
required_arrow_glib_version = version_components[0, 3].join(".")
spec.add_runtime_dependency("bigdecimal", ">= 3.1.0")
spec.add_runtime_dependency("csv")
if is_jruby
spec.add_runtime_dependency("jar-dependencies")
spec.requirements << "jar org.apache.arrow, arrow-vector, #{spec.version}"
spec.requirements << "jar org.apache.arrow, arrow-memory-netty, #{spec.version}"
else
spec.add_runtime_dependency("extpp", ">= 0.1.1")
spec.add_runtime_dependency("gio2", ">= 4.2.3")
spec.add_runtime_dependency("pkg-config")
repository_url_prefix = "https://packages.apache.org/artifactory/arrow"
[
# Try without additional repository
["amazon_linux", "arrow-glib-devel"],
# Retry with additional repository
[
"amazon_linux",
"#{repository_url_prefix}/amazon-linux/%{version}/" +
"apache-arrow-release-latest.rpm",
],
["amazon_linux", "arrow-glib-devel"],
# Try without additional repository
["centos", "arrow-glib-devel"],
# Retry with additional repository
[
"centos",
"#{repository_url_prefix}/centos/%{major_version}-stream/" +
"apache-arrow-release-latest.rpm",
],
["centos", "arrow-glib-devel"],
["conda", "arrow-c-glib"],
# Try without additional repository
["debian", "libarrow-glib-dev"],
# Retry with additional repository
[
"debian",
"#{repository_url_prefix}/%{distribution}/" +
"apache-arrow-apt-source-latest-%{code_name}.deb",
],
["debian", "libarrow-glib-dev"],
["fedora", "libarrow-glib-devel"],
# Try without additional repository
["rhel", "arrow-glib-devel"],
# Retry with additional repository
[
"rhel",
"#{repository_url_prefix}/almalinux/%{major_version}/" +
"apache-arrow-release-latest.rpm",
],
["rhel", "arrow-glib-devel"],
].each do |platform, package|
spec.requirements <<
"system: arrow-glib>=#{required_arrow_glib_version}: " +
"#{platform}: #{package}"
end
end
spec.metadata["msys2_mingw_dependencies"] =
"arrow>=#{required_arrow_glib_version}"
end