Merge pull request #7673 from micmac1/mariadb-maj2
mariadb: packaging, config and misc improvements
This commit is contained in:
commit
a93540b2a2
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||
|
||||
PKG_NAME:=mariadb
|
||||
PKG_VERSION:=10.2.19
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL := \
|
||||
|
@ -33,39 +33,50 @@ PKG_BUILD_DEPENDS:=libevent2 mariadb/host
|
|||
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PLUGIN_DIR:=/usr/lib/mysql/plugin
|
||||
CONF_DIR:=/etc/mysql
|
||||
PLUGIN_DIR:=/usr/lib/mariadb/plugin
|
||||
SHARE_DIR:=/usr/share/mariadb
|
||||
|
||||
MARIADB_DISABLE_ENGINES := \
|
||||
cassandra \
|
||||
example \
|
||||
mroonga \
|
||||
oqgraph \
|
||||
rocksdb \
|
||||
test_sql_discovery \
|
||||
tokudb
|
||||
|
||||
MARIADB_DISABLE_PLUGINS := \
|
||||
audit_null \
|
||||
auth_examples \
|
||||
aws_key_management \
|
||||
cracklib_password_check \
|
||||
daemon_example \
|
||||
debug_key_management \
|
||||
example_key_management \
|
||||
fulltext
|
||||
|
||||
MARIADB_LIB_PLUGINS := \
|
||||
auth_gssapi_client
|
||||
|
||||
MARIADB_SERVER_PLUGINS := \
|
||||
adt_null \
|
||||
auth_0x0100 \
|
||||
auth_ed25519 \
|
||||
auth_socket \
|
||||
auth_test_plugin \
|
||||
auth_gssapi \
|
||||
auth_pam \
|
||||
client_ed25519 \
|
||||
debug_key_management \
|
||||
dialog_examples \
|
||||
disks \
|
||||
example_key_management \
|
||||
feedback \
|
||||
file_key_management \
|
||||
ha_archive \
|
||||
ha_blackhole \
|
||||
ha_connect \
|
||||
ha_example \
|
||||
ha_federated \
|
||||
ha_federatedx \
|
||||
ha_sequence \
|
||||
ha_sphinx \
|
||||
ha_spider \
|
||||
ha_test_sql_discovery \
|
||||
handlersocket \
|
||||
libdaemon_example \
|
||||
locales \
|
||||
metadata_lock_info \
|
||||
mypluglib \
|
||||
qa_auth_client \
|
||||
qa_auth_interface \
|
||||
qa_auth_server \
|
||||
query_cache_info \
|
||||
query_response_time \
|
||||
semisync_master \
|
||||
|
@ -76,39 +87,29 @@ MARIADB_SERVER_PLUGINS := \
|
|||
wsrep_info
|
||||
|
||||
PKG_CONFIG_DEPENDS := \
|
||||
$(patsubst %,CONFIG_PACKAGE_lib$(PKG_NAME)-plugin-%,$(subst _,-,$(MARIADB_LIB_PLUGINS))) \
|
||||
$(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-%,$(subst _,-,$(MARIADB_SERVER_PLUGINS))) \
|
||||
CONFIG_PACKAGE_mariadb-server
|
||||
|
||||
plugin-adt_null := PLUGIN_AUDIT_NULL
|
||||
plugin-auth_0x0100 := PLUGIN_AUTH_0X0100
|
||||
plugin-auth_gssapi_client := PLUGIN_AUTH_GSSAPI_CLIENT
|
||||
|
||||
plugin-auth_ed25519 := PLUGIN_AUTH_ED25519
|
||||
plugin-auth_socket := PLUGIN_AUTH_SOCKET
|
||||
plugin-auth_test_plugin := PLUGIN_AUTH_TEST_PLUGIN
|
||||
plugin-auth_gssapi := PLUGIN_AUTH_GSSAPI
|
||||
plugin-auth_pam := PLUGIN_AUTH_PAM
|
||||
plugin-client_ed25519 := PLUGIN_CLIENT_ED25519
|
||||
plugin-debug_key_management := PLUGIN_DEBUG_KEY_MANAGEMENT
|
||||
plugin-dialog_examples := PLUGIN_DIALOG_EXAMPLES
|
||||
plugin-disks := PLUGIN_DISKS
|
||||
plugin-example_key_management := PLUGIN_EXAMPLE_KEY_MANAGEMENT
|
||||
plugin-feedback := PLUGIN_FEEDBACK
|
||||
plugin-file_key_management := PLUGIN_FILE_KEY_MANAGEMENT
|
||||
plugin-ha_archive := PLUGIN_ARCHIVE
|
||||
plugin-ha_blackhole := PLUGIN_BLACKHOLE
|
||||
plugin-ha_connect := PLUGIN_CONNECT
|
||||
plugin-ha_example := PLUGIN_EXAMPLE
|
||||
plugin-ha_federated := PLUGIN_FEDERATED
|
||||
plugin-ha_federatedx := PLUGIN_FEDERATEDX
|
||||
plugin-ha_sequence := PLUGIN_SEQUENCE
|
||||
plugin-ha_sphinx := PLUGIN_SPHINX
|
||||
plugin-ha_spider := PLUGIN_SPIDER
|
||||
plugin-ha_test_sql_discovery := PLUGIN_TEST_SQL_DISCOVERY
|
||||
plugin-handlersocket := PLUGIN_HANDLERSOCKET
|
||||
plugin-libdaemon_example := PLUGIN_DAEMON_EXAMPLE
|
||||
plugin-locales := PLUGIN_LOCALES
|
||||
plugin-metadata_lock_info := PLUGIN_METADATA_LOCK_INFO
|
||||
plugin-mypluglib := PLUGIN_FTEXAMPLE
|
||||
plugin-qa_auth_client := PLUGIN_QA_AUTH_CLIENT
|
||||
plugin-qa_auth_interface := PLUGIN_QA_AUTH_INTERFACE
|
||||
plugin-qa_auth_server := PLUGIN_QA_AUTH_SERVER
|
||||
plugin-query_cache_info := PLUGIN_QUERY_CACHE_INFO
|
||||
plugin-query_response_time := PLUGIN_QUERY_RESPONSE_TIME
|
||||
plugin-semisync_master := PLUGIN_SEMISYNC_MASTER
|
||||
|
@ -156,13 +157,12 @@ MARIADB_SERVER_EXTRA := \
|
|||
mysql_tzinfo_to_sql \
|
||||
mysqlbinlog \
|
||||
mysqld_multi \
|
||||
mysqld_safe \
|
||||
mysqld_safe_helper \
|
||||
mysqldumpslow \
|
||||
mysqlhotcopy \
|
||||
perror \
|
||||
replace \
|
||||
resolve_stack_dump
|
||||
resolve_stack_dump \
|
||||
wsrep_sst_*
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
|
@ -180,10 +180,22 @@ MARIADB_COMMON_DEPENDS := \
|
|||
# ignore them.
|
||||
TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
|
||||
|
||||
define Package/mariadb/disable/engine
|
||||
echo > $(1)/storage/$(2)/CMakeLists.txt
|
||||
endef
|
||||
|
||||
define Package/mariadb/disable/plugin
|
||||
echo > $(1)/plugin/$(2)/CMakeLists.txt
|
||||
endef
|
||||
|
||||
define Package/mariadb/install/bin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $(1)/usr/bin
|
||||
endef
|
||||
|
||||
define Package/mariadb/install/plugin
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/$(2).so $(1)$(PLUGIN_DIR)
|
||||
endef
|
||||
|
||||
define Package/mariadb/description/Default
|
||||
MariaDB is a fast, stable and true multi-user, multi-threaded SQL
|
||||
database server. SQL (Structured Query Language) is the most popular
|
||||
|
@ -191,12 +203,17 @@ database query language in the world. The main goals of MariaDB are
|
|||
speed, robustness and ease of use.
|
||||
endef
|
||||
|
||||
define Package/libmariadb
|
||||
define Package/libmariadb/Default
|
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
URL:=https://mariadb.org/
|
||||
endef
|
||||
|
||||
define Package/libmariadb
|
||||
$(call Package/libmariadb/Default)
|
||||
DEPENDS:=$(MARIADB_COMMON_DEPENDS)
|
||||
TITLE:=MariaDB database client library
|
||||
URL:=https://mariadb.org/
|
||||
MENU:=1
|
||||
PROVIDES:=libmariadbclient libmysqlclient libmysqlclient-r
|
||||
endef
|
||||
|
||||
|
@ -216,10 +233,9 @@ endef
|
|||
|
||||
define Package/mariadb-client
|
||||
$(call Package/mariadb/Default)
|
||||
TITLE:=MariaDB database core client binaries
|
||||
DEPENDS:= \
|
||||
$(MARIADB_COMMON_DEPENDS) \
|
||||
+libncursesw
|
||||
TITLE:=MariaDB database client
|
||||
MENU:=1
|
||||
DEPENDS:=mariadb-client-base
|
||||
endef
|
||||
|
||||
define Package/mariadb-client/description
|
||||
|
@ -231,9 +247,30 @@ $(subst $(space),$(newline),$(MARIADB_CLIENT))
|
|||
|
||||
endef
|
||||
|
||||
define Package/mariadb-client-base
|
||||
$(call Package/mariadb/Default)
|
||||
TITLE:=MariaDB database client base
|
||||
DEPENDS:=mariadb-common \
|
||||
$(MARIADB_COMMON_DEPENDS) \
|
||||
+libedit
|
||||
endef
|
||||
|
||||
define Package/mariadb-client-base/conffiles
|
||||
$(CONF_DIR)/conf.d/50-client.cnf
|
||||
$(CONF_DIR)/conf.d/50-mysql-clients.cnf
|
||||
endef
|
||||
|
||||
define Package/mariadb-client-base/description
|
||||
$(call Package/mariadb/description/Default)
|
||||
|
||||
This package provides the foundation for mariadb-client. It installs the
|
||||
configuration and the dependencies.
|
||||
|
||||
endef
|
||||
|
||||
define Package/mariadb-client-extra
|
||||
$(call Package/mariadb/Default)
|
||||
TITLE:=MariaDB database extra client binaries
|
||||
TITLE:=MariaDB database client extra
|
||||
DEPENDS:=mariadb-client
|
||||
endef
|
||||
|
||||
|
@ -246,32 +283,29 @@ $(subst $(space),$(newline),$(MARIADB_CLIENT_EXTRA))
|
|||
|
||||
endef
|
||||
|
||||
define Package/mariadb-extra-charsets
|
||||
define Package/mariadb-common
|
||||
$(call Package/mariadb/Default)
|
||||
TITLE:=MariaDB database extra character sets
|
||||
DEPENDS:=mariadb-server
|
||||
TITLE:=MariaDB database common files
|
||||
DEPENDS:=
|
||||
endef
|
||||
|
||||
define Package/mariadb-extra-charsets/description
|
||||
define Package/mariadb-common/conffiles
|
||||
$(CONF_DIR)/my.cnf
|
||||
endef
|
||||
|
||||
define Package/mariadb-common/description
|
||||
$(call Package/mariadb/description/Default)
|
||||
|
||||
This package contains single Byte character sets and collations that can
|
||||
be added at run time.
|
||||
This package includes shared files, for example $(CONF_DIR)/my.cnf.
|
||||
|
||||
endef
|
||||
|
||||
define Package/mariadb-server
|
||||
$(call Package/mariadb/Default)
|
||||
DEPENDS:= \
|
||||
$(MARIADB_COMMON_DEPENDS) \
|
||||
+!arc:libaio \
|
||||
+liblzma \
|
||||
+libpcre \
|
||||
+resolveip
|
||||
TITLE:=MariaDB database core server binaries
|
||||
DEPENDS:=mariadb-server-base
|
||||
TITLE:=MariaDB database server
|
||||
MENU:=1
|
||||
PROVIDES:=mysql-server
|
||||
USERID:=mariadb=376:mariadb=376
|
||||
endef
|
||||
|
||||
define Package/mariadb-server/description
|
||||
|
@ -283,9 +317,36 @@ $(subst $(space),$(newline),$(MARIADB_SERVER))
|
|||
|
||||
endef
|
||||
|
||||
define Package/mariadb-server-base
|
||||
$(call Package/mariadb/Default)
|
||||
DEPENDS:=mariadb-common \
|
||||
$(MARIADB_COMMON_DEPENDS) \
|
||||
+!arc:libaio \
|
||||
+liblzma \
|
||||
+libpcre \
|
||||
+resolveip
|
||||
TITLE:=MariaDB database server base
|
||||
USERID:=mariadb=376:mariadb=376
|
||||
endef
|
||||
|
||||
define Package/mariadb-server-base/conffiles
|
||||
$(CONF_DIR)/conf.d/50-server.cnf
|
||||
$(CONF_DIR)/conf.d/60-galera.cnf
|
||||
/etc/config/mysqld
|
||||
endef
|
||||
|
||||
define Package/mariadb-server-base/description
|
||||
$(call Package/mariadb/description/Default)
|
||||
|
||||
This package provides the foundation for mariadb-server. It installs the
|
||||
init script, support files (configuration etc.), the user "mariadb" and
|
||||
the dependencies.
|
||||
|
||||
endef
|
||||
|
||||
define Package/mariadb-server-extra
|
||||
$(call Package/mariadb/Default)
|
||||
TITLE:=MariaDB database extra server binaries
|
||||
TITLE:=MariaDB database server extra
|
||||
DEPENDS:=mariadb-server
|
||||
endef
|
||||
|
||||
|
@ -310,82 +371,64 @@ CMAKE_OPTIONS += -DWITH_UNIT_TESTS=0
|
|||
# time.
|
||||
CMAKE_OPTIONS += -DSTACK_DIRECTION=-1
|
||||
|
||||
# Jemalloc was added for TokuDB. Since its configure script seems somewhat broken
|
||||
# when it comes to cross-compilation we shall disable it and also disable TokuDB.
|
||||
CMAKE_OPTIONS += -DWITH_JEMALLOC=no -DWITHOUT_TOKUDB=1
|
||||
|
||||
# Make it explicit that we are cross-compiling
|
||||
CMAKE_OPTIONS += -DCMAKE_CROSSCOMPILING=1
|
||||
|
||||
# Explicitly disable dtrace to avoid detection of a host version
|
||||
CMAKE_OPTIONS += -DENABLE_DTRACE=0
|
||||
|
||||
# Prevent mariadb from messing with OpenWrt's C(XX)FLAGS
|
||||
# Prevent MariaDB from messing with OpenWrt's C(XX)FLAGS
|
||||
CMAKE_OPTIONS += -DSECURITY_HARDENED=OFF
|
||||
|
||||
ifeq ($(CONFIG_PACKAGE_mariadb-server),)
|
||||
CMAKE_OPTIONS += -DWITHOUT_SERVER=ON
|
||||
else
|
||||
CMAKE_OPTIONS += -DWITHOUT_SERVER=OFF
|
||||
# Enable the auth_socket plugin and let unix user root access MariaDB without a
|
||||
# separate password.
|
||||
CMAKE_OPTIONS += -DWITHOUT_SERVER=OFF -DPLUGIN_AUTH_SOCKET=STATIC
|
||||
endif
|
||||
|
||||
CMAKE_OPTIONS += \
|
||||
-DCONNECT_WITH_JDBC=NO \
|
||||
-DCONNECT_WITH_LIBXML2=system \
|
||||
-DCONNECT_WITH_MONGO=NO \
|
||||
-DCONNECT_WITH_ODBC=NO \
|
||||
-DDEFAULT_CHARSET=utf8 \
|
||||
-DDEFAULT_COLLATION=utf8_general_ci \
|
||||
-DDISABLE_SHARED=NO \
|
||||
-DENABLED_PROFILING=OFF \
|
||||
-DENABLE_STATIC_LIBS=OFF \
|
||||
-DINSTALL_DOCDIR=share/doc/mariadb \
|
||||
-DINSTALL_DOCREADMEDIR=share/doc/mariadb \
|
||||
-DINSTALL_INFODIR=share/info \
|
||||
-DINSTALL_MANDIR=share/man \
|
||||
-DINSTALL_MYSQLSHAREDIR=share/mysql \
|
||||
-DINSTALL_MYSQLSHAREDIR=share/mariadb \
|
||||
-DINSTALL_MYSQLTESTDIR="" \
|
||||
-DINSTALL_PLUGINDIR=lib/mysql/plugin \
|
||||
-DINSTALL_PLUGINDIR=lib/mariadb/plugin \
|
||||
-DINSTALL_SBINDIR=bin \
|
||||
-DINSTALL_SCRIPTDIR=bin \
|
||||
-DINSTALL_SQLBENCHDIR="" \
|
||||
-DINSTALL_SUPPORTFILESDIR=share/mysql \
|
||||
-DINSTALL_SUPPORTFILESDIR=share/mariadb \
|
||||
-DINSTALL_UNIX_ADDRDIR=/var/run/mysqld/mysqld.sock \
|
||||
-DMYSQLD_USER=mariadb \
|
||||
-DMYSQL_DATADIR=/var/lib/mysql \
|
||||
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
|
||||
-DSKIP_TESTS=ON \
|
||||
-DWITH_ASAN=OFF \
|
||||
-DWITH_DEBUG=OFF \
|
||||
-DWITH_EMBEDDED_SERVER=OFF \
|
||||
-DWITH_EXTRA_CHARSETS=complex \
|
||||
-DWITH_INNODB_BZIP2=OFF \
|
||||
-DWITH_INNODB_LZ4=OFF \
|
||||
-DWITH_INNODB_LZMA=ON \
|
||||
-DWITH_INNODB_LZO=OFF \
|
||||
-DWITH_INNODB_SNAPPY=OFF \
|
||||
-DWITH_LIBEDIT=OFF \
|
||||
-DWITH_LIBNUMA=NO \
|
||||
-DWITH_JEMALLOC=OFF \
|
||||
-DWITH_LIBARCHIVE=OFF \
|
||||
-DWITH_LIBWRAP=OFF \
|
||||
-DWITH_LIBWSEP=OFF \
|
||||
-DWITH_MARIABACKUP=ON \
|
||||
-DWITH_PCRE=system \
|
||||
-DWITH_READLINE=OFF \
|
||||
-DWITH_SAFEMALLOC=OFF \
|
||||
-DWITH_SSL=system \
|
||||
-DWITH_SYSTEMD=no \
|
||||
-DWITH_VALGRIND=OFF \
|
||||
-DWITH_ZLIB=system
|
||||
|
||||
# Default-disable some modules
|
||||
CMAKE_OPTIONS += \
|
||||
-DPLUGIN_CASSANDRA=NO \
|
||||
-DPLUGIN_MROONGA=NO \
|
||||
-DPLUGIN_OQGRAPH=NO \
|
||||
-DPLUGIN_ROCKSDB=NO \
|
||||
-DPLUGIN_TOKUDB=NO \
|
||||
-DPLUGIN_AUTH_PAM=NO \
|
||||
-DPLUGIN_AUTH_GSSAPI=NO \
|
||||
-DPLUGIN_AUTH_GSSAPI_CLIENT=OFF \
|
||||
-DPLUGIN_CRACKLIB_PASSWORD_CHECK=NO
|
||||
|
||||
# Help MariaDB find the correct libiconv.
|
||||
# nls.mk sets it up so that with CONFIG_BUILD_NLS libiconv-full would be used,
|
||||
# otherwise libiconv-stub (independent of the selected libc). MariaDB needs a
|
||||
|
@ -395,6 +438,7 @@ CMAKE_OPTIONS += \
|
|||
-DICONV_LIBRARIES=$(ICONV_PREFIX)/lib/libiconv.$(if $(CONFIG_BUILD_NLS),so,a)
|
||||
|
||||
CMAKE_OPTIONS += \
|
||||
$(foreach p,$(MARIADB_LIB_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_lib$(PKG_NAME)-plugin-$(subst _,-,$(p))),DYNAMIC,OFF)) \
|
||||
$(foreach p,$(MARIADB_SERVER_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-$(subst _,-,$(p))),DYNAMIC,NO))
|
||||
|
||||
# Set CMAKE_FIND_ROOT_PATH_MODE_INCLUDE and CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
|
@ -409,10 +453,9 @@ CMAKE_HOST_OPTIONS += \
|
|||
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH \
|
||||
-DCMAKE_INSTALL_RPATH="$(STAGING_DIR_HOSTPKG)/lib" \
|
||||
-DCMAKE_SKIP_RPATH=FALSE \
|
||||
-DWITHOUT_SERVER=OFF \
|
||||
-DWITHOUT_TOKUDB=1
|
||||
-DWITHOUT_SERVER=OFF
|
||||
|
||||
# Some helpers must be compiled for host in order to crosscompile mariadb for
|
||||
# Some helpers must be compiled for host in order to crosscompile MariaDB for
|
||||
# the target. They are then included by import_executables.cmake which is
|
||||
# generated during the build of the host helpers. It is not necessary to build
|
||||
# the whole host package, only the "import_executables" target.
|
||||
|
@ -422,6 +465,13 @@ CMAKE_HOST_OPTIONS += \
|
|||
|
||||
CMAKE_OPTIONS += -DIMPORT_EXECUTABLES=$(STAGING_DIR_HOSTPKG)/share/mariadb/import_executables.cmake
|
||||
|
||||
# Disable some engines/plugins here as well - decreases the number of cmake checks.
|
||||
define Host/Prepare
|
||||
$(call Host/Prepare/Default)
|
||||
$(foreach e,$(MARIADB_DISABLE_ENGINES),$(call Package/mariadb/disable/engine,$(HOST_BUILD_DIR),$(e));)
|
||||
$(foreach p,$(MARIADB_DISABLE_PLUGINS),$(call Package/mariadb/disable/plugin,$(HOST_BUILD_DIR),$(p));)
|
||||
endef
|
||||
|
||||
define Host/Compile
|
||||
$(call Host/Compile/Default,import_executables)
|
||||
endef
|
||||
|
@ -438,7 +488,7 @@ endef
|
|||
|
||||
# LIBICONV_PLUG is used in GNU's libiconv for redefinition of exports [e.g.
|
||||
# from libiconv_open() to iconv_open()]. But in OpenWrt this variable is not set
|
||||
# when building libiconv-full. So when mariadb sets LIBICONV_PLUG it expects
|
||||
# when building libiconv-full. So when MariaDB sets LIBICONV_PLUG it expects
|
||||
# iconv_open() to be available for example, which is not the case - only
|
||||
# libiconv_open() is. To address this prevent the variable from being set.
|
||||
# libiconv-stub does not use this variable, so there is no harm in always doing
|
||||
|
@ -447,6 +497,8 @@ endef
|
|||
define Build/Prepare
|
||||
$(call Build/Prepare/Default)
|
||||
$(SED) '/ADD_DEFINITIONS(-DLIBICONV_PLUG)/d' $(PKG_BUILD_DIR)/libmariadb/libmariadb/CMakeLists.txt
|
||||
$(foreach e,$(MARIADB_DISABLE_ENGINES),$(call Package/mariadb/disable/engine,$(PKG_BUILD_DIR),$(e));)
|
||||
$(foreach p,$(MARIADB_DISABLE_PLUGINS),$(call Package/mariadb/disable/plugin,$(PKG_BUILD_DIR),$(p));)
|
||||
endef
|
||||
|
||||
define Build/InstallDev
|
||||
|
@ -477,111 +529,106 @@ define Package/mariadb-client/install
|
|||
cd $(1)/usr/bin; $(LN) mysqlcheck mysqloptimize
|
||||
endef
|
||||
|
||||
define Package/mariadb-client-base/install
|
||||
$(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
|
||||
$(INSTALL_CONF) conf/50-client.cnf $(1)$(CONF_DIR)/conf.d
|
||||
$(INSTALL_CONF) conf/50-mysql-clients.cnf $(1)$(CONF_DIR)/conf.d
|
||||
endef
|
||||
|
||||
define Package/mariadb-client-extra/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(foreach b,$(MARIADB_CLIENT_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
|
||||
endef
|
||||
|
||||
define Package/mariadb-extra-charsets/install
|
||||
$(INSTALL_DIR) $(1)/usr/share/mysql/charsets
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/charsets/* $(1)/usr/share/mysql/charsets
|
||||
define Package/mariadb-common/install
|
||||
$(INSTALL_DIR) $(1)$(CONF_DIR)
|
||||
$(INSTALL_CONF) conf/my.cnf $(1)$(CONF_DIR)
|
||||
endef
|
||||
|
||||
define Package/mariadb-server/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(foreach b,$(MARIADB_SERVER),$(call Package/mariadb/install/bin,$(1),$(b));)
|
||||
$(INSTALL_DIR) $(1)/etc/default
|
||||
endef
|
||||
|
||||
define Package/mariadb-server-base/install
|
||||
$(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
|
||||
$(INSTALL_DIR) $(1)$(SHARE_DIR)/charsets
|
||||
$(INSTALL_DIR) $(1)$(SHARE_DIR)/english
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_DIR) $(1)/etc/mysql/conf.d
|
||||
$(INSTALL_BIN) files/mysqld.init $(1)/etc/init.d/mysqld
|
||||
$(INSTALL_CONF) conf/my.cnf $(1)/etc/mysql
|
||||
$(INSTALL_CONF) conf/mysqld.default $(1)/etc/default/mysqld
|
||||
$(INSTALL_DIR) $(1)$(PLUGIN_DIR)
|
||||
$(INSTALL_CONF) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/daemon_example.ini $(1)$(PLUGIN_DIR)
|
||||
$(INSTALL_DIR) $(1)/usr/share/mysql/english
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/english/errmsg.sys $(1)/usr/share/mysql/english
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/fill_help_tables.sql $(1)/usr/share/mysql
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/maria_add_gis_sp_bootstrap.sql $(1)/usr/share/mysql
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/mysql_performance_tables.sql $(1)/usr/share/mysql
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/mysql_system_tables.sql $(1)/usr/share/mysql
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/mysql/mysql_system_tables_data.sql $(1)/usr/share/mysql
|
||||
$(SED) '/^[a-z]/s/^/#/' $(PKG_INSTALL_DIR)$(SHARE_DIR)/wsrep.cnf
|
||||
$(INSTALL_CONF) $(PKG_INSTALL_DIR)$(SHARE_DIR)/wsrep.cnf $(1)$(CONF_DIR)/conf.d/60-galera.cnf
|
||||
$(INSTALL_CONF) conf/50-server.cnf $(1)$(CONF_DIR)/conf.d
|
||||
$(INSTALL_CONF) files/mysqld.config $(1)/etc/config/mysqld
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/charsets/* $(1)$(SHARE_DIR)/charsets
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/english/errmsg.sys $(1)$(SHARE_DIR)/english
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/fill_help_tables.sql $(1)$(SHARE_DIR)
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/maria_add_gis_sp_bootstrap.sql $(1)$(SHARE_DIR)
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_performance_tables.sql $(1)$(SHARE_DIR)
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_system_tables.sql $(1)$(SHARE_DIR)
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_system_tables_data.sql $(1)$(SHARE_DIR)
|
||||
endef
|
||||
|
||||
define Package/mariadb-server-extra/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(SED) 's,/bin/bash,/bin/sh,g' $(PKG_INSTALL_DIR)/usr/bin/wsrep_sst_*
|
||||
$(foreach b,$(MARIADB_SERVER_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
|
||||
endef
|
||||
|
||||
define Package/mariadb-server/conffiles
|
||||
/etc/default/mysqld
|
||||
/etc/mysql/my.cnf
|
||||
$(PLUGIN_DIR)/daemon_example.ini
|
||||
endef
|
||||
|
||||
define BuildPlugin
|
||||
define Package/$(PKG_NAME)-server-plugin-$(subst _,-,$(1))
|
||||
$$(call Package/mariadb/Default)
|
||||
TITLE:=MariaDB database plugin
|
||||
DEPENDS:=mariadb-server $(patsubst +%,+PACKAGE_$(PKG_NAME)-server-plugin-$(subst _,-,$(1)):%,$(2))
|
||||
define Package/$(1)-plugin-$(subst _,-,$(2))
|
||||
$(call Package/$(subst mariadb-server,mariadb,$(1))/Default)
|
||||
TITLE:=$(1) plugin
|
||||
DEPENDS:=$(1) $(patsubst +%,+PACKAGE_$(1)-plugin-$(subst _,-,$(2)):%,$(3))
|
||||
endef
|
||||
define Package/$(PKG_NAME)-server-plugin-$(subst _,-,$(1))/description
|
||||
$$(call Package/mariadb/description/Default)
|
||||
define Package/$(1)-plugin-$(subst _,-,$(2))/description
|
||||
$(call Package/mariadb/description/Default)
|
||||
|
||||
This package provides the $(1) plugin.
|
||||
This package provides the $(2) plugin.
|
||||
|
||||
endef
|
||||
define Package/$(PKG_NAME)-server-plugin-$(subst _,-,$(1))/install
|
||||
$(INSTALL_DIR) $$(1)$(PLUGIN_DIR)
|
||||
$(INSTALL_BIN) \
|
||||
$(PKG_INSTALL_DIR)$(PLUGIN_DIR)/$(1).so \
|
||||
$$(1)$(PLUGIN_DIR)
|
||||
define Package/$(1)-plugin-$(subst _,-,$(2))/install
|
||||
$(INSTALL_DIR) $$(1)$(PLUGIN_DIR)
|
||||
$(call Package/mariadb/install/plugin,$$(1),$(2))
|
||||
endef
|
||||
$$(eval $$(call BuildPackage,$(PKG_NAME)-server-plugin-$(subst _,-,$(1))))
|
||||
$$(eval $$(call BuildPackage,$(1)-plugin-$(subst _,-,$(2))))
|
||||
endef
|
||||
|
||||
$(eval $(call HostBuild))
|
||||
$(eval $(call BuildPackage,libmariadb))
|
||||
$(eval $(call BuildPackage,mariadb-client))
|
||||
$(eval $(call BuildPackage,mariadb-client-base))
|
||||
$(eval $(call BuildPackage,mariadb-client-extra))
|
||||
$(eval $(call BuildPackage,mariadb-extra-charsets))
|
||||
$(eval $(call BuildPackage,mariadb-common))
|
||||
$(eval $(call BuildPackage,mariadb-server))
|
||||
$(eval $(call BuildPackage,mariadb-server-base))
|
||||
$(eval $(call BuildPackage,mariadb-server-extra))
|
||||
|
||||
$(eval $(call BuildPlugin,adt_null,))
|
||||
$(eval $(call BuildPlugin,auth_0x0100,))
|
||||
$(eval $(call BuildPlugin,auth_ed25519,))
|
||||
$(eval $(call BuildPlugin,auth_socket,))
|
||||
$(eval $(call BuildPlugin,auth_test_plugin,))
|
||||
$(eval $(call BuildPlugin,client_ed25519,))
|
||||
$(eval $(call BuildPlugin,debug_key_management,))
|
||||
$(eval $(call BuildPlugin,dialog_examples,))
|
||||
$(eval $(call BuildPlugin,disks,))
|
||||
$(eval $(call BuildPlugin,example_key_management,))
|
||||
$(eval $(call BuildPlugin,feedback,))
|
||||
$(eval $(call BuildPlugin,file_key_management,))
|
||||
$(eval $(call BuildPlugin,ha_archive,))
|
||||
$(eval $(call BuildPlugin,ha_blackhole,))
|
||||
$(eval $(call BuildPlugin,ha_connect,+libxml2))
|
||||
$(eval $(call BuildPlugin,ha_example,))
|
||||
$(eval $(call BuildPlugin,ha_federated,))
|
||||
$(eval $(call BuildPlugin,ha_federatedx,))
|
||||
$(eval $(call BuildPlugin,ha_sequence,))
|
||||
$(eval $(call BuildPlugin,ha_sphinx,))
|
||||
$(eval $(call BuildPlugin,ha_spider,))
|
||||
$(eval $(call BuildPlugin,ha_test_sql_discovery,))
|
||||
$(eval $(call BuildPlugin,handlersocket,))
|
||||
$(eval $(call BuildPlugin,libdaemon_example,))
|
||||
$(eval $(call BuildPlugin,locales,))
|
||||
$(eval $(call BuildPlugin,metadata_lock_info,))
|
||||
$(eval $(call BuildPlugin,mypluglib,))
|
||||
$(eval $(call BuildPlugin,qa_auth_client,))
|
||||
$(eval $(call BuildPlugin,qa_auth_interface,))
|
||||
$(eval $(call BuildPlugin,qa_auth_server,))
|
||||
$(eval $(call BuildPlugin,query_cache_info,))
|
||||
$(eval $(call BuildPlugin,query_response_time,))
|
||||
$(eval $(call BuildPlugin,semisync_master,))
|
||||
$(eval $(call BuildPlugin,semisync_slave,))
|
||||
$(eval $(call BuildPlugin,server_audit,))
|
||||
$(eval $(call BuildPlugin,simple_password_check,))
|
||||
$(eval $(call BuildPlugin,sql_errlog,))
|
||||
$(eval $(call BuildPlugin,wsrep_info,))
|
||||
$(eval $(call BuildPlugin,libmariadb,auth_gssapi_client,+krb5-libs))
|
||||
$(eval $(call BuildPlugin,mariadb-server,auth_ed25519,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,auth_gssapi,+krb5-libs))
|
||||
$(eval $(call BuildPlugin,mariadb-server,auth_pam,+libpam))
|
||||
$(eval $(call BuildPlugin,mariadb-server,client_ed25519,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,disks,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,feedback,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,file_key_management,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,ha_archive,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,ha_blackhole,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,ha_connect,+libxml2))
|
||||
$(eval $(call BuildPlugin,mariadb-server,ha_federated,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,ha_federatedx,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,ha_sphinx,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,ha_spider,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,handlersocket,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,locales,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,metadata_lock_info,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,query_cache_info,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,query_response_time,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,semisync_master,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,semisync_slave,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,server_audit,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,simple_password_check,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,sql_errlog,))
|
||||
$(eval $(call BuildPlugin,mariadb-server,wsrep_info,))
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
#
|
||||
# This group is read by the client library
|
||||
# Use it for options that affect all clients, but not the server
|
||||
#
|
||||
|
||||
[client]
|
||||
# Default is Latin1, if you need UTF-8 set this (also in server section)
|
||||
default-character-set = utf8mb4
|
||||
|
||||
# Example of client certificate usage
|
||||
# ssl-cert=/etc/mysql/client-cert.pem
|
||||
# ssl-key=/etc/mysql/client-key.pem
|
||||
#
|
||||
# Allow only TLS encrypted connections
|
||||
# ssl-verify-server-cert=on
|
||||
|
||||
# This group is *never* read by mysql client library
|
||||
# If you use the same .cnf file for MySQL and MariaDB, use it for
|
||||
# MariaDB-only client options
|
||||
[client-mariadb]
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
#
|
||||
# These groups are read by MariaDB command-line tools
|
||||
# Use it for options that affect only one utility
|
||||
#
|
||||
|
||||
[mysql]
|
||||
# Default is Latin1, if you need UTF-8 set this (also in server section)
|
||||
default-character-set = utf8mb4
|
||||
|
||||
[mysql_upgrade]
|
||||
|
||||
[mysqladmin]
|
||||
|
||||
[mysqlbinlog]
|
||||
|
||||
[mysqlcheck]
|
||||
|
||||
[mysqldump]
|
||||
|
||||
[mysqlimport]
|
||||
|
||||
[mysqlshow]
|
||||
|
||||
[mysqlslap]
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
#
|
||||
# These groups are read by MariaDB server.
|
||||
# Use it for options that only the server (but not clients) should see
|
||||
#
|
||||
# See the examples of server my.cnf files in /usr/share/mysql/
|
||||
#
|
||||
|
||||
# this is read by the standalone daemon and embedded servers
|
||||
[server]
|
||||
|
||||
# this is only for the mysqld standalone daemon
|
||||
[mysqld]
|
||||
|
||||
#
|
||||
# * Basic Settings
|
||||
#
|
||||
user = mariadb
|
||||
pid-file = /var/run/mysqld/mysqld.pid
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
port = 3306
|
||||
basedir = /usr
|
||||
# Don't put this on flash memory
|
||||
# Figure out where you are going to put the databases and run
|
||||
# mysql_install_db --force
|
||||
datadir = /mnt/data/mysql
|
||||
# tmpdir should also not go on flash memory
|
||||
tmpdir = /tmp
|
||||
lc-messages-dir = /usr/share/mariadb
|
||||
|
||||
skip-external-locking
|
||||
|
||||
# Instead of skip-networking the default is now to listen only on
|
||||
# localhost which is more compatible and is not less secure.
|
||||
bind-address = 127.0.0.1
|
||||
|
||||
#
|
||||
# * Fine Tuning
|
||||
#
|
||||
key_buffer_size = 16M
|
||||
max_allowed_packet = 16M
|
||||
thread_stack = 192K
|
||||
thread_cache_size = 8
|
||||
# This replaces the startup script and checks MyISAM tables if needed
|
||||
# the first time they are touched
|
||||
myisam_recover_options = BACKUP
|
||||
#max_connections = 100
|
||||
#table_cache = 64
|
||||
#thread_concurrency = 10
|
||||
|
||||
#
|
||||
# * Query Cache Configuration
|
||||
#
|
||||
query_cache_limit = 1M
|
||||
query_cache_size = 16M
|
||||
|
||||
#
|
||||
# * Logging and Replication
|
||||
#
|
||||
# Both location gets rotated by the cronjob.
|
||||
# Be aware that this log type is a performance killer.
|
||||
# As of 5.1 you can enable the log at runtime!
|
||||
#general_log_file = /var/log/mysql/mysql.log
|
||||
#general_log = 1
|
||||
#
|
||||
# Error log - should be very few entries.
|
||||
# Note that if unset the errors will go to stdout and can be seen in syslog
|
||||
# (check "logread")
|
||||
#
|
||||
#log_error = /var/log/mysql/error.log
|
||||
#
|
||||
# Enable the slow query log to see queries with especially long duration
|
||||
#slow_query_log_file = /var/log/mysql/mariadb-slow.log
|
||||
#long_query_time = 10
|
||||
#log_slow_rate_limit = 1000
|
||||
#log_slow_verbosity = query_plan
|
||||
#
|
||||
#log-queries-not-using-indexes
|
||||
#
|
||||
# The following can be used as easy to replay backup logs or for replication.
|
||||
#server-id = 1
|
||||
#log_bin = /var/log/mysql/mysql-bin.log
|
||||
expire_logs_days = 10
|
||||
max_binlog_size = 100M
|
||||
#binlog_do_db = include_database_name
|
||||
#binlog_ignore_db = exclude_database_name
|
||||
|
||||
#
|
||||
# * InnoDB
|
||||
#
|
||||
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
|
||||
# Read the manual for more InnoDB related options. There are many!
|
||||
|
||||
#
|
||||
# * Security Features
|
||||
#
|
||||
# Read the manual, too, if you want chroot!
|
||||
# chroot = /var/lib/mysql/
|
||||
#
|
||||
# For generating SSL certificates you can use for example the GUI tool "tinyca".
|
||||
#
|
||||
# ssl-ca=/etc/mysql/cacert.pem
|
||||
# ssl-cert=/etc/mysql/server-cert.pem
|
||||
# ssl-key=/etc/mysql/server-key.pem
|
||||
#
|
||||
# Accept only connections using the latest and most secure TLS protocol version.
|
||||
# ..when MariaDB is compiled with OpenSSL:
|
||||
# ssl-cipher=TLSv1.2
|
||||
|
||||
#
|
||||
# * Character sets
|
||||
#
|
||||
# MySQL/MariaDB default is Latin1, but in OpenWrt we rather default to the full
|
||||
# utf8 4-byte character set. See also client.cnf
|
||||
#
|
||||
# Note: In OpenWrt until mariadb 10.2.19-2 the baked-in defaults were
|
||||
# "DEFAULT_CHARSET=utf8" and "DEFAULT_COLLATION=utf8_general_ci". As MariaDB's
|
||||
# utf8 (supports three bytes per character) is not really UTF-8 (which needs up
|
||||
# to four bytes per character) this was changed. Now the baked in-defaults are
|
||||
# the upstream defaults (Latin1), but in the default configuration (like in the
|
||||
# file you are currently reading) utf8mb4 is set, which is real UTF-8.
|
||||
#
|
||||
# Of course you are free to change this, either here or in a configuration file
|
||||
# of your own which is read after this .cnf file, see my.cnf in parent folder
|
||||
# (files are read in alphabetical order).
|
||||
character-set-server = utf8mb4
|
||||
collation-server = utf8mb4_general_ci
|
||||
|
||||
#
|
||||
# * Unix socket authentication plugin is built-in
|
||||
#
|
||||
# Needed so the root database user can authenticate without a password but
|
||||
# only when running as the unix root user.
|
||||
#
|
||||
# Also available for other users if required.
|
||||
# See https://mariadb.com/kb/en/unix_socket-authentication-plugin/
|
||||
|
|
@ -1,54 +1,22 @@
|
|||
[client]
|
||||
port = 3306
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
# The MariaDB configuration file
|
||||
#
|
||||
# The MariaDB/MySQL tools read configuration files in the following order:
|
||||
# 1. "/etc/mysql/my.cnf" (this file) to set global defaults,
|
||||
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
|
||||
# 3. "~/.my.cnf" to set user-specific options.
|
||||
#
|
||||
# If the same option is defined multiple times, the last one will apply.
|
||||
#
|
||||
# One can use all long options that the program supports.
|
||||
# Run program with --help to get a list of available options and with
|
||||
# --print-defaults to see which it would actually understand and use.
|
||||
|
||||
[mysqld]
|
||||
user = mariadb
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
port = 3306
|
||||
basedir = /usr
|
||||
|
||||
############ Don't put this on the NAND #############
|
||||
# Figure out where you are going to put the databases
|
||||
# And run mysql_install_db --force
|
||||
datadir = /mnt/data/mysql/
|
||||
|
||||
######### This should also not go on the NAND #######
|
||||
tmpdir = /mnt/data/tmp/
|
||||
|
||||
skip-external-locking
|
||||
|
||||
bind-address = 127.0.0.1
|
||||
|
||||
# Fine Tuning
|
||||
key_buffer_size = 16M
|
||||
max_allowed_packet = 16M
|
||||
thread_stack = 192K
|
||||
thread_cache_size = 8
|
||||
|
||||
# Here you can see queries with especially long duration
|
||||
#log_slow_queries = /var/log/mysql/mysql-slow.log
|
||||
#long_query_time = 2
|
||||
#log-queries-not-using-indexes
|
||||
|
||||
# The following can be used as easy to replay backup logs or for replication.
|
||||
#server-id = 1
|
||||
#log_bin = /var/log/mysql/mysql-bin.log
|
||||
#expire_logs_days = 10
|
||||
#max_binlog_size = 100M
|
||||
#binlog_do_db = include_database_name
|
||||
#binlog_ignore_db = include_database_name
|
||||
|
||||
|
||||
[mysqldump]
|
||||
quick
|
||||
quote-names
|
||||
max_allowed_packet = 16M
|
||||
|
||||
[mysql]
|
||||
#no-auto-rehash # faster start of mysql but no tab completition
|
||||
|
||||
[isamchk]
|
||||
key_buffer = 16M
|
||||
#
|
||||
# This group is read both both by the client and the server
|
||||
# use it for options that affect everything
|
||||
#
|
||||
[client-server]
|
||||
|
||||
# Import all .cnf files from configuration directory
|
||||
!includedir /etc/mysql/conf.d/
|
||||
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
# The user and group that will run the MySQL server. The user mariadb is
|
||||
# automatically created by the mariadb-server package, hence that is the
|
||||
# default choice.
|
||||
|
||||
#MY_USER=mariadb
|
||||
#MY_GROUP=mariadb
|
||||
|
||||
# Additional arguments you want to pass to the MySQL server.
|
||||
|
||||
#MY_ARGS=""
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
config mysqld 'general'
|
||||
option enabled '0'
|
||||
option log_stderr '1'
|
||||
option log_stdout '1'
|
||||
option options ''
|
||||
|
|
@ -8,46 +8,94 @@ USE_PROCD=1
|
|||
|
||||
#PROCD_DEBUG=1
|
||||
|
||||
MYSQLD=mysqld
|
||||
NAME=mysqld
|
||||
|
||||
DEFAULT=/etc/default/$MYSQLD
|
||||
LOGGER="/usr/bin/logger -p user.err -s -t $MYSQLD"
|
||||
PROG=/usr/bin/$MYSQLD
|
||||
LOGGER="/usr/bin/logger -p user.err -s -t $NAME"
|
||||
COMMAND=/usr/bin/$NAME
|
||||
|
||||
unset MY_ARGS MY_GROUP MY_USER
|
||||
|
||||
[ -f $DEFAULT ] && . $DEFAULT
|
||||
|
||||
my_user="${MY_USER:-mariadb}"
|
||||
my_group="${MY_GROUP:-mariadb}"
|
||||
mysqld_get_param() {
|
||||
$COMMAND --print-defaults \
|
||||
| tr " " "\n" \
|
||||
| grep -- "--$1" \
|
||||
| tail -n 1 \
|
||||
| cut -d= -f2
|
||||
}
|
||||
|
||||
start_service() {
|
||||
local conf='/etc/mysql/my.cnf'
|
||||
local datadir="$( sed -nE "s/^\s*datadir\s*=\s*('([^']*)'|\x22([^\x22]*)\x22|(.*\S))\s*$/\2\3\4/p" "$conf" )"
|
||||
local conf=/etc/mysql/my.cnf
|
||||
local dir
|
||||
local user=mariadb
|
||||
|
||||
[ -d "$datadir" ] || {
|
||||
$LOGGER "datadir '$datadir' in '$conf' does not exist"
|
||||
return 1
|
||||
}
|
||||
local datadir
|
||||
local logdir=/var/log/mysql
|
||||
local rundir=/var/run/mysqld
|
||||
local tmpdir
|
||||
|
||||
[ -f "$datadir/mysql/tables_priv.MYD" ] || {
|
||||
local enabled
|
||||
local log_stderr
|
||||
local log_stdout
|
||||
local options
|
||||
|
||||
if [ ! -x $COMMAND ]; then
|
||||
$LOGGER $COMMAND is missing
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -r $conf ]; then
|
||||
$LOGGER $conf cannot be read
|
||||
exit 1
|
||||
fi
|
||||
|
||||
config_load $NAME
|
||||
|
||||
config_get_bool enabled general enabled 0
|
||||
if [ $enabled -eq 0 ]; then
|
||||
$LOGGER service not enabled in /etc/config/$NAME
|
||||
exit 1
|
||||
fi
|
||||
|
||||
config_get_bool log_stderr general log_stderr 1
|
||||
config_get_bool log_stdout general log_stdout 1
|
||||
|
||||
config_get options general options
|
||||
|
||||
datadir=$(mysqld_get_param datadir)
|
||||
tmpdir=$(mysqld_get_param tmpdir)
|
||||
|
||||
if [ -z "$datadir" ]; then
|
||||
$LOGGER datadir is not set
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$tmpdir" ]; then
|
||||
$LOGGER tmpdir is not set.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -e "$datadir" ] || mkdir -p "$datadir"
|
||||
|
||||
for dir in "$logdir" "$rundir" "$tmpdir"; do
|
||||
if [ ! -e "$dir" ]; then
|
||||
mkdir -p "$dir"
|
||||
chown $user "$dir"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -f "$datadir/mysql/tables_priv.MYD" ]; then
|
||||
$LOGGER "cannot detect privileges table, you might need to"
|
||||
$LOGGER "run 'mysql_install_db --force' to initialize the system tables"
|
||||
return 1
|
||||
}
|
||||
|
||||
mkdir -p /var/lib/mysql
|
||||
chown "$my_user":"$my_group" /var/lib/mysql
|
||||
|
||||
mkdir -p /var/run/mysqld
|
||||
chown "$my_user":"$my_group" /var/run/mysqld
|
||||
exit 1
|
||||
fi
|
||||
|
||||
procd_open_instance
|
||||
|
||||
procd_set_param command $PROG $MY_ARGS
|
||||
procd_set_param pidfile /var/run/mysqld.pid
|
||||
procd_set_param command $COMMAND $options
|
||||
|
||||
# forward stderr to logd
|
||||
procd_set_param stderr 1
|
||||
procd_set_param stderr $log_stderr
|
||||
# same for stdout
|
||||
procd_set_param stdout $log_stdout
|
||||
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
commit 2220f7458ef90829eacc457167a28aeba75ca1bc
|
||||
Author: Sebastian Kemper <sebastian_ml@gmx.net>
|
||||
Date: Sun Dec 9 21:19:24 2018 +0100
|
||||
|
||||
cmake: support new libedit interface
|
||||
|
||||
libedit changed it's interface a while ago. MariaDB's cmake file doesn't
|
||||
recognize the new interface, the compile test fails:
|
||||
|
||||
/mariadb-10.2.19/CMakeFiles/CMakeTmp/src.cxx: In function 'int main(int, char**)':
|
||||
/mariadb-10.2.19/CMakeFiles/CMakeTmp/src.cxx:6:47: error: invalid conversion from 'char*' to 'int' [-fpermissive]
|
||||
int res= (*rl_completion_entry_function)(0,0);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
|
||||
|
||||
Fix this by adding a detection for the new interface as well.
|
||||
|
||||
In client/mysql.cc the ifdefs for the new readline interface are
|
||||
extended to also check for the new libedit interface. They work the same
|
||||
way.
|
||||
|
||||
Run-tested on a MIPS machine.
|
||||
|
||||
Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
|
||||
|
||||
--- a/client/mysql.cc
|
||||
+++ b/client/mysql.cc
|
||||
@@ -2577,7 +2577,7 @@ C_MODE_END
|
||||
if not.
|
||||
*/
|
||||
|
||||
-#if defined(USE_NEW_READLINE_INTERFACE)
|
||||
+#if defined(USE_NEW_READLINE_INTERFACE) || defined(USE_NEW_LIBEDIT_INTERFACE)
|
||||
static int fake_magic_space(int, int);
|
||||
extern "C" char *no_completion(const char*,int)
|
||||
#elif defined(USE_LIBEDIT_INTERFACE)
|
||||
@@ -2659,7 +2659,7 @@ static int not_in_history(const char *li
|
||||
}
|
||||
|
||||
|
||||
-#if defined(USE_NEW_READLINE_INTERFACE)
|
||||
+#if defined(USE_NEW_READLINE_INTERFACE) || defined(USE_NEW_LIBEDIT_INTERFACE)
|
||||
static int fake_magic_space(int, int)
|
||||
#else
|
||||
static int fake_magic_space(const char *, int)
|
||||
@@ -2676,7 +2676,7 @@ static void initialize_readline (char *n
|
||||
rl_readline_name = name;
|
||||
|
||||
/* Tell the completer that we want a crack first. */
|
||||
-#if defined(USE_NEW_READLINE_INTERFACE)
|
||||
+#if defined(USE_NEW_READLINE_INTERFACE) || defined(USE_NEW_LIBEDIT_INTERFACE)
|
||||
rl_attempted_completion_function= (rl_completion_func_t*)&new_mysql_completion;
|
||||
rl_completion_entry_function= (rl_compentry_func_t*)&no_completion;
|
||||
|
||||
@@ -2706,7 +2706,7 @@ static char **new_mysql_completion(const
|
||||
int end __attribute__((unused)))
|
||||
{
|
||||
if (!status.batch && !quick)
|
||||
-#if defined(USE_NEW_READLINE_INTERFACE)
|
||||
+#if defined(USE_NEW_READLINE_INTERFACE) || defined(USE_NEW_LIBEDIT_INTERFACE)
|
||||
return rl_completion_matches(text, new_command_generator);
|
||||
#else
|
||||
return completion_matches((char *)text, (CPFunction *)new_command_generator);
|
||||
--- a/cmake/readline.cmake
|
||||
+++ b/cmake/readline.cmake
|
||||
@@ -160,8 +160,20 @@ MACRO (MYSQL_FIND_SYSTEM_LIBEDIT)
|
||||
int res= (*rl_completion_entry_function)(0,0);
|
||||
completion_matches(0,0);
|
||||
}"
|
||||
- LIBEDIT_INTERFACE)
|
||||
- SET(USE_LIBEDIT_INTERFACE ${LIBEDIT_INTERFACE})
|
||||
+ LIBEDIT_HAVE_COMPLETION_INT)
|
||||
+
|
||||
+ CHECK_CXX_SOURCE_COMPILES("
|
||||
+ #include <stdio.h>
|
||||
+ #include <readline.h>
|
||||
+ int main(int argc, char **argv)
|
||||
+ {
|
||||
+ char res= *(*rl_completion_entry_function)(0,0);
|
||||
+ completion_matches(0,0);
|
||||
+ }"
|
||||
+ LIBEDIT_HAVE_COMPLETION_CHAR)
|
||||
+ IF(LIBEDIT_HAVE_COMPLETION_INT OR LIBEDIT_HAVE_COMPLETION_CHAR)
|
||||
+ SET(USE_LIBEDIT_INTERFACE 1)
|
||||
+ ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
@@ -187,6 +199,7 @@ MACRO (MYSQL_CHECK_READLINE)
|
||||
IF(USE_LIBEDIT_INTERFACE)
|
||||
SET(MY_READLINE_INCLUDE_DIR ${LIBEDIT_INCLUDE_DIR})
|
||||
SET(MY_READLINE_LIBRARY ${LIBEDIT_LIBRARY} ${CURSES_LIBRARY})
|
||||
+ SET(USE_NEW_LIBEDIT_INTERFACE ${LIBEDIT_HAVE_COMPLETION_CHAR})
|
||||
ELSE()
|
||||
MYSQL_USE_BUNDLED_READLINE()
|
||||
ENDIF()
|
||||
--- a/config.h.cmake
|
||||
+++ b/config.h.cmake
|
||||
@@ -113,6 +113,7 @@
|
||||
/* Readline */
|
||||
#cmakedefine HAVE_HIST_ENTRY 1
|
||||
#cmakedefine USE_LIBEDIT_INTERFACE 1
|
||||
+#cmakedefine USE_NEW_LIBEDIT_INTERFACE 1
|
||||
#cmakedefine USE_NEW_READLINE_INTERFACE 1
|
||||
|
||||
#cmakedefine FIONREAD_IN_SYS_IOCTL 1
|
Loading…
Reference in New Issue