← Back to team overview

maria-discuss team mailing list archive

Re: what about cleanly deprecation of config options

 



Am 20.01.2017 um 18:23 schrieb Sergei Golubchik:
Hi, Reindl!

On Jan 20, Reindl Harald wrote:
why do we have here ON/OFF and YES/NO at all

  -DWITH_XTRADB=1 \
  -DWITH_PARTITION=1 \
  -DWITHOUT_ARCHIVE=1 \
  -DWITHOUT_BLACKHOLE=1 \
  -DWITHOUT_CASSANDRA=1 \
  -DWITHOUT_MROONGA=1 \
  -DWITHOUT_OQGRAPH=1 \
  -DWITHOUT_PERFSCHEMA=1 \
  -DWITHOUT_SPHINX=1 \
  -DWITHOUT_SPIDER=1 \
  -DENABLED_PROFILING=OFF \
  -DENABLE_DTRACE=OFF \

what is a storage engine, what is a plugin, what is some misc option
and where is now YES/NO and where ON/OFF needed and what is renamed and
what was kept

in the past cmake at least complained somewhere about unknown options

-DWITH_LIBWRAP=OFF worked (partly) while -DWITHOUT_LIBWRAP=ON was
ignored silently - that's a very idiotic syntax in general instead have
-DWITHOUT-FEATURE and -DWITH_FEATURE

-DWITH_LIBWRAP=OFF is by all respect pervert "with something off" in
which natural or logical language is that normal?

That's exactly why we've introduced PLUGIN_xxx options. In 10.0 and
earlier you could specify both -DWITH_xxx and -DWITHOUT_xxx, and it was
confusing. Like, what would you expect to happen after

   cmake -DWITHOUT_ARCHIVE=ON -DWITH_ARCHIVE=ON ?

spit out a message and exit with a non-zero status code

That's why we've introduced a set of PLUGIN_xxx options, that are
supposed to replace -DWITH_xxx and -DWITHOUT_xxx for plugin. Storage
engines are plugins too, btw.

But old options should continue working as before, so perhaps you've
stumbled upon a bug, where old WITH/WITHOUT options don't work as they
used to.

Anyway, since 10.1 the recommended way is to use -DPLUGIN_xxx=yyy
where xxx is the plugin name, for example, SPIDER, and yyy is one of

  NO      - don't build a plugin at all, skip it
  STATIC  - link it into the server statically, if possible. otherwise skip
  DYNAMIC - build a dynamically loaded plugin, if possible. otherwise skip
  AUTO    - static, if possible, otherwise dynamic, if possible, otherwise skip
  YES     - static, if possible, otherwise dynamic, if possible, otherwise error

and what is with the non-plugin options with ON/OFF

why can't 0/OFF/NO and 1/ON/YES not handeled similar or just one for all decie what it is now

where are the full otpions docuemented?
CMakeLists.txt is only partly helpful

that below seems now to do what it is supposed and maybe i give "-DPLUGIN_PARTITION=NO" another try and remove the config option to disable it from everywhere - hopefully the testsuite in the meantime got fixed in that context, the ipv6 and compression tests are in a *horrible shape*
________________________

yeah the machine has no ipv6 and probably never will get one - realize that one and for at begin

CURRENT_TEST: main.ipv6
/usr/bin/mysqladmin: connect to server at '::1' failed

CURRENT_TEST: rpl.rpl_ip_mix
mysqltest: In included file "./include/rpl_ip_mix.inc":

CURRENT_TEST: rpl.rpl_ip_mix2
mysqltest: In included file "./include/rpl_ip_mix2.inc":
________________________

CURRENT_TEST: rpl.rpl_semi_sync_after_sync
mysqltest: At line 2: query 'set global rpl_semi_sync_master_wait_point=AFTER_SYNC' failed: 1193: Unknown system variable 'rpl_semi_sync_master_wait_point'

CURRENT_TEST: rpl.rpl_semi_sync_event_after_sync
mysqltest: At line 1: query 'set global rpl_semi_sync_master_wait_point=AFTER_SYNC' failed: 1193: Unknown system variable 'rpl_semi_sync_master_wait_point'
________________________

encryption.innodb_encryption 'xtradb'    [ skipped ]  Test requires InnoDB.
***Warnings generated in error logs during shutdown after running tests: encryption.innodb_encryption

