Eduardo, Thanks for the notes. I'd prefer something along the path of solution 2 and build Thrift 0.12.0. I don't understand the relation between the error message I get "No rule to make target install" and the Apache mirror. It looks like the source code is downloaded, configured and built successfully. It just fails to install it.
> cat thrift_ep-download-*.log -- Downloading... dst='/proj/bridge/apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift-0.12.0.tar.gz' timeout='none' -- Using src=' http://www.apache.org/dyn/closer.cgi?action=download&filename=/thrift/0.12.0/thrift-0.12.0.tar.gz ' -- [download 0% complete] -- [download 1% complete] ... [ 7%] Performing download step (download, verify and extract) for 'thrift_ep' -- thrift_ep download command succeeded. See also apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ ep-stamp/thrift_ep-download-*.log [ 7%] No patch step for 'thrift_ep' [ 8%] No update step for 'thrift_ep' [ 9%] Performing configure step for 'thrift_ep' -- thrift_ep configure command succeeded. See also apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ ep-stamp/thrift_ep-configure-*.log [ 9%] Performing build step for 'thrift_ep' -- thrift_ep build command succeeded. See also apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ ep-stamp/thrift_ep-build-*.log I'm not sure how using the Python script from the PR can help. Are you saying that I need to get Thrift 0.9.1 since I'm using CentOS 7? Will it work on Arrow 3.0.0? Thanks! Rares On Mon, Sep 20, 2021 at 10:14 PM Eduardo Ponce <edponc...@gmail.com> wrote: > Hi Rares, > > The reason compilation fails when you set ARROW_PARQUET=ON is because this > flag also enables > installing Apache Thrift [1] and support for Thrift in CentOS systems is > fragile (see THRIFT-2559 [2]). > When you disable Parquet, Thrift is not installed as a required dependency. > > I recommend you to try the following solutions: > 1. Install Thrift for CentOS independent from Arrow. You can find it in the > official Apache Thrift webpage [3]. > Note that Arrow 3.0.0 installs Thrift 0.12.0 (see > arrow/cpp/thirdparty/versions.txt) but CentOS package has 0.9.1. > 2. There is an old Arrow PR [4] that contains a script to identify/download > Thrift from the preferred Apache > mirror instead of using the Apache distribution server. > > Hope this helps, > ~Eduardo > > [1] > > https://github.com/apache/arrow/blob/master/cpp/cmake_modules/ThirdpartyToolchain.cmake#L273-L274 > [2] https://issues.apache.org/jira/browse/THRIFT-2559 > [3] > https://centos.pkgs.org/7/epel-x86_64/thrift-0.9.1-15.el7.x86_64.rpm.html > [4] https://github.com/apache/arrow/pull/4558 > > On Mon, Sep 20, 2021 at 11:56 PM Rares Vernica <rvern...@gmail.com> wrote: > > > Hello, > > > > I'm compiling the C++ library for Arrow 3.0.0 in CentOS 7. It works fine, > > but it breaks if I set ARROW_PARQUET=ON. I stops while trying to build > > thrift_ep > > > > > scl enable devtoolset-3 "cmake3 .. > > \ > > -DARROW_PARQUET=ON > > \ > > -DARROW_WITH_LZ4=ON > > \ > > -DARROW_WITH_ZLIB=ON > > \ > > -DARROW_COMPUTE=ON > > \ > > > -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/g++ > > \ > > -DCMAKE_C_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/gcc > > \ > > -DCMAKE_INSTALL_PREFIX=/opt/apache-arrow" > > > > apache-arrow-3.0.0/cpp/build> make > > Scanning dependencies of target jemalloc_ep > > [ 1%] Creating directories for 'jemalloc_ep' > > [ 1%] Performing download step (download, verify and extract) for > > 'jemalloc_ep' > > -- jemalloc_ep download command succeeded. See also > > > > > apache-arrow-3.0.0/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-download-*.log > > [ 2%] Performing patch step for 'jemalloc_ep' > > [ 2%] No update step for 'jemalloc_ep' > > [ 2%] Performing configure step for 'jemalloc_ep' > > -- jemalloc_ep configure command succeeded. See also > > > > > apache-arrow-3.0.0/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-*.log > > [ 3%] Performing build step for 'jemalloc_ep' > > -- jemalloc_ep build command succeeded. See also > > > > > apache-arrow-3.0.0/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-build-*.log > > [ 3%] Performing install step for 'jemalloc_ep' > > -- jemalloc_ep install command succeeded. See also > > > > > apache-arrow-3.0.0/cpp/build/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-install-*.log > > [ 4%] Completed 'jemalloc_ep' > > [ 4%] Built target jemalloc_ep > > Scanning dependencies of target boost_ep > > [ 4%] Creating directories for 'boost_ep' > > [ 5%] Performing download step (download, verify and extract) for > > 'boost_ep' > > -- boost_ep download command succeeded. See also > > > > > apache-arrow-3.0.0/cpp/build/boost_ep-prefix/src/boost_ep-stamp/boost_ep-download-*.log > > [ 5%] No patch step for 'boost_ep' > > [ 5%] No update step for 'boost_ep' > > [ 6%] No configure step for 'boost_ep' > > [ 6%] No build step for 'boost_ep' > > [ 7%] No install step for 'boost_ep' > > [ 7%] Completed 'boost_ep' > > [ 7%] Built target boost_ep > > Scanning dependencies of target thrift_ep > > [ 7%] Creating directories for 'thrift_ep' > > [ 7%] Performing download step (download, verify and extract) for > > 'thrift_ep' > > -- thrift_ep download command succeeded. See also > > > > > apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-download-*.log > > [ 7%] No patch step for 'thrift_ep' > > [ 8%] No update step for 'thrift_ep' > > [ 9%] Performing configure step for 'thrift_ep' > > -- thrift_ep configure command succeeded. See also > > > > > apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-configure-*.log > > [ 9%] Performing build step for 'thrift_ep' > > -- thrift_ep build command succeeded. See also > > > > > apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-build-*.log > > [ 10%] Performing install step for 'thrift_ep' > > CMake Error at > > > > > apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install-RELEASE.cmake:37 > > (message): > > Command failed: 2 > > > > 'make' 'install' > > > > See also > > > > > > > > > apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install-*.log > > > > > > -- stdout output is: > > > > -- stderr output is: > > make[3]: *** No rule to make target `install'. Stop. > > > > CMake Error at > > > > > apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install-RELEASE.cmake:47 > > (message): > > Stopping after outputting logs. > > > > > > make[2]: *** [thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install] > Error > > 1 > > make[1]: *** [CMakeFiles/thrift_ep.dir/all] Error 2 > > make: *** [all] Error 2 > > > > > > > cat > > > > > apache-arrow-3.0.0/cpp/build/thrift_ep-prefix/src/thrift_ep-stamp/thrift_ep-install-*.log > > make[3]: *** No rule to make target `install'. Stop. > > > > Am I missing some dependencies? > > > > Thank you! > > Rares > > >