diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-02-22 10:43:06 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2022-03-11 16:17:56 +0000 |
commit | ca1aada113c0ebda1ab8667199f6453f8e01c4fc (patch) | |
tree | 55e402280096f62eb0bc8bcad5ce6050c5a0aec7 /nixpkgs/pkgs/development/libraries/duckdb | |
parent | e4df5a52a6a6531f32626f57205356a773ac2975 (diff) | |
parent | 93883402a445ad467320925a0a5dbe43a949f25b (diff) | |
download | nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.gz nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.bz2 nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.lz nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.xz nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.tar.zst nixlib-ca1aada113c0ebda1ab8667199f6453f8e01c4fc.zip |
Merge commit '93883402a445ad467320925a0a5dbe43a949f25b'
Conflicts: nixpkgs/nixos/modules/programs/ssh.nix nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix nixpkgs/pkgs/data/fonts/noto-fonts/default.nix nixpkgs/pkgs/development/go-modules/generic/default.nix nixpkgs/pkgs/development/interpreters/ruby/default.nix nixpkgs/pkgs/development/libraries/mesa/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/duckdb')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/duckdb/default.nix | 42 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/duckdb/version.patch | 51 |
2 files changed, 88 insertions, 5 deletions
diff --git a/nixpkgs/pkgs/development/libraries/duckdb/default.nix b/nixpkgs/pkgs/development/libraries/duckdb/default.nix index f1e4f56a5950..7d12d9fabf2f 100644 --- a/nixpkgs/pkgs/development/libraries/duckdb/default.nix +++ b/nixpkgs/pkgs/development/libraries/duckdb/default.nix @@ -1,26 +1,58 @@ -{ 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.1"; + version = "0.3.2"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "sha256-apTU7WgKw/YEnT4maibyffqOrCoVwHPOkNINlAmtYYI="; + 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 ]; }; } diff --git a/nixpkgs/pkgs/development/libraries/duckdb/version.patch b/nixpkgs/pkgs/development/libraries/duckdb/version.patch new file mode 100644 index 000000000000..1f5491eac23c --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/duckdb/version.patch @@ -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." |