# -*- 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.

%define __python /usr/bin/python3

%define _amzn %{?amzn:%{amzn}}%{!?amzn:0}
%define is_amazon_linux (%{_amzn} != 0)

%define major_version %(echo @VERSION@ | grep -o '^[0-9]*')

%define boost_version %( \
  if [ %{rhel} -eq 7 ]; then \
    echo 169; \
  fi)
%define cmake_version %( \
  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 make -C %{arrow_cmake_builddir} %{?_smp_mflags}
%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 make -C %{arrow_cmake_builddir} %{?_smp_mflags}
%define arrow_cmake_install DESTDIR="%{buildroot}" make -C %{arrow_cmake_builddir} install
%endif

%define use_boost (!%{is_amazon_linux})
# TODO: Enable this on aarch64 too. This causes timeout on Travis CI.
%define use_flight (%{rhel} >= 8 && "%{_arch}" != "aarch64")
%define use_gandiva (%{rhel} >= 8 && "%{_arch}" != "aarch64")
%define use_gcs (%{rhel} >= 8)
%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 0

%define have_rapidjson (%{rhel} != 8)
%define have_re2 (%{rhel} >= 8)
%define have_thrift (%{rhel} >= 8)
%define have_utf8proc (%{rhel} >= 9)
%define have_zstd (!%{is_amazon_linux})

Name:		@PACKAGE@
Version:	@VERSION@
Release:	@RELEASE@%{?dist}
Summary:	Apache Arrow is a data processing library for analysis

License:	Apache-2.0
URL:		https://arrow.apache.org/
Source0:	https://dist.apache.org/repos/dist/release/@PACKAGE@/@PACKAGE@-%{version}/apache-@PACKAGE@-%{version}.tar.gz

BuildRequires:	bison
%if %{use_boost}
BuildRequires:	boost%{boost_version}-devel
%endif
BuildRequires:	brotli-devel
BuildRequires:	bzip2-devel
%if %{use_flight}
BuildRequires:	c-ares-devel
%endif
BuildRequires:	cmake%{cmake_version}
BuildRequires:	curl-devel
BuildRequires:	flex
BuildRequires:	gcc-c++
%if %{use_gflags}
BuildRequires:	gflags-devel
%endif
BuildRequires:	git
%if %{use_glog}
BuildRequires:	glog-devel
%endif
%if %{use_gcs}
BuildRequires:	json-devel
%endif
%if %{have_zstd}
BuildRequires:	libzstd-devel
%endif
BuildRequires:	lz4-devel %{lz4_requirement}
BuildRequires:	ninja-build
BuildRequires:	openssl-devel
BuildRequires:	pkgconfig
%if %{use_python}
BuildRequires:	python%{python_version}-devel
BuildRequires:	python%{python_version}-numpy
%endif
%if %{have_rapidjson}
BuildRequires:	rapidjson-devel
%endif
%if %{have_re2}
BuildRequires:	re2-devel
%endif
BuildRequires:	snappy-devel
%if %{have_thrift}
BuildRequires:	thrift-devel
%endif
%if %{have_utf8proc}
BuildRequires:	utf8proc-devel
%endif
BuildRequires:	zlib-devel

%if %{use_gandiva}
BuildRequires:	llvm-devel
BuildRequires:	ncurses-devel
%endif

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

%description
Apache Arrow is a data processing library for analysis.

%prep
%setup -q -n apache-@PACKAGE@-%{version}

%build
cpp_build_type=release
cd cpp
%arrow_cmake \
  -DARROW_CSV=ON \
  -DARROW_DATASET=ON \
%if %{use_flight}
  -DARROW_FLIGHT=ON \
  -DARROW_FLIGHT_SQL=ON \
%endif
%if %{use_gandiva}
  -DARROW_GANDIVA=ON \
%endif
%if %{use_gcs}
  -DARROW_GCS=ON \
%endif
  -DARROW_HDFS=ON \
  -DARROW_JSON=ON \
%if %{use_mimalloc}
  -DARROW_MIMALLOC=ON \
%endif
  -DARROW_ORC=ON \
  -DARROW_PACKAGE_KIND=rpm \
  -DARROW_PARQUET=ON \
  -DARROW_PLASMA=ON \
%if %{use_python}
  -DARROW_PYTHON=ON \
%endif
%if %{use_s3}
  -DARROW_S3=ON \
%endif
  -DARROW_USE_CCACHE=OFF \
  -DARROW_WITH_BROTLI=ON \
  -DARROW_WITH_BZ2=ON \
  -DARROW_WITH_LZ4=ON \
  -DARROW_WITH_SNAPPY=ON \
  -DARROW_WITH_ZLIB=ON \
  -DARROW_WITH_ZSTD=ON \
  -DCMAKE_BUILD_TYPE=$cpp_build_type \
  -DPARQUET_REQUIRE_ENCRYPTION=ON \
%if %{use_python}
  -DPythonInterp_FIND_VERSION=ON \
  -DPythonInterp_FIND_VERSION_MAJOR=3 \
%endif
  -G"Unix Makefiles"
%arrow_cmake_build
cd -

cd c_glib
%if (%{rhel} >= 8 || "%{_arch}" != "aarch64")
  pip3 install meson
%else
  # Meson 0.57.0 or later requires Ninja 1.8.2 or later but EPEL for
  # Amazon Linux 2 aarch64 provides Ninja 1.7.2. We can remove
  # '<0.57.0' once we drop support for Amazon Linux 2.
  pip3 install 'meson<0.57.0'
%endif
meson setup build \
  --default-library=both \
  --libdir=%{_libdir} \
  --prefix=%{_prefix} \
  -Darrow_cpp_build_dir=../cpp/%{arrow_cmake_builddir} \
  -Darrow_cpp_build_type=$cpp_build_type \
  -Dgtk_doc=true \
  -Dvapi=true

LD_LIBRARY_PATH=$PWD/../cpp/%{arrow_cmake_builddir}/$cpp_build_type \
  meson compile -C build %{?_smp_mflags}
cd -

%install
cpp_build_type=release

cd c_glib
DESTDIR=%{buildroot} meson install -C build
cd -

cd cpp
%arrow_cmake_install
rm -rf %{buildroot}%{_docdir}/arrow/
cd -

%package -n %{name}%{major_version}-libs
Summary:	Runtime libraries for Apache Arrow C++
License:	Apache-2.0
Requires:	brotli
%if %{use_gflags}
Requires:	gflags
%endif
%if %{use_glog}
Requires:	glog
%endif
%if %{have_zstd}
Requires:	libzstd
%endif
Requires:	lz4 %{lz4_requirement}
%if %{have_re2}
Requires:	re2
%endif
Requires:	snappy
%if %{have_utf8proc}
Requires:	utf8proc
%endif
Requires:	zlib

%description -n %{name}%{major_version}-libs
This package contains the libraries for Apache Arrow C++.

%files -n %{name}%{major_version}-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow.so.*

%package devel
Summary:	Libraries and header files for Apache Arrow C++
License:	Apache-2.0
Requires:	%{name}%{major_version}-libs = %{version}-%{release}
Requires:	brotli-devel
Requires:	bzip2-devel
%if %{use_flight}
Requires:	c-ares-devel
%endif
%if %{use_gcs}
Requires:	json-devel
%endif
%if %{have_zstd}
Requires:	libzstd-devel
%endif
Requires:	lz4-devel %{lz4_requirement}
Requires:	openssl-devel
%if %{have_rapidjson}
Requires:	rapidjson-devel
%endif
%if %{have_re2}
Requires:	re2-devel
%endif
Requires:	snappy-devel
%if %{have_utf8proc}
Requires:	utf8proc-devel
%endif
Requires:	zlib-devel

%description devel
Libraries and header files for Apache Arrow C++.

%files devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_datadir}/arrow/gdb/
%{_datadir}/gdb/auto-load/
%{_includedir}/arrow/
%exclude %{_includedir}/arrow/dataset/
%if %{use_flight}
%exclude %{_includedir}/arrow/flight/
%endif
%exclude %{_includedir}/arrow/python/
%{_libdir}/cmake/arrow/ArrowConfig*.cmake
%{_libdir}/cmake/arrow/ArrowOptions.cmake
%{_libdir}/cmake/arrow/ArrowTargets*.cmake
%{_libdir}/cmake/arrow/FindArrow.cmake
%{_libdir}/cmake/arrow/FindBrotli.cmake
%{_libdir}/cmake/arrow/FindSnappyAlt.cmake
%if %{have_thrift}
%{_libdir}/cmake/arrow/FindThrift.cmake
%endif
%if %{use_flight}
%{_libdir}/cmake/arrow/Findc-aresAlt.cmake
%endif
%{_libdir}/cmake/arrow/Findlz4Alt.cmake
%if %{have_re2}
%{_libdir}/cmake/arrow/Findre2Alt.cmake
%endif
%if %{have_utf8proc}
%{_libdir}/cmake/arrow/Findutf8proc.cmake
%endif
%if %{have_zstd}
%{_libdir}/cmake/arrow/Findzstd.cmake
%endif
%{_libdir}/cmake/arrow/arrow-config.cmake
%{_libdir}/libarrow.a
%{_libdir}/libarrow.so
%{_libdir}/libarrow_bundled_dependencies.a
%{_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

%package -n %{name}%{major_version}-dataset-libs
Summary:	C++ library to read and write semantic datasets stored in different locations and formats
License:	Apache-2.0
Requires:	%{name}%{major_version}-libs = %{version}-%{release}

%description -n %{name}%{major_version}-dataset-libs
This package contains the libraries for Apache Arrow dataset.

%files -n %{name}%{major_version}-dataset-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow_dataset.so.*

%package dataset-devel
Summary:	Libraries and header files for Apache Arrow dataset.
License:	Apache-2.0
Requires:	%{name}%{major_version}-dataset-libs = %{version}-%{release}
Requires:	%{name}-devel = %{version}-%{release}

%description dataset-devel
Libraries and header files for Apache Arrow dataset.

%files dataset-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow/dataset/
%{_libdir}/cmake/arrow/ArrowDatasetConfig*.cmake
%{_libdir}/cmake/arrow/ArrowDatasetTargets*.cmake
%{_libdir}/cmake/arrow/FindArrowDataset.cmake
%{_libdir}/libarrow_dataset.a
%{_libdir}/libarrow_dataset.so
%{_libdir}/pkgconfig/arrow-dataset.pc

%if %{use_flight}
%package -n %{name}%{major_version}-flight-libs
Summary:	C++ library for fast data transport.
License:	Apache-2.0
Requires:	%{name}%{major_version}-libs = %{version}-%{release}
Requires:	c-ares
Requires:	openssl

%description -n %{name}%{major_version}-flight-libs
This package contains the libraries for Apache Arrow Flight.

%files -n %{name}%{major_version}-flight-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow_flight.so.*

%package flight-devel
Summary:	Libraries and header files for Apache Arrow Flight.
License:	Apache-2.0
Requires:	%{name}%{major_version}-flight-libs = %{version}-%{release}
Requires:	%{name}-devel = %{version}-%{release}

%description flight-devel
Libraries and header files for Apache Arrow Flight.

%files flight-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow/flight/
%exclude %{_includedir}/arrow/flight/sql/
%{_libdir}/cmake/arrow/ArrowFlightConfig*.cmake
%{_libdir}/cmake/arrow/ArrowFlightTargets*.cmake
%{_libdir}/cmake/arrow/FindArrowFlight.cmake
%{_libdir}/libarrow_flight.a
%{_libdir}/libarrow_flight.so
%{_libdir}/pkgconfig/arrow-flight.pc

%package -n %{name}%{major_version}-flight-sql-libs
Summary:	C++ library for interacting with SQL databases.
License:	Apache-2.0
Requires:	%{name}%{major_version}-flight-libs = %{version}-%{release}

%description -n %{name}%{major_version}-flight-sql-libs
This package contains the libraries for Apache Arrow Flight SQL.

%files -n %{name}%{major_version}-flight-sql-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow_flight_sql.so.*

%package flight-sql-devel
Summary:	Libraries and header files for Apache Arrow Flight SQL.
License:	Apache-2.0
Requires:	%{name}%{major_version}-flight-sql-libs = %{version}-%{release}
Requires:	%{name}-devel = %{version}-%{release}

%description flight-sql-devel
Libraries and header files for Apache Arrow Flight SQL.

%files flight-sql-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow/flight/sql/
%{_libdir}/cmake/arrow/ArrowFlightSqlConfig*.cmake
%{_libdir}/cmake/arrow/ArrowFlightSqlTargets*.cmake
%{_libdir}/cmake/arrow/FindArrowFlightSql.cmake
%{_libdir}/libarrow_flight_sql.a
%{_libdir}/libarrow_flight_sql.so
%{_libdir}/pkgconfig/arrow-flight-sql.pc
%endif

%if %{use_gandiva}
%package -n gandiva%{major_version}-libs
Summary:	C++ library for compiling and evaluating expressions on Apache Arrow data.
License:	Apache-2.0
Requires:	%{name}%{major_version}-libs = %{version}-%{release}
Requires:	ncurses-libs

%description -n gandiva%{major_version}-libs
This package contains the libraries for Gandiva.

%files -n gandiva%{major_version}-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libgandiva.so.*

%package -n gandiva-devel
Summary:	Libraries and header files for Gandiva.
License:	Apache-2.0
Requires:	%{name}-devel = %{version}-%{release}
Requires:	gandiva%{major_version}-libs = %{version}-%{release}
Requires:	llvm-devel

%description -n gandiva-devel
Libraries and header files for Gandiva.

%files -n gandiva-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/gandiva/
%{_libdir}/cmake/arrow/GandivaConfig*.cmake
%{_libdir}/cmake/arrow/GandivaTargets*.cmake
%{_libdir}/cmake/arrow/FindGandiva.cmake
%{_libdir}/libgandiva.a
%{_libdir}/libgandiva.so
%{_libdir}/pkgconfig/gandiva.pc
%endif

%if %{use_python}
%package -n %{name}%{major_version}-python-libs
Summary:	Python integration library for Apache Arrow
License:	Apache-2.0
Requires:	%{name}%{major_version}-libs = %{version}-%{release}
Requires:	python%{python_version}-numpy

%description -n %{name}%{major_version}-python-libs
This package contains the Python integration library for Apache Arrow.

%files -n %{name}%{major_version}-python-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow_python.so.*

%package python-devel
Summary:	Libraries and header files for Python integration library for Apache Arrow
License:	Apache-2.0
Requires:	%{name}%{major_version}-python-libs = %{version}-%{release}
Requires:	%{name}-devel = %{version}-%{release}
Requires:	python%{python_version}-devel

%description python-devel
Libraries and header files for Python integration library for Apache Arrow.

%files python-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow/python/
%exclude %{_includedir}/arrow/python/flight.h
%{_libdir}/cmake/arrow/ArrowPythonConfig*.cmake
%{_libdir}/cmake/arrow/ArrowPythonTargets*.cmake
%{_libdir}/cmake/arrow/FindArrowPython.cmake
%{_libdir}/libarrow_python.a
%{_libdir}/libarrow_python.so
%{_libdir}/pkgconfig/arrow-python.pc

%if %{use_flight}
%package -n %{name}%{major_version}-python-flight-libs
Summary:	Python integration library for Apache Arrow Flight
License:	Apache-2.0
Requires:	%{name}%{major_version}-flight-libs = %{version}-%{release}
Requires:	%{name}%{major_version}-python-libs = %{version}-%{release}

%description -n %{name}%{major_version}-python-flight-libs
This package contains the Python integration library for Apache Arrow Flight.

%files -n %{name}%{major_version}-python-flight-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow_python_flight.so.*

%package python-flight-devel
Summary:	Libraries and header files for Python integration library for Apache Arrow Flight.
License:	Apache-2.0
Requires:	%{name}%{major_version}-python-flight-libs = %{version}-%{release}
Requires:	%{name}-flight-devel = %{version}-%{release}
Requires:	%{name}-python-devel = %{version}-%{release}

%description python-flight-devel
Libraries and header files for Python integration library for
Apache Arrow Flight.

%files python-flight-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow/python/flight.h
%{_libdir}/cmake/arrow/ArrowPythonFlightConfig*.cmake
%{_libdir}/cmake/arrow/ArrowPythonFlightTargets*.cmake
%{_libdir}/cmake/arrow/FindArrowPythonFlight.cmake
%{_libdir}/libarrow_python_flight.a
%{_libdir}/libarrow_python_flight.so
%{_libdir}/pkgconfig/arrow-python-flight.pc
%endif
%endif

%package -n plasma%{major_version}-libs
Summary:	Runtime libraries for Plasma in-memory object store
License:	Apache-2.0
Requires:	%{name}%{major_version}-libs = %{version}-%{release}

%description -n plasma%{major_version}-libs
This package contains the libraries for Plasma in-memory object store.

%files -n plasma%{major_version}-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libplasma.so.*

%package -n plasma-store-server
Summary:	Server for Plasma in-memory object store
License:	Apache-2.0
Requires:	plasma%{major_version}-libs = %{version}-%{release}

%description -n plasma-store-server
This package contains the server for Plasma in-memory object store.

%files -n plasma-store-server
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_bindir}/plasma-store-server

