Merge pull request #159526 from cpcloud/duckdb-update
duckdb: enable extensions
This commit is contained in:
commit
e5866fbb73
|
@ -1,8 +1,19 @@
|
|||
{ lib, stdenv
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, ninja
|
||||
, openssl
|
||||
, openjdk11
|
||||
, unixODBC
|
||||
, withHttpFs ? true
|
||||
, withJdbc ? false
|
||||
, withOdbc ? false
|
||||
}:
|
||||
|
||||
let
|
||||
enableFeature = yes: if yes then "ON" else "OFF";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "duckdb";
|
||||
version = "0.3.2";
|
||||
|
@ -14,13 +25,34 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-F5YOqDeY3rgcnuu5SNqOfUxhsaXgqvdJZTnD1unI0tc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
patches = [ ./version.patch ];
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --subst-var-by DUCKDB_VERSION "v${version}"
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_FTS_EXTENSION=ON"
|
||||
"-DBUILD_HTTPFS_EXTENSION=${enableFeature withHttpFs}"
|
||||
"-DBUILD_ICU_EXTENSION=ON"
|
||||
"-DBUILD_ODBC_DRIVER=${enableFeature withOdbc}"
|
||||
"-DBUILD_PARQUET_EXTENSION=ON"
|
||||
"-DBUILD_REST_EXTENSION=ON"
|
||||
"-DBUILD_TPCDS_EXTENSION=ON"
|
||||
"-DBUILD_TPCH_EXTENSION=ON"
|
||||
"-DBUILD_VISUALIZER_EXTENSION=ON"
|
||||
"-DJDBC_DRIVER=${enableFeature withJdbc}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake ninja ];
|
||||
buildInputs = lib.optionals withHttpFs [ openssl ]
|
||||
++ lib.optionals withJdbc [ openjdk11 ]
|
||||
++ lib.optionals withOdbc [ unixODBC ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/duckdb/duckdb";
|
||||
description = "Embeddable SQL OLAP Database Management System";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ costrouc ];
|
||||
maintainers = with maintainers; [ costrouc cpcloud ];
|
||||
};
|
||||
}
|
||||
|
|
51
pkgs/development/libraries/duckdb/version.patch
Normal file
51
pkgs/development/libraries/duckdb/version.patch
Normal file
|
@ -0,0 +1,51 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 92c097228..5f51929f6 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -157,45 +157,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
||||
set(SUN TRUE)
|
||||
endif()
|
||||
|
||||
-execute_process(
|
||||
- COMMAND git log -1 --format=%h
|
||||
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- RESULT_VARIABLE GIT_RESULT
|
||||
- OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-execute_process(
|
||||
- COMMAND git describe --tags --abbrev=0
|
||||
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- OUTPUT_VARIABLE GIT_LAST_TAG
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-execute_process(
|
||||
- COMMAND git describe --tags --long
|
||||
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- OUTPUT_VARIABLE GIT_ITERATION
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-
|
||||
-if(GIT_RESULT EQUAL "0")
|
||||
- string(REGEX REPLACE "v([0-9]+).[0-9]+.[0-9]+" "\\1" DUCKDB_MAJOR_VERSION "${GIT_LAST_TAG}")
|
||||
- string(REGEX REPLACE "v[0-9]+.([0-9]+).[0-9]+" "\\1" DUCKDB_MINOR_VERSION "${GIT_LAST_TAG}")
|
||||
- string(REGEX REPLACE "v[0-9]+.[0-9]+.([0-9]+)" "\\1" DUCKDB_PATCH_VERSION "${GIT_LAST_TAG}")
|
||||
- string(REGEX REPLACE ".*-([0-9]+)-.*" "\\1" DUCKDB_DEV_ITERATION "${GIT_ITERATION}")
|
||||
-
|
||||
- if(DUCKDB_DEV_ITERATION EQUAL 0)
|
||||
- # on a tag; directly use the version
|
||||
- set(DUCKDB_VERSION "${GIT_LAST_TAG}")
|
||||
- else()
|
||||
- # not on a tag, increment the patch version by one and add a -devX suffix
|
||||
- math(EXPR DUCKDB_PATCH_VERSION "${DUCKDB_PATCH_VERSION}+1")
|
||||
- set(DUCKDB_VERSION "v${DUCKDB_MAJOR_VERSION}.${DUCKDB_MINOR_VERSION}.${DUCKDB_PATCH_VERSION}-dev${DUCKDB_DEV_ITERATION}")
|
||||
- endif()
|
||||
-else()
|
||||
- # fallback for when building from tarball
|
||||
- set(DUCKDB_MAJOR_VERSION 0)
|
||||
- set(DUCKDB_MINOR_VERSION 0)
|
||||
- set(DUCKDB_PATCH_VERSION 1)
|
||||
- set(DUCKDB_DEV_ITERATION 0)
|
||||
- set(DUCKDB_VERSION "v${DUCKDB_MAJOR_VERSION}.${DUCKDB_MINOR_VERSION}.${DUCKDB_PATCH_VERSION}-dev${DUCKDB_DEV_ITERATION}")
|
||||
-endif()
|
||||
+set(DUCKDB_VERSION "@DUCKDB_VERSION@")
|
||||
|
||||
option(AMALGAMATION_BUILD
|
||||
"Build from the amalgamation files, rather than from the normal sources."
|
Loading…
Reference in a new issue