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.
This commit is contained in:
parent
e591fc7cb8
commit
f988a7e600
@ -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 \
|
||||
|
35
mysql-test/r/bdb_notembedded.result
Normal file
35
mysql-test/r/bdb_notembedded.result
Normal file
@ -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
|
38
mysql-test/t/bdb_notembedded.test
Normal file
38
mysql-test/t/bdb_notembedded.test
Normal file
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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' \
|
||||
|
@ -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@
|
||||
|
@ -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" ;;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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]
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user