%package -n plasma-devel
Summary:	Libraries and header files for Plasma in-memory object store
License:	Apache-2.0
Requires:	%{name}-devel = %{version}-%{release}
Requires:	plasma%{major_version}-libs = %{version}-%{release}

%description -n plasma-devel
Libraries and header files for Plasma in-memory object store.

%files -n plasma-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/plasma/
%{_libdir}/cmake/arrow/PlasmaConfig*.cmake
%{_libdir}/cmake/arrow/PlasmaTargets*.cmake
%{_libdir}/cmake/arrow/FindPlasma.cmake
%{_libdir}/libplasma.a
%{_libdir}/libplasma.so
%{_libdir}/pkgconfig/plasma*.pc

%package -n parquet%{major_version}-libs
Summary:	Runtime libraries for Apache Parquet C++
License:	Apache-2.0
Requires:	%{name}%{major_version}-libs = %{version}-%{release}
Requires:	openssl

%description -n parquet%{major_version}-libs
This package contains the libraries for Apache Parquet C++.

%files -n parquet%{major_version}-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libparquet.so.*

%package -n parquet-devel
Summary:	Libraries and header files for Apache Parquet C++
License:	Apache-2.0
Requires:	%{name}-devel = %{version}-%{release}
Requires:	parquet%{major_version}-libs = %{version}-%{release}
Requires:	zlib-devel

