diff options
author | unknown <jperkin/jonathan@chorlton.adsl.perkin.org.uk> | 2007-12-19 13:24:43 +0000 |
---|---|---|
committer | unknown <jperkin/jonathan@chorlton.adsl.perkin.org.uk> | 2007-12-19 13:24:43 +0000 |
commit | 92e31e96a2c6f2f98e77217534fcc3712e7b4fa5 (patch) | |
tree | 7e366b1d392d7928acf0727223f607ab5edd44d4 | |
parent | 333af686bf68b4c0e6d424ce07dda2196df4a2c3 (diff) | |
download | mariadb-git-92e31e96a2c6f2f98e77217534fcc3712e7b4fa5.tar.gz |
Add new pkgplugindir handling to seperate plugins from libraries,
and allow override for binary distributions. Extend mysql_config
to print compiled-in plugin location for third-party plugins to
use. Resolves bug#31736.
libmysqld/Makefile.am:
Use pkgplugindir.
plugin/daemon_example/Makefile.am:
Use pkgplugindir.
plugin/fulltext/Makefile.am:
Use pkgplugindir.
scripts/Makefile.am:
Add pkgplugindir.
scripts/make_binary_distribution.sh:
Add pkgplugindir.
scripts/mysql_config.sh:
Add pkgplugindir.
sql/Makefile.am:
Use pkgplugindir.
sql/mysqld.cc:
Use PLUGINDIR, derived from pkgplugindir, instead of
LIBDIR for plugins.
sql/unireg.h:
Use PLUGINDIR instead of LIBDIR, and define to be the
default setting of pkgplugindir.
storage/innobase/Makefile.am:
Use pkgplugindir.
storage/archive/Makefile.am:
Use pkgplugindir.
storage/blackhole/Makefile.am:
Use pkgplugindir.
storage/example/Makefile.am:
Use pkgplugindir.
storage/federated/Makefile.am:
Use pkgplugindir.
-rw-r--r-- | libmysqld/Makefile.am | 3 | ||||
-rw-r--r-- | mysql-test/r/bdb_notembedded.result | 35 | ||||
-rw-r--r-- | mysql-test/t/bdb_notembedded.test | 38 | ||||
-rw-r--r-- | plugin/daemon_example/Makefile.am | 5 | ||||
-rw-r--r-- | plugin/fulltext/Makefile.am | 6 | ||||
-rw-r--r-- | scripts/Makefile.am | 3 | ||||
-rw-r--r-- | scripts/make_binary_distribution.sh | 3 | ||||
-rw-r--r-- | scripts/mysql_config.sh | 4 | ||||
-rw-r--r-- | sql/Makefile.am | 3 | ||||
-rw-r--r-- | sql/mysqld.cc | 2 | ||||
-rw-r--r-- | sql/unireg.h | 4 | ||||
-rw-r--r-- | storage/archive/Makefile.am | 5 | ||||
-rw-r--r-- | storage/blackhole/Makefile.am | 5 | ||||
-rw-r--r-- | storage/example/Makefile.am | 5 | ||||
-rw-r--r-- | storage/federated/Makefile.am | 5 | ||||
-rw-r--r-- | storage/innobase/Makefile.am | 3 |
16 files changed, 110 insertions, 19 deletions
diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am index c0784447216..117f8752629 100644 --- a/libmysqld/Makefile.am +++ b/libmysqld/Makefile.am @@ -21,13 +21,14 @@ MYSQLDATAdir = $(localstatedir) MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) MYSQLLIBdir= $(libdir) +pkgplugindir = $(libdir)/@PACKAGE@/plugin EXTRA_DIST = libmysqld.def CMakeLists.txt DEFS = -DEMBEDDED_LIBRARY -DMYSQL_SERVER \ -DDEFAULT_MYSQL_HOME="\"$(MYSQLBASEdir)\"" \ -DDATADIR="\"$(MYSQLDATAdir)\"" \ -DSHAREDIR="\"$(MYSQLSHAREdir)\"" \ - -DLIBDIR="\"$(MYSQLLIBdir)\"" + -DPLUGINDIR="\"$(pkgplugindir)\"" INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include \ -I$(top_builddir)/sql -I$(top_srcdir)/sql \ -I$(top_srcdir)/sql/examples \ diff --git a/mysql-test/r/bdb_notembedded.result b/mysql-test/r/bdb_notembedded.result new file mode 100644 index 00000000000..14cb5fad915 --- /dev/null +++ b/mysql-test/r/bdb_notembedded.result @@ -0,0 +1,35 @@ +set autocommit=1; +reset master; +create table bug16206 (a int); +insert into bug16206 values(1); +start transaction; +insert into bug16206 values(2); +commit; +show binlog events; +Log_name Pos Event_type Server_id End_log_pos Info +f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4 +f n Query 1 n use `test`; create table bug16206 (a int) +f n Query 1 n use `test`; insert into bug16206 values(1) +f n Query 1 n use `test`; insert into bug16206 values(2) +drop table bug16206; +reset master; +create table bug16206 (a int) engine= bdb; +insert into bug16206 values(0); +insert into bug16206 values(1); +start transaction; +insert into bug16206 values(2); +commit; +insert into bug16206 values(3); +show binlog events; +Log_name Pos Event_type Server_id End_log_pos Info +f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4 +f n Query 1 n use `test`; create table bug16206 (a int) engine= bdb +f n Query 1 n use `test`; insert into bug16206 values(0) +f n Query 1 n use `test`; insert into bug16206 values(1) +f n Query 1 n use `test`; BEGIN +f n Query 1 n use `test`; insert into bug16206 values(2) +f n Query 1 n use `test`; COMMIT +f n Query 1 n use `test`; insert into bug16206 values(3) +drop table bug16206; +set autocommit=0; +End of 5.0 tests diff --git a/mysql-test/t/bdb_notembedded.test b/mysql-test/t/bdb_notembedded.test new file mode 100644 index 00000000000..24e64ebbfb2 --- /dev/null +++ b/mysql-test/t/bdb_notembedded.test @@ -0,0 +1,38 @@ +-- source include/not_embedded.inc +-- source include/have_bdb.inc + +# +# Bug #16206: Superfluous COMMIT event in binlog when updating BDB in autocommit mode +# +set autocommit=1; + +let $VERSION=`select version()`; + +reset master; +create table bug16206 (a int); +insert into bug16206 values(1); +start transaction; +insert into bug16206 values(2); +commit; +--replace_result $VERSION VERSION +--replace_column 1 f 2 n 5 n +show binlog events; +drop table bug16206; + +reset master; +create table bug16206 (a int) engine= bdb; +insert into bug16206 values(0); +insert into bug16206 values(1); +start transaction; +insert into bug16206 values(2); +commit; +insert into bug16206 values(3); +--replace_result $VERSION VERSION +--replace_column 1 f 2 n 5 n +show binlog events; +drop table bug16206; + +set autocommit=0; + + +--echo End of 5.0 tests diff --git a/plugin/daemon_example/Makefile.am b/plugin/daemon_example/Makefile.am index 92b1ab040fb..4256fecd873 100644 --- a/plugin/daemon_example/Makefile.am +++ b/plugin/daemon_example/Makefile.am @@ -18,14 +18,15 @@ MYSQLDATAdir = $(localstatedir) MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) MYSQLLIBdir= $(pkglibdir) +pkgplugindir = $(libdir)/@PACKAGE@/plugin INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/regex \ -I$(top_srcdir)/sql \ -I$(srcdir) @ZLIB_INCLUDES@ EXTRA_LTLIBRARIES = libdaemon_example.la -pkglib_LTLIBRARIES = @plugin_daemon_example_shared_target@ -libdaemon_example_la_LDFLAGS = -module -rpath $(MYSQLLIBdir) +pkgplugin_LTLIBRARIES = @plugin_daemon_example_shared_target@ +libdaemon_example_la_LDFLAGS = -module -rpath $(pkgplugindir) libdaemon_example_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN libdaemon_example_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN libdaemon_example_la_SOURCES = daemon_example.cc diff --git a/plugin/fulltext/Makefile.am b/plugin/fulltext/Makefile.am index ec033018a00..2b9d075bae0 100644 --- a/plugin/fulltext/Makefile.am +++ b/plugin/fulltext/Makefile.am @@ -15,12 +15,12 @@ #Makefile.am example for a plugin -pkglibdir=$(libdir)/mysql +pkgplugindir=$(libdir)/@PACKAGE@/plugin INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include #noinst_LTLIBRARIES= mypluglib.la -pkglib_LTLIBRARIES= mypluglib.la +pkgplugin_LTLIBRARIES= mypluglib.la mypluglib_la_SOURCES= plugin_example.c -mypluglib_la_LDFLAGS= -module -rpath $(pkglibdir) +mypluglib_la_LDFLAGS= -module -rpath $(pkgplugindir) mypluglib_la_CFLAGS= -DMYSQL_DYNAMIC_PLUGIN # Don't update the files from bitkeeper diff --git a/scripts/Makefile.am b/scripts/Makefile.am index fc4359fd872..8669e075959 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -90,6 +90,8 @@ CLEANFILES = @server_scripts@ \ mysql_tableinfo \ mysqld_multi +pkgplugindir = $(libdir)/@PACKAGE@/plugin + # Default same as 'pkgdatadir', but we can override it pkgsuppdir = $(datadir)/@PACKAGE@ @@ -137,6 +139,7 @@ SUFFIXES = .sh -e 's!@''pkglibdir''@!$(pkglibdir)!g' \ -e 's!@''pkgincludedir''@!$(pkgincludedir)!g' \ -e 's!@''pkgdatadir''@!$(pkgdatadir)!g' \ + -e 's!@''pkgplugindir''@!$(pkgplugindir)!g' \ -e 's!@''pkgsuppdir''@!$(pkgsuppdir)!g' \ -e 's!@''sysconfdir''@!$(sysconfdir)!g' \ -e 's!@''mandir''@!$(mandir)!g' \ diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh index 8d3e2133a45..88397052815 100644 --- a/scripts/make_binary_distribution.sh +++ b/scripts/make_binary_distribution.sh @@ -30,6 +30,8 @@ # "pkglibdir" is set to the same as "libdir" # "pkgincludedir" is set to the same as "includedir" # "pkgdatadir" is set to the same as "datadir" +# "pkgplugindir" is set to "@prefix@/lib/plugin", +# normally "$libdir/plugin" # "pkgsuppdir" is set to "@prefix@/support-files", # normally the same as "datadir" # @@ -204,6 +206,7 @@ if [ x"$BASE_SYSTEM" != x"netware" ] ; then pkglibdir=@pkglibdir@ \ pkgincludedir=@pkgincludedir@ \ pkgdatadir=@pkgdatadir@ \ + pkgplugindir=@pkgplugindir@ \ pkgsuppdir=@pkgsuppdir@ \ mandir=@mandir@ \ infodir=@infodir@ diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh index ae58655ed0f..110c425ea5b 100644 --- a/scripts/mysql_config.sh +++ b/scripts/mysql_config.sh @@ -87,6 +87,8 @@ pkglibdir='@pkglibdir@' pkglibdir_rel=`echo $pkglibdir | sed -e "s;^$basedir/;;"` fix_path pkglibdir $pkglibdir_rel lib/mysql lib +plugindir='@pkgplugindir@' + pkgincludedir='@pkgincludedir@' fix_path pkgincludedir include/mysql include @@ -147,6 +149,7 @@ Options: --include [$include] --libs [$libs] --libs_r [$libs_r] + --plugindir [$plugindir] --socket [$socket] --port [$port] --version [$version] @@ -163,6 +166,7 @@ while test $# -gt 0; do --include) echo "$include" ;; --libs) echo "$libs" ;; --libs_r) echo "$libs_r" ;; + --plugindir) echo "$plugindir" ;; --socket) echo "$socket" ;; --port) echo "$port" ;; --version) echo "$version" ;; diff --git a/sql/Makefile.am b/sql/Makefile.am index 0081417d492..02a92dee7a7 100644 --- a/sql/Makefile.am +++ b/sql/Makefile.am @@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir) MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) MYSQLLIBdir= $(pkglibdir) +pkgplugindir = $(libdir)/@PACKAGE@/plugin INCLUDES = @ZLIB_INCLUDES@ \ -I$(top_builddir)/include -I$(top_srcdir)/include \ -I$(top_srcdir)/regex -I$(srcdir) $(openssl_includes) @@ -136,7 +137,7 @@ DEFS = -DMYSQL_SERVER \ -DDEFAULT_MYSQL_HOME="\"$(MYSQLBASEdir)\"" \ -DDATADIR="\"$(MYSQLDATAdir)\"" \ -DSHAREDIR="\"$(MYSQLSHAREdir)\"" \ - -DLIBDIR="\"$(MYSQLLIBdir)\"" \ + -DPLUGINDIR="\"$(pkgplugindir)\"" \ @DEFS@ BUILT_MAINT_SRC = sql_yacc.cc sql_yacc.h diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 2f264482d94..48e486f8d02 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -8032,7 +8032,7 @@ static void fix_paths(void) (void) my_load_path(mysql_real_data_home,mysql_real_data_home,mysql_home); (void) my_load_path(pidfile_name,pidfile_name,mysql_real_data_home); (void) my_load_path(opt_plugin_dir, opt_plugin_dir_ptr ? opt_plugin_dir_ptr : - get_relative_path(LIBDIR), mysql_home); + get_relative_path(PLUGINDIR), mysql_home); opt_plugin_dir_ptr= opt_plugin_dir; char *sharedir=get_relative_path(SHAREDIR); diff --git a/sql/unireg.h b/sql/unireg.h index f0b4a88c7f8..d6a72e6589f 100644 --- a/sql/unireg.h +++ b/sql/unireg.h @@ -35,8 +35,8 @@ #ifndef SHAREDIR #define SHAREDIR "share/" #endif -#ifndef LIBDIR -#define LIBDIR "lib/" +#ifndef PLUGINDIR +#define PLUGINDIR "lib/plugin" #endif #define ER(X) errmesg[(X) - ER_ERROR_FIRST] diff --git a/storage/archive/Makefile.am b/storage/archive/Makefile.am index 4920527e0e9..55f2380ec31 100644 --- a/storage/archive/Makefile.am +++ b/storage/archive/Makefile.am @@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir) MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) MYSQLLIBdir= $(pkglibdir) +pkgplugindir = $(libdir)/@PACKAGE@/plugin INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/regex \ -I$(top_srcdir)/sql \ @@ -33,8 +34,8 @@ noinst_HEADERS = ha_archive.h azlib.h noinst_PROGRAMS = archive_test archive_reader EXTRA_LTLIBRARIES = ha_archive.la -pkglib_LTLIBRARIES = @plugin_archive_shared_target@ -ha_archive_la_LDFLAGS = -module -rpath $(MYSQLLIBdir) +pkgplugin_LTLIBRARIES = @plugin_archive_shared_target@ +ha_archive_la_LDFLAGS = -module -rpath $(pkgplugindir) ha_archive_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_archive_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_archive_la_SOURCES = ha_archive.cc azio.c diff --git a/storage/blackhole/Makefile.am b/storage/blackhole/Makefile.am index 9dd533dd4fa..9810dff5866 100644 --- a/storage/blackhole/Makefile.am +++ b/storage/blackhole/Makefile.am @@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir) MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) MYSQLLIBdir= $(pkglibdir) +pkgplugindir = $(libdir)/@PACKAGE@/plugin INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/regex \ -I$(top_srcdir)/sql \ @@ -32,8 +33,8 @@ DEFS = @DEFS@ noinst_HEADERS = ha_blackhole.h EXTRA_LTLIBRARIES = ha_blackhole.la -pkglib_LTLIBRARIES = @plugin_blackhole_shared_target@ -ha_blackhole_la_LDFLAGS=-module -rpath $(MYSQLLIBdir) +pkgplugin_LTLIBRARIES = @plugin_blackhole_shared_target@ +ha_blackhole_la_LDFLAGS=-module -rpath $(pkgplugindir) ha_blackhole_la_CXXFLAGS=$(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_blackhole_la_CFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_blackhole_la_SOURCES=ha_blackhole.cc diff --git a/storage/example/Makefile.am b/storage/example/Makefile.am index 73016d24b57..bf121e70f29 100644 --- a/storage/example/Makefile.am +++ b/storage/example/Makefile.am @@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir) MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) MYSQLLIBdir= $(pkglibdir) +pkgplugindir = $(libdir)/@PACKAGE@/libdir INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/regex \ -I$(top_srcdir)/sql \ @@ -32,8 +33,8 @@ DEFS = @DEFS@ noinst_HEADERS = ha_example.h EXTRA_LTLIBRARIES = ha_example.la -pkglib_LTLIBRARIES = @plugin_example_shared_target@ -ha_example_la_LDFLAGS = -module -rpath $(MYSQLLIBdir) +pkgplugin_LTLIBRARIES = @plugin_example_shared_target@ +ha_example_la_LDFLAGS = -module -rpath $(pkgplugindir) ha_example_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_example_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_example_la_SOURCES = ha_example.cc diff --git a/storage/federated/Makefile.am b/storage/federated/Makefile.am index 287b2cb1696..d2ee37c402a 100644 --- a/storage/federated/Makefile.am +++ b/storage/federated/Makefile.am @@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir) MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) MYSQLLIBdir= $(pkglibdir) +pkgplugindir = $(libdir)/@PACKAGE@/plugin INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/regex \ -I$(top_srcdir)/sql \ @@ -32,8 +33,8 @@ DEFS = @DEFS@ noinst_HEADERS = ha_federated.h EXTRA_LTLIBRARIES = ha_federated.la -pkglib_LTLIBRARIES = @plugin_federated_shared_target@ -ha_federated_la_LDFLAGS = -module -rpath $(MYSQLLIBdir) +pkgplugin_LTLIBRARIES = @plugin_federated_shared_target@ +ha_federated_la_LDFLAGS = -module -rpath $(pkgplugindir) ha_federated_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_federated_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_federated_la_SOURCES = ha_federated.cc diff --git a/storage/innobase/Makefile.am b/storage/innobase/Makefile.am index 30e056d68fb..8a5ce6d8a4b 100644 --- a/storage/innobase/Makefile.am +++ b/storage/innobase/Makefile.am @@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir) MYSQLSHAREdir = $(pkgdatadir) MYSQLBASEdir= $(prefix) MYSQLLIBdir= $(pkglibdir) +pkgplugindir = $(libdir)/@PACKAGE@/libdir INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/regex \ -I$(top_srcdir)/storage/innobase/include \ @@ -160,7 +161,7 @@ libinnobase_a_CFLAGS = $(AM_CFLAGS) EXTRA_LTLIBRARIES = ha_innodb.la pkglib_LTLIBRARIES = @plugin_innobase_shared_target@ -ha_innodb_la_LDFLAGS = -module -rpath $(MYSQLLIBdir) +ha_innodb_la_LDFLAGS = -module -rpath $(pkgplugindir) ha_innodb_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_innodb_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_innodb_la_SOURCES = $(libinnobase_a_SOURCES) |