New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tiledb: init at 1.6.3 #67187
tiledb: init at 1.6.3 #67187
Conversation
We need help to figure out how to build the tiledb documentation. https://github.com/Intel-HLS/TileDB/wiki/Building-TileDB#step-8---build-tiledb and also how to run its gtest for the checkPhase. Anybody know how to do this? |
Just FYI, the official TileDB is maintained at https://github.com/TileDB-Inc/TileDB. We'd be happy to help with documentation and tests. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
essentially, i would do this:
Also, python and gtest (they use catch) aren't needed. They might be needed for the bindings, but for the base .so, you dont need it.
tiledb expression
{ stdenv, fetchFromGitHub
, boost
, bzip2
, catch2
, clang-tools
, cmake
, doxygen
, libpqxx
, lz4
, openssl
, spdlog_0
, tbb
, zlib
, zstd
}:
stdenv.mkDerivation rec {
name = "tiledb";
version = "1.5.1";
src = fetchFromGitHub {
owner = "TileDB-Inc";
repo = "TileDB";
rev = version;
sha256 = "0ky0dcv1w1jn1cjn3819aq9xyd2wg80aagf2flxmd916flgr9zjl";
};
nativeBuildInputs = [ clang-tools cmake doxygen ];
buildInputs = [ catch2 zlib lz4 bzip2 zstd spdlog_0 tbb openssl boost 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
'';
makeTarget = "tiledb";
installTargets = [ "-C tiledb install" ];
meta = with stdenv.lib; {
description = "TileDB allows you to manage the massive dense and sparse multi-dimensional array data";
homepage = https://github.com/TileDB-Inc/TileDB;
license = licenses.mit;
maintainers = with maintainers; [ rakesh4g ];
};
}
|
||
nativeBuildInputs = [clang-tools doxygen gtest]; | ||
|
||
buildInputs = [cmake catch2 zlib lz4 bzip2 zstd spdlog_0 tbb openssl boost libpqxx python ]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
whitespace and move cmake to nativeBuildInputs. python could probably be moved too if it's not needed at runtime.
buildInputs = [cmake catch2 zlib lz4 bzip2 zstd spdlog_0 tbb openssl boost libpqxx python ]; | |
buildInputs = [ catch2 zlib lz4 bzip2 zstd spdlog_0 tbb openssl boost libpqxx python ]; |
|
||
outputs = ["out"]; | ||
|
||
nativeBuildInputs = [clang-tools doxygen gtest]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
whitespace, and add cmake
nativeBuildInputs = [clang-tools doxygen gtest]; | |
nativeBuildInputs = [ clang-tools cmake doxygen gtest ]; |
|
||
makeTarget = "tiledb"; | ||
|
||
outputs = ["out"]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having a single output called "$out" is the default, you can remove
outputs = ["out"]; |
cmakeFlags = [ | ||
"-DCATCH_INCLUDE_DIR=${catch2}" | ||
# "-DTILEDB_SUPERBUILD=OFF" | ||
# "-DINCLUDE_DIR=${clang-tools}/bin" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let nix take care of setting those things like include, library, and other common dirs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which ones are needed and which ones are not?
for the docs:
for the gtest, no idea |
Thanks @jonringer , Just used |
Thanks @stavrospapadopoulos , We have raised the issue at: https://github.com/TileDB-Inc/TileDB/issues/1369 |
Hello, Tyler from TileDB here. Unless there is a reason otherwise, we recommend you update your package to the latest stable release of TileDB, version 1.6.2. Now that major release 1.6 is available, bugfixes and support for older releases (such as 1.5.1) will be minimal. |
@tdenniston Thanks for your response. We had initially tried with tiledb 1.6.2 only. But we were stuck at tiledb shared library build itself. We had to manually include map file in one or two files to build library itself.this is similar to TileDB-Inc/TileDB#1312 so we later moved back to version 1.5.1. |
@Rakesh4G we'd like to help you get the 1.6.2 package building. Could you please tell us more information about the 1.6.2 build errors? We will investigate whether it is possible to do a 1.6.3 release to address your issues. |
@tdenniston I think the errors he's referring to is here: TileDB-Inc/TileDB#1312 |
Hi @tdenniston , Please also find attached the error log from my machine. Used Tiledb is :
Thanks. |
@Rakesh4G if possible could you please try building the TileDB branch at https://github.com/TileDB-Inc/TileDB/tree/ttd/test-missing-include-fix? Commit hash |
Hi @tdenniston , After using the patch now we are reaching a point where tiledb library is building. But the build error for tiledb_unit is same as before. please see the attached file
Thanks. |
@Rakesh4G I've pushed a new commit to the same branch (hash |
Hi @tdenniston , Thanks. with this now it moves ahead but stops again in unit-capi-sparse_array.cc:1958:15: error: unused variable 'attributes' [-Werror=unused-variable] const char* attributes[] = {"a2", TILEDB_COORDS};
|
@Rakesh4G I've pushed another update. Would you mind telling me your toolchain version and compiler flags? We have CI checks in place to prevent these errors, but our CI did not find these unused variables. |
The toolchain would be whatever is supplied by the standard environment in Nix. So that would be the current master's gcc/clang? Nix is pretty strict for its compiler flags by default. |
@tdenniston full configure log when I attempt to build this
|
Hi @tdenniston , Thanks again. it moved further but still failing at:
Also i had tried to do this change on my local branch forked from your branch to see if any other issue is still there. The result is tiledb_unit build is successful after above mentioned change. Now during execution my test run is failing for few test cases Full log --> =================================================================== Total Test time (real) = 19.06 sec The following tests FAILED: I assume mostof them are failing due to same issue : |
@Rakesh4G I've fixed the last unused variable warning on my branch. For the test failures, can you tell us more about your environment? We are not familiar with Nix in general -- what hardware architecture are you building on? |
@tdenniston if you want to experiment locally on a linux box, you can follow these steps:
nixpkgs will pull down or build all of your dependencies, then attempt to build the tiledb package. |
I think you pushed the wrong branch |
Yes, I was trying to squash and pushed something wrong. I will correct it soon. |
That's great, thanks all who pushed this through. Please open an issue or ping us at |
Motivation for this change
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nix-review --run "nix-review wip"
./result/bin/
)nix path-info -S
before and after)Notify maintainers
cc @CMCDragonkai