Skip to content
  • Magnus Blåudd's avatar
    d14541b5
    WL#11762 Build MySQL Cluster without VERSION patch · d14541b5
    Magnus Blåudd authored
    Add new cmake configuration variable -DWITH_NDBCLUSTER=[ON|OFF]
    which controls building of MySQL Cluster. The difference between
    MySQL Cluster and MySQL Server are:
     - custom server suffix "-cluster", indicating that the MySQL Server
       has been built for MySQL Cluster.
     - the ndbcluster plugin which makes it possible for MySQL Server
       to use the distributed NDB Cluster storage engine.
     - the NDB Cluster storage engine binaries and tools
     - the package names starts with mysql-cluster and contains the
       cluster version
    
    In earlier versions the MySQL Server which was part of MySQL Cluster
    had a modified version string including "ndb-X.Y.Z" which indicated
    the version of NDB. This has now been removed and instead the custom
    server suffix "-cluster" is used.
    
    For legacy "ease of use" reasons, also allow WITH_NDBCLUSTER_STORAGE_ENGINE
    and WITH_PLUGIN_NDBCLUSTER to be aliases for WITH_NDBCLUSTER unless
    the latter has been specified by user. The WITHOUT_NDBCLUSTER is not
    supported anymore, instead use WTTH_NDBCLUSTER=OFF. Furthermore, neither
    WITH_MAX, WITH_ALL or any other options previously supported to
    include the ndbcluster plugin will have any effect on whether or not
    MySQL Cluster is built.
    
    From now on MySQL Cluster uses version as defined in top level
    VERSION file and same as the MySQL Server as default. It's possible
    to set a specific version using the MYSQL_CLUSTER_VERSION_MAJOR,
    MYSQL_CLUSTER_VERSION_MINOR, MYSQL_CLUSTER_VERSION_PATCH and
    MYSQL_CLUSTER_VERSION_EXTRA in the VERSION file. However setting
    these values are optional and should only be used in case the
    default need to be overridden. Setting only
    MYSQL_CLUSTER_VERSION_EXTRA is useful when creating a MySQL Cluster
    version which is for example DMR while the contained MySQL Server is
    already gone GA.
    
    Remove the now obsolete storage/ndb/VERSION and instead
    require the variable MYSQL_CLUSTER_VERSION to be defined.
    Hardcode the NDB_SHARED_LIB_VERSION directly in the
    CMakeLists.txt file, having it in VERSION is an automake remnant.
    
    Remove unused MYSQL_RPM_VERSION, it's left over
    from when MySQL Cluster was using a hacked rpm spec file.
    
    Remove conditional logic which generated an unused mysql-cluster-X.Y.Z.spec
    file. Everything is built from mysql.spec
    
    Remove WITH_NDB_DEFAULT_PLUGIN_DETECT which is redundant now
    when we either build MySQL Cluster or MySQL Server.
    
    Add new variable VERSION_SRC to control the version of
    the source tarball used in rpm packages.
    
    Change mtr.pl to detect MySQL Cluster by looking
    for "-cluster" in MySQL Server version string
    
    The version string of MySQL tools now look like:
      $ mysqld --version
      mysqld  Ver 8.0.13-cluster-debug for Linux on x86_64 (Source distribution)
    
    Where the old was:
      $ mysqld --version
      mysqld  Ver 5.7.22-ndb-7.5.5-debug for Linux on x86_64 (Source distribution)
    
    The version string of NDB tools now look like:
      $ ndb_mgm --version
      MySQL distrib mysql-8.0.13 ndb-8.0.13-dmr-debug, for Linux (x86_64)
    
    Where the old was:
      $ ndb_mgm --version
      MySQL distrib mysql-5.7.22 ndb-7.5.5-dmr-debug, for Linux (x86_64)
    
    Output from version variables found in the MySQL Server:
      mysql> SELECT VERSION();
      VERSION()
      8.0.13-cluster-debug
    
      mysql> SELECT @@ndb_version_string;
      @@ndb_version_string
      ndb-8.0.13-dmr
    
    Add test checking that MySQL version string contains -cluster and
    that the NDB and MySQL version number matches.
    d14541b5
    WL#11762 Build MySQL Cluster without VERSION patch
    Magnus Blåudd authored
    Add new cmake configuration variable -DWITH_NDBCLUSTER=[ON|OFF]
    which controls building of MySQL Cluster. The difference between
    MySQL Cluster and MySQL Server are:
     - custom server suffix "-cluster", indicating that the MySQL Server
       has been built for MySQL Cluster.
     - the ndbcluster plugin which makes it possible for MySQL Server
       to use the distributed NDB Cluster storage engine.
     - the NDB Cluster storage engine binaries and tools
     - the package names starts with mysql-cluster and contains the
       cluster version
    
    In earlier versions the MySQL Server which was part of MySQL Cluster
    had a modified version string including "ndb-X.Y.Z" which indicated
    the version of NDB. This has now been removed and instead the custom
    server suffix "-cluster" is used.
    
    For legacy "ease of use" reasons, also allow WITH_NDBCLUSTER_STORAGE_ENGINE
    and WITH_PLUGIN_NDBCLUSTER to be aliases for WITH_NDBCLUSTER unless
    the latter has been specified by user. The WITHOUT_NDBCLUSTER is not
    supported anymore, instead use WTTH_NDBCLUSTER=OFF. Furthermore, neither
    WITH_MAX, WITH_ALL or any other options previously supported to
    include the ndbcluster plugin will have any effect on whether or not
    MySQL Cluster is built.
    
    From now on MySQL Cluster uses version as defined in top level
    VERSION file and same as the MySQL Server as default. It's possible
    to set a specific version using the MYSQL_CLUSTER_VERSION_MAJOR,
    MYSQL_CLUSTER_VERSION_MINOR, MYSQL_CLUSTER_VERSION_PATCH and
    MYSQL_CLUSTER_VERSION_EXTRA in the VERSION file. However setting
    these values are optional and should only be used in case the
    default need to be overridden. Setting only
    MYSQL_CLUSTER_VERSION_EXTRA is useful when creating a MySQL Cluster
    version which is for example DMR while the contained MySQL Server is
    already gone GA.
    
    Remove the now obsolete storage/ndb/VERSION and instead
    require the variable MYSQL_CLUSTER_VERSION to be defined.
    Hardcode the NDB_SHARED_LIB_VERSION directly in the
    CMakeLists.txt file, having it in VERSION is an automake remnant.
    
    Remove unused MYSQL_RPM_VERSION, it's left over
    from when MySQL Cluster was using a hacked rpm spec file.
    
    Remove conditional logic which generated an unused mysql-cluster-X.Y.Z.spec
    file. Everything is built from mysql.spec
    
    Remove WITH_NDB_DEFAULT_PLUGIN_DETECT which is redundant now
    when we either build MySQL Cluster or MySQL Server.
    
    Add new variable VERSION_SRC to control the version of
    the source tarball used in rpm packages.
    
    Change mtr.pl to detect MySQL Cluster by looking
    for "-cluster" in MySQL Server version string
    
    The version string of MySQL tools now look like:
      $ mysqld --version
      mysqld  Ver 8.0.13-cluster-debug for Linux on x86_64 (Source distribution)
    
    Where the old was:
      $ mysqld --version
      mysqld  Ver 5.7.22-ndb-7.5.5-debug for Linux on x86_64 (Source distribution)
    
    The version string of NDB tools now look like:
      $ ndb_mgm --version
      MySQL distrib mysql-8.0.13 ndb-8.0.13-dmr-debug, for Linux (x86_64)
    
    Where the old was:
      $ ndb_mgm --version
      MySQL distrib mysql-5.7.22 ndb-7.5.5-dmr-debug, for Linux (x86_64)
    
    Output from version variables found in the MySQL Server:
      mysql> SELECT VERSION();
      VERSION()
      8.0.13-cluster-debug
    
      mysql> SELECT @@ndb_version_string;
      @@ndb_version_string
      ndb-8.0.13-dmr
    
    Add test checking that MySQL version string contains -cluster and
    that the NDB and MySQL version number matches.
Loading