raulcd commented on PR #38237:
URL: https://github.com/apache/arrow/pull/38237#issuecomment-1764264449
@kou I am not entirely sure why the `conan-maximum` task fails to set the
correct option for boost. I can see from the logs it is not downloading it and
it fails:
```
CMake Error at
/root/.conan/data/cmake/3.27.7/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:230
(message):
Could NOT find Boost (missing: Boost_INCLUDE_DIR) (Required is at least
version "1.58")
Call Stack (most recent call first):
/root/.conan/data/cmake/3.27.7/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/share/cmake-3.27/Modules/FindPackageHandleStandardArgs.cmake:600
(_FPHSA_FAILURE_MESSAGE)
/root/.conan/data/cmake/3.27.7/_/_/package/4db1be536558d833e52e862fd84d64d75c2b3656/share/cmake-3.27/Modules/FindBoost.cmake:2392
(find_package_handle_standard_args)
cmake_modules/ThirdpartyToolchain.cmake:296 (find_package)
cmake_modules/ThirdpartyToolchain.cmake:1260 (resolve_dependency)
CMakeLists.txt:542 (include)
```
I've done some debugging and I can see that even though the option for
Parquet is set correctly:
```
[options]
arrow:parquet=True
arrow:with_brotli=True
arrow:with_bz2=True
arrow:with_flight_rpc=True
arrow:with_glog=True
arrow:with_jemalloc=True
arrow:with_json=True
arrow:with_lz4=True
arrow:with_snappy=True
arrow:with_zstd=True
```
When I try to check the option is set to `auto` and the function `_parquet`
is returning `False`:
```
> /root/.conan/data/arrow/14.0.0/_/_/export/conanfile.py(214)_parquet()
-> if self.options.parquet == "auto":
(Pdb) l
209 else:
210 return bool(self.options.compute)
211
212 def _parquet(self):
213 breakpoint()
214 -> if self.options.parquet == "auto":
215 return bool(self.options.get_safe("substrait",
False))
216 else:
217 return bool(self.options.parquet)
218
219 def _dataset_modules(self):
(Pdb) bool(self.options.parquet == "auto")
True
(Pdb) bool(self.options.get_safe("substrait", False))
False
```
I've validated that if I just return `True` in the `_parquet` function:
```
diff --git a/ci/conan/all/conanfile.py b/ci/conan/all/conanfile.py
index 827ee54..df159d6 100644
--- a/ci/conan/all/conanfile.py
+++ b/ci/conan/all/conanfile.py
@@ -210,6 +210,7 @@ class ArrowConan(ConanFile):
return bool(self.options.compute)
def _parquet(self):
+ return True
if self.options.parquet == "auto":
return bool(self.options.get_safe("substrait", False))
else:
```
obviously this enables boost, and downloads it. But then the same is
happening with `_with_flight_grpc`. Shouldn't `self.options.parquet` and
`self.options.with_flight_rpc` return the value of the option passed via CLI?
Just as a minor nit with the following diff the build passes:
```
$ git diff
diff --git a/ci/conan/all/conanfile.py b/ci/conan/all/conanfile.py
index 827ee54..843dc51 100644
--- a/ci/conan/all/conanfile.py
+++ b/ci/conan/all/conanfile.py
@@ -210,6 +210,7 @@ class ArrowConan(ConanFile):
return bool(self.options.compute)
def _parquet(self):
+ return True
if self.options.parquet == "auto":
return bool(self.options.get_safe("substrait", False))
else:
@@ -244,6 +245,7 @@ class ArrowConan(ConanFile):
return bool(self.options.with_protobuf)
def _with_flight_rpc(self):
+ return True
if self.options.with_flight_rpc == "auto":
return bool(self.options.get_safe("with_flight_sql", False))
else:
@@ -331,6 +333,7 @@ class ArrowConan(ConanFile):
if self.options.get_safe("with_gcs"):
self.requires("google-cloud-cpp/1.40.1")
if self.options.with_grpc:
+ self.requires("zlib/[>=1.2.11 <2]")
self.requires("grpc/1.50.0")
if self._requires_rapidjson():
self.requires("rapidjson/1.1.0")
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]