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]

Reply via email to