aboutsummaryrefslogtreecommitdiff
path: root/databases/arrow/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'databases/arrow/Makefile')
-rw-r--r--databases/arrow/Makefile162
1 files changed, 81 insertions, 81 deletions
diff --git a/databases/arrow/Makefile b/databases/arrow/Makefile
index bef6fba557a4..72d6ebf2c4a7 100644
--- a/databases/arrow/Makefile
+++ b/databases/arrow/Makefile
@@ -1,8 +1,8 @@
PORTNAME= arrow
-DISTVERSION= 4.0.1
-PORTREVISION= 3
+DISTVERSION= 15.0.2
+PORTREVISION= 1
CATEGORIES= databases
-MASTER_SITES= https://mirrors.advancedhosters.com/apache/${PORTNAME}/${PORTNAME}-${DISTVERSION}/ \
+MASTER_SITES= APACHE/${PORTNAME}/${PORTNAME}-${DISTVERSION} \
https://github.com/apache/orc/archive/rel/:orc
DISTNAME= apache-${PORTNAME}-${DISTVERSION}
DISTFILES= apache-${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} release-1.6.6${EXTRACT_SUFX}:orc
@@ -10,27 +10,32 @@ EXTRACT_ONLY= apache-${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX}
MAINTAINER= yuri@FreeBSD.org
COMMENT= Columnar in-memory analytics layer for big data
+WWW= https://arrow.apache.org/
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/../LICENSE.txt
-BROKEN_FreeBSD_11= The OpenSSL must be greater than or equal to 1.1.0
-
LIB_DEPENDS= libboost_system.so:devel/boost-libs
-USES= cmake compiler:c++11-lang localbase pkgconfig python:build
+USES= cmake compiler:c++17-lang localbase pkgconfig python:build
USE_LDCONFIG= yes
+USE_GITHUB= nodefault
+GH_ACCOUNT= apache
+
WRKSRC_SUBDIR= cpp
-CMAKE_ARGS= -DARROW_SIMD_LEVEL=NONE -DARROW_RUNTIME_SIMD_LEVEL=NONE
+CMAKE_ARGS= -DCMAKE_CXX_STANDARD=17 -DARROW_SIMD_LEVEL=NONE -DARROW_RUNTIME_SIMD_LEVEL=NONE \
+ -DPython3_EXECUTABLE=${PYTHON_CMD}
CMAKE_OFF= ARROW_BUILD_STATIC ARROW_WITH_BACKTRACE ARROW_BUILD_TESTS ARROW_BUILD_BENCHMARKS
OPTIONS_GROUP= COMPRESSION COMPONENTS # components are listed in cpp/cmake_modules/DefineOptions.cmake
OPTIONS_GROUP_COMPRESSION= BROTLI BZ2 LZ4 SNAPPY ZLIB ZSTD
-OPTIONS_GROUP_COMPONENTS= COMPUTE CSV DATASET FILESYSTEM FLIGHT GANDIVA HDFS HIVESERVER2 IPC JSON MIMALLOC PARQUET ORC PLASMA PYTHON S3 BUILD_UTILITIES TESTING
+OPTIONS_GROUP_COMPONENTS= ACERO COMPUTE CSV DATASET FILESYSTEM FLIGHT GANDIVA HDFS IPC JSON MIMALLOC PARQUET ORC S3 SKYHOOK SUBSTRAIT BUILD_UTILITIES TENSORFLOW TESTING
OPTIONS_SUB= yes
+## DESCs
+
COMPRESSION_DESC= Compression support:
COMPONENTS_DESC= Build components:
@@ -56,8 +61,13 @@ ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd
## Component options
+ACERO_DESC= Arrow Acero Engine Module
+ACERO_CMAKE_BOOL= ARROW_ACERO
+ACERO_IMPLIES= COMPUTE IPC
+
COMPUTE_DESC= Arrow Compute Modules
COMPUTE_CMAKE_BOOL= ARROW_COMPUTE
+COMPUTE_CMAKE_ON= -DARROW_WITH_UTF8PROC=ON
COMPUTE_LIB_DEPENDS= libre2.so:devel/re2 \
libutf8proc.so:textproc/utf8proc
@@ -66,7 +76,7 @@ CSV_CMAKE_BOOL= ARROW_CSV
DATASET_DESC= Arrow Dataset Modules
DATASET_CMAKE_BOOL= ARROW_DATASET
-DATASET_IMPLIES= COMPUTE FILESYSTEM
+DATASET_IMPLIES= ACERO FILESYSTEM
FILESYSTEM_DESC= Arrow Filesystem Layer
FILESYSTEM_CMAKE_BOOL= ARROW_FILESYSTEM
@@ -80,27 +90,21 @@ FLIGHT_LIB_DEPENDS= libgflags.so:devel/gflags \
libcares.so:dns/c-ares \
libgrpc.so:devel/grpc \
libre2.so:devel/re2
-FLIGHT_IMPLIES= IPC
+FLIGHT_IMPLIES= IPC COMPUTE # see https://github.com/apache/arrow/issues/40766
FLIGHT_BROKEN= configure breaks: Could not find a package configuration file provided by "re2"
GANDIVA_DESC= Gandiva libraries
-GANDIVA_USES= ssl
+GANDIVA_USES= llvm:17,lib ssl
GANDIVA_CMAKE_BOOL= ARROW_GANDIVA
-GANDIVA_BUILD_DEPENDS= ${LOCALBASE}/bin/clang12:devel/llvm12 # explicitly requires llvm-12
+GANDIVA_CMAKE_ON= -DARROW_WITH_UTF8PROC=ON
GANDIVA_LIB_DEPENDS= libgrpc.so:devel/grpc \
libprotobuf.so:devel/protobuf \
- libre2.so:devel/re2
+ libre2.so:devel/re2 \
+ libutf8proc.so:textproc/utf8proc
HDFS_DESC= Arrow HDFS bridge
HDFS_CMAKE_BOOL= ARROW_HDFS
-HIVESERVER2_DESC= HiveServer2 client and Arrow adapter
-HIVESERVER2_USES= python:build
-HIVESERVER2_VARS= BINARY_ALIAS=python=${PYTHON_CMD}
-HIVESERVER2_BUILD_DEPENDS= thrift:devel/thrift
-HIVESERVER2_CMAKE_BOOL= ARROW_HIVESERVER2
-HIVESERVER2_BROKEN= Pending conflict fix in thrift ports in bug#255538
-
IPC_DESC= Arrow IPC extensions
IPC_CMAKE_BOOL= ARROW_IPC
@@ -117,7 +121,7 @@ PARQUET_DESC= Parquet libraries
PARQUET_CMAKE_BOOL= ARROW_PARQUET PARQUET_REQUIRE_ENCRYPTION
PARQUET_USES= ssl
PARQUET_LIB_DEPENDS= libthrift.so:devel/thrift-cpp
-PARQUET_IMPLIES= COMPUTE
+PARQUET_IMPLIES= IPC
ORC_DESC= Arrow ORC adapter
ORC_CMAKE_BOOL= ARROW_ORC
@@ -126,92 +130,81 @@ ORC_CONFIGURE_ENV= ARROW_ORC_URL=file://${DISTDIR}/${DIST_SUBDIR}/release-1.6.6
ORC_IMPLIES= LZ4 SNAPPY ZLIB ZSTD # cpp/CMakeLists.txt
ORC_BROKEN= fatal error: 'orc/OrcFile.hh' file not found: https://issues.apache.org/jira/browse/ARROW-12624
-PLASMA_DESC= Plasma object store
-PLASMA_CMAKE_BOOL= ARROW_PLASMA
-PLASMA_LIB_DEPENDS= libgflags.so:devel/gflags
-
BUILD_UTILITIES_DESC= build Arrow commandline utilities
BUILD_UTILITIES_CMAKE_BOOL= ARROW_BUILD_UTILITIES
-PYTHON_DESC= build the Arrow CPython extensions
-PYTHON_CMAKE_BOOL= ARROW_PYTHON
-PYTHON_USES= python:3.9
-PYTHON_BUILD_DEPENDS= ${PY_NUMPY} \
- ${PYTHON_PKGNAMEPREFIX}numpy>0:math/py-numpy@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}cython>0:lang/cython@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}setuptools_scm>0:devel/py-setuptools_scm@${PY_FLAVOR}
-PYTHON_LIB_DEPENDS= libutf8proc.so:textproc/utf8proc
-PYTHON_RUN_DEPENDS= ${PY_NUMPY}
-PYTHON_IMPLIES= COMPUTE CSV DATASET FILESYSTEM HDFS JSON
-PYTHON_BROKEN= py39-setuptools_scm-4.1.2_1 Unknown flavor 'py39', possible flavors: py38
-PYTHON_VARS= PLIST_SUB=PYTHON_SUFFIX=${PYTHON_SUFFIX}
+#PYTHON_DESC= Build python extension support
+#PYTHON_CMAKE_BOOL= ARROW_PYTHON
+#PYTHON_USES= python
+#PYTHON_BUILD_DEPENDS= ${PYNUMPY} # see https://issues.apache.org/jira/browse/ARROW-16820
+#PYTHON_CMAKE_ON= -DPython3_EXECUTABLE=${PYTHON_CMD}
+#PYTHON_RUN_DEPENDS= ${PYNUMPY}
+#PYTHON_IMPLIES= COMPUTE CSV DATASET FILESYSTEM HDFS JSON
+#PYTHON_VARS= PLIST_SUB+=PYTHON_SUFFIX=${PYTHON_SUFFIX}
S3_DESC= S3 support
S3_CMAKE_BOOL= ARROW_S3
S3_USES= ssl
S3_LIB_DEPENDS= \
+ libaws-c-auth.so:security/aws-c-auth \
libaws-c-cal.so:security/aws-c-cal \
libaws-c-common.so:devel/aws-c-common \
+ libaws-c-compression.so:devel/aws-c-compression \
libaws-c-event-stream.so:devel/aws-c-event-stream \
+ libaws-c-http.so:devel/aws-c-http \
libaws-c-io.so:devel/aws-c-io \
+ libaws-c-mqtt.so:devel/aws-c-mqtt \
+ libaws-c-s3.so:devel/aws-c-s3 \
+ libaws-c-sdkutils.so:devel/aws-c-sdkutils \
libaws-checksums.so:devel/aws-checksums \
+ libaws-crt-cpp.so:devel/aws-crt-cpp \
libaws-cpp-sdk-s3.so:devel/aws-sdk-cpp \
- libs2n.so:security/s2n
-S3_IMPLIES= ZLIB
+ libs2n.so:security/s2n-tls
+
+SKYHOOK_DESC= Build the Skyhook libraries
+SKYHOOK_CMAKE_BOOL= ARROW_SKYHOOK
+SKYHOOK_IMPLIES= DATASET PARQUET
+SKYHOOK_BROKEN= could NOT find librados
+
+SUBSTRAIT_DESC= Build the Arrow Substrait Consumer Module
+SUBSTRAIT_CMAKE_BOOL= ARROW_SUBSTRAIT
+SUBSTRAIT_IMPLIES= DATASET IPC PARQUET
+SUBSTRAIT_BROKEN= needs investigation
+
+TENSORFLOW_DESC= TensorFlow support
+TENSORFLOW_CMAKE_BOOL= ARROW_TENSORFLOW
+TENSORFLOW_BROKEN= needs testing
TESTING_DESC= Arrow testing libraries
TESTING_CMAKE_BOOL= ARROW_TESTING
TESTING_LIB_DEPENDS= libgtest.so:devel/googletest
-.for opt in ${OPTIONS_GROUP_COMPRESSION} ${OPTIONS_GROUP_COMPONENTS}
+# workaround for https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277953
+OPSYS!= uname -s # HACK: OPSYS is defined in bsd.port.options.mk which has to be later
+OSVERSION!= awk '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < ${CROSS_SYSROOT}/usr/include/sys/param.h # HACK: same as above
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1303000
+TESTING_BROKEN= configure fails because GTest built with C++ level <17 isn't compatible with C++17 used in arrow
+.endif
+
+# form OPTIONS_DEFAULT
+.for opt in ${OPTIONS_GROUP_COMPONENTS}
. if "${${opt}_BROKEN}" == ""
OPTIONS_DEFAULT+= ${opt}
. endif
.endfor
-.include <bsd.port.pre.mk>
-
-.if ${CHOSEN_COMPILER_TYPE} == clang && ${OPSYS} == FreeBSD
-LLVM_VER= 10 # clang-11 crashes on FreeBSD 14: https://bugs.llvm.org/show_bug.cgi?id=50277
-
-BUILD_DEPENDS+= clang${LLVM_VER}:devel/llvm${LLVM_VER}
-CC= ${LOCALBASE}/bin/clang${LLVM_VER}
-CXX= ${LOCALBASE}/bin/clang++${LLVM_VER}
-.endif
-
-pre-configure-PYTHON-on:
- @${REINPLACE_CMD} -e ' \
- s|arrow_python|arrow_python${PYTHON_SUFFIX}|g; \
- s|arrow-python|arrow-python${PYTHON_SUFFIX}|g \
- ' \
- ${WRKSRC}/../ci/appveyor-cpp-build.bat \
- ${WRKSRC}/../cpp/cmake_modules/FindArrowPython.cmake \
- ${WRKSRC}/../cpp/cmake_modules/FindArrowPythonFlight.cmake \
- ${WRKSRC}/../cpp/src/arrow/python/arrow-python-flight.pc.in \
- ${WRKSRC}/../cpp/src/arrow/python/arrow-python.pc.in \
- ${WRKSRC}/../cpp/src/arrow/python/ArrowPythonConfig.cmake.in \
- ${WRKSRC}/../cpp/src/arrow/python/ArrowPythonFlightConfig.cmake.in \
- ${WRKSRC}/../cpp/src/arrow/python/CMakeLists.txt \
- ${WRKSRC}/../dev/release/rat_exclude_files.txt \
- ${WRKSRC}/../dev/release/verify-apt.sh \
- ${WRKSRC}/../dev/release/verify-yum.sh \
- ${WRKSRC}/../dev/tasks/conda-recipes/arrow-cpp/meta.yaml \
- ${WRKSRC}/../dev/tasks/tasks.yml \
- ${WRKSRC}/../docs/source/developers/python.rst \
- ${WRKSRC}/../python/cmake_modules/FindArrowPython.cmake \
- ${WRKSRC}/../python/cmake_modules/FindArrowPythonFlight.cmake \
- ${WRKSRC}/../python/CMakeLists.txt \
- ${WRKSRC}/../python/pyarrow/__init__.py \
- ${WRKSRC}/../python/pyarrow/plasma.py \
- ${WRKSRC}/../python/setup.py
- @${MV} ${WRKSRC}/src/arrow/python/arrow-python.pc.in ${WRKSRC}/src/arrow/python/arrow-python${PYTHON_SUFFIX}.pc.in
- @${MV} ${WRKSRC}/src/arrow/python/arrow-python-flight.pc.in ${WRKSRC}/src/arrow/python/arrow-python${PYTHON_SUFFIX}-flight.pc.in
-
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MCOMPUTE} || ${PORT_OPTIONS:MFLIGHT} || ${PORT_OPTIONS:MGANDIVA}
-PLIST_FILES+= lib/cmake/arrow/Findre2Alt.cmake
+PLIST_FILES+= lib/cmake/Arrow/Findre2Alt.cmake
+.endif
+
+.if ${PORT_OPTIONS:MIPC} && ${PORT_OPTIONS:MBUILD_UTILITIES}
+PLIST_FILES+= bin/arrow-file-to-stream \
+ bin/arrow-stream-to-file
+.endif
+.if ${PORT_OPTIONS:MGANDIVA} || ${PORT_OPTIONS:MCOMPUTE}
+PLIST_FILES+= lib/cmake/Arrow/Findutf8proc.cmake
.endif
.if ${PORT_OPTIONS:MPYTHON} == "PYTHON" && ${PORT_OPTIONS:MFLIGHT} == "FLIGHT"
@@ -226,10 +219,17 @@ PLIST_FILES+= lib/cmake/arrow/Findre2Alt.cmake
PLIST_SUB+= TESTINGFLIGHT="@comment "
.endif
+post-install:
+ # 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
+ # other values confuse the R extension build, so we adjust these values to "ON" and "OFF" as a workaround
+ ${REINPLACE_CMD} -i '' \
+ -e 's|"true"|"ON"|; s|"false"|"OFF"|' \
+ ${STAGEDIR}${PREFIX}/lib/cmake/Arrow/ArrowOptions.cmake
+
do-test: # tests fail to compile: https://issues.apache.org/jira/browse/ARROW-12625
@cd ${BUILD_WRKSRC} && \
${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DARROW_BUILD_TESTS:BOOL=ON ${CMAKE_SOURCE_PATH} && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} test
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>