Bug #87348 Client build fails since CMakeLists.txt references missing storage/ndb directory
Submitted: 8 Aug 2017 17:00 Modified: 9 Aug 2017 6:37
Reporter: David Ravetti Email Updates:
Status: Verified Impact on me:
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:5.7.19 OS:Any
Assigned to: CPU Architecture:Any
Tags: build, cmake, regression, without_server

[8 Aug 2017 17:00] David Ravetti
I attempted to perform a client-only build of MySQL 5.7.19 from source, as downloaded from mysql.com, but the build failed due to a change in the download package between 5.7.18 and 5.7.19 without an associated change in the build code.

The source download package for MySQL 5.7.19 (tested with mysql-boost-5.7.19.tar.gz, haven't confirmed if it affects mysql-5.7.19.tar.gz as well) differs from previous versions in that it excludes the directory storage/ndb. Line 615 of the file CMakeLists.txt (included in the same package) makes reference to storage/ndb when the build flag -DWITHOUT_SERVER=ON is used, however. This causes a client-only build to fail with the message "ADD_SUBDIRECTORY given source 'storage/ndb' which is not an existing directory."

Commenting out lines 613 (else clause) and 615 (storage/ndb line) in CMakeLists.txt allows the build to proceed (though another unrelated issue still prevents the client-only build from completing, which I'll cover in another bug report).

Note that I was performing an out-of-source build, but I don't believe that is relevant to the issue.

Relevant lines in CMakeLists.txt:

613: ELSE
615: ADD_SUBDIRECTORY(storage/ndb)

How to repeat:
Using the source from mysql-boost-5.7.19.tar.gz, attempt to compile using the flag -DWITHOUT_SERVER=ON

Suggested fix:
1. restore storage/ndb to the source package
2. update the code in CMakeLists.txt to make the storage/ndb reference optional
3. remove the reference to storage/ndb in CMakeLists.txt.
[9 Aug 2017 6:37] MySQL Verification Team
Hello David Ravetti,

Thank you for the report and feedback!