3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #159526 from cpcloud/duckdb-update

duckdb: enable extensions
This commit is contained in:
Dmitry Kalinkin 2022-02-14 15:17:00 -05:00 committed by GitHub
commit e5866fbb73
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 86 additions and 3 deletions

View file

@ -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 ];
};
}

View 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."