Merge pull request #1 from robert-manchester/duckdb-0.9_nohash
duckdb 0.9.0 without git deepcopy and hash version.
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, git
|
||||
, ninja
|
||||
, openssl
|
||||
, openjdk11
|
||||
@@ -21,24 +20,23 @@ stdenv.mkDerivation rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
deepClone = true;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-EKvDH7RwOC4Gu/lturrfnGpzXnJ9azIwAFeuVoa6L/Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake git ninja ];
|
||||
patches = [ ./version.patch ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --subst-var-by DUCKDB_VERSION "v${version}"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ninja ];
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optionals withJdbc [ openjdk11 ]
|
||||
++ lib.optionals withOdbc [ unixODBC ];
|
||||
|
||||
cmakeFlags = [
|
||||
# use similar flags to what is defined in ${src}/.github/workflow/{LinuxRelease,OSX}.yml
|
||||
"-DBUILD_ICU_EXTENSION=ON"
|
||||
"-DDEBUG_STACKTRACE=1"
|
||||
"-DBUILD_PARQUET_EXTENSION=ON"
|
||||
"-DDUCKDB_EXTENSION_CONFIGS=${src}/.github/config/bundled_extensions.cmake"
|
||||
"-DBUILD_TPCH_EXTENSION=ON"
|
||||
"-DDUCKDB_EXTENSION_CONFIGS=${src}/.github/config/in_tree_extensions.cmake"
|
||||
"-DBUILD_ODBC_DRIVER=${enableFeature withOdbc}"
|
||||
"-DJDBC_DRIVER=${enableFeature withJdbc}"
|
||||
] ++ lib.optionals doInstallCheck [
|
||||
@@ -56,34 +54,48 @@ stdenv.mkDerivation rec {
|
||||
|
||||
installCheckPhase =
|
||||
let
|
||||
excludes = map (pattern: "exclude:'${pattern}'") ([
|
||||
"Test using a remote optimizer pass in case thats important to someone"
|
||||
excludes = map (pattern: "exclude:'${pattern}'") [
|
||||
"[s3]"
|
||||
"Test closing database during long running query"
|
||||
"test/fuzzer/pedro/buffer_manager_out_of_memory.test"
|
||||
"test/sql/copy/csv/parallel/csv_parallel_httpfs.test"
|
||||
"test/sql/copy/csv/parallel/test_parallel_csv.test"
|
||||
"test/sql/copy/csv/test_csv_httpfs_prepared.test"
|
||||
"test/sql/copy/csv/test_csv_httpfs.test"
|
||||
"Test using a remote optimizer pass in case thats important to someone"
|
||||
"test/common/test_cast_hugeint.test"
|
||||
"test/sql/copy/csv/test_csv_remote.test"
|
||||
"test/sql/copy/parquet/delta_byte_array_length_mismatch.test"
|
||||
"test/sql/copy/parquet/delta_byte_array_multiple_pages.test"
|
||||
"test/sql/copy/parquet/parquet_5968.test"
|
||||
"test/sql/copy/parquet/snowflake_lineitem.test"
|
||||
"test/sql/copy/parquet/test_parquet_force_download.test"
|
||||
"test/sql/copy/parquet/test_parquet_remote_foreign_files.test"
|
||||
"test/sql/copy/parquet/test_parquet_remote.test"
|
||||
"test/sql/copy/parquet/test_parquet_remote_foreign_files.test"
|
||||
"test/sql/storage/compression/chimp/chimp_read.test"
|
||||
"test/sql/storage/compression/chimp/chimp_read_float.test"
|
||||
"test/sql/storage/compression/patas/patas_compression_ratio.test_coverage"
|
||||
"test/sql/storage/compression/patas/patas_read.test"
|
||||
"test/sql/json/read_json_objects.test"
|
||||
"test/sql/json/read_json.test"
|
||||
"test/sql/json/table/read_json_objects.test"
|
||||
"test/sql/json/table/read_json.test"
|
||||
"test/sql/settings/test_disabled_file_system_httpfs.test"
|
||||
"test/sql/copy/parquet/parquet_5968.test"
|
||||
"test/fuzzer/pedro/buffer_manager_out_of_memory.test"
|
||||
"test/sql/storage/compression/bitpacking/bitpacking_size_calculation.test"
|
||||
|
||||
"test/sql/copy/parquet/delta_byte_array_length_mismatch.test"
|
||||
"test/sql/function/timestamp/test_icu_strptime.test"
|
||||
"test/sql/timezone/test_icu_timezone.test"
|
||||
"test/sql/copy/parquet/snowflake_lineitem.test"
|
||||
"test/sql/copy/parquet/test_parquet_force_download.test"
|
||||
"test/sql/copy/parquet/delta_byte_array_multiple_pages.test"
|
||||
"test/sql/copy/csv/test_csv_httpfs_prepared.test"
|
||||
"test/sql/copy/csv/test_csv_httpfs.test"
|
||||
"test/sql/settings/test_disabled_file_system_httpfs.test"
|
||||
"test/sql/copy/csv/parallel/test_parallel_csv.test"
|
||||
"test/sql/copy/csv/parallel/csv_parallel_httpfs.test"
|
||||
"test/common/test_cast_struct.test"
|
||||
# test is order sensitive
|
||||
"test/sql/copy/parquet/parquet_glob.test"
|
||||
# these are only hidden if no filters are passed in
|
||||
"[!hide]"
|
||||
# this test apparently never terminates
|
||||
"test/sql/copy/csv/auto/test_csv_auto.test"
|
||||
] ++ lib.optionals stdenv.isAarch64 [
|
||||
"test/sql/aggregate/aggregates/test_kurtosis.test"
|
||||
"test/sql/aggregate/aggregates/test_skewness.test"
|
||||
"test/sql/function/list/aggregates/skewness.test"
|
||||
]);
|
||||
];
|
||||
in
|
||||
''
|
||||
runHook preInstallCheck
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 2b49e11288..0a4a69b9a0 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -244,52 +244,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
|
||||
set(SUN TRUE)
|
||||
endif()
|
||||
|
||||
-find_package(Git)
|
||||
-if(Git_FOUND)
|
||||
- if (NOT DEFINED GIT_COMMIT_HASH)
|
||||
- execute_process(
|
||||
- COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
|
||||
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- RESULT_VARIABLE GIT_RESULT
|
||||
- OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
- endif()
|
||||
- execute_process(
|
||||
- COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0
|
||||
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- OUTPUT_VARIABLE GIT_LAST_TAG
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
- execute_process(
|
||||
- COMMAND ${GIT_EXECUTABLE} describe --tags --long
|
||||
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- OUTPUT_VARIABLE GIT_ITERATION
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-else()
|
||||
- message("Git NOT FOUND")
|
||||
-endif()
|
||||
-
|
||||
-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@")
|
||||
|
||||
message(STATUS "git hash ${GIT_COMMIT_HASH}, version ${DUCKDB_VERSION}")
|
||||
|
||||
diff --git a/tools/pythonpkg/setup.py b/tools/pythonpkg/setup.py
|
||||
index fdf2911019..c363cc518a 100644
|
||||
--- a/tools/pythonpkg/setup.py
|
||||
+++ b/tools/pythonpkg/setup.py
|
||||
@@ -163,8 +163,6 @@ if 'BUILD_HTTPFS' in os.environ:
|
||||
for ext in extensions:
|
||||
toolchain_args.extend(['-DDUCKDB_EXTENSION_{}_LINKED'.format(ext.upper())])
|
||||
|
||||
-toolchain_args.extend(['-DDUCKDB_EXTENSION_AUTOLOAD_DEFAULT=1', '-DDUCKDB_EXTENSION_AUTOINSTALL_DEFAULT=1'])
|
||||
-
|
||||
|
||||
class get_pybind_include(object):
|
||||
def __init__(self, user=False):
|
||||
@@ -343,7 +341,7 @@ setup(
|
||||
packages=packages,
|
||||
include_package_data=True,
|
||||
python_requires='>=3.7.0',
|
||||
- setup_requires=setup_requires + ["setuptools_scm<7.0.0", 'pybind11>=2.6.0'],
|
||||
+ setup_requires=setup_requires + ["setuptools_scm", 'pybind11>=2.6.0'],
|
||||
use_scm_version=setuptools_scm_conf,
|
||||
tests_require=['google-cloud-storage', 'mypy', 'pytest'],
|
||||
classifiers=[
|
||||
@@ -26,7 +26,7 @@ buildPythonPackage rec {
|
||||
hash = "sha256-T02nGF+YlughRQPinb0I3NC6xsarh4+qRhG8YfhTvhI=";
|
||||
};
|
||||
|
||||
patches = [ ./remote_data.patch ];
|
||||
patches = [ ./remote_data.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
poetry-core
|
||||
|
||||
@@ -21,4 +21,4 @@ index 349c976..bf3dbaa 100644
|
||||
-@mark.remote_data
|
||||
@mark.skipif(
|
||||
"dev" in duckdb.__version__, reason="md extension not available for dev builds" # type: ignore[attr-defined]
|
||||
)
|
||||
)
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
, buildPythonPackage
|
||||
, duckdb
|
||||
, fsspec
|
||||
, git
|
||||
, google-cloud-storage
|
||||
, numpy
|
||||
, openssl
|
||||
@@ -14,12 +13,9 @@
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
inherit (duckdb) pname version src;
|
||||
inherit (duckdb) pname version src patches;
|
||||
format = "setuptools";
|
||||
|
||||
BUILD_HTTPFS = 1;
|
||||
patches = [ ./setup.patch ];
|
||||
|
||||
postPatch = ''
|
||||
# we can't use sourceRoot otherwise patches don't apply, because the patches apply to the C++ library
|
||||
cd tools/pythonpkg
|
||||
@@ -33,10 +29,10 @@ buildPythonPackage rec {
|
||||
rm tests/stubs/test_stubs.py
|
||||
'';
|
||||
|
||||
BUILD_HTTPFS = 1;
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
||||
nativeBuildInputs = [
|
||||
git
|
||||
pybind11
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
diff --git a/tools/pythonpkg/setup.py b/tools/pythonpkg/setup.py
|
||||
index fdf2911019..c363cc518a 100644
|
||||
--- a/tools/pythonpkg/setup.py
|
||||
+++ b/tools/pythonpkg/setup.py
|
||||
@@ -163,8 +163,6 @@ if 'BUILD_HTTPFS' in os.environ:
|
||||
for ext in extensions:
|
||||
toolchain_args.extend(['-DDUCKDB_EXTENSION_{}_LINKED'.format(ext.upper())])
|
||||
|
||||
-toolchain_args.extend(['-DDUCKDB_EXTENSION_AUTOLOAD_DEFAULT=1', '-DDUCKDB_EXTENSION_AUTOINSTALL_DEFAULT=1'])
|
||||
-
|
||||
|
||||
class get_pybind_include(object):
|
||||
def __init__(self, user=False):
|
||||
@@ -343,7 +341,7 @@ setup(
|
||||
packages=packages,
|
||||
include_package_data=True,
|
||||
python_requires='>=3.7.0',
|
||||
- setup_requires=setup_requires + ["setuptools_scm<7.0.0", 'pybind11>=2.6.0'],
|
||||
+ setup_requires=setup_requires + ["setuptools_scm", 'pybind11>=2.6.0'],
|
||||
use_scm_version=setuptools_scm_conf,
|
||||
tests_require=['google-cloud-storage', 'mypy', 'pytest'],
|
||||
classifiers=[
|
||||
Reference in New Issue
Block a user