Blob Blame History Raw
Summary: Library for producing small, fast columnar storage for Hadoop workloads
Name:    liborc
Version: 1.6.6
Release: 4%{?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

%global debug_package %{nil}

%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

%description -n liborc1
Contains %{name} libraries for applications that use Apache ORC.

%package devel
Summary:  Header files, libraries and development documentation for %{name}
Requires: %{name}1%{?_isa} = %{version}-%{release}

%description devel
Contains header files for developing applications that use the %{name}
library.

%prep
%setup -qn orc-rel-release-%{version}
%patch1 -p1 -b .orig

%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"
%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
%{_includedir}/orc/*.hh
%{_libdir}/liborc.so
%{_libdir}/cmake/orc/orc*.cmake

%changelog
* 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.