Open rcannood opened 2 months ago
@rcannood taking a look!
Thanks @johnkerl !
@rcannood the issue seems to be errors of the form:
/tmp/TileDB-SOMA/build/externals/install/include/spdlog/fmt/bundled/core.h:1872:38:
required from ‘std::string fmt::v8::format(format_string<T ...>, T&& ...)
[with T = {std::basic_string_view<char, std::char_traits<char> >, long int}; std::string =
std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char,
std::basic_string_view<char, std::char_traits<char> >, long int>]’
-- we do use some known-good fmt
versions within our Conda-feedstock builds, and IIRC have used v9 at some point in the past. I do believe v8 has always been "too old" for us.
The versions that are known-good for our Conda feedstock are
fmt
9 spdlog
1.11fmt
11 spdlog
1.14I'm a little puzzled here since with docker run
of fedora40
I see
# dnf list | grep spdlog
spdlog.i686 1.12.0-4.fc40 updates
spdlog.x86_64 1.12.0-4.fc40 updates
spdlog-devel.i686 1.12.0-4.fc40 updates
spdlog-devel.x86_64 1.12.0-4.fc40 updates
and 1.12 is In between 1.11 and 1.14. And I get the same build error after dnf install spdlog
.
And the v8
is from here:
/tmp/TileDB-SOMA/build/externals/install/include/spdlog/fmt/bundled/core.h
At any rate -- I'll check with the team and circle back to see what recommendations we have.
@rcannood here is the issue. We are using some third-party code (which we don't control) and yet for our own code we want to compile with -Werror
. It turns out that in that third-party code, there are some things that some compilers warn about & others don't. In this case the Fedora 40 compiler is emitting a warning, which is then fatal.
Here is a quick workaround for kick-the-tires mode:
cd /tmp
git clone https://github.com/single-cell-data/TileDB-SOMA
Apply this diff:
diff --git a/libtiledbsoma/CMakeLists.txt b/libtiledbsoma/CMakeLists.txt
index 5d3d6d90..36361825 100644
--- a/libtiledbsoma/CMakeLists.txt
+++ b/libtiledbsoma/CMakeLists.txt
@@ -200,7 +200,8 @@ else()
set(TILEDBSOMA_COMPILE_OPTIONS -Wall -Wextra)
if(TILEDBSOMA_ENABLE_WERROR)
pip install apis/python
This worked for me in a docker run
of fedora:40
.
We do need this to work out of the box, though, on a plain-vanilla pip install
. I'll keep you posted.
Thanks! This workaround allows me to install tiledbsoma :relaxed:
pip install apis/python
Installing collected packages: tiledbsoma
Attempting uninstall: tiledbsoma
Found existing installation: tiledbsoma 1.12.0rc0.post203.dev1088558980
Uninstalling tiledbsoma-1.12.0rc0.post203.dev1088558980:
Successfully uninstalled tiledbsoma-1.12.0rc0.post203.dev1088558980
However, I do notice that cellxgene-census requires tiledbsoma>=1.12.3. Am I on the wrong branch or should I manually set apis/python/RELEASE-VERSION
to something like 1.12.4rc0?
Update: I checked out tag 1.14.2 and applied the diff to that.
I'll mark this comment and the previous one as off-topic
@rcannood your previous two comments were IMO completely on-topic! :)
My apologies, indeed I should have mentioned checking out tag 1.14.2, rather than the default which gave you tip of main
.
cc @jp-dark @nguyenv using docker-run as above with fedora:40
I applied the following test-patch:
diff --git a/libtiledbsoma/CMakeLists.txt b/libtiledbsoma/CMakeLists.txt
index 5d3d6d90..e85f67a7 100644
--- a/libtiledbsoma/CMakeLists.txt
+++ b/libtiledbsoma/CMakeLists.txt
@@ -200,7 +200,7 @@ else()
set(TILEDBSOMA_COMPILE_OPTIONS -Wall -Wextra)
if(TILEDBSOMA_ENABLE_WERROR)
- set(TILEDBSOMA_WERROR_OPTION -Werror)
+ set(TILEDBSOMA_WERROR_OPTION "")
else()
set(TILEDBSOMA_WERROR_OPTION "")
endif()
diff --git a/scripts/bld b/scripts/bld
index 5008e188..19bb9568 100755
--- a/scripts/bld
+++ b/scripts/bld
@@ -11,7 +11,7 @@ arg() { echo "$1" | sed "s/^${2-[^=]*=}//" | sed "s/:/;/g"; }
build="Release"
prefix=""
tiledb=""
-cmake_verbose="false"
+cmake_verbose="true"
no_tiledb_deprecated="false"
while test $# != 0; do
and got a successful pip install -e apis/python
[root@629d17eb941a TileDB-SOMA]# uname -a
Linux 629d17eb941a 6.8.0-1016-aws #17-Ubuntu SMP Mon Sep 2 13:48:07 UTC 2024 x86_64 GNU/Linux
[root@629d17eb941a TileDB-SOMA]# python
bash: python: command not found
[root@629d17eb941a TileDB-SOMA]# python3
Python 3.12.6 (main, Sep 9 2024, 00:00:00) [GCC 14.2.1 20240801 (Red Hat 14.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tiledbsoma
>>> tiledbsoma.show_package_versions()
tiledbsoma.__version__ 1.15.0rc0.post12.dev3893317782
TileDB core version (libtiledbsoma) 2.26.2
python version 3.12.6.final.0
OS version Linux 6.8.0-1016-aws
While the above test-patch is of course not the final solution, it does prove that -Werror
on third-party source is indeed the issue.
This suggests that our work on #2408 #2664 #2763 was not complete.
Describe the bug
Hi all!
Unfortunately, I don't manage to install the latest version of tiledbsoma on my Fedora 40 system. I managed to preproduce it with a Fedora 40 container. I didn't try on other platforms.
Thanks in advance!
To Reproduce
Full log
Versions (please complete the following information):
tiledbsoma.show_package_versions()
(Python) ortiledbsoma::show_package_versions()
(R)Additional context Add any other context about the problem here.