2017-01-20 18:54:33 140376016243008 [ERROR] InnoDB: cannot enable encryption, encryption plugin is not available 2017-01-20 18:54:33 140376016243008 [ERROR] Plugin 'InnoDB' init function returned error. 2017-01-20 18:54:33 140376016243008 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

encryption.innodb_encryption-page-compression 'xtradb' [ skipped ] Test requires InnoDB. encryption.innodb_encryption_tables 'xtradb' [ skipped ] Test requires InnoDB. ***Warnings generated in error logs during shutdown after running tests: encryption.innodb_encryption_tables encryption.innodb_encryption-page-compression

2017-01-20 18:54:33 139811964750144 [ERROR] InnoDB: cannot enable encryption, encryption plugin is not available 2017-01-20 18:54:33 139811964750144 [ERROR] Plugin 'InnoDB' init function returned error. 2017-01-20 18:54:33 139811964750144 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

sys_vars.sysvars_server_embedded '64bit' [ skipped ] Test requires: embedded server
sys_vars.sysvars_server_notembedded '64bit' [ fail ]
        Test ended at 2017-01-20 18:54:34

CURRENT_TEST: sys_vars.sysvars_server_notembedded
--- /usr/share/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result 2017-01-17 20:38:24.000000000 +0100 +++ /usr/share/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.reject 2017-01-20 18:54:34.414043522 +0100
@@ -1201,7 +1201,7 @@
 COMMAND_LINE_ARGUMENT  NULL
 VARIABLE_NAME  HAVE_PROFILING

________________________

cmake . -DBUILD_CONFIG=mysql_release \
 -DFEATURE_SET="community" \
 -DCMAKE_INSTALL_PREFIX="%{_prefix}" \
 -DINSTALL_INCLUDEDIR=include/mysql \
 -DINSTALL_LAYOUT=RPM \
 -DINSTALL_LIBDIR="%{_lib}/mysql" \
 -DINSTALL_MANDIR=share/man \
 -DINSTALL_MYSQLSHAREDIR=share/mysql \
 -DINSTALL_MYSQLTESTDIR=share/mysql-test \
 -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \
 -DINSTALL_SBINDIR=libexec \
 -DINSTALL_SCRIPTDIR=bin \
 -DINSTALL_SQLBENCHDIR= \
 -DINSTALL_SUPPORTFILESDIR=share/mysql \
 -DMYSQL_DATADIR="%{_sharedstatedir}/mysql" \
 -DMYSQL_UNIX_ADDR="%{_sharedstatedir}/mysql/mysql.sock" \
 -DPLUGIN_XTRADB=YES \
 -DPLUGIN_PARTITION=YES \
 -DPLUGIN_ARCHIVE=NO \
 -DPLUGIN_BLACKHOLE=NO \
 -DPLUGIN_CASSANDRA=NO \
 -DPLUGIN_MROONGA=NO \
 -DPLUGIN_OQGRAPH=NO \
 -DPLUGIN_PERFSCHEMA=NO \
 -DPLUGIN_SPHINX=NO \
 -DPLUGIN_SPIDER=NO \
 -DENABLED_PROFILING=OFF \
 -DENABLE_DTRACE=OFF \
 -DENABLE_DEBUG_SYNC=OFF \
 -DWITHOUT_TOKUDB=ON \
 -DWITH_VALGRIND=OFF \
 -DWITH_SAFEMALLOC=OFF \
 -DWITH_EMBEDDED_SERVER=OFF \
 -DWITH_FEEDBACK=OFF \
 -DWITH_INNODB_DISALLOW_WRITES=OFF \
 -DWITH_LIBWRAP=OFF \
 -DWITH_READLINE=OFF \
 -DWITH_WSREP=OFF \
 -DUSE_NEW_READLINE_INTERFACE=ON \
 -DENABLED_LOCAL_INFILE=ON \
 -DNOT_FOR_DISTRIBUTION=ON \
 -DWITH_ATOMIC_OPS=smp \
 -DWITHOUT_DYNAMIC_PLUGINS=ON \
 -DWITH_PIC=ON \
 -DWITH_JEMALLOC=system \
 -DWITH_SSL=system \
 -DWITH_ZLIB=system


References