%description -n parquet-devel
Libraries and header files for Apache Parquet C++.

%files -n parquet-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/parquet/
%{_libdir}/cmake/arrow/ParquetConfig*.cmake
%{_libdir}/cmake/arrow/ParquetTargets*.cmake
%{_libdir}/cmake/arrow/FindParquet.cmake
%{_libdir}/libparquet.a
%{_libdir}/libparquet.so
%{_libdir}/pkgconfig/parquet*.pc

%package -n %{name}%{major_version}-glib-libs
Summary:	Runtime libraries for Apache Arrow GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-libs = %{version}-%{release}
Requires:	glib2

%description -n %{name}%{major_version}-glib-libs
This package contains the libraries for Apache Arrow GLib.

%files -n %{name}%{major_version}-glib-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow-glib.so.*
%{_datadir}/gir-1.0/Arrow-1.0.gir

%package glib-devel
Summary:	Libraries and header files for Apache Arrow GLib
License:	Apache-2.0
Requires:	%{name}-devel = %{version}-%{release}
Requires:	%{name}%{major_version}-glib-libs = %{version}-%{release}
Requires:	glib2-devel
Requires:	gobject-introspection-devel

%description glib-devel
Libraries and header files for Apache Arrow GLib.

%files glib-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow-glib/
%{_libdir}/libarrow-glib.a
%{_libdir}/libarrow-glib.so
%{_libdir}/pkgconfig/arrow-glib.pc
%{_libdir}/pkgconfig/arrow-orc-glib.pc
%{_libdir}/girepository-1.0/Arrow-1.0.typelib
%{_datadir}/arrow-glib/example/
%{_datadir}/vala/vapi/arrow-glib.*

