You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by Rares Vernica <rv...@gmail.com> on 2021/09/21 03:56:26 UTC
C++ Parquet thrift_ep No rule to make target install
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
Re: C++ Parquet thrift_ep No rule to make target install
Posted by Rares Vernica <rv...@gmail.com>.
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 <we...@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 <rv...@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 <rv...@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 <ed...@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 <rv...@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
> > >> >
> > >>
> > >
>
Re: C++ Parquet thrift_ep No rule to make target install
Posted by Wes McKinney <we...@gmail.com>.
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 <rv...@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 <rv...@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 <ed...@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 <rv...@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
> >> >
> >>
> >
Re: C++ Parquet thrift_ep No rule to make target install
Posted by Rares Vernica <rv...@gmail.com>.
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 <rv...@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 <ed...@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 <rv...@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
>> >
>>
>
Re: C++ Parquet thrift_ep No rule to make target install
Posted by Rares Vernica <rv...@gmail.com>.
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 <ed...@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 <rv...@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
> >
>
Re: C++ Parquet thrift_ep No rule to make target install
Posted by Eduardo Ponce <ed...@gmail.com>.
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 <rv...@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
>