xmake-repo icon indicating copy to clipboard operation
xmake-repo copied to clipboard

Installing arrow with parquet config fails

Open qiuwei opened this issue 2 years ago • 4 comments

Xmake Version

v2.6.4+202203220749

Operating System Version and Architecture

Ubuntu 20.04

Describe Bug

Installing arrow succeeds, however, running

xrepo install -f"parquet=true" arrow

results in the following errors.

fatal: not a git repository (or any of the parent directories): .git
Using ld linker
Configured for RELEASE build (set with cmake -DCMAKE_BUILD_TYPE={release,debug,...})
CMake Error at /home/test/.xmake/packages/b/boost/1.78.0/edc6c426909a427395ddd1d79622c780/lib/cmake/Boost-1.78.0/BoostConfig.cmake:141 (find_package):
  Could not find a package configuration file provided by "boost_system"
  (requested version 1.78.0) with any of the following names:
    boost_systemConfig.cmake
    boost_system-config.cmake
  Add the installation prefix of "boost_system" to CMAKE_PREFIX_PATH or set
  "boost_system_DIR" to a directory containing one of the above files.  If
  "boost_system" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  /home/test/.xmake/packages/b/boost/1.78.0/edc6c426909a427395ddd1d79622c780/lib/cmake/Boost-1.78.0/BoostConfig.cmake:262 (boost_find_component)
  /usr/share/cmake-3.16/Modules/FindBoost.cmake:443 (find_package)
  cmake_modules/FindBoostAlt.cmake:48 (find_package)
  cmake_modules/ThirdpartyToolchain.cmake:241 (find_package)
if you want to get more verbose errors, please see:
  -> /home/test/.xmake/cache/packages/2203/a/arrow/7.0.0/installdir.failed/logs/install.txt
error: install failed!
error: execv(xmake require -j 108 --extra={system=false,configs={parquet=true}} arrow) failed(255)

Expected Behavior

The installation succeeds.

Project Configuration

No response

Additional Information and Error Logs

No response

qiuwei avatar Mar 30 '22 04:03 qiuwei

please add -vD and let me see the verbose output.

waruqi avatar Mar 30 '22 04:03 waruqi

Hi ,the verbose output is attached. log.txt

qiuwei avatar Mar 30 '22 04:03 qiuwei

See also "/home/test/.xmake/cache/packages/2203/a/arrow/7.0.0/source/arrow-apache-arrow-7.0.0/cpp/build_f186ec2b/CMakeFiles/CMakeOutput.log". See also "/home/test/.xmake/cache/packages/2203/a/arrow/7.0.0/source/arrow-apache-arrow-7.0.0/cpp/build_f186ec2b/CMakeFiles/CMakeError.log".

can you let me see these files

waruqi avatar Mar 30 '22 04:03 waruqi

CMakeError.log CMakeOutput.log Sorry for the late response! The files are now attached.

qiuwei avatar Apr 16 '22 13:04 qiuwei

When parquet is enabled, arrow depends on thrift. It turns out that thrift depends on boost with boost_system enabled. However, the default option for boost_system is off for xmake.

We could override this in the project xmake.lua. Something as follows would do the trick.

add_requireconfs("arrow.boost", {override = true, version = "1.81.0", system = false, configs = {all = true}})
add_requireconfs("arrow.thrift.boost", {override = true, version = "1.81.0", system = false, configs = {all = true}})

@waruqi How could I fix this upstream?

qiuwei avatar Aug 23 '23 13:08 qiuwei

you can enable boost_system in arrow/boost dep.

on_load(function(package))
    if package:config("parquet") then
        package:add("deps", "boost", {configs = {system = true}})
    end
end)

waruqi avatar Aug 23 '23 13:08 waruqi