%package glib-doc
Summary:	Documentation for Apache Arrow GLib
License:	Apache-2.0

%description glib-doc
Documentation for Apache Arrow GLib.

%files glib-doc
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_docdir}/arrow-glib/
%{_datadir}/gtk-doc/html/arrow-glib/

%package -n %{name}%{major_version}-dataset-glib-libs
Summary:	Runtime libraries for Apache Arrow Dataset GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-dataset-libs = %{version}-%{release}
Requires:	%{name}%{major_version}-glib-libs = %{version}-%{release}

%description -n %{name}%{major_version}-dataset-glib-libs
This package contains the libraries for Apache Arrow Dataset GLib.

%files -n %{name}%{major_version}-dataset-glib-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow-dataset-glib.so.*
%{_datadir}/gir-1.0/ArrowDataset-1.0.gir

%package dataset-glib-devel
Summary:	Libraries and header files for Apache Arrow Dataset GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-dataset-glib-libs = %{version}-%{release}
Requires:	%{name}-dataset-devel = %{version}-%{release}
Requires:	%{name}-glib-devel = %{version}-%{release}

%description dataset-glib-devel
Libraries and header files for Apache Arrow Dataset GLib.

%files dataset-glib-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow-dataset-glib/
%{_libdir}/libarrow-dataset-glib.a
%{_libdir}/libarrow-dataset-glib.so
%{_libdir}/pkgconfig/arrow-dataset-glib.pc
%{_libdir}/girepository-1.0/ArrowDataset-1.0.typelib
%{_datadir}/vala/vapi/arrow-dataset-glib.*

