about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/tiledb
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-12-01 19:00:09 +0100
committerAlyssa Ross <hi@alyssa.is>2023-12-01 19:00:09 +0100
commit9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d (patch)
tree4368f9e4cb2d5b93a956c085337e45cb70f1e331 /nixpkgs/pkgs/development/libraries/tiledb
parenta9cbfb6941b47d6f50129e6e36927882392daed7 (diff)
parent2344fe1da14cb08b0c18743b207995f9b8597915 (diff)
downloadnixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar
nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.gz
nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.bz2
nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.lz
nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.xz
nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.zst
nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.zip
Merge https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/tiledb')
-rw-r--r--nixpkgs/pkgs/development/libraries/tiledb/FindMagic_EP.cmake.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/tiledb/default.nix56
2 files changed, 57 insertions, 13 deletions
diff --git a/nixpkgs/pkgs/development/libraries/tiledb/FindMagic_EP.cmake.patch b/nixpkgs/pkgs/development/libraries/tiledb/FindMagic_EP.cmake.patch
new file mode 100644
index 000000000000..7a5a01c54588
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/tiledb/FindMagic_EP.cmake.patch
@@ -0,0 +1,14 @@
+diff --git a/FindMagic_EP.cmake b/FindMagic_EP.cmake
+--- a/cmake/Modules/FindMagic_EP.cmake
++++ b/cmake/Modules/FindMagic_EP.cmake
+@@ -126,9 +126,7 @@ if(NOT TILEDB_LIBMAGIC_EP_BUILT)
+     # that was modified by tiledb to also build with cmake for nix
+     ExternalProject_Add(ep_magic
+       PREFIX "externals"
+-      GIT_REPOSITORY "https://github.com/TileDB-Inc/file-windows.git"
+-      GIT_TAG "5.38.2.tiledb"
+-      GIT_SUBMODULES_RECURSE TRUE
++      DOWNLOAD_COMMAND true
+       UPDATE_COMMAND ""
+       CMAKE_ARGS
+         -DCMAKE_INSTALL_PREFIX=${TILEDB_EP_INSTALL_PREFIX}
diff --git a/nixpkgs/pkgs/development/libraries/tiledb/default.nix b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
index ea41b8156f7f..ae182ff46136 100644
--- a/nixpkgs/pkgs/development/libraries/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+
 , cmake
 , zlib
 , lz4
@@ -12,7 +13,7 @@
 , boost
 , libpqxx
 , clang-tools
-, catch2
+, catch2_3
 , python3
 , gtest
 , doxygen
@@ -20,24 +21,54 @@
 , useAVX2 ? stdenv.hostPlatform.avx2Support
 }:
 
+let
+  # pre-fetch ExternalProject from cmake/Modules/FindMagic_EP.cmake
+  ep-file-windows = fetchFromGitHub {
+    owner = "TileDB-Inc";
+    repo   = "file-windows";
+    rev    = "5.38.2.tiledb";
+    hash = "sha256-TFn30VCuWZr252VN1T5NNCZe2VEN3xQSomS7XxxKGF8=";
+    fetchSubmodules = true;
+  };
+
+in
 stdenv.mkDerivation rec {
   pname = "tiledb";
-  version = "2.8.3";
+  version = "2.18.0";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB";
     rev = version;
-    hash = "sha256-HKMVwrPnk9/mukH3mJ2LEAvA9LBF4PcgBZjbbLhO9qU=";
+    hash = "sha256-y5/kXODzkNKmMn8P+WOOWGy9Htd0nhXbUxmfw/SqSYY=";
   };
 
+  patches = [
+    ./FindMagic_EP.cmake.patch
+  ];
+
+  postPatch = ''
+    # copy pre-fetched external project to directory where it is expected to be
+    mkdir -p build/externals/src
+    cp -a ${ep-file-windows} build/externals/src/ep_magic
+    chmod -R u+w build/externals/src/ep_magic
+
+    # add openssl on path
+    sed -i '49i list(APPEND OPENSSL_PATHS "${openssl.dev}" "${openssl.out}")' \
+      cmake/Modules/FindOpenSSL_EP.cmake
+  '';
+
   # (bundled) blosc headers have a warning on some archs that it will be using
   # unaccelerated routines.
   cmakeFlags = [
-    "-DTILEDB_WERROR=0"
+    "-DTILEDB_VCPKG=OFF"
+    "-DTILEDB_WEBP=OFF"
+    "-DTILEDB_WERROR=OFF"
   ] ++ lib.optional (!useAVX2) "-DCOMPILER_SUPPORTS_AVX2=FALSE";
 
   nativeBuildInputs = [
+    ep-file-windows
+    catch2_3
     clang-tools
     cmake
     python3
@@ -49,7 +80,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    catch2
     zlib
     lz4
     bzip2
@@ -61,13 +91,14 @@ stdenv.mkDerivation rec {
     libpqxx
   ];
 
-  # emulate the process of pulling catch down
-  postPatch = ''
-    mkdir -p build/externals/src/ep_catch
-    ln -sf ${catch2}/include/catch2 build/externals/src/ep_catch/single_include
-
-    sed -i '38i list(APPEND OPENSSL_PATHS "${openssl.dev}" "${openssl.out}")' \
-      cmake/Modules/FindOpenSSL_EP.cmake
+  # test commands taken from
+  # https://github.com/TileDB-Inc/TileDB/blob/dev/.github/workflows/unit-test-runs.yml
+  checkPhase = ''
+    runHook preCheck
+    make -C tiledb tests -j$NIX_BUILD_CORES
+    make -C tiledb test ARGS="-R '^unit_'" -R "test_assert"
+    make -C tiledb test ARGS="-R 'test_ci_asserts'"
+    runHook postCheck
   '';
 
   doCheck = true;
@@ -85,5 +116,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ rakesh4g ];
   };
-
 }