[MDEV-23423] ColumnStore fails to build on Ubuntu 20.10 due to missing readline Created: 2020-08-04  Updated: 2020-08-07  Resolved: 2020-08-07

Status: Closed
Project: MariaDB Server
Component/s: Compiling, Platform Debian
Affects Version/s: N/A
Fix Version/s: 10.5.5

Type: Bug Priority: Major
Reporter: Otto Kekäläinen Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None


 Description   

While building current 10.5 git head I noticed this:

[ 83%] Building CXX object sql/CMakeFiles/sql.dir/sp_cache.cc.o
cd "/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/builddir/sql" && /usr/bin/x86_64-linux-gnu-g++  -DDBUG_TRACE -DHAVE_CONFIG_H -DHAVE_EVENT_SCHEDULER -DHAVE_OPENSSL -DHAVE_POOL_OF_THREADS -DMYSQL_SERVER -D_FILE_OFFSET_BITS=64 -I"/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/wsrep-lib/include" -I"/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/wsrep-lib/wsrep-API/v26" -I"/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/builddir/include" -I"/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/include" -I"/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/sql" -I"/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/builddir/sql" -I"/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/tpool"  -g -O2 -fdebug-prefix-map=/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pie -fPIC -fstack-protector --param=ssp-buffer-size=4 -O3 -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -DDBUG_OFF -Wall -Wextra -Wformat-security -Wno-format-truncation -Wno-init-self -Wno-nonnull-compare -Wno-unused-parameter -Woverloaded-virtual -Wnon-virtual-dtor -Wvla -Wwrite-strings   -Wdate-time -D_FORTIFY_SOURCE=2 -std=gnu++11 -o CMakeFiles/sql.dir/sp_cache.cc.o -c "/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/sql/sp_cache.cc"
In file included from /usr/include/string.h:495,
                 from /usr/include/c++/10/cstring:42,
                 from /usr/include/boost/system/error_code.hpp:20,
                 from /usr/include/boost/filesystem/path_traits.hpp:22,
                 from /usr/include/boost/filesystem/path.hpp:26,
                 from /usr/include/boost/filesystem.hpp:16,
                 from /<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/storage/columnstore/columnstore/procmgr/main.cpp:29:
In function ‘char* strncpy(char*, const char*, size_t)’,
    inlined from ‘void pingDeviceThread()’ at /<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/storage/columnstore/columnstore/procmgr/main.cpp:1387:24:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: warning: ‘char* __builtin_strncpy(char*, const char*, long unsigned int)’ specified bound 16 equals destination size [-Wstringop-truncation]
  106 |   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
      |          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 83%] Linking CXX executable ../../bin/columnstoreDBWrite