%package dataset-glib-doc
Summary:	Documentation for Apache Arrow Dataset GLib
License:	Apache-2.0

%description dataset-glib-doc
Documentation for Apache Arrow dataset GLib.

%files dataset-glib-doc
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_datadir}/gtk-doc/html/arrow-dataset-glib/

%if %{use_flight}
%package -n %{name}%{major_version}-flight-glib-libs
Summary:	Runtime libraries for Apache Arrow Flight GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-flight-libs = %{version}-%{release}
Requires:	%{name}%{major_version}-glib-libs = %{version}-%{release}

%description -n %{name}%{major_version}-flight-glib-libs
This package contains the libraries for Apache Arrow Flight GLib.

%files -n %{name}%{major_version}-flight-glib-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow-flight-glib.so.*
%{_datadir}/gir-1.0/ArrowFlight-1.0.gir

%package flight-glib-devel
Summary:	Libraries and header files for Apache Arrow Flight GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-flight-glib-libs = %{version}-%{release}
Requires:	%{name}-flight-devel = %{version}-%{release}
Requires:	%{name}-glib-devel = %{version}-%{release}

%description flight-glib-devel
Libraries and header files for Apache Arrow Flight GLib.

%files flight-glib-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow-flight-glib/
%{_libdir}/libarrow-flight-glib.a
%{_libdir}/libarrow-flight-glib.so
%{_libdir}/pkgconfig/arrow-flight-glib.pc
%{_libdir}/girepository-1.0/ArrowFlight-1.0.typelib
%{_datadir}/vala/vapi/arrow-flight-glib.*

