Summary: Library for producing small, fast columnar storage for Hadoop workloads
Name: liborc
Version: 1.7.3
Release: 2%{?dist}
License: ASL 2.0
URL: http://orc.apache.org/
Source: https://archive.apache.org/dist/orc/orc-%{version}/orc-%{version}.tar.gz
Patch1: 0001-cmake.patch
# Apache ORC has numerous compile errors and apparently assumes a 64-bit
# build and runtime environment. The only consumer of this package is
# Ceph (by way of Apache Arrow) which is also 64-bit only
ExcludeArch: i686 armv7hl
BuildRequires: gnupg2
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: protobuf-devel
BuildRequires: zlib-devel
BuildRequires: libzstd-devel
BuildRequires: lz4-devel
BuildRequires: snappy-devel
%description
ORC is a self-describing type-aware columnar file format designed
for Hadoop workloads. It is optimized for large streaming reads,
but with integrated support for finding required rows quickly.
Storing data in a columnar format lets the reader read, decompress,
and process only the values that are required for the current query.
Because ORC files are type-aware, the writer chooses the most
appropriate encoding for the type and builds an internal index as
the file is written. Predicate pushdown uses those indexes to
determine which stripes in a file need to be read for a particular
query and the row indexes can narrow the search to a particular set
of 10,000 rows. ORC supports the complete set of types in Hive,
including the complex types: structs, lists, maps, and unions.
%package -n liborc1
Summary: Library for producing small, fast columnar storage for Hadoop workloads
Provides: %{name}%{?_isa} = %{version}-%{release}
%description -n liborc1
ORC is a self-describing type-aware columnar file format designed
for Hadoop workloads. It is optimized for large streaming reads,
but with integrated support for finding required rows quickly.
Storing data in a columnar format lets the reader read, decompress,
and process only the values that are required for the current query.
Because ORC files are type-aware, the writer chooses the most
appropriate encoding for the type and builds an internal index as
the file is written. Predicate pushdown uses those indexes to
determine which stripes in a file need to be read for a particular
query and the row indexes can narrow the search to a particular set
of 10,000 rows. ORC supports the complete set of types in Hive,
including the complex types: structs, lists, maps, and unions.
%package devel
Summary: Header files, libraries and development documentation for %{name}
Requires: %{name}1 = %{version}-%{release}
%description devel
ORC is a self-describing type-aware columnar file format designed
for Hadoop workloads. It is optimized for large streaming reads,
but with integrated support for finding required rows quickly.
Storing data in a columnar format lets the reader read, decompress,
and process only the values that are required for the current query.
Because ORC files are type-aware, the writer chooses the most
appropriate encoding for the type and builds an internal index as
the file is written. Predicate pushdown uses those indexes to
determine which stripes in a file need to be read for a particular
query and the row indexes can narrow the search to a particular set
of 10,000 rows. ORC supports the complete set of types in Hive,
including the complex types: structs, lists, maps, and unions.
Contains header files for developing applications that use the %{name}
library.
%prep
%setup -qn orc-%{version}
%patch1 -p1
%build
%cmake . \
-DOVERRIDE_INSTALL_PREFIX=/usr \
-DCMAKE_COLOR_MAKEFILE:BOOL=OFF \
-DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \
-DINSTALL_LIBDIR:PATH=%{_libdir} \
-DBUILD_SHARED_LIBS:BOOL=on \
-DBUILD_LIBHDFSPP:BOOL=off \
-DSNAPPY_HOME="/usr" \
-DLZ4_HOME="/usr" \
-DZLIB_HOME="/usr" \
-DZSTD_HOME="/usr" \
-DGTEST_HOME="/usr" \
-DPROTOBUF_HOME="/usr" \
-Dorc_VERSION="%{version}" \
-DBUILD_CPP_TESTS=off \
-DBUILD_TOOLS=off \
-DBUILD_JAVA=off \
-DANALYZE_JAVA=off \
"-GUnix Makefiles"
export VERBOSE=1
%cmake_build
%check
%install
%cmake_install
mkdir %{buildroot}%{_docdir}/%{name}1
mv %{buildroot}%{_docdir}/orc/NOTICE %{buildroot}%{_docdir}/%{name}1/
mkdir -p %{buildroot}/%{_defaultlicensedir}/%{name}1
mv %{buildroot}%{_docdir}/orc/LICENSE %{buildroot}/%{_defaultlicensedir}/%{name}1/
%ldconfig_scriptlets
%files -n %{name}1
%license LICENSE
%doc README.md NOTICE
%{_libdir}/liborc.so.*
%files devel
%dir %{_includedir}/orc
%{_includedir}/orc/*.hh
%dir %{_includedir}/orc/sargs
%{_includedir}/orc/sargs/*.hh
%{_libdir}/liborc.so
%dir %{_libdir}/cmake/orc
%{_libdir}/cmake/orc/orc*.cmake
%changelog
* Tue Feb 15 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.7.3-2
- 1.7.3, fix SO_NAME
* Thu Feb 10 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.7.3-1
- 1.7.3 GA
* Fri Jan 14 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.6.6-4
- rebuild with "correct" protobuf for needed for grpc, again
* Fri Jan 14 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.6.6-3
- rebuild with "correct" protobuf for needed for grpc
* Thu Jan 13 2022 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.6.6-2
- rebuild from lookaside
* Fri Aug 27 2021 Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.6.6-1
- New upstream release.