PORTNAME= duckdb DISTVERSIONPREFIX= v DISTVERSION= 1.5.2 MASTER_SITES= https://github.com/postgres/postgres/archive/refs/tags/:postgres_sources DISTFILES= REL_15_13.tar.gz:postgres_sources CATEGORIES= databases MAINTAINER= yuri@FreeBSD.org COMMENT= In-process SQL OLAP database management system WWW= https://duckdb.org/ \ https://github.com/duckdb/duckdb LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libcurl.so:ftp/curl USES= cmake:testing compiler:c++11-lang ssl USE_GITHUB= yes GH_TUPLE= \ duckdb:duckdb-encodings:06295e77b13de65842992c82f14289ea679e4730:encodings/extension/encodings \ duckdb:duckdb-excel:9421a2d75bd7544336caa73e5f9e6063cc7f6992:excel/extension/excel \ duckdb:duckdb-fts:6814ec9a7d5fd63500176507262b0dbf7cea0095:fts/extension/fts \ duckdb:duckdb-httpfs:13e18b3c9f3810334f5972b76a3acc247b28e537:httpfs/extension/httpfs \ duckdb:duckdb-inet:fe7f60bb60245197680fb07ecd1629a1dc3d91c8:inet/extension/inet \ duckdb:duckdb-postgres:c89234f0b1985f4ee0f52f16e742a1ab2d4ae4f0:postgres/extension/postgres_scanner \ duckdb:duckdb-mysql:e2760cb11f13a12ce74e8c798c07c48deb97a577:mysql/extension/mysql_scanner \ duckdb:duckdb-spatial:dc1996bfd16bd8614fb4ccb5895b3ee0dbd4298e:spatial/extension/spatial \ duckdb:duckdb-sqlite:a087a5878900d8bae155e97fd1b18c4cec0cca21:sqlite/extension/sqlite_scanner \ duckdb:duckdb-sqlsmith:e6e6750ceb91e1869b2c736abb70d818bac73e9a:sqlsmith/extension/sqlsmith \ duckdb:duckdb-vss:b833341c8737fd3f3558c7720cc575ae8fc82598:vss/extension/vss # the list of out-of-tree extensions is here: .github/config/out_of_tree_extensions.cmake CXXFLAGS+= -I${WRKSRC}/extension/inet/src/include CXXFLAGS+= -I${WRKSRC}/extension/sqlsmith/src/include # https://github.com/duckdb/duckdb/issues/13971 CXXFLAGS+= -I${WRKSRC}/extension/fts/extension/fts/include # --""-- CXXFLAGS+= -I${WRKSRC}/extension/httpfs/extension/httpfs/include # --""-- CMAKE_ON= BUILD_SHARED_LIBS CMAKE_OFF= BUILD_UNITTESTS CMAKE_ARGS= -DOVERRIDE_GIT_DESCRIBE=v${DISTVERSION}-0-g0000000000 CMAKE_TESTING_ON= BUILD_UNITTESTS # 1 test fails, Signal 11 during tests, see https://github.com/duckdb/duckdb/issues/13972 CMAKE_TESTING_TARGET= ${ALL_TARGET} # hack: works as empty target BINARY_ALIAS= git=false OPTIONS_DEFINE= TPCE OPTIONS_DEFAULT= TPCE OPTIONS_GROUP= EXTENSIONS OPTIONS_GROUP_EXTENSIONS= AUTOCOMPLETE DELTA ICU JSON PARQUET TPCDS TPCH # in-tree extensions (in extension/) OPTIONS_GROUP_EXTENSIONS+= ${GH_TUPLE:C/.*extension\///:tu} # out-of-tree extensions (from GH_TUPLE) DELTA_BROKEN= Fetches from git during build SPATIAL_BROKEN= Build requires unofficial-sqlite3 dependency EXCEL_BROKEN= https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292757 MYSQL_SCANNER_BROKEN= https://github.com/duckdb/duckdb-mysql/issues/207 POSTGRES_SCANNER_BROKEN= https://github.com/duckdb/duckdb-postgres/issues/401 SQLSMITH_BROKEN= https://github.com/duckdb/duckdb-sqlsmith/issues/66 EXTENSIONS_DESC= Extensions: .for opt in ${OPTIONS_GROUP_EXTENSIONS} . if "${${opt}_BROKEN}" == "" OPTIONS_DEFAULT+= ${opt} . endif ${opt}_DESC= Build the ${opt} extension DUCKDB_EXTENSIONS+= ${PORT_OPTIONS:M${opt}:S/${opt}/;${opt:tl}/} ${opt}_PLIST_FILES= ${PORT_OPTIONS:M${opt}:S/${opt}/lib\/lib${opt:tl}_extension.a/} .endfor CMAKE_ARGS+= -DBUILD_EXTENSIONS="${DUCKDB_EXTENSIONS:tW:S/ //g:S/^;//}" \ -DDUCKDB_MAJOR_VERSION=${PORTVERSION:R:R} \ -DDUCKDB_MINOR_VERSION=${PORTVERSION:R:E} \ -DDUCKDB_PATCH_VERSION=${PORTVERSION:E} CMAKE_ARGS+= -DSKIP_EXTENSIONS=jemalloc # temporary? see https://github.com/duckdb/duckdb/issues/14363#issuecomment-2412095766 SQLITE_SCANNER_CXXFLAGS= -I${WRKSRC}/extension/sqlite_scanner/src/include # workaround for the header not being found ENCODINGS_CXXFLAGS= -I${WRKSRC}/extension/encodings/src/include # workaround for the header not being found HTTPFS_CXXFLAGS= -I${WRKSRC}/extension/httpfs/src/include # workaround for the header not being found POSTGRES_SCANNER_USES= localbase POSTGRES_SCANNER_CXXFLAGS= -I${WRKSRC}/extension/postgres_scanner/src/include # workaround for the header not being found MYSQL_SCANNER_USES= mysql:client TPCE_DESC= Enable building of the TPC-E tool TPCE_CMAKE_BOOL= BUILD_TPCE VSS_CXXFLAGS= -I${WRKSRC}/extension/vss/src/include # workaround for the header not being found post-extract: # remove the jemalloc extension directory just in case @${RM} -r ${WRKSRC}/extension/jemalloc # create symlink to Postgres sources for the postgres_scanner extension @${LN} -s ${WRKDIR}/postgres-REL_15_13 ${WRKSRC}/extension/postgres_scanner/postgres post-patch: # remove cmake files of out-of-tree extensions to build them like in-tree extensions (avoid fetching from git) @${RM} ${WRKSRC}/.github/config/extensions/*.cmake post-test: # run tests @cd ${TEST_WRKSRC} && test/unittest # tests as of 1.5.2: All tests passed (21 skipped tests, 1059565 assertions in 4438 test cases) .include