cd "/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/builddir/storage/columnstore/columnstore/oamapps/columnstoreDB" && /usr/bin/cmake -E cmake_link_script CMakeFiles/columnstoreDBWrite.dir/link.txt --verbose=1
/usr/bin/x86_64-linux-gnu-g++  -g -O2 -fdebug-prefix-map=/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pie -fPIC -fstack-protector --param=ssp-buffer-size=4 -DCOLUMNSTORE_MATURITY=MariaDB_PLUGIN_MATURITY_BETA -O3 -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -DDBUG_OFF -Wall -Wextra -Wformat-security -Wno-format-truncation -Wno-init-self -Wno-nonnull-compare -Wno-unused-parameter -Woverloaded-virtual -Wnon-virtual-dtor -Wvla -Wwrite-strings  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,-z,relro,-z,now CMakeFiles/columnstoreDBWrite.dir/columnstoreDB.cpp.o  -o ../../bin/columnstoreDBWrite  -Wl,-rpath,"/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/builddir/libmariadb/libmariadb:/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/builddir/storage/columnstore/columnstore/lib:" -lpthread -Wl,--no-as-needed -Wl,--add-needed -lreadline -lncurses ../../../../../libmariadb/libmariadb/libmariadb.so.3 ../../lib/libjoblist.so ../../lib/libexecplan.so ../../lib/libwindowfunction.so ../../lib/libjoiner.so ../../lib/librowgroup.so ../../lib/libfuncexp.so ../../lib/libudfsdk.so ../../lib/libregr.so ../../lib/libdataconvert.so ../../lib/libcommon.so ../../lib/libcompress.so ../../lib/libquerystats.so ../../lib/libquerytele.so ../../lib/libthrift.so ../../lib/libthreadpool.so ../../lib/libbrm.so ../../lib/libidbdatafile.so ../../lib/libcacheutils.so ../../lib/librwlock.so ../../lib/liboamcpp.so ../../lib/libalarmmanager.so ../../lib/libmessageqcpp.so ../../lib/libloggingcpp.so ../../lib/libconfigcpp.so ../../obj/libidbboot.a /usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0 /usr/lib/x86_64-linux-gnu/libboost_atomic.so.1.71.0 -lxml2 -lpthread -lrt ../../lib/liblibmysql_client.so ../../../../../dbug/libdbug.a ../../../../../strings/libstrings.a ../../../../../mysys/libmysys.a ../../../../../dbug/libdbug.a ../../../../../strings/libstrings.a ../../../../../mysys/libmysys.a -lz -lm -ldl -lsnappy -lpthread 
/usr/bin/ld: cannot find -lreadline
collect2: error: ld returned 1 exit status
make[4]: *** [storage/columnstore/columnstore/oamapps/columnstoreDB/CMakeFiles/columnstoreDBWrite.dir/build.make:126: storage/columnstore/columnstore/bin/columnstoreDBWrite] Error 1
make[4]: Leaving directory '/<<BUILDDIR>>/mariadb-10.5-10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate/builddir'
make[3]: *** [CMakeFiles/Makefile2:8810: storage/columnstore/columnstore/oamapps/columnstoreDB/CMakeFiles/columnstoreDBWrite.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....

At https://launchpadlibrarian.net/491658876/buildlog_ubuntu-groovy-amd64.mariadb-10.5_1%3A10.5.5+maria~sid~ubuntu20.10.1~1596444859.778e8972e21.ok.10.5.logrotate_BUILDING.txt.gz

Builds on other archs are OK: https://launchpad.net/~mysql-ubuntu/+archive/ubuntu/mariadb-10.5/+builds?build_text=&build_state=all

Potentially a regression from https://github.com/MariaDB/server/commit/2c5831b2c5348edf19a4c3c91ebed21c6e8412b9

The commit message "DEB package doesn't need expect and libreadline as dependencies" is void of the motivation why it does not need.

For expect it is not fully accurate, and Lintian complains:

E: mariadb-plugin-columnstore: missing-dep-for-interpreter expect => expect (usr/bin/mcs_module_installer.sh) #!/usr/bin/expect
E: mariadb-plugin-columnstore: missing-dep-for-interpreter expect => expect (usr/bin/remote_command.sh) #!/usr/bin/expect
E: mariadb-plugin-columnstore: missing-dep-for-interpreter expect => expect (usr/bin/remote_command_verify.sh) #!/usr/bin/expect
E: mariadb-plugin-columnstore: missing-dep-for-interpreter expect => expect (usr/bin/remote_scp_get.sh) #!/usr/bin/expect
E: mariadb-plugin-columnstore: missing-dep-for-interpreter expect => expect (usr/bin/remote_scp_put.sh) #!/usr/bin/expect
E: mariadb-plugin-columnstore: missing-dep-for-interpreter expect => expect (usr/bin/rsync.sh) #!/usr/bin/expect

This can be ignored but removal of libreadline not.



 Comments   
Comment by Sergei Golubchik [ 2020-08-04 ]

already fixed in my branch

Generated at Thu Feb 08 09:22:17 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.