%package flight-glib-doc
Summary:	Documentation for Apache Arrow Flight GLib
License:	Apache-2.0

%description flight-glib-doc
Documentation for Apache Arrow Flight GLib.

%files flight-glib-doc
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_datadir}/gtk-doc/html/arrow-flight-glib/

%package -n %{name}%{major_version}-flight-sql-glib-libs
Summary:	Runtime libraries for Apache Arrow Flight SQL GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-flight-sql-libs = %{version}-%{release}
Requires:	%{name}%{major_version}-flight-glib-libs = %{version}-%{release}

%description -n %{name}%{major_version}-flight-sql-glib-libs
This package contains the libraries for Apache Arrow Flight SQL GLib.

%files -n %{name}%{major_version}-flight-sql-glib-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libarrow-flight-sql-glib.so.*
%{_datadir}/gir-1.0/ArrowFlightSQL-1.0.gir

%package flight-sql-glib-devel
Summary:	Libraries and header files for Apache Arrow Flight SQL GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-flight-sql-glib-libs = %{version}-%{release}
Requires:	%{name}-flight-sql-devel = %{version}-%{release}
Requires:	%{name}-flight-glib-devel = %{version}-%{release}

%description flight-sql-glib-devel
Libraries and header files for Apache Arrow Flight SQL GLib.

