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
> >
>

Reply via email to