1PORTNAME= arrow 2DISTVERSION= 21.0.0 3PORTREVISION= 7 4CATEGORIES= databases 5MASTER_SITES= APACHE/${PORTNAME}/${PORTNAME}-${DISTVERSION} \ 6 https://github.com/apache/orc/archive/rel/:orc 7DISTNAME= apache-${PORTNAME}-${DISTVERSION} 8DISTFILES= apache-${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} release-1.6.6${EXTRACT_SUFX}:orc 9EXTRACT_ONLY= apache-${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} 10 11MAINTAINER= ports@MidnightBSD.org 12COMMENT= Columnar in-memory analytics layer for big data 13WWW= https://arrow.apache.org \ 14 https://github.com/apache/arrow 15 16LICENSE= Apache-2.0 17LICENSE_FILE= ${WRKSRC}/../LICENSE.txt 18 19LIB_DEPENDS= libboost_thread.so:devel/boost-libs 20 21USES= cmake compiler:c++17-lang localbase pkgconfig python:build,test 22USE_LDCONFIG= yes 23 24USE_GITHUB= nodefault 25GH_ACCOUNT= apache 26#GH_TUPLE= apache:arrow-testing:d2a1371:arrow_testing/testing \ 27 apache:parquet-testing:c7cf137:parquet_testing/cpp/submodules/parquet-testing 28 29WRKSRC_SUBDIR= cpp 30 31PLIST_SUB= LIBVERSION=2100 32 33CMAKE_ARGS= -DARROW_RUNTIME_SIMD_LEVEL=NONE -DARROW_SIMD_LEVEL=NONE -DCMAKE_CXX_STANDARD=17 34CMAKE_OFF= ARROW_BUILD_BENCHMARKS ARROW_BUILD_STATIC ARROW_BUILD_TESTS ARROW_WITH_BACKTRACE 35 36BINARY_ALIAS= python=${PYTHON_CMD} # only for tests 37 38OPTIONS_GROUP= COMPONENTS COMPRESSION # components are listed in cpp/cmake_modules/DefineOptions.cmake 39OPTIONS_GROUP_COMPONENTS= ACERO COMPUTE CSV DATASET FILESYSTEM FLIGHT FLIGHT_SQL GANDIVA HDFS IPC JSON MIMALLOC PARQUET ORC S3 SKYHOOK SUBSTRAIT BUILD_UTILITIES TENSORFLOW TESTING 40OPTIONS_GROUP_COMPRESSION= BROTLI BZ2 LZ4 SNAPPY ZLIB ZSTD 41OPTIONS_SUB= yes 42 43## DESCs 44 45COMPRESSION_DESC= Compression support: 46COMPONENTS_DESC= Build components: 47 48## Compression options 49 50BROTLI_CMAKE_BOOL= ARROW_WITH_BROTLI 51BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli 52 53BZ2_DESC= bz2 compression support 54BZ2_CMAKE_BOOL= ARROW_WITH_BZ2 55 56LZ4_CMAKE_BOOL= ARROW_WITH_LZ4 57LZ4_LIB_DEPENDS= liblz4.so:archivers/liblz4 58 59SNAPPY_CMAKE_BOOL= ARROW_WITH_SNAPPY 60SNAPPY_LIB_DEPENDS= libsnappy.so:archivers/snappy 61 62ZLIB_CMAKE_BOOL= ARROW_WITH_ZLIB 63 64ZSTD_DESC= zstd compression support 65ZSTD_CMAKE_BOOL= ARROW_WITH_ZSTD 66ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd 67 68## Component options 69 70ACERO_DESC= Arrow Acero Engine Module 71ACERO_CMAKE_BOOL= ARROW_ACERO 72ACERO_IMPLIES= COMPUTE IPC 73 74COMPUTE_DESC= Arrow Compute Modules 75COMPUTE_CMAKE_BOOL= ARROW_COMPUTE 76COMPUTE_CMAKE_ON= -DARROW_WITH_UTF8PROC=ON 77COMPUTE_LIB_DEPENDS= libre2.so:devel/re2 \ 78 libutf8proc.so:textproc/utf8proc 79 80CSV_DESC= Arrow CSV Parser Module 81CSV_CMAKE_BOOL= ARROW_CSV 82 83DATASET_DESC= Arrow Dataset Modules 84DATASET_CMAKE_BOOL= ARROW_DATASET 85DATASET_IMPLIES= ACERO FILESYSTEM 86 87FILESYSTEM_DESC= Arrow Filesystem Layer 88FILESYSTEM_CMAKE_BOOL= ARROW_FILESYSTEM 89 90FLIGHT_DESC= Arrow Flight RPC System 91FLIGHT_USES= ssl 92FLIGHT_CMAKE_BOOL= ARROW_FLIGHT 93FLIGHT_LIB_DEPENDS= libgflags.so:devel/gflags \ 94 libprotobuf.so:devel/protobuf \ 95 libabsl_base.so:devel/abseil \ 96 libcares.so:dns/c-ares \ 97 libgrpc.so:devel/grpc \ 98 libre2.so:devel/re2 99FLIGHT_IMPLIES= IPC COMPUTE # see https://github.com/apache/arrow/issues/40766 100 101FLIGHT_SQL_DESC= Arrow Flight SQL 102FLIGHT_SQL_CMAKE_BOOL= ARROW_FLIGHT_SQL 103FLIGHT_SQL_IMPLIES= FLIGHT 104 105GANDIVA_DESC= Gandiva libraries 106GANDIVA_USES= llvm:17,lib ssl 107GANDIVA_CMAKE_BOOL= ARROW_GANDIVA 108GANDIVA_CMAKE_ON= -DARROW_WITH_UTF8PROC=ON 109GANDIVA_LIB_DEPENDS= libgrpc.so:devel/grpc \ 110 libprotobuf.so:devel/protobuf \ 111 libre2.so:devel/re2 \ 112 libutf8proc.so:textproc/utf8proc 113 114HDFS_DESC= Arrow HDFS bridge 115HDFS_CMAKE_BOOL= ARROW_HDFS 116 117IPC_DESC= Arrow IPC extensions 118IPC_CMAKE_BOOL= ARROW_IPC 119 120JSON_DESC= JSON support 121JSON_CMAKE_BOOL= ARROW_JSON 122JSON_BUILD_DEPENDS= ${LOCALBASE}/include/rapidjson/rapidjson.h:devel/rapidjson 123 124MIMALLOC_DESC= Arrow mimalloc-based allocato 125MIMALLOC_CMAKE_BOOL= ARROW_MIMALLOC 126MIMALLOC_LIB_DEPENDS= libmimalloc.so:devel/mimalloc 127MIMALLOC_BROKEN= Pending paths fix in bug#255537 128 129PARQUET_DESC= Parquet libraries 130PARQUET_CMAKE_BOOL= ARROW_PARQUET PARQUET_REQUIRE_ENCRYPTION 131PARQUET_USES= ssl 132PARQUET_LIB_DEPENDS= libthrift.so:devel/thrift-cpp 133PARQUET_IMPLIES= IPC 134 135ORC_DESC= Arrow ORC adapter 136ORC_CMAKE_BOOL= ARROW_ORC 137ORC_LIB_DEPENDS= libprotobuf.so:devel/protobuf 138ORC_CONFIGURE_ENV= ARROW_ORC_URL=file://${DISTDIR}/${DIST_SUBDIR}/release-1.6.6${EXTRACT_SUFX} 139ORC_IMPLIES= LZ4 SNAPPY ZLIB ZSTD # cpp/CMakeLists.txt 140ORC_BROKEN= fatal error: 'orc/OrcFile.hh' file not found: https://issues.apache.org/jira/browse/ARROW-12624 141 142BUILD_UTILITIES_DESC= build Arrow commandline utilities 143BUILD_UTILITIES_CMAKE_BOOL= ARROW_BUILD_UTILITIES 144 145#PYTHON_DESC= Build python extension support 146#PYTHON_CMAKE_BOOL= ARROW_PYTHON 147#PYTHON_USES= python 148#PYTHON_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy1>=1.16:math/py-numpy1@${PY_FLAVOR} # see https://issues.apache.org/jira/browse/ARROW-16820 149#PYTHON_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy1>=1.16:math/py-numpy1@${PY_FLAVOR} 150#PYTHON_IMPLIES= COMPUTE CSV DATASET FILESYSTEM HDFS JSON 151#PYTHON_VARS= PLIST_SUB+=PYTHON_SUFFIX=${PYTHON_SUFFIX} 152 153S3_DESC= S3 support 154S3_CMAKE_BOOL= ARROW_S3 155S3_USES= ssl 156S3_LIB_DEPENDS= \ 157 libaws-c-auth.so:security/aws-c-auth \ 158 libaws-c-cal.so:security/aws-c-cal \ 159 libaws-c-common.so:devel/aws-c-common \ 160 libaws-c-compression.so:devel/aws-c-compression \ 161 libaws-c-event-stream.so:devel/aws-c-event-stream \ 162 libaws-c-http.so:devel/aws-c-http \ 163 libaws-c-io.so:devel/aws-c-io \ 164 libaws-c-mqtt.so:devel/aws-c-mqtt \ 165 libaws-c-s3.so:devel/aws-c-s3 \ 166 libaws-c-sdkutils.so:devel/aws-c-sdkutils \ 167 libaws-checksums.so:devel/aws-checksums \ 168 libaws-crt-cpp.so:devel/aws-crt-cpp \ 169 libaws-cpp-sdk-s3.so:devel/aws-sdk-cpp \ 170 libs2n.so:security/s2n-tls 171 172SKYHOOK_DESC= Build the Skyhook libraries 173SKYHOOK_CMAKE_BOOL= ARROW_SKYHOOK 174SKYHOOK_IMPLIES= DATASET PARQUET 175SKYHOOK_BROKEN= could NOT find librados 176 177SUBSTRAIT_DESC= Build the Arrow Substrait Consumer Module 178SUBSTRAIT_CMAKE_BOOL= ARROW_SUBSTRAIT 179SUBSTRAIT_IMPLIES= DATASET IPC PARQUET 180SUBSTRAIT_BROKEN= needs investigation 181 182TENSORFLOW_DESC= TensorFlow support 183TENSORFLOW_CMAKE_BOOL= ARROW_TENSORFLOW 184TENSORFLOW_BROKEN= needs testing 185 186TESTING_DESC= Arrow testing libraries 187TESTING_CMAKE_BOOL= ARROW_TESTING 188TESTING_LIB_DEPENDS= libgtest.so:devel/googletest 189 190# form OPTIONS_DEFAULT 191.for opt in ${OPTIONS_GROUP_COMPONENTS} ${OPTIONS_GROUP_COMPRESSION} 192. if "${${opt}_BROKEN}" == "" 193OPTIONS_DEFAULT+= ${opt} 194. endif 195.endfor 196 197.include <bsd.mport.options.mk> 198 199.if !empty(PORT_OPTIONS:MCOMPUTE) || !empty(PORT_OPTIONS:MFLIGHT) || !empty(PORT_OPTIONS:MGANDIVA) 200PLIST_FILES+= lib/cmake/Arrow/Findre2Alt.cmake 201.endif 202 203.if !empty(PORT_OPTIONS:MIPC) && !empty(PORT_OPTIONS:MBUILD_UTILITIES) 204PLIST_FILES+= bin/arrow-file-to-stream \ 205 bin/arrow-stream-to-file 206.endif 207.if !empty(PORT_OPTIONS:MGANDIVA) || !empty(PORT_OPTIONS:MCOMPUTE) 208PLIST_FILES+= lib/cmake/Arrow/Findutf8proc.cmake 209.endif 210.if !empty(PORT_OPTIONS:MGANDIVA) || !empty(PORT_OPTIONS:MZSTD) 211PLIST_FILES+= lib/cmake/Gandiva/FindzstdAlt.cmake 212.endif 213 214.if !empty(PORT_OPTIONS:MPYTHON) && !empty(PORT_OPTIONS:MFLIGHT) 215 PLIST_SUB+= PYTHONFLIGHT="" 216.else 217 PLIST_SUB+= PYTHONFLIGHT="@comment " 218.endif 219 220.if !empty(PORT_OPTIONS:MTESTING) && !empty(PORT_OPTIONS:MFLIGHT) 221 PLIST_SUB+= TESTINGFLIGHT="" 222.else 223 PLIST_SUB+= TESTINGFLIGHT="@comment " 224.endif 225 226post-install: 227 # based on the user's report on 2024-04-12, the R extension expects only "ON" and "OFF" values in lib/cmake/Arrow/ArrowOptions.cmake 228 # other values confuse the R extension build, so we adjust these values to "ON" and "OFF" as a workaround 229 ${REINPLACE_CMD} -i '' \ 230 -e 's|"true"|"ON"|; s|"false"|"OFF"|' \ 231 ${STAGEDIR}${PREFIX}/lib/cmake/Arrow/ArrowOptions.cmake 232 233do-test: 234 @cd ${BUILD_WRKSRC} && \ 235 ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DARROW_BUILD_TESTS:BOOL=ON ${CMAKE_SOURCE_PATH} && \ 236 ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \ 237 ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} test 238 239# tests as of : 89% tests passed, 10 tests failed out of 90, see https://github.com/apache/arrow/issues/45604 240 241.include <bsd.port.mk> 242