Thanks Wes. I got it all linked up. I reported the original Thrift build issue here just in case https://issues.apache.org/jira/browse/ARROW-14160
In the process, I identified an issue with building Boost captured here https://issues.apache.org/jira/browse/ARROW-14152?focusedCommentId=17421632&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17421632 On Tue, Sep 28, 2021 at 5:29 PM Wes McKinney <wesmck...@gmail.com> wrote: > It should be -DThrift_ROOT=/opt/apache-thrift, according to > > > https://github.com/apache/arrow/blob/master/cpp/cmake_modules/FindThrift.cmake#L20 > > On Thu, Sep 23, 2021 at 6:18 PM Rares Vernica <rvern...@gmail.com> wrote: > > > > Hello, > > > > I managed to get Thrift 0.12.0 compiled and installed from source on my > > CentOS 7 setup. I configured it like so, mimicking what > > ThirdpartyToolchain.cmake is doing > > > https://github.com/apache/arrow/blob/eec7b55c6f56207c2bae474c381931fd62cb7e72/cpp/cmake_modules/ThirdpartyToolchain.cmake#L1254 > > > > ./configure --prefix=/opt/apache-thrift --enable-shared=no > > --enable-tests=no --enable-tutorial=no --with-qt4=no --with-c_glib=no > > --with-java=no --with-python=no --with-haskell=no --with-cpp=yes > > --enable-static=yes --with-libevent=no --with-boost=/opt/3rdparty/boost > > CPPFLAGS='-I/opt/3rdparty/boost/include' > > > > I ended up with these library files and accompanying include files: > > > > /opt/apache-thrift/lib: > > total 24800 > > -rw-r--r--. 1 root root 22576888 Sep 23 23:09 libthrift.a > > -rwxr-xr-x. 1 root root 947 Sep 23 23:09 libthrift.la > > -rw-r--r--. 1 root root 2802400 Sep 23 23:09 libthriftz.a > > -rwxr-xr-x. 1 root root 939 Sep 23 23:09 libthriftz.la > > drwxr-xr-x. 2 root root 4096 Sep 23 23:09 pkgconfig > > > > How could I make Arrow's cmake to pick them up instead of trying to get > > Thrift again? > > > > Thank you! > > Rares > > > > > > On Wed, Sep 22, 2021 at 5:33 PM Rares Vernica <rvern...@gmail.com> > wrote: > > > > > 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 > > >> > > > >> > > > >