Bug #96266 Build failure with pre-downloaded boost tarball
Submitted: 22 Jul 2019 11:50 Modified: 7 Aug 2019 11:43
Reporter: Fungo Wang (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:8.0.17 OS:Any
Assigned to: CPU Architecture:Any
Tags: boost, compile, Failure

[22 Jul 2019 11:50] Fungo Wang
Description:
Build failure when compile 8.0.17 from source using:

cmake -DFORCE_INSOURCE_BUILD=1  -DWITH_BOOST=/home/fungo/Software/boost/boost_1_69_0.tar.gz .

-- Performing Test C_LD_GOLD_RESULT - Success
-- Performing Test CXX_LD_GOLD_RESULT
-- Performing Test CXX_LD_GOLD_RESULT - Success
-- Local boost zip /home/fungo/Software/boost/boost_1_69_0.tar.gz
/home/fungo/Software/boost/boost_1_69_0.tar.gz is zero length. Deleting it.
-- WITH_BOOST=/home/fungo/Software/boost/boost_1_69_0.tar.gz
-- BOOST_INCLUDE_DIR
-- LOCAL_BOOST_DIR LOCAL_BOOST_DIR-NOTFOUND
-- LOCAL_BOOST_ZIP
-- Could not find (the correct version of) boost.
-- MySQL currently requires boost_1_69_0

CMake Error at cmake/boost.cmake:103 (MESSAGE):
  You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>

  This CMake script will look for boost in <directory>.  If it is not there,
  it will download and unpack it (in that directory) for you.

  If you are inside a firewall, you may need to use an https proxy:

  export https_proxy=http://example.com:80

Call Stack (most recent call first):
  cmake/boost.cmake:202 (COULD_NOT_FIND_BOOST)
  CMakeLists.txt:944 (INCLUDE)

How to repeat:
cmake -DFORCE_INSOURCE_BUILD=1  -DWITH_BOOST=/home/fungo/Software/boost/boost_1_69_0.tar.gz .

Suggested fix:
Looks like caused by this commit:

commit 2ad48aae0de59f12954717fde164e2095dcd028e
Author: Martin Hansson <martin.hansson@oracle.com>
Date:   Mon Jan 7 15:42:49 2019 +0100

    Bug#28089173: CMAKE FAILS TO DOWNLOAD BOOST ON NEXT ATTEMPT
    IF KILLED

    A zero length tarball is now deleted, rather than trying to
    untar it.
[22 Jul 2019 13:27] Fungo Wang
Correct mysql version
[23 Jul 2019 11:33] MySQL Verification Team
Hi,

I can't reproduce this. I compile it without a problem.

can you give us more data about system you are having issues on.

all best
[25 Jul 2019 0:38] Fungo Wang
Hi Bogdan,

To make my reproduce steps more clear :)
1. Download boost 1.69 compressed tarball to a local dir, say "/u01/fungo/downloads/boost_1_69_0.tar.gz"
2. Build 8.0.17 from source using 
cmake -DFORCE_INSOURCE_BUILD=1  -DWITH_BOOST=/u01/fungo/downloads/boost_1_69_0.tar.gz .

These steps succeed when building 8.0.16, but failed for 8.0.17.

I can reproduce on my local RHET 7 and RHET 6 boxes.

## RHET 7
cmake version 3.8.2
gcc 7.3.1 
g++ 7.3.1

## RHET 6
cmake version 3.7.2
gcc 7.3.1 
g++ 7.3.1

Thanks
[25 Jul 2019 11:44] MySQL Verification Team
Hi,

Thanks, you are right. It fails with .17 if you already have boost.
[7 Aug 2019 11:43] Erlend Dahl
Fixed in 8.0.18 under the heading of

Bug#29881279 CMAKE 3.14.4 WIPES OUT BOOST 1.70 TAR.GZ