Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion c_glib/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ else
int
main(void)
{
arrow::adapters::orc::ORCFileReader::Open(nullptr, nullptr, nullptr);
arrow::adapters::orc::ORCFileWriter::Open(nullptr);
return 0;
}
'''
Expand Down
1 change: 1 addition & 0 deletions dev/release/binary-task.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1456,6 +1456,7 @@ def yum_release_repositories_dir

def available_yum_targets
[
["almalinux", "9"],
["almalinux", "8"],
["amazon-linux", "2"],
["centos", "8-stream"],
Expand Down
11 changes: 10 additions & 1 deletion dev/release/verify-yum.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,15 @@ have_gandiva=yes
have_glib=yes
have_parquet=yes
have_python=yes
install_command="dnf install -y --enablerepo=powertools"
install_command="dnf install -y --enablerepo=crb"

echo "::group::Prepare repository"

case "${distribution}-${distribution_version}" in
almalinux-8)
distribution_prefix="almalinux"
install_command="dnf install -y --enablerepo=powertools"
;;
almalinux-*)
distribution_prefix="almalinux"
;;
Expand All @@ -78,6 +82,11 @@ case "${distribution}-${distribution_version}" in
have_python=no
install_command="yum install -y"
;;
centos-8)
distribution_prefix="centos"
repository_version+="-stream"
install_command="dnf install -y --enablerepo=powertools"
;;
centos-*)
distribution_prefix="centos"
repository_version+="-stream"
Expand Down
17 changes: 17 additions & 0 deletions dev/tasks/linux-packages/apache-arrow-release/Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,35 @@ class ApacheArrowReleasePackageTask < PackageTask
keys = File.read(keys_path)
File.open(keys_path, "w") do |keys_file|
is_ed25519_key = false
deny_lists = [
# "rpmkeys --import" reports error for this key.
# It seems that a subkey of this key may be related. (Is SHA1 bad?)
"8CAAD602",
]
is_denyed_key = false
keys.each_line do |line|
case line.chomp
when /\Apub\s+ed25519\s/
is_ed25519_key = true
next
when /\Apub\s+[^\/]+\/([\h]+)\s/
short_finger_print = $1
if deny_lists.include?(short_finger_print)
is_denyed_key = true
next
end
when "-----END PGP PUBLIC KEY BLOCK-----"
if is_ed25519_key
is_ed25519_key = false
next
end
if is_denyed_key
is_denyed_key = false
next
end
else
next if is_ed25519_key
next if is_denyed_key
end
keys_file.print(line)
end
Expand Down
Original file line number Diff line number Diff line change
@@ -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:9

ARG DEBUG

RUN \
quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
dnf install -y ${quiet} \
rpmdevtools && \
dnf clean ${quiet} all
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ RUN \
rpmdevtools \
snappy-devel \
tar \
thrift-devel \
# utf8proc-devel \
vala-devel \
vala \
zlib-devel && \
dnf clean ${quiet} all
18 changes: 18 additions & 0 deletions dev/tasks/linux-packages/apache-arrow/yum/almalinux-9-aarch64/from
Original file line number Diff line number Diff line change
@@ -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:9
66 changes: 66 additions & 0 deletions dev/tasks/linux-packages/apache-arrow/yum/almalinux-9/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# 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:9
FROM ${FROM}

ARG DEBUG

RUN \
quiet=$([ "${DEBUG}" = "yes" ] || echo "--quiet") && \
dnf install -y ${quiet} epel-release && \
dnf install --enablerepo=crb -y ${quiet} \
bison \
boost-devel \
brotli-devel \
bzip2-devel \
c-ares-devel \
ccache \
clang \
cmake \
curl-devel \
flex \
gcc-c++ \
gflags-devel \
git \
gobject-introspection-devel \
gtk-doc \
json-devel \
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 \
thrift-devel \
utf8proc-devel \
vala \
zlib-devel && \
dnf clean ${quiet} all
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,9 @@ RUN \
rpmdevtools \
snappy-devel \
tar \
thrift-devel \
utf8proc-devel \
vala-devel \
vala \
zlib-devel && \
# Install ninja-build dependencies in amzn2-core
yum install -y ${quiet} ninja-build && \
Expand Down
64 changes: 41 additions & 23 deletions dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -30,29 +30,46 @@
if [ %{rhel} -lt 8 ]; then \
echo 3; \
fi)
%define python_version %( \
if [ %{rhel} -lt 9 ]; then \
echo 39; \
else \
echo 3; \
fi)

%define lz4_requirement %( \
if [ %{_amzn} -eq 0 ]; then \
echo ">= 1.8.0"; \
fi)

%if %{rhel} >= 9
%define arrow_cmake_builddir %{__cmake_builddir}
%define arrow_cmake %cmake
%define arrow_cmake_build %cmake_build
%define arrow_cmake_install %cmake_install
%else
%define arrow_cmake_builddir build
%define arrow_cmake %cmake3 -S . -B %{arrow_cmake_builddir}
%define arrow_cmake_build ninja -C %{arrow_cmake_builddir} -v
%define arrow_cmake_install DESTDIR="%{buildroot}" ninja -C %{arrow_cmake_builddir} install
%endif

%define use_boost (!%{is_amazon_linux})
%define use_flight (%{rhel} >= 8)
%define use_gandiva (%{rhel} >= 8 && %{_arch} != "aarch64")
%define use_gandiva (%{rhel} >= 8 && "%{_arch}" != "aarch64")
%define use_gcs (%{rhel} >= 8 || %{is_amazon_linux})
%define use_gflags (!%{is_amazon_linux})
%define use_glog (%{rhel} <= 8)
%define use_mimalloc (%{rhel} >= 8)
%define use_python (%{rhel} >= 8)
# TODO: Enable this. This works on local but is fragile on GitHub Actions and
# Travis CI.
# %define use_s3 (%{rhel} >= 8)
# %%define use_s3 (%{rhel} >= 8)
%define use_s3 0

%define have_rapidjson (%{rhel} == 7)
%define have_rapidjson (%{rhel} != 8)
%define have_re2 (%{rhel} >= 8)
# EPEL ships utf8proc but it's old.
# %define have_utf8proc (%{rhel} == 7)
%define have_utf8proc 0
%define have_utf8proc (%{rhel} >= 9)
%define have_zstd (!%{is_amazon_linux})

Name: @PACKAGE@
Expand Down Expand Up @@ -81,7 +98,9 @@ BuildRequires: gcc-c++
BuildRequires: gflags-devel
%endif
BuildRequires: git
%if %{use_glog}
BuildRequires: glog-devel
%endif
%if %{use_gcs}
BuildRequires: json-devel
%endif
Expand All @@ -93,8 +112,8 @@ BuildRequires: ninja-build
BuildRequires: openssl-devel
BuildRequires: pkgconfig
%if %{use_python}
BuildRequires: python39-devel
BuildRequires: python39-numpy
BuildRequires: python%{python_version}-devel
BuildRequires: python%{python_version}-numpy
%endif
%if %{have_rapidjson}
BuildRequires: rapidjson-devel
Expand All @@ -103,6 +122,7 @@ BuildRequires: rapidjson-devel
BuildRequires: re2-devel
%endif
BuildRequires: snappy-devel
BuildRequires: thrift-devel
%if %{have_utf8proc}
BuildRequires: utf8proc-devel
%endif
Expand All @@ -115,7 +135,7 @@ BuildRequires: ncurses-devel

BuildRequires: gobject-introspection-devel
BuildRequires: gtk-doc
BuildRequires: vala-devel
BuildRequires: vala

%description
Apache Arrow is a data processing library for analysis.
Expand All @@ -125,9 +145,8 @@ Apache Arrow is a data processing library for analysis.

%build
cpp_build_type=release
mkdir cpp/build
cd cpp/build
%cmake3 .. \
cd cpp
%arrow_cmake \
-DARROW_CSV=ON \
-DARROW_DATASET=ON \
%if %{use_flight}
Expand Down Expand Up @@ -168,8 +187,7 @@ cd cpp/build
-DPythonInterp_FIND_VERSION_MAJOR=3 \
%endif
-GNinja

ninja %{?_smp_mflags}
%arrow_cmake_build
cd -

cd c_glib
Expand All @@ -178,25 +196,23 @@ meson setup build \
--default-library=both \
--libdir=%{_libdir} \
--prefix=%{_prefix} \
-Darrow_cpp_build_dir=../cpp/build \
-Darrow_cpp_build_dir=../cpp/%{arrow_cmake_builddir} \
-Darrow_cpp_build_type=$cpp_build_type \
-Dgtk_doc=true \
-Dvala=true
LD_LIBRARY_PATH=$PWD/../cpp/build/$cpp_build_type \
LD_LIBRARY_PATH=$PWD/../cpp/%{arrow_cmake_builddir}/$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
DESTDIR=%{buildroot} ninja -C build install
cd -

cd cpp/build
DESTDIR=$RPM_BUILD_ROOT ninja install
ninja clean
cd cpp
%arrow_cmake_install
cd -

%package -n %{name}%{major_version}-libs
Expand All @@ -206,7 +222,9 @@ Requires: brotli
%if %{use_gflags}
Requires: gflags
%endif
%if %{use_glog}
Requires: glog
%endif
%if %{have_zstd}
Requires: libzstd
%endif
Expand Down Expand Up @@ -414,7 +432,7 @@ Libraries and header files for Gandiva.
Summary: Python integration library for Apache Arrow
License: Apache-2.0
Requires: %{name}%{major_version}-libs = %{version}-%{release}
Requires: python39-numpy
Requires: python%{python_version}-numpy

%description -n %{name}%{major_version}-python-libs
This package contains the Python integration library for Apache Arrow.
Expand All @@ -429,7 +447,7 @@ Summary: Libraries and header files for Python integration library for Apache Ar
License: Apache-2.0
Requires: %{name}%{major_version}-python-libs = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
Requires: python39-devel
Requires: python%{python_version}-devel

%description python-devel
Libraries and header files for Python integration library for Apache Arrow.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ RUN \
rpmdevtools \
snappy-devel \
tar \
vala-devel \
thrift-devel \
vala \
zlib-devel && \
yum clean ${quiet} all

Expand Down
Loading