%files flight-sql-glib-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/arrow-flight-sql-glib/
%{_libdir}/libarrow-flight-sql-glib.a
%{_libdir}/libarrow-flight-sql-glib.so
%{_libdir}/pkgconfig/arrow-flight-sql-glib.pc
%{_libdir}/girepository-1.0/ArrowFlightSQL-1.0.typelib
%{_datadir}/vala/vapi/arrow-flight-sql-glib.*

%package flight-sql-glib-doc
Summary:	Documentation for Apache Arrow Flight SQL GLib
License:	Apache-2.0

%description flight-sql-glib-doc
Documentation for Apache Arrow Flight SQL GLib.

%files flight-sql-glib-doc
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_datadir}/gtk-doc/html/arrow-flight-sql-glib/
%endif

%if %{use_gandiva}
%package -n gandiva%{major_version}-glib-libs
Summary:	Runtime libraries for Gandiva GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-glib-libs = %{version}-%{release}
Requires:	gandiva%{major_version}-libs = %{version}-%{release}

%description -n gandiva%{major_version}-glib-libs
This package contains the libraries for Gandiva GLib.

%files -n gandiva%{major_version}-glib-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libgandiva-glib.so.*
%{_datadir}/gir-1.0/Gandiva-1.0.gir

%package -n gandiva-glib-devel
Summary:	Libraries and header files for Gandiva GLib
License:	Apache-2.0
Requires:	%{name}-glib-devel = %{version}-%{release}
Requires:	gandiva%{major_version}-glib-libs = %{version}-%{release}
Requires:	gandiva-devel = %{version}-%{release}

%description -n gandiva-glib-devel
Libraries and header files for Gandiva GLib.

%files -n gandiva-glib-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/gandiva-glib/
%{_libdir}/libgandiva-glib.a
%{_libdir}/libgandiva-glib.so
%{_libdir}/pkgconfig/gandiva-glib.pc
%{_libdir}/girepository-1.0/Gandiva-1.0.typelib
%{_datadir}/vala/vapi/gandiva-glib.*

%package -n gandiva-glib-doc
Summary:	Documentation for Gandiva GLib
License:	Apache-2.0

%description -n gandiva-glib-doc
Documentation for Gandiva GLib.

%files -n gandiva-glib-doc
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_datadir}/gtk-doc/html/gandiva-glib/
%endif

%package -n plasma%{major_version}-glib-libs
Summary:	Runtime libraries for Plasma GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-glib-libs = %{version}-%{release}
Requires:	plasma%{major_version}-libs = %{version}-%{release}

%description -n plasma%{major_version}-glib-libs
This package contains the libraries for Plasma GLib.

%files -n plasma%{major_version}-glib-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libplasma-glib.so.*
%{_datadir}/gir-1.0/Plasma-1.0.gir

%package -n plasma-glib-devel
Summary:	Libraries and header files for Plasma GLib
License:	Apache-2.0
Requires:	%{name}-glib-devel = %{version}-%{release}
Requires:	plasma%{major_version}-glib-libs = %{version}-%{release}
Requires:	plasma-devel = %{version}-%{release}

%description -n plasma-glib-devel
Libraries and header files for Plasma GLib.

%files -n plasma-glib-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/plasma-glib/
%{_libdir}/libplasma-glib.a
%{_libdir}/libplasma-glib.so
%{_libdir}/pkgconfig/plasma-glib.pc
%{_libdir}/girepository-1.0/Plasma-1.0.typelib
%{_datadir}/vala/vapi/plasma-glib.*

%package -n plasma-glib-doc
Summary:	Documentation for Plasma GLib
License:	Apache-2.0

%description -n plasma-glib-doc
Documentation for Plasma GLib.

%files -n plasma-glib-doc
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_datadir}/gtk-doc/html/plasma-glib/

%package -n parquet%{major_version}-glib-libs
Summary:	Runtime libraries for Apache Parquet GLib
License:	Apache-2.0
Requires:	%{name}%{major_version}-glib-libs = %{version}-%{release}
Requires:	parquet%{major_version}-libs = %{version}-%{release}

%description -n parquet%{major_version}-glib-libs
This package contains the libraries for Apache Parquet GLib.

%files -n parquet%{major_version}-glib-libs
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_libdir}/libparquet-glib.so.*
%{_datadir}/gir-1.0/Parquet-1.0.gir

%package -n parquet-glib-devel
Summary:	Libraries and header files for Apache Parquet GLib
License:	Apache-2.0
Requires:	%{name}-glib-devel = %{version}-%{release}
Requires:	parquet%{major_version}-glib-libs = %{version}-%{release}
Requires:	parquet-devel = %{version}-%{release}

%description -n parquet-glib-devel
Libraries and header files for Apache Parquet GLib.

%files -n parquet-glib-devel
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_includedir}/parquet-glib/
%{_libdir}/libparquet-glib.a
%{_libdir}/libparquet-glib.so
%{_libdir}/pkgconfig/parquet-glib.pc
%{_libdir}/girepository-1.0/Parquet-1.0.typelib
%{_datadir}/vala/vapi/parquet-glib.*

%package -n parquet-glib-doc
Summary:	Documentation for Apache Parquet GLib
License:	Apache-2.0

%description -n parquet-glib-doc
Documentation for Apache Parquet GLib.

%files -n parquet-glib-doc
%defattr(-,root,root,-)
%doc README.md
%license LICENSE.txt NOTICE.txt
%{_datadir}/gtk-doc/html/parquet-glib/

%changelog
* Fri Jul 29 2022 Krisztián Szűcs <szucs.krisztian@gmail.com> - 9.0.0-1
- New upstream release.

* Tue May 03 2022 Krisztián Szűcs <szucs.krisztian@gmail.com> - 8.0.0-1
- New upstream release.

* Sat Jan 29 2022 Krisztián Szűcs <szucs.krisztian@gmail.com> - 7.0.0-1
- New upstream release.

* Mon Jan 18 2021 Krisztián Szűcs <szucs.krisztian@gmail.com> - 3.0.0-1
- New upstream release.

* Mon Oct 12 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 2.0.0-1
- New upstream release.

* Mon Jul 20 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 1.0.0-1
- New upstream release.

* Thu Apr 16 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.17.0-1
- New upstream release.

* Thu Jan 30 2020 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.16.0-1
- New upstream release.

* Mon Sep 30 2019 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.15.0-1
- New upstream release.

* Fri Jun 28 2019 Sutou Kouhei <kou@clear-code.com> - 0.14.0-1
- New upstream release.

* Thu Mar 28 2019 Kouhei Sutou <kou@clear-code.com> - 0.13.0-1
- New upstream release.

* Wed Jan 16 2019 Krisztián Szűcs <szucs.krisztian@gmail.com> - 0.12.0-1
- New upstream release.

* Thu Oct 04 2018 Kouhei Sutou <kou@clear-code.com> - 0.11.0-1
- New upstream release.

* Thu Aug 02 2018 Phillip Cloud <cpcloud@gmail.com> - 0.10.0-1
- New upstream release.

* Fri Mar 16 2018 Kouhei Sutou <kou@clear-code.com> - 0.9.0-1
- New upstream release.

* Sun Dec 17 2017 Uwe Korn <uwelk@xhochy.com> - 0.8.0-1
- New upstream release.

* Wed Sep 27 2017 Kouhei Sutou <kou@clear-code.com> - 0.7.1-1
- New upstream release.

* Tue Sep 12 2017 Wes McKinney <wes.mckinney@twosigma.com> - 0.7.0-1
- New upstream release.

* Fri Aug 11 2017 Kouhei Sutou <kou@clear-code.com> - 0.6.0-1
- New upstream release.

* Wed Aug 02 2017 Kouhei Sutou <kou@clear-code.com> - 0.6.0.20170802-1
- New upstream release.
