summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJen Herting <jen@herting.cc>2020-10-22 15:05:18 -0400
committerGitHub <noreply@github.com>2020-10-22 14:05:18 -0500
commite1e0bbb4cbe11a3f0d7e50466ffa86071ee653b7 (patch)
treefc822f1a3b9377ba10045bfef17f7d7bbb6bd9df
parentbd0b53f4fb65c84c07e94efac4a975d449836bc1 (diff)
downloadspack-e1e0bbb4cbe11a3f0d7e50466ffa86071ee653b7.tar.gz
spack-e1e0bbb4cbe11a3f0d7e50466ffa86071ee653b7.tar.bz2
spack-e1e0bbb4cbe11a3f0d7e50466ffa86071ee653b7.tar.xz
spack-e1e0bbb4cbe11a3f0d7e50466ffa86071ee653b7.zip
New package: orc (#19441)
* [orc] created template * [orc] depends on maven * [orc] building with -fPIC * [orc] fixed name of c flags option * [orc] depends on openssl * [orc] added dependencies and disableing installing vendored libs * [orc] disabling hdfs * [orc] depending on specific versions of dependencies * [orc] no building of third party libs * [orc] helping cmake find the dependencies * [orc] disabling features that would require static protobuf libraries * [orc] dependency versions are ranges * [orc] added homepage and description. removed fixmes * [orc] flake8 * [orc] switching to compilier indipendent code
-rw-r--r--var/spack/repos/builtin/packages/orc/package.py43
-rw-r--r--var/spack/repos/builtin/packages/orc/thirdparty.patch199
2 files changed, 242 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/orc/package.py b/var/spack/repos/builtin/packages/orc/package.py
new file mode 100644
index 0000000000..f67111cc6a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/orc/package.py
@@ -0,0 +1,43 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Orc(CMakePackage):
+ """the smallest, fastest columnar storage for Hadoop
+ workloads."""
+
+ homepage = "https://orc.apache.org/"
+ url = "https://github.com/apache/orc/archive/rel/release-1.6.5.tar.gz"
+
+ version('1.6.5', sha256='df5885db8fa2e4435db8d486c6c7fc4e2c565d6197eee27729cf9cbdf36353c0')
+
+ depends_on('maven')
+ depends_on('openssl')
+ depends_on('zlib@1.2.11:')
+ depends_on('pcre')
+ depends_on('protobuf@3.5.1:')
+ depends_on('zstd@1.4.5:')
+ depends_on('googletest@1.8.0:')
+ depends_on('snappy@1.1.7:')
+ depends_on('lz4@1.7.5:')
+
+ patch('thirdparty.patch')
+
+ def cmake_args(self):
+ args = []
+ args.append('-DCMAKE_CXX_FLAGS=' + self.compiler.cxx_pic_flag)
+ args.append('-DCMAKE_C_FLAGS=' + self.compiler.cc_pic_flag)
+ args.append('-DINSTALL_VENDORED_LIBS:BOOL=OFF')
+ args.append('-DBUILD_LIBHDFSPP:BOOL=OFF')
+ args.append('-DBUILD_TOOLS:BOOL=OFF')
+ args.append('-DBUILD_CPP_TESTS:BOOL=OFF')
+
+ for x in ('snappy', 'zlib', 'zstd', 'lz4', 'protobuf'):
+ args.append('-D{0}_HOME={1}'.format(x.upper(),
+ self.spec[x].prefix))
+
+ return args
diff --git a/var/spack/repos/builtin/packages/orc/thirdparty.patch b/var/spack/repos/builtin/packages/orc/thirdparty.patch
new file mode 100644
index 0000000000..803adcb869
--- /dev/null
+++ b/var/spack/repos/builtin/packages/orc/thirdparty.patch
@@ -0,0 +1,199 @@
+diff -ur a/cmake_modules/FindZSTD.cmake b/cmake_modules/FindZSTD.cmake
+--- a/cmake_modules/FindZSTD.cmake 2020-10-09 17:55:21.015030909 -0400
++++ b/cmake_modules/FindZSTD.cmake 2020-10-09 17:59:45.872562052 -0400
+@@ -24,7 +24,7 @@
+ message (STATUS "ZSTD_HOME: ${ZSTD_HOME}")
+
+ if (NOT ZSTD_STATIC_LIB_NAME)
+- set (ZSTD_STATIC_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}zstd)
++ set (ZSTD_STATIC_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}zstd.so)
+ endif()
+
+ find_path (ZSTD_INCLUDE_DIR zstd.h HINTS
+diff -ur a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
+--- a/cmake_modules/ThirdpartyToolchain.cmake 2020-10-09 17:55:21.015030909 -0400
++++ b/cmake_modules/ThirdpartyToolchain.cmake 2020-10-09 17:55:27.861070483 -0400
+@@ -59,24 +59,8 @@
+ # ----------------------------------------------------------------------
+ # Snappy
+
+-if (NOT "${SNAPPY_HOME}" STREQUAL "")
+- find_package (Snappy REQUIRED)
+- set(SNAPPY_VENDORED FALSE)
+-else ()
+- set(SNAPPY_HOME "${THIRDPARTY_DIR}/snappy_ep-install")
+- set(SNAPPY_INCLUDE_DIR "${SNAPPY_HOME}/include")
+- set(SNAPPY_STATIC_LIB "${SNAPPY_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}snappy${CMAKE_STATIC_LIBRARY_SUFFIX}")
+- set(SNAPPY_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${SNAPPY_HOME}
+- -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_LIBDIR=lib)
+-
+- ExternalProject_Add (snappy_ep
+- URL "https://github.com/google/snappy/archive/${SNAPPY_VERSION}.tar.gz"
+- CMAKE_ARGS ${SNAPPY_CMAKE_ARGS}
+- ${THIRDPARTY_LOG_OPTIONS}
+- BUILD_BYPRODUCTS "${SNAPPY_STATIC_LIB}")
+-
+- set(SNAPPY_VENDORED TRUE)
+-endif ()
++find_package (Snappy REQUIRED)
++set(SNAPPY_VENDORED FALSE)
+
+ include_directories (SYSTEM ${SNAPPY_INCLUDE_DIR})
+ add_library (snappy STATIC IMPORTED)
+@@ -93,32 +77,8 @@
+ # ----------------------------------------------------------------------
+ # ZLIB
+
+-if (NOT "${ZLIB_HOME}" STREQUAL "")
+- find_package (ZLIB REQUIRED)
+- set(ZLIB_VENDORED FALSE)
+-else ()
+- set(ZLIB_PREFIX "${THIRDPARTY_DIR}/zlib_ep-install")
+- set(ZLIB_INCLUDE_DIR "${ZLIB_PREFIX}/include")
+- if (MSVC)
+- set(ZLIB_STATIC_LIB_NAME zlibstatic)
+- if (${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
+- set(ZLIB_STATIC_LIB_NAME ${ZLIB_STATIC_LIB_NAME}d)
+- endif ()
+- else ()
+- set(ZLIB_STATIC_LIB_NAME z)
+- endif ()
+- set(ZLIB_STATIC_LIB "${ZLIB_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+- set(ZLIB_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${ZLIB_PREFIX}
+- -DBUILD_SHARED_LIBS=OFF)
+-
+- ExternalProject_Add (zlib_ep
+- URL "http://zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz"
+- CMAKE_ARGS ${ZLIB_CMAKE_ARGS}
+- ${THIRDPARTY_LOG_OPTIONS}
+- BUILD_BYPRODUCTS "${ZLIB_STATIC_LIB}")
+-
+- set(ZLIB_VENDORED TRUE)
+-endif ()
++find_package (ZLIB REQUIRED)
++set(ZLIB_VENDORED FALSE)
+
+ include_directories (SYSTEM ${ZLIB_INCLUDE_DIR})
+ add_library (zlib STATIC IMPORTED)
+@@ -135,39 +95,8 @@
+ # ----------------------------------------------------------------------
+ # Zstd
+
+-if (NOT "${ZSTD_HOME}" STREQUAL "")
+- find_package (ZSTD REQUIRED)
+- set(ZSTD_VENDORED FALSE)
+-else ()
+- set(ZSTD_HOME "${THIRDPARTY_DIR}/zstd_ep-install")
+- set(ZSTD_INCLUDE_DIR "${ZSTD_HOME}/include")
+- if (MSVC)
+- set(ZSTD_STATIC_LIB_NAME zstd_static)
+- if (${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
+- set(ZSTD_STATIC_LIB_NAME ${ZSTD_STATIC_LIB_NAME})
+- endif ()
+- else ()
+- set(ZSTD_STATIC_LIB_NAME zstd)
+- endif ()
+- set(ZSTD_STATIC_LIB "${ZSTD_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${ZSTD_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+- set(ZSTD_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${ZSTD_HOME}
+- -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_LIBDIR=lib)
+-
+- if (CMAKE_VERSION VERSION_GREATER "3.7")
+- set(ZSTD_CONFIGURE SOURCE_SUBDIR "build/cmake" CMAKE_ARGS ${ZSTD_CMAKE_ARGS})
+- else()
+- set(ZSTD_CONFIGURE CONFIGURE_COMMAND "${THIRDPARTY_CONFIGURE_COMMAND}" ${ZSTD_CMAKE_ARGS}
+- "${CMAKE_CURRENT_BINARY_DIR}/zstd_ep-prefix/src/zstd_ep/build/cmake")
+- endif()
+-
+- ExternalProject_Add(zstd_ep
+- URL "https://github.com/facebook/zstd/archive/v${ZSTD_VERSION}.tar.gz"
+- ${ZSTD_CONFIGURE}
+- ${THIRDPARTY_LOG_OPTIONS}
+- BUILD_BYPRODUCTS ${ZSTD_STATIC_LIB})
+-
+- set(ZSTD_VENDORED TRUE)
+-endif ()
++find_package (ZSTD REQUIRED)
++set(ZSTD_VENDORED FALSE)
+
+ include_directories (SYSTEM ${ZSTD_INCLUDE_DIR})
+ add_library (zstd STATIC IMPORTED)
+@@ -184,32 +113,8 @@
+ # ----------------------------------------------------------------------
+ # LZ4
+
+-if (NOT "${LZ4_HOME}" STREQUAL "")
+- find_package (LZ4 REQUIRED)
+- set(LZ4_VENDORED FALSE)
+-else ()
+- set(LZ4_PREFIX "${THIRDPARTY_DIR}/lz4_ep-install")
+- set(LZ4_INCLUDE_DIR "${LZ4_PREFIX}/include")
+- set(LZ4_STATIC_LIB "${LZ4_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lz4${CMAKE_STATIC_LIBRARY_SUFFIX}")
+- set(LZ4_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LZ4_PREFIX}
+- -DCMAKE_INSTALL_LIBDIR=lib
+- -DBUILD_SHARED_LIBS=OFF)
+-
+- if (CMAKE_VERSION VERSION_GREATER "3.7")
+- set(LZ4_CONFIGURE SOURCE_SUBDIR "contrib/cmake_unofficial" CMAKE_ARGS ${LZ4_CMAKE_ARGS})
+- else()
+- set(LZ4_CONFIGURE CONFIGURE_COMMAND "${THIRDPARTY_CONFIGURE_COMMAND}" ${LZ4_CMAKE_ARGS}
+- "${CMAKE_CURRENT_BINARY_DIR}/lz4_ep-prefix/src/lz4_ep/contrib/cmake_unofficial")
+- endif()
+-
+- ExternalProject_Add(lz4_ep
+- URL "https://github.com/lz4/lz4/archive/v${LZ4_VERSION}.tar.gz"
+- ${LZ4_CONFIGURE}
+- ${THIRDPARTY_LOG_OPTIONS}
+- BUILD_BYPRODUCTS ${LZ4_STATIC_LIB})
+-
+- set(LZ4_VENDORED TRUE)
+-endif ()
++find_package (LZ4 REQUIRED)
++set(LZ4_VENDORED FALSE)
+
+ include_directories (SYSTEM ${LZ4_INCLUDE_DIR})
+ add_library (lz4 STATIC IMPORTED)
+@@ -288,42 +193,8 @@
+ # ----------------------------------------------------------------------
+ # Protobuf
+
+-if (NOT "${PROTOBUF_HOME}" STREQUAL "")
+- find_package (Protobuf REQUIRED)
+- set(PROTOBUF_VENDORED FALSE)
+-else ()
+- set(PROTOBUF_PREFIX "${THIRDPARTY_DIR}/protobuf_ep-install")
+- set(PROTOBUF_INCLUDE_DIR "${PROTOBUF_PREFIX}/include")
+- set(PROTOBUF_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${PROTOBUF_PREFIX}
+- -DCMAKE_INSTALL_LIBDIR=lib
+- -DBUILD_SHARED_LIBS=OFF
+- -Dprotobuf_BUILD_TESTS=OFF)
+- if (MSVC)
+- set(PROTOBUF_STATIC_LIB_PREFIX lib)
+- list(APPEND PROTOBUF_CMAKE_ARGS -Dprotobuf_MSVC_STATIC_RUNTIME=OFF
+- -Dprotobuf_DEBUG_POSTFIX=)
+- else ()
+- set(PROTOBUF_STATIC_LIB_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
+- endif ()
+- set(PROTOBUF_STATIC_LIB "${PROTOBUF_PREFIX}/lib/${PROTOBUF_STATIC_LIB_PREFIX}protobuf${CMAKE_STATIC_LIBRARY_SUFFIX}")
+- set(PROTOC_STATIC_LIB "${PROTOBUF_PREFIX}/lib/${PROTOBUF_STATIC_LIB_PREFIX}protoc${CMAKE_STATIC_LIBRARY_SUFFIX}")
+- set(PROTOBUF_EXECUTABLE "${PROTOBUF_PREFIX}/bin/protoc${CMAKE_EXECUTABLE_SUFFIX}")
+-
+- if (CMAKE_VERSION VERSION_GREATER "3.7")
+- set(PROTOBUF_CONFIGURE SOURCE_SUBDIR "cmake" CMAKE_ARGS ${PROTOBUF_CMAKE_ARGS})
+- else()
+- set(PROTOBUF_CONFIGURE CONFIGURE_COMMAND "${THIRDPARTY_CONFIGURE_COMMAND}" ${PROTOBUF_CMAKE_ARGS}
+- "${CMAKE_CURRENT_BINARY_DIR}/protobuf_ep-prefix/src/protobuf_ep/cmake")
+- endif()
+-
+- ExternalProject_Add(protobuf_ep
+- URL "https://github.com/google/protobuf/archive/v${PROTOBUF_VERSION}.tar.gz"
+- ${PROTOBUF_CONFIGURE}
+- ${THIRDPARTY_LOG_OPTIONS}
+- BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}" "${PROTOC_STATIC_LIB}")
+-
+- set(PROTOBUF_VENDORED TRUE)
+-endif ()
++find_package (Protobuf REQUIRED)
++set(PROTOBUF_VENDORED FALSE)
+
+ include_directories (SYSTEM ${PROTOBUF_INCLUDE_DIR})
+