commit 7969eb86fa5d14e82e5537c06bccd8f834a5ab81 Author: tigro Date: Thu Dec 26 14:05:49 2024 +0300 import liborc-2.0.2-1.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..249f187 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/orc-2.0.2.tar.gz +SOURCES/orc-format-1.0.0.tar.gz diff --git a/.liborc.metadata b/.liborc.metadata new file mode 100644 index 0000000..311ce41 --- /dev/null +++ b/.liborc.metadata @@ -0,0 +1,2 @@ +1b97a473f78663970f9c6fd04120942311a0f684 SOURCES/orc-2.0.2.tar.gz +c5124ac53de0e7ff70f1c46cee577ba5099ac80f SOURCES/orc-format-1.0.0.tar.gz diff --git a/SOURCES/0001-cmake.patch b/SOURCES/0001-cmake.patch new file mode 100644 index 0000000..fce6824 --- /dev/null +++ b/SOURCES/0001-cmake.patch @@ -0,0 +1,77 @@ +--- orc-2.0.0/c++/src/CMakeLists.txt.orig 2024-03-14 08:06:40.806270204 -0400 ++++ orc-2.0.0/c++/src/CMakeLists.txt 2024-03-14 08:10:28.912177741 -0400 +@@ -206,17 +206,22 @@ + BpackingAvx512.cc) + endif(BUILD_ENABLE_AVX512) + +-add_library (orc STATIC ${SOURCE_FILES}) ++add_library (orc SHARED ${SOURCE_FILES}) ++ ++set_target_properties(orc PROPERTIES ++ POSITION_INDEPENDENT_CODE ON ++ VERSION 2.0.0 ++ SOVERSION 2) + + target_link_libraries (orc +- orc::protobuf +- orc::zlib +- orc::snappy +- orc::lz4 +- orc::zstd ++ protobuf ++ z ++ snappy ++ lz4 ++ zstd + ${LIBHDFSPP_LIBRARIES} + ) + + add_dependencies(orc orc-format_ep) + +-install(TARGETS orc DESTINATION lib) ++install(TARGETS orc EXPORT orcExports DESTINATION ${LIB_INSTALL_DIR}) +--- orc-2.0.0/cmake_modules/ThirdpartyToolchain.cmake.orig 2024-03-14 08:06:40.807270186 -0400 ++++ orc-2.0.0/cmake_modules/ThirdpartyToolchain.cmake 2024-03-14 14:22:05.683448662 -0400 +@@ -16,19 +16,19 @@ + # under the License. + + set(ORC_FORMAT_VERSION "1.0.0") +-set(LZ4_VERSION "1.9.3") +-set(SNAPPY_VERSION "1.1.7") +-set(ZLIB_VERSION "1.2.11") +-set(GTEST_VERSION "1.12.1") +-set(PROTOBUF_VERSION "3.5.1") +-set(ZSTD_VERSION "1.5.5") +- +-option(ORC_PREFER_STATIC_PROTOBUF "Prefer static protobuf library, if available" ON) +-option(ORC_PREFER_STATIC_SNAPPY "Prefer static snappy library, if available" ON) +-option(ORC_PREFER_STATIC_LZ4 "Prefer static lz4 library, if available" ON) +-option(ORC_PREFER_STATIC_ZSTD "Prefer static zstd library, if available" ON) +-option(ORC_PREFER_STATIC_ZLIB "Prefer static zlib library, if available" ON) +-option(ORC_PREFER_STATIC_GMOCK "Prefer static gmock library, if available" ON) ++#set(LZ4_VERSION "1.9.3") ++#set(SNAPPY_VERSION "1.1.7") ++#set(ZLIB_VERSION "1.2.11") ++#set(GTEST_VERSION "1.12.1") ++#set(PROTOBUF_VERSION "3.5.1") ++#set(ZSTD_VERSION "1.5.5") ++ ++option(ORC_PREFER_STATIC_PROTOBUF "Prefer static protobuf library, if available" OFF) ++option(ORC_PREFER_STATIC_SNAPPY "Prefer static snappy library, if available" OFF) ++option(ORC_PREFER_STATIC_LZ4 "Prefer static lz4 library, if available" OFF) ++option(ORC_PREFER_STATIC_ZSTD "Prefer static zstd library, if available" OFF) ++option(ORC_PREFER_STATIC_ZLIB "Prefer static zlib library, if available" OFF) ++option(ORC_PREFER_STATIC_GMOCK "Prefer static gmock library, if available" OFF) + + # zstd requires us to add the threads + FIND_PACKAGE(Threads REQUIRED) +@@ -72,8 +72,7 @@ + # ---------------------------------------------------------------------- + # ORC Format + ExternalProject_Add (orc-format_ep +- URL "https://archive.apache.org/dist/orc/orc-format-${ORC_FORMAT_VERSION}/orc-format-${ORC_FORMAT_VERSION}.tar.gz" +- URL_HASH SHA256=739fae5ff94b1f812b413077280361045bf92e510ef04b34a610e23a945d8cd5 ++ URL "file:///builddir/build/SOURCES/orc-format-${ORC_FORMAT_VERSION}.tar.gz" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" diff --git a/SOURCES/0002-c++-src-CpuInfoUtil.cc.patch b/SOURCES/0002-c++-src-CpuInfoUtil.cc.patch new file mode 100644 index 0000000..cfe3fae --- /dev/null +++ b/SOURCES/0002-c++-src-CpuInfoUtil.cc.patch @@ -0,0 +1,16 @@ +--- orc-2.0.0/c++/src/CpuInfoUtil.cc.orig 2024-03-15 08:52:33.787695763 -0400 ++++ orc-2.0.0/c++/src/CpuInfoUtil.cc 2024-03-15 09:06:39.153868514 -0400 +@@ -485,11 +485,11 @@ + + #else + //------------------------------ PPC, ... ------------------------------// +- bool ArchParseUserSimdLevel(const std::string& simd_level, int64_t* hardware_flags) { ++ bool ArchParseUserSimdLevel([[maybe_unused]] const std::string& simd_level, [[maybe_unused]] int64_t* hardware_flags) { + return true; + } + +- void ArchVerifyCpuRequirements(const CpuInfo* ci) {} ++ void ArchVerifyCpuRequirements([[maybe_unused]] const CpuInfo* ci) {} + + #endif // X86, ARM, PPC + diff --git a/SPECS/liborc.spec b/SPECS/liborc.spec new file mode 100644 index 0000000..6ad428a --- /dev/null +++ b/SPECS/liborc.spec @@ -0,0 +1,220 @@ +Summary: Library for producing small, fast columnar storage for Hadoop workloads +Name: liborc +Version: 2.0.2 +Release: 1%{?dist} +License: Apache-2.0 +URL: http://orc.apache.org/ +Source: https://archive.apache.org/dist/orc/orc-%{version}/orc-%{version}.tar.gz +Source1: https://archive.apache.org/dist/orc/orc-format-%{version}/orc-format-1.0.0.tar.gz +Patch1: 0001-cmake.patch +Patch2: 0002-c++-src-CpuInfoUtil.cc.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 %{name}2 +Summary: Library for producing small, fast columnar storage for Hadoop workloads +Provides: %{name}%{?_isa} = %{version}-%{release} +Obsoletes: %{name}1 < %{version}-%{release} + +%description -n %{name}2 +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}2 = %{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 +%autosetup -p1 -n orc-%{version} + +%build + +echo "RPM_OPT_FLAGS: $RPM_OPT_FLAGS" +# https://src.fedoraproject.org/rpms/protobuf/pull-request/26#comment-183002 +export CXXFLAGS="$RPM_OPT_FLAGS -Wno-error=dangling-reference -Wno-error=stringop-overflow" + +%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="$(pkg-config --variable=prefix snappy)" \ + -DLZ4_HOME="$(pkg-config --variable=prefix liblz4)" \ + -DZLIB_HOME="$(pkg-config --variable=prefix zlib)" \ + -DZSTD_HOME="$(pkg-config --variable=prefix libzstd)" \ + -DGTEST_HOME="$(pkg-config --variable=prefix gtest)" \ + -DPROTOBUF_HOME="$(pkg-config --variable=prefix protobuf)" \ + -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}2 +mv %{buildroot}%{_docdir}/orc/NOTICE %{buildroot}%{_docdir}/%{name}2/ +mkdir -p %{buildroot}/%{_defaultlicensedir}/%{name}2 +mv %{buildroot}%{_docdir}/orc/LICENSE %{buildroot}/%{_defaultlicensedir}/%{name}2/ +rm -f %{buildroot}/%{_includedir}/orc/._*.hh +rm -f %{buildroot}/%{_includedir}/orc/sargs/._*.hh + +%ldconfig_scriptlets + +%files -n %{name}2 +%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 + +%changelog +* Thu Dec 26 2024 Arkady L. Shane - 2.0.2-1 +- Rebuilt for MSVSphere 10 + +* Wed Oct 2 2024 Kaleb S. KEITHLEY - 2.0.2-1 +- Apache ORC 2.0.2 + +* Thu Jul 18 2024 Fedora Release Engineering - 2.0.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jun 18 2024 Kaleb S. KEITHLEY - 2.0.0-3 +- 2.0.0, Obsoletes: liborc1 + +* Tue Jun 18 2024 Kaleb S. KEITHLEY - 2.0.0-2 +- 2.0.0, liborc1 -> liborc2 + +* Fri Mar 15 2024 Kaleb S. KEITHLEY - 2.0.0-1 +- 2.0.0 GA + +* Wed Feb 14 2024 Benjamin A. Beasley - 1.9.2-5 +- Add -Wno-error=stringop-overflow + +* Thu Jan 25 2024 Fedora Release Engineering - 1.9.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1.9.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Nov 15 2023 Kaleb S. KEITHLEY - 1.9.2-2 +- 1.9.2, rebuild for f40-build-side-76708 + +* Wed Nov 15 2023 Kaleb S. KEITHLEY - 1.9.2-1 +- 1.9.2 GA + +* Thu Aug 17 2023 Kaleb S. KEITHLEY - 1.9.1-1 +- 1.9.1 GA + +* Thu Jul 20 2023 Fedora Release Engineering - 1.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jun 29 2023 Kaleb S. KEITHLEY - 1.9.0-1 +- 1.9.0 GA + +* Wed Jun 14 2023 Kaleb S. KEITHLEY - 1.8.4-1 +- 1.8.4 GA + +* Thu Mar 16 2023 Kaleb S. KEITHLEY - 1.8.3-1 +- 1.8.3 GA + +* Thu Jan 19 2023 Fedora Release Engineering - 1.8.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 16 2023 Kaleb S. KEITHLEY - 1.8.2-1 +- 1.8.2 GA (w/ gcc-13 -Wno-error=dangling-references) + +* Mon Dec 5 2022 Kaleb S. KEITHLEY - 1.8.1-1 +- 1.8.1 GA + +* Fri Nov 11 2022 Kaleb S. KEITHLEY +- SPDX migration + +* Sun Sep 4 2022 Kaleb S. KEITHLEY - 1.8.0-1 +- 1.8.0 GA + +* Sun Sep 4 2022 Kaleb S. KEITHLEY - 1.7.6-2 +- 1.7.6, fix shlib name + +* Thu Aug 18 2022 Kaleb S. KEITHLEY - 1.7.6-1 +- 1.7.6 GA + +* Thu Jul 21 2022 Fedora Release Engineering - 1.7.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 21 2022 Kaleb S. KEITHLEY - 1.7.5-1 +- 1.7.5 GA + +* Sun May 1 2022 Kaleb S. KEITHLEY - 1.7.4-1 +- 1.7.4 GA + +* Tue Feb 15 2022 Kaleb S. KEITHLEY - 1.7.3-2 +- 1.7.3, fix SO_NAME + +* Thu Feb 10 2022 Kaleb S. KEITHLEY - 1.7.3-1 +- 1.7.3 GA + +* Fri Aug 27 2021 Kaleb S. KEITHLEY - 1.6.6-1 +- New upstream release. +