Blob Blame History Raw
Summary: Library for producing small, fast columnar storage for Hadoop workloads
Name:    liborc
Version: 1.7.4
Release: 1%{?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"
%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
* Sun May 1 2022  Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.7.4-1
- 1.7.4 GA

* Tue Feb 22 2022  Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.7.3-3
- 1.7.3, rebuild with protobuf-3.19.0

* 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 Aug 27 2021  Kaleb S. KEITHLEY <kkeithle [at] redhat.com> - 1.6.6-1
- New upstream release.