You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libarrow/SPECS/libarrow.spec

1007 lines
32 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# -*- sh-shell: rpm -*-
#
# 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.
%bcond_without use_flight
%bcond_with use_plasma
%bcond_with use_gandiva
%bcond_with use_mimalloc
%bcond_without use_ninja
# TODO: Enable this. This works on local but is fragile on GitHub Actions and
# Travis CI.
%bcond_with use_s3
%bcond_without have_rapidjson
%bcond_without have_re2
%bcond_without have_utf8proc
Name: libarrow
Version: 17.0.0
Release: 6%{?dist}
Summary: A toolbox for accelerated data interchange and in-memory processing
License: Apache-2.0
URL: https://arrow.apache.org/
Requires: %{name}-doc = %{version}-%{release}
Source0: https://dist.apache.org/repos/dist/release/arrow/arrow-%{version}/apache-arrow-%{version}.tar.gz
Patch0001: 0001-python-pyarrow-tests-read_record_patch.py.patch
Patch0002: 0002-python-pyarrow-tests-test_ipc.py.patch
# Apache ORC (liborc) has numerous compile errors and apparently assumes
# a 64-bit build and runtime environment. This is only consumer of the liborc
# package, and in turn the only consumers of this and liborc are Ceph, which
# is also 64-bit only, and rdal.
ExcludeArch: %{ix86} %{arm}
BuildRequires: bison
BuildRequires: boost-devel
BuildRequires: brotli-devel
BuildRequires: bzip2-devel
BuildRequires: cmake
%if %{with use_ninja}
BuildRequires: ninja-build
%endif
BuildRequires: meson
%if %{with use_s3}
BuildRequires: curl-devel
%endif
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: gflags-devel
BuildRequires: glog-devel
BuildRequires: grpc-devel
BuildRequires: grpc-plugins
BuildRequires: libzstd-devel
BuildRequires: lz4-devel
BuildRequires: openssl-devel
BuildRequires: pkgconfig
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-numpy
BuildRequires: python%{python3_pkgversion}-Cython
BuildRequires: python%{python3_pkgversion}-pandas
BuildRequires: python%{python3_pkgversion}-pytest
BuildRequires: python%{python3_pkgversion}-hypothesis
BuildRequires: python%{python3_pkgversion}-pytzdata
BuildRequires: xsimd-devel
BuildRequires: abseil-cpp-devel
BuildRequires: c-ares-devel
BuildRequires: thrift-devel
%if %{with have_rapidjson}
BuildRequires: rapidjson-devel
%endif
%if %{with have_re2}
BuildRequires: re2-devel
%endif
BuildRequires: snappy-devel
%if %{with have_utf8proc}
BuildRequires: utf8proc-devel
%endif
BuildRequires: zlib-devel
BuildRequires: liborc-devel
%if %{with use_gandiva}
BuildRequires: llvm-devel
BuildRequires: ncurses-devel
%endif
BuildRequires: gobject-introspection-devel
BuildRequires: gtk-doc
# Additional pyarrow build requirements; see also %%generate_buildrequires
BuildRequires: python3dist(cffi)
# python3-pyarrow provides bogus library SONAME provides
# https://bugzilla.redhat.com/show_bug.cgi?id=2326774
%global __provides_exclude (^libarrow_python(_[^.]+)?|.cpython-.*)\\.so.*$
%global __requires_exclude ^libarrow_python(_[^.]+)?\\.so.*$
%description
Apache Arrow defines a language-independent columnar memory
format for flat and hierarchical data, organized for efficient
analytic operations on modern hardware like CPUs and GPUs. The
Arrow memory format also supports zero-copy reads for lightning-
fast data access without serialization overhead
%files
%{_libdir}/libarrow.so.*
%exclude %{python3_sitearch}/benchmarks/*
%exclude %{python3_sitearch}/cmake_modules/*
%exclude %{python3_sitearch}/examples/*
%exclude %{python3_sitearch}/scripts/*
#--------------------------------------------------------------------
%package doc
Summary: Documentation files for Apache Arrow C++
BuildArch: noarch
%description doc
Documentation files for Apache Arrow C++.
Obsoletes: %{name}-glib-doc < %{version}-%{release}
Obsoletes: %{name}-dataset-glib-doc < %{version}-%{release}
Obsoletes: %{name}-parquet-glib-doc < %{version}-%{release}
Obsoletes: plasma-glib-doc < %{version}-%{release}
Obsoletes: gandiva-glib-doc < %{version}-%{release}
%files doc
%license LICENSE.txt
%doc README.md NOTICE.txt
%exclude %{_docdir}/arrow/
#--------------------------------------------------------------------
%package devel
Summary: Libraries and header files for Apache Arrow C++
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: brotli-devel
Requires: bzip2-devel
Requires: libzstd-devel
Requires: lz4-devel
Requires: openssl-devel
%if %{with have_rapidjson}
Requires: rapidjson-devel
%endif
%if %{with have_re2}
Requires: re2-devel
%endif
Requires: snappy-devel
%if %{with have_utf8proc}
Requires: utf8proc-devel
%endif
Requires: zlib-devel
%description devel
Libraries and header files for Apache Arrow C++.
%files devel
%dir %{_includedir}/arrow/
%{_includedir}/arrow/*
%exclude %{_includedir}/arrow/dataset/
%if %{with use_flight}
%exclude %{_includedir}/arrow/flight/
%exclude %{_includedir}/arrow-flight-glib
%endif
%exclude %{_libdir}/cmake/Arrow/FindBrotliAlt.cmake
%exclude %{_libdir}/cmake/Arrow/Findlz4Alt.cmake
%exclude %{_libdir}/cmake/Arrow/FindorcAlt.cmake
%exclude %{_libdir}/cmake/Arrow/FindSnappyAlt.cmake
%exclude %{_libdir}/cmake/Arrow/Findre2Alt.cmake
%exclude %{_libdir}/cmake/Arrow/Findutf8proc.cmake
%exclude %{_libdir}/cmake/Arrow/FindzstdAlt.cmake
%exclude %{_libdir}/cmake/Arrow/FindOpenSSLAlt.cmake
%exclude %{_libdir}/cmake/Arrow/FindProtobufAlt.cmake
%dir %{_libdir}/cmake/Arrow/
%{_libdir}/cmake/Arrow/ArrowConfig*.cmake
%{_libdir}/cmake/Arrow/ArrowOptions.cmake
%{_libdir}/cmake/Arrow/ArrowTargets*.cmake
%{_libdir}/cmake/Arrow/arrow-config.cmake
%{_libdir}/libarrow.so
%{_libdir}/pkgconfig/arrow-compute.pc
%{_libdir}/pkgconfig/arrow-csv.pc
%{_libdir}/pkgconfig/arrow-filesystem.pc
%{_libdir}/pkgconfig/arrow-json.pc
%{_libdir}/pkgconfig/arrow-orc.pc
%{_libdir}/pkgconfig/arrow.pc
%{_datadir}/arrow/gdb/gdb_arrow.py
%{_datadir}/gdb/auto-load%{_libdir}/libarrow.so.*-gdb.py
#--------------------------------------------------------------------
%package dataset-libs
Summary: C++ library to read and write semantic datasets
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description dataset-libs
This package contains the libraries for Apache Arrow dataset.
%files dataset-libs
%{_libdir}/libarrow_dataset.so.*
#--------------------------------------------------------------------
%package dataset-devel
Summary: Libraries and header files for Apache Arrow dataset
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-dataset-libs%{?_isa} = %{version}-%{release}
%description dataset-devel
Libraries and header files for Apache Arrow dataset.
%files dataset-devel
%dir %{_includedir}/arrow/dataset/
%{_includedir}/arrow/dataset/*
%{_libdir}/cmake/ArrowDataset/*.cmake
%{_libdir}/libarrow_dataset.so
%{_libdir}/pkgconfig/arrow-dataset.pc
#--------------------------------------------------------------------
%package acero-libs
Summary: C++ library for fast data transport
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description acero-libs
This package contains the libraries for Apache Arrow Acero.
%files acero-libs
%{_libdir}/libarrow_acero.so.*
#--------------------------------------------------------------------
%package acero-devel
Summary: Libraries for Apache Arrow Acero
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-flight-libs%{?_isa} = %{version}-%{release}
%description acero-devel
Libraries and header files for Apache Arrow Acero.
%files acero-devel
%{_libdir}/cmake/ArrowAcero/*.cmake
%{_libdir}/libarrow_acero.so
%{_libdir}/pkgconfig/arrow-acero.pc
#--------------------------------------------------------------------
%if %{with use_flight}
%package flight-libs
Summary: C++ library for fast data transport
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description flight-libs
This package contains the libraries for Apache Arrow Flight.
%files flight-libs
%{_libdir}/libarrow_flight.so.*
%{_libdir}/libarrow-flight-glib.so.*
%dir %{_libdir}/girepository-1.0/
%{_libdir}/girepository-1.0/ArrowFlight-1.0.typelib
#--------------------------------------------------------------------
%package flight-devel
Summary: Libraries and header files for Apache Arrow Flight
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-flight-libs%{?_isa} = %{version}-%{release}
%description flight-devel
Libraries and header files for Apache Arrow Flight.
%files flight-devel
%dir %{_includedir}/arrow/flight/
%{_includedir}/arrow/flight/*
%dir %{_includedir}/arrow-flight-glib/
%{_includedir}/arrow-flight-glib/*
%{_libdir}/cmake/ArrowFlight/*.cmake
%{_libdir}/libarrow_flight.so
%{_libdir}/libarrow-flight-glib.so
%{_libdir}/pkgconfig/arrow-flight.pc
%{_libdir}/pkgconfig/arrow-flight-glib.pc
%endif
#--------------------------------------------------------------------
%if %{with use_gandiva}
%package -n gandiva-libs
Summary: C++ library for compiling and evaluating expressions
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
Requires: ncurses-libs
%description -n gandiva-libs
This package contains the libraries for Gandiva.
%files -n gandiva-libs
%{_libdir}/libgandiva.so.*
#--------------------------------------------------------------------
%package -n gandiva-devel
Summary: Libraries and header files for Gandiva
Requires: gandiva-libs%{?_isa} = %{version}-%{release}
Requires: llvm-devel
%description -n gandiva-devel
Libraries and header files for Gandiva.
%files -n gandiva-devel
%dir %{_includedir}/gandiva/
%{_includedir}/gandiva/
%{_libdir}/cmake/Gandiva/*.cmake
%{_libdir}/libgandiva.so
%{_libdir}/pkgconfig/gandiva.pc
%endif
#--------------------------------------------------------------------
%package python-libs
Summary: Python integration library for Apache Arrow
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: python%{python3_pkgversion}-numpy
%description python-libs
This package contains the Python integration library for Apache Arrow.
%files python-libs
%{python3_sitearch}/pyarrow/libarrow_python.so
#--------------------------------------------------------------------
%package python-devel
Summary: Libraries and header files for Python integration library
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-python-libs%{?_isa} = %{version}-%{release}
Requires: python%{python3_pkgversion}-devel
%description python-devel
Libraries and header files for Python integration library for Apache Arrow.
%files python-devel
%dir %{python3_sitearch}/pyarrow/include/arrow/python
%{python3_sitearch}/pyarrow/include/arrow/python/*
%exclude %{python3_sitearch}/pyarrow/include/arrow/python/flight.h
#--------------------------------------------------------------------
%if %{with use_flight}
%package python-flight-libs
Summary: Python integration library for Apache Arrow Flight
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-flight-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-python-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description python-flight-libs
This package contains the Python integration library for Apache Arrow Flight.
%files python-flight-libs
%{python3_sitearch}/pyarrow/libarrow_python_flight.so
#--------------------------------------------------------------------
%package python-flight-devel
Summary: Libraries and header files for Python integration
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-flight-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-python-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-python-flight-libs%{?_isa} = %{version}-%{release}
%description python-flight-devel
Libraries and header files for Python integration library for
Apache Arrow Flight.
%files python-flight-devel
%{python3_sitearch}/pyarrow/include/arrow/python/flight.h
%endif
%if %{with use_plasma}
#--------------------------------------------------------------------
%package -n plasma-libs
Summary: Runtime libraries for Plasma in-memory object store
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description -n plasma-libs
This package contains the libraries for Plasma in-memory object store.
%files -n plasma-libs
%{_libdir}/libplasma.so.*
#--------------------------------------------------------------------
%package -n plasma-store-server
Summary: Server for Plasma in-memory object store
Requires: plasma-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description -n plasma-store-server
This package contains the server for Plasma in-memory object store.
%files -n plasma-store-server
%{_bindir}/plasma-store-server
#--------------------------------------------------------------------
%package -n plasma-libs-devel
Summary: Libraries and header files for Plasma in-memory object store
Requires: plasma-libs%{?_isa} = %{version}-%{release}
# plasma-devel a.k.a. kdelibs-devel provides
# conflicts with all versions of plasma-devel %%{_libdir}/libplasma.so
BuildConflicts: plasma-devel
# conflicts with all versions of plasma-workspace-devel %%{_includedir}/*
BuildConflicts: plasma-workspace-devel
%description -n plasma-libs-devel
Libraries and header files for Plasma in-memory object store.
%files -n plasma-libs-devel
%dir %{_includedir}/plasma/
%{_includedir}/plasma/*
%{_libdir}/cmake/Arrow/Plasma*.cmake
%{_libdir}/libplasma.so
%{_libdir}/pkgconfig/plasma*.pc
%endif
#--------------------------------------------------------------------
%package -n parquet-libs
Summary: Runtime libraries for Apache Parquet C++
Requires: boost-program-options
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description -n parquet-libs
This package contains the libraries for Apache Parquet C++.
%files -n parquet-libs
%{_libdir}/libparquet.so.*
#--------------------------------------------------------------------
%package -n parquet-libs-devel
Summary: Libraries and header files for Apache Parquet C++
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: parquet-libs%{?_isa} = %{version}-%{release}
Requires: zlib-devel
%description -n parquet-libs-devel
Libraries and header files for Apache Parquet C++.
%files -n parquet-libs-devel
%dir %{_includedir}/parquet/
%{_includedir}/parquet/*
%{_libdir}/cmake/Parquet/*.cmake
%{_libdir}/libparquet.so
%{_libdir}/pkgconfig/parquet*.pc
#--------------------------------------------------------------------
%package glib-libs
Summary: Runtime libraries for Apache Arrow GLib
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description glib-libs
This package contains the libraries for Apache Arrow GLib.
%files glib-libs
%{_libdir}/libarrow-glib.so.*
%dir %{_libdir}/girepository-1.0/
%{_libdir}/girepository-1.0/Arrow-1.0.typelib
#--------------------------------------------------------------------
%package glib-devel
Summary: Libraries and header files for Apache Arrow GLib
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-libs%{?_isa} = %{version}-%{release}
Requires: glib2-devel
Requires: gobject-introspection-devel
%description glib-devel
Libraries and header files for Apache Arrow GLib.
%files glib-devel
%dir %{_includedir}/arrow-glib/
%{_includedir}/arrow-glib/*
%{_libdir}/libarrow-glib.so
%{_libdir}/pkgconfig/arrow-glib.pc
%{_libdir}/pkgconfig/arrow-orc-glib.pc
%dir %{_datadir}/arrow-glib/
%{_datadir}/arrow-glib/*
%dir %{_datadir}/gir-1.0/
%{_datadir}/gir-1.0/Arrow-1.0.gir
%{_datadir}/gir-1.0/ArrowFlight-1.0.gir
#--------------------------------------------------------------------
%package dataset-glib-libs
Summary: Runtime libraries for Apache Arrow dataset GLib
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-dataset-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description dataset-glib-libs
This package contains the libraries for Apache Arrow dataset GLib.
%files dataset-glib-libs
%{_libdir}/libarrow-dataset-glib.so.*
%dir %{_libdir}/girepository-1.0/
%{_libdir}/girepository-1.0/ArrowDataset-1.0.typelib
#--------------------------------------------------------------------
%package dataset-glib-devel
Summary: Libraries and header files for Apache Arrow dataset GLib
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-dataset-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-dataset-glib-libs%{?_isa} = %{version}-%{release}
%description dataset-glib-devel
Libraries and header files for Apache Arrow dataset GLib.
%files dataset-glib-devel
%dir %{_includedir}/arrow-dataset-glib/
%{_includedir}/arrow-dataset-glib/*
%{_libdir}/libarrow-dataset-glib.so
%{_libdir}/pkgconfig/arrow-dataset-glib.pc
%dir %{_datadir}/gir-1.0/
%{_datadir}/gir-1.0/ArrowDataset-1.0.gir
#--------------------------------------------------------------------
%if %{with use_gandiva}
%package -n gandiva-glib-libs
Summary: Runtime libraries for Gandiva GLib
Requires: gandiva-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description -n gandiva-glib-libs
This package contains the libraries for Gandiva GLib.
%files -n gandiva-glib-libs
%{_libdir}/libgandiva-glib.so.*
%dir %{_libdir}/girepository-1.0/
%{_libdir}/girepository-1.0/Gandiva-1.0.typelib
#--------------------------------------------------------------------
%package -n gandiva-glib-devel
Summary: Libraries and header files for Gandiva GLib
Requires: gandiva-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-devel%{?_isa} = %{version}-%{release}
%description -n gandiva-glib-devel
Libraries and header files for Gandiva GLib.
%files -n gandiva-glib-devel
%dir %{_includedir}/gandiva-glib/
%{_includedir}/gandiva-glib/*
%{_libdir}/libgandiva-glib.so
%{_libdir}/pkgconfig/gandiva-glib.pc
%dir %{_datadir}/gir-1.0/
%{_datadir}/gir-1.0/Gandiva-1.0.gir
%endif
%if %{with use_plasma}
#--------------------------------------------------------------------
%package -n plasma-glib-libs
Summary: Runtime libraries for Plasma GLib
Requires: plasma-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description -n plasma-glib-libs
This package contains the libraries for Plasma GLib.
%files -n plasma-glib-libs
%{_libdir}/libplasma-glib.so.*
%dir %{_libdir}/girepository-1.0/
%{_libdir}/girepository-1.0/Plasma-1.0.typelib
#--------------------------------------------------------------------
%package -n plasma-glib-devel
Summary: Libraries and header files for Plasma GLib
Requires: plasma-devel%{?_isa} = %{version}-%{release}
Requires: plasma-glib-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-devel%{?_isa} = %{version}-%{release}
%description -n plasma-glib-devel
Libraries and header files for Plasma GLib.
%files -n plasma-glib-devel
%dir %{_includedir}/plasma-glib/
%{_includedir}/plasma-glib/*
%{_libdir}/libplasma-glib.so
%{_libdir}/pkgconfig/plasma-glib.pc
%dir %{_datadir}/gir-1.0/
%{_datadir}/gir-1.0/Plasma-1.0.gir
%endif
#--------------------------------------------------------------------
%package -n parquet-glib-libs
Summary: Runtime libraries for Apache Parquet GLib
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: parquet-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-doc = %{version}-%{release}
%description -n parquet-glib-libs
This package contains the libraries for Apache Parquet GLib.
%files -n parquet-glib-libs
%{_libdir}/libparquet-glib.so.*
%dir %{_libdir}/girepository-1.0/
%{_libdir}/girepository-1.0/Parquet-1.0.typelib
#--------------------------------------------------------------------
%package -n parquet-glib-devel
Summary: Libraries and header files for Apache Parquet GLib
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: parquet-libs-devel%{?_isa} = %{version}-%{release}
Requires: parquet-glib-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-glib-devel%{?_isa} = %{version}-%{release}
%description -n parquet-glib-devel
Libraries and header files for Apache Parquet GLib.
%files -n parquet-glib-devel
%dir %{_includedir}/parquet-glib/
%{_includedir}/parquet-glib/*
%{_libdir}/libparquet-glib.so
%{_libdir}/pkgconfig/parquet-glib.pc
%dir %{_datadir}/gir-1.0/
%{_datadir}/gir-1.0/Parquet-1.0.gir
#--------------------------------------------------------------------
%package -n python3-pyarrow
Summary: Python library for Apache Arrow
%description -n python3-pyarrow
Python library for Apache Arrow
%files -n python3-pyarrow -f %{pyproject_files}
%exclude %{python3_sitearch}/pyarrow/lib_api.h
%exclude %{python3_sitearch}/pyarrow/include
#--------------------------------------------------------------------
%package -n python3-pyarrow-devel
Summary: Development files for python3-pyarrow
Requires: python3-pyarrow%{?_isa} = %{version}-%{release}
%description -n python3-pyarrow-devel
Development files for python3-pyarrow
%files -n python3-pyarrow-devel
%{python3_sitearch}/pyarrow/lib_api.h
%{python3_sitearch}/pyarrow/include
#--------------------------------------------------------------------
%prep
%autosetup -p1 -n apache-arrow-%{version}
# We do not need to (nor can we) build for an old version of numpy:
sed -r -i 's/(oldest-supported-)(numpy)/\2/' python/pyproject.toml
%generate_buildrequires
pushd python >/dev/null
export SETUPTOOLS_SCM_VERSION_WRITE_TO_PREFIX="python"
%pyproject_buildrequires
popd >/dev/null
%build
pushd cpp
%cmake \
%if %{with use_flight}
-DARROW_FLIGHT:BOOL=ON \
%endif
%if %{with use_gandiva}
-DARROW_GANDIVA:BOOL=ON \
%endif
%if %{with use_mimalloc}
-DARROW_MIMALLOC:BOOL=ON \
%endif
-DARROW_ORC=ON \
-DARROW_PARQUET:BOOL=ON \
%if %{with use_plasma}
-DARROW_PLASMA:BOOL=ON \
%endif
-DARROW_PYTHON:BOOL=ON \
-DARROW_JEMALLOC:BOOL=OFF \
-DARROW_SIMD_LEVEL:STRING='NONE' \
-DGRPC_SOURCE="SYSTEM" \
-Dxsimd_SOURCE="SYSTEM" \
%if %{with use_s3}
-DARROW_S3:BOOL=ON \
%endif
-DARROW_WITH_BROTLI:BOOL=ON \
-DARROW_WITH_BZ2:BOOL=ON \
-DARROW_WITH_LZ4:BOOL=ON \
-DARROW_WITH_SNAPPY:BOOL=ON \
-DARROW_WITH_ZLIB:BOOL=ON \
-DARROW_WITH_ZSTD:BOOL=ON \
-DARROW_USE_XSIMD:BOOL=ON \
-DARROW_BUILD_STATIC:BOOL=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_COLOR_MAKEFILE:BOOL=OFF \
-DARROW_USE_CCACHE:BOOL=OFF \
-DCMAKE_UNITY_BUILD:BOOL=ON \
-DPARQUET_REQUIRE_ENCRYPTION:BOOL=ON \
-DPythonInterp_FIND_VERSION:BOOL=ON \
-DPythonInterp_FIND_VERSION_MAJOR=3 \
%if %{with use_ninja}
-GNinja
%endif
export VERBOSE=1
export GCC_COLORS=
%cmake_build
popd
pushd c_glib
%meson \
-Darrow_cpp_build_dir=../cpp/%{_vpath_builddir} \
-Darrow_cpp_build_type=relwithdebinfo \
-Dgtk_doc=true
%meson_build
popd
# hack alert. install libarrow somewhere (temporary) so that python
# (i.e. pyarrow) can build against it. If someone knows how to invoke
# cmake or # pyproject_wheel using the bits in ../cpp instead, that
# would be preferable to this.
pushd cpp
DESTDIR="/tmp" %__cmake --install "%{__cmake_builddir}"
popd
pushd python
export \
CMAKE_PREFIX_PATH=/tmp%{_prefix} \
PYARROW_BUNDLE_ARROW_CPP_HEADERS=1 \
PYARROW_BUNDLE_PLASMA_EXECUTABLE=0 \
PYARROW_WITH_DATASET=1 \
PYARROW_WITH_FLIGHT=1 \
PYARROW_WITH_PARQUET=1 \
PYARROW_WITH_PARQUET_ENCRYPTION=1 \
%{?with_use_plasma:PYARROW_WITH_PLASMA=1} \
%{?with_use_gandiva:PYARROW_WITH_GANDIVA=1} \
PYARROW_PARALLEL=%{_smp_build_ncpus} \
PYARROW_INSTALL_TESTS=0 \
SETUPTOOLS_SCM_VERSION_WRITE_TO_PREFIX="python"
%pyproject_wheel
popd
rm -rf /tmp%{_prefix}
#--------------------------------------------------------------------
%install
pushd python
export PYARROW_INSTALL_TESTS=0
%pyproject_install
%pyproject_save_files pyarrow
popd
pushd c_glib
%meson_install
popd
pushd cpp
%cmake_install
popd
%check
export LD_LIBRARY_PATH='%{buildroot}%{_libdir}'
# While https://github.com/apache/arrow/pull/13904 partially fixes
# https://issues.apache.org/jira/browse/ARROW-17389, conftest.py is still
# installed. We must skip testing it because it would import pytest.
#
# Additionally, skip subpackages corresponding to missing optional
# functionality.
%{pyproject_check_import \
-e 'pyarrow.conftest' \
-e 'pyarrow.orc' -e 'pyarrow._orc' \
%{?!with_use_plasma:-e 'pyarrow.plasma' -e 'pyarrow._plasma'} \
-e 'pyarrow.substrait' -e 'pyarrow._substrait' \
-e 'pyarrow.cuda' \
-e 'pyarrow.libarrow_python' -e 'pyarrow._libarrow_python' \
-e 'pyarrow.libarrow_python_flight' -e 'pyarrow._libarrow_python_flight' \
-e 'pyarrow.libarrow_python_parquet_encryption' \
-e 'pyarrow.tests.read_record_batch' -e 'pyarrow.tests.test_cuda' \
-e 'pyarrow.tests.test_cuda_numba_interop' -e 'pyarrow.tests.test_jvm'}
#--------------------------------------------------------------------
%changelog
* Tue Dec 24 2024 Dmitriy Samoylik <samoylikdv@msvsphere-os.ru> - 17.0.0-6
- Rebuilt for MSVSphere 10
* Sun Nov 17 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 17.0.0-6
- Filter out bogus Provides/Requires from python3-pyarrow
- rebuild with liborc-2.0.3
* Fri Jul 18 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 17.0.0-4
- Arrow 17.0.0, rebuild with re2-20240702, side tag 98656
* Fri Jul 18 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 17.0.0-3
- Arrow 17.0.0, rebuild with re2-20240702
* Thu Jul 17 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 17.0.0-2
- Arrow 17.0.0, rebuild with re2-20240702
* Wed Jul 17 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 17.0.0-1
- Arrow 17.0.0 GA
* Tue Jun 18 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 16.1.0-5
- Arrow 16.1.0, rebuild with liborc-2.0.1 (after liborc1 -> liborc2)
* Sat Jun 08 2024 Python Maint <python-maint@redhat.com> - 16.1.0-4
- Rebuilt for Python 3.13
* Sun Jun 02 2024 Orion Poplawski <orion@nwra.com> - 16.1.0-3
- Rebuild with thrift 0.20
* Thu May 16 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 16.1.0-2
- Remove extraneous openssl dependencies
* Tue May 14 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 16.1.0-1
- Arrow 16.1.0 GA
* Mon Apr 22 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 16.0.0-1
- Arrow 16.0.0 GA
- N.B. See https://github.com/apache/arrow/issues/40604, it appears that
the ABI break is not (will not be) fixed.
* Mon Mar 25 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 15.0.2-3
- rebuild with liborc-2.0.0-2 (liborc1 -> liborc2)
* Wed Mar 20 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 15.0.2-2
- rhbz#2269811, fix ABI break
- partial revert of https://github.com/apache/arrow/pull/39866
* Tue Mar 19 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 15.0.2-1
- Arrow 15.0.2 GA
- Note: The ABI break reported https://github.com/apache/arrow/issues/40604
(bz 2269811) does NOT appear to be addressed in this release.
* Fri Mar 15 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 15.0.1-1
- Arrow 15.0.1 GA, w/ liborc 2.0.0
* Sat Feb 24 2024 Paul Wouters <paul.wouters@aiven.io> - 15.0.0-3
- Rebuilt for libre2.so.11 bump
* Sun Feb 04 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 15.0.0-2
- Rebuilt for abseil-cpp-20240116.0
* Thu Jan 25 2024 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 15.0.0-1
- Arrow 15.0.0 GA
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 14.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Dec 19 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 14.0.2-1
- Arrow 14.0.2 GA
* Wed Nov 15 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 14.0.1-2
- Arrow 14.0.1, rebuild for f40-build-side-76708, liborc
* Thu Nov 9 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 14.0.1-1
- Arrow 14.0.1 GA, rhbz#2248695
* Wed Nov 1 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 14.0.0-2
- Rebuild for ceph for gtest 1.14.0
* Wed Nov 1 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 14.0.0-1
- Arrow 14.0.0 GA, rhbz#2244967, and w/ Cython3 again
* Tue Aug 29 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 13.0.0-3
- Rebuilt for abseil-cpp-20230802.0
* Thu Aug 24 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 13.0.0-2
- Arrow 13.0.0, source from https://archive.apache.org/dist/arrow/
* Tue Aug 1 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 13.0.0-1
- Arrow 13.0.0 GA, rhbz#2224127
- and back to cython 0.29.31
* Tue Jul 25 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 12.0.1-6
- rebuild with Cython 3
* Mon Jul 24 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 12.0.1-5
- for some reason the rebuild did not use Cython 3, despite the lack of a
BR selecting 0.29 or 3.0. Which was fortuitous because it fails to build
with Cython 3. (see https://github.com/apache/arrow/issues/36857).
Explicitly pinning cython to 0.29 temporarily while awaiting a fix.
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 12.0.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Jun 18 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 12.0.1-3
- Rebuilt for Python 3.12 and thrift-0.15.0
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 12.0.1-2
- Rebuilt for Python 3.12
* Wed Jun 14 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 12.0.1-1
- Arrow 12.0.1 GA
* Mon May 1 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 12.0.0-1
- Arrow 12.0.0 GA
* Wed Mar 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 11.0.0-2
- Arrow 11.0.0, rebuild with abseil-cpp 20230125.1
* Thu Feb 9 2023 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 11.0.0-1
- Arrow 11.0.0 GA
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Dec 5 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 10.0.1-2
- Arrow 10.0.1, rebuild with xsimd-10, liborc-1.8.1
* Thu Dec 1 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 10.0.1-1
- Arrow 10.0.1 GA
* Fri Nov 11 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com>
- SPDX migration
* Wed Sep 7 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 9.0.0-7
- Arrow 9.0.0, rebuild with xsimd 9.0.1
* Sun Sep 4 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 9.0.0-6
- Arrow 9.0.0, rebuild with liborc 1.8.0
* Mon Aug 22 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 9.0.0-5
- Update pyarrow test patch (PR#13904)
* Mon Aug 22 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 9.0.0-4
- Rebuilt for grpc 1.48.0
* Wed Aug 17 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 9.0.0-3
- Use %%pyproject_save_files to fix pyarrow metadata
- Use generated BRs for pyarrow
- Add import-only “smoke tests” for pyarrow
- Stop requiring SSE4.2 on x86-family platforms
- Correct ARROW_WITH_XSIMD; should be ARROW_USE_XSIMD
- Enable more optional functionality in pyarrow
- Fix pyarrow tests installed despite PYARROW_INSTALL_TESTS=0
* Wed Aug 10 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 9.0.0-2
- Arrow 9.0.0, enable python, i.e. python3-pyarrow, subpackage
* Wed Aug 3 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 9.0.0-1
- Arrow 9.0.0 GA
* Thu Jul 21 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 8.0.1-1
- Arrow 8.0.1 GA
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 8.0.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed May 18 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 8.0.0-3
- rebuild with xsimd-8.1.0
* Mon May 16 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 8.0.0-2
- rebuild with grpc-1.46.1
* Sun May 8 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 8.0.0-1
- Arrow 8.0.0 GA
* Thu Jan 13 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 7.0.0-1
- New upstream release.