* [Buildroot] [RFC v3 0/3] mariadb: new package
@ 2016-09-27 1:53 Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 1/3] mysql: rename package to oracle-mysql Ryan Coe
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Ryan Coe @ 2016-09-27 1:53 UTC (permalink / raw)
To: buildroot
This patch series represents my attempt to add MariaDB 10.1 to Buildroot.
Based on feedback, this series does three things. First, the old mysql package
is renamed to oracle-mysql. Second, mariadb is added as a new package. Third,
mysql is converted to a virtual package. I have tested this on arm and x86_64
with uclibc and glibc.
Based on the work by:
Sylvain Raybaud <sylvain.raybaud@green-communications.fr>
https://patchwork.ozlabs.org/patch/538045/
Changes v3 -> v2
- rebased
- add mariadb as new package instead of replacing mysql (suggested by Thomas Petazzoni)
- added patch to fix uclibc build on arm (suggested by Floris Bos)
- changed sysv startup script to use mysqladmin ping (suggested by Floris Bos)
- added depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS (suggested by Thomas Petazzoni)
- removed dependency on libtool (suggested by Thomas Petazzoni)
- fixed license (suggested by Thomas Petazzoni and Arnout Vandecappelle)
- formatting cleanups
Changes v1 -> v2
- rebased
- added openssl as dependency (suggested by Floris Bos)
- bumped to mariadb version 10.1 (suggested by Floris Bos)
- replaced custom my.cnf with my-small.cnf provided in the target (suggested by Floris Bos)
Ryan Coe (3):
mysql: rename package to oracle-mysql
mariadb: new package
mysql: convert to virtual package
DEVELOPERS | 3 +
.../mariadb/0001-add-extra-check-for-librt.patch | 26 ++++
...ld-failure-when-HAVE_STACKTRACE-is-not-de.patch | 33 +++++
package/mariadb/S97mysqld | 77 ++++++++++++
package/mariadb/mariadb.hash | 2 +
package/mariadb/mariadb.mk | 114 +++++++++++++++++
package/mariadb/mysqld.service | 13 ++
package/mysql/Config.in | 73 +++++++++--
package/mysql/mysql.mk | 130 +-------------------
.../0000-ac_cache_check.patch | 0
.../0001-configure-ps-cache-check.patch | 0
.../0002-use-new-readline-iface.patch | 0
.../0003-ac_stack_direction-is-unset.patch | 0
.../0004-Fix-gen_lex_hash-execution.patch | 0
.../0005-bison_3_breaks_mysql_server_build.patch | 0
.../0006-no-force-static-build.patch | 0
.../0007-dont-install-in-mysql-directory.patch | 0
package/{mysql => oracle-mysql}/S97mysqld | 0
package/{mysql => oracle-mysql}/mysqld.service | 0
.../mysql.hash => oracle-mysql/oracle-mysql.hash} | 0
package/oracle-mysql/oracle-mysql.mk | 136 +++++++++++++++++++++
21 files changed, 471 insertions(+), 136 deletions(-)
create mode 100644 package/mariadb/0001-add-extra-check-for-librt.patch
create mode 100644 package/mariadb/0002-prevent-build-failure-when-HAVE_STACKTRACE-is-not-de.patch
create mode 100644 package/mariadb/S97mysqld
create mode 100644 package/mariadb/mariadb.hash
create mode 100644 package/mariadb/mariadb.mk
create mode 100644 package/mariadb/mysqld.service
rename package/{mysql => oracle-mysql}/0000-ac_cache_check.patch (100%)
rename package/{mysql => oracle-mysql}/0001-configure-ps-cache-check.patch (100%)
rename package/{mysql => oracle-mysql}/0002-use-new-readline-iface.patch (100%)
rename package/{mysql => oracle-mysql}/0003-ac_stack_direction-is-unset.patch (100%)
rename package/{mysql => oracle-mysql}/0004-Fix-gen_lex_hash-execution.patch (100%)
rename package/{mysql => oracle-mysql}/0005-bison_3_breaks_mysql_server_build.patch (100%)
rename package/{mysql => oracle-mysql}/0006-no-force-static-build.patch (100%)
rename package/{mysql => oracle-mysql}/0007-dont-install-in-mysql-directory.patch (100%)
rename package/{mysql => oracle-mysql}/S97mysqld (100%)
rename package/{mysql => oracle-mysql}/mysqld.service (100%)
rename package/{mysql/mysql.hash => oracle-mysql/oracle-mysql.hash} (100%)
create mode 100644 package/oracle-mysql/oracle-mysql.mk
--
2.9.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [RFC v3 1/3] mysql: rename package to oracle-mysql
2016-09-27 1:53 [Buildroot] [RFC v3 0/3] mariadb: new package Ryan Coe
@ 2016-09-27 1:53 ` Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 2/3] mariadb: new package Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 3/3] mysql: convert to virtual package Ryan Coe
2 siblings, 0 replies; 6+ messages in thread
From: Ryan Coe @ 2016-09-27 1:53 UTC (permalink / raw)
To: buildroot
Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
---
package/Config.in | 2 +-
.../0000-ac_cache_check.patch | 0
.../0001-configure-ps-cache-check.patch | 0
.../0002-use-new-readline-iface.patch | 0
.../0003-ac_stack_direction-is-unset.patch | 0
.../0004-Fix-gen_lex_hash-execution.patch | 0
.../0005-bison_3_breaks_mysql_server_build.patch | 0
.../0006-no-force-static-build.patch | 0
.../0007-dont-install-in-mysql-directory.patch | 0
package/{mysql => oracle-mysql}/Config.in | 12 ++--
package/{mysql => oracle-mysql}/S97mysqld | 0
package/{mysql => oracle-mysql}/mysqld.service | 0
.../mysql.hash => oracle-mysql/oracle-mysql.hash} | 0
.../mysql.mk => oracle-mysql/oracle-mysql.mk} | 66 +++++++++++-----------
14 files changed, 40 insertions(+), 40 deletions(-)
rename package/{mysql => oracle-mysql}/0000-ac_cache_check.patch (100%)
rename package/{mysql => oracle-mysql}/0001-configure-ps-cache-check.patch (100%)
rename package/{mysql => oracle-mysql}/0002-use-new-readline-iface.patch (100%)
rename package/{mysql => oracle-mysql}/0003-ac_stack_direction-is-unset.patch (100%)
rename package/{mysql => oracle-mysql}/0004-Fix-gen_lex_hash-execution.patch (100%)
rename package/{mysql => oracle-mysql}/0005-bison_3_breaks_mysql_server_build.patch (100%)
rename package/{mysql => oracle-mysql}/0006-no-force-static-build.patch (100%)
rename package/{mysql => oracle-mysql}/0007-dont-install-in-mysql-directory.patch (100%)
rename package/{mysql => oracle-mysql}/Config.in (65%)
rename package/{mysql => oracle-mysql}/S97mysqld (100%)
rename package/{mysql => oracle-mysql}/mysqld.service (100%)
rename package/{mysql/mysql.hash => oracle-mysql/oracle-mysql.hash} (100%)
rename package/{mysql/mysql.mk => oracle-mysql/oracle-mysql.mk} (65%)
diff --git a/package/Config.in b/package/Config.in
index fe3ac2c..5c5cb25 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -910,7 +910,7 @@ menu "Database"
source "package/leveldb/Config.in"
source "package/libpqxx/Config.in"
source "package/mongodb/Config.in"
- source "package/mysql/Config.in"
+ source "package/oracle-mysql/Config.in"
source "package/postgresql/Config.in"
source "package/redis/Config.in"
source "package/sqlcipher/Config.in"
diff --git a/package/mysql/0000-ac_cache_check.patch b/package/oracle-mysql/0000-ac_cache_check.patch
similarity index 100%
rename from package/mysql/0000-ac_cache_check.patch
rename to package/oracle-mysql/0000-ac_cache_check.patch
diff --git a/package/mysql/0001-configure-ps-cache-check.patch b/package/oracle-mysql/0001-configure-ps-cache-check.patch
similarity index 100%
rename from package/mysql/0001-configure-ps-cache-check.patch
rename to package/oracle-mysql/0001-configure-ps-cache-check.patch
diff --git a/package/mysql/0002-use-new-readline-iface.patch b/package/oracle-mysql/0002-use-new-readline-iface.patch
similarity index 100%
rename from package/mysql/0002-use-new-readline-iface.patch
rename to package/oracle-mysql/0002-use-new-readline-iface.patch
diff --git a/package/mysql/0003-ac_stack_direction-is-unset.patch b/package/oracle-mysql/0003-ac_stack_direction-is-unset.patch
similarity index 100%
rename from package/mysql/0003-ac_stack_direction-is-unset.patch
rename to package/oracle-mysql/0003-ac_stack_direction-is-unset.patch
diff --git a/package/mysql/0004-Fix-gen_lex_hash-execution.patch b/package/oracle-mysql/0004-Fix-gen_lex_hash-execution.patch
similarity index 100%
rename from package/mysql/0004-Fix-gen_lex_hash-execution.patch
rename to package/oracle-mysql/0004-Fix-gen_lex_hash-execution.patch
diff --git a/package/mysql/0005-bison_3_breaks_mysql_server_build.patch b/package/oracle-mysql/0005-bison_3_breaks_mysql_server_build.patch
similarity index 100%
rename from package/mysql/0005-bison_3_breaks_mysql_server_build.patch
rename to package/oracle-mysql/0005-bison_3_breaks_mysql_server_build.patch
diff --git a/package/mysql/0006-no-force-static-build.patch b/package/oracle-mysql/0006-no-force-static-build.patch
similarity index 100%
rename from package/mysql/0006-no-force-static-build.patch
rename to package/oracle-mysql/0006-no-force-static-build.patch
diff --git a/package/mysql/0007-dont-install-in-mysql-directory.patch b/package/oracle-mysql/0007-dont-install-in-mysql-directory.patch
similarity index 100%
rename from package/mysql/0007-dont-install-in-mysql-directory.patch
rename to package/oracle-mysql/0007-dont-install-in-mysql-directory.patch
diff --git a/package/mysql/Config.in b/package/oracle-mysql/Config.in
similarity index 65%
rename from package/mysql/Config.in
rename to package/oracle-mysql/Config.in
index 7133892..0622a13 100644
--- a/package/mysql/Config.in
+++ b/package/oracle-mysql/Config.in
@@ -1,5 +1,5 @@
-config BR2_PACKAGE_MYSQL
- bool "MySQL"
+config BR2_PACKAGE_ORACLE_MYSQL
+ bool "oracle mysql"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HAS_THREADS
@@ -10,15 +10,15 @@ config BR2_PACKAGE_MYSQL
http://www.mysql.com/
-if BR2_PACKAGE_MYSQL
+if BR2_PACKAGE_ORACLE_MYSQL
-config BR2_PACKAGE_MYSQL_SERVER
- bool "MySQL server"
+config BR2_PACKAGE_ORACLE_MYSQL_SERVER
+ bool "oracle mysql server"
help
Install the MySQL server on the target.
endif
-comment "MySQL needs a toolchain w/ C++, threads"
+comment "oracle mysql needs a toolchain w/ C++, threads"
depends on BR2_USE_MMU
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/mysql/S97mysqld b/package/oracle-mysql/S97mysqld
similarity index 100%
rename from package/mysql/S97mysqld
rename to package/oracle-mysql/S97mysqld
diff --git a/package/mysql/mysqld.service b/package/oracle-mysql/mysqld.service
similarity index 100%
rename from package/mysql/mysqld.service
rename to package/oracle-mysql/mysqld.service
diff --git a/package/mysql/mysql.hash b/package/oracle-mysql/oracle-mysql.hash
similarity index 100%
rename from package/mysql/mysql.hash
rename to package/oracle-mysql/oracle-mysql.hash
diff --git a/package/mysql/mysql.mk b/package/oracle-mysql/oracle-mysql.mk
similarity index 65%
rename from package/mysql/mysql.mk
rename to package/oracle-mysql/oracle-mysql.mk
index 7af4711..532cced 100644
--- a/package/mysql/mysql.mk
+++ b/package/oracle-mysql/oracle-mysql.mk
@@ -1,23 +1,23 @@
################################################################################
#
-# mysql
+# oracle-mysql
#
################################################################################
-MYSQL_VERSION_MAJOR = 5.1
-MYSQL_VERSION = $(MYSQL_VERSION_MAJOR).73
-MYSQL_SOURCE = mysql-$(MYSQL_VERSION).tar.gz
-MYSQL_SITE = http://downloads.skysql.com/archives/mysql-$(MYSQL_VERSION_MAJOR)
-MYSQL_INSTALL_STAGING = YES
-MYSQL_DEPENDENCIES = readline ncurses
-MYSQL_AUTORECONF = YES
-MYSQL_LICENSE = GPLv2
-MYSQL_LICENSE_FILES = README COPYING
+ORACLE_MYSQL_VERSION_MAJOR = 5.1
+ORACLE_MYSQL_VERSION = $(ORACLE_MYSQL_VERSION_MAJOR).73
+ORACLE_MYSQL_SOURCE = mysql-$(ORACLE_MYSQL_VERSION).tar.gz
+ORACLE_MYSQL_SITE = http://downloads.skysql.com/archives/mysql-$(ORACLE_MYSQL_VERSION_MAJOR)
+ORACLE_MYSQL_INSTALL_STAGING = YES
+ORACLE_MYSQL_DEPENDENCIES = readline ncurses
+ORACLE_MYSQL_AUTORECONF = YES
+ORACLE_MYSQL_LICENSE = GPLv2
+ORACLE_MYSQL_LICENSE_FILES = README COPYING
# Unix socket. This variable can also be consulted by other buildroot packages
MYSQL_SOCKET = /run/mysql/mysql.sock
-MYSQL_CONF_ENV = \
+ORACLE_MYSQL_CONF_ENV = \
ac_cv_sys_restartable_syscalls=yes \
ac_cv_path_PS=/bin/ps \
ac_cv_FIND_PROC="/bin/ps p \$\$PID | grep -v grep | grep mysqld > /dev/null" \
@@ -26,7 +26,7 @@ MYSQL_CONF_ENV = \
ac_cv_have_decl_HAVE_IB_GCC_ATOMIC_BUILTINS=yes \
mysql_cv_new_rl_interface=yes
-MYSQL_CONF_OPTS = \
+ORACLE_MYSQL_CONF_OPTS = \
--without-ndb-binlog \
--without-docs \
--without-man \
@@ -40,13 +40,13 @@ MYSQL_CONF_OPTS = \
# host-mysql only installs what is needed to build mysql, i.e. the
# gen_lex_hash tool, and it only builds the parts that are needed to
# create this tool
-HOST_MYSQL_DEPENDENCIES = host-zlib host-ncurses
+HOST_ORACLE_MYSQL_DEPENDENCIES = host-zlib host-ncurses
-HOST_MYSQL_CONF_OPTS = \
+HOST_ORACLE_MYSQL_CONF_OPTS = \
--with-embedded-server \
--disable-mysql-maintainer-mode
-define HOST_MYSQL_BUILD_CMDS
+define HOST_ORACLE_MYSQL_BUILD_CMDS
$(MAKE) -C $(@D)/include my_config.h
$(MAKE) -C $(@D)/mysys libmysys.a
$(MAKE) -C $(@D)/strings libmystrings.a
@@ -56,22 +56,22 @@ define HOST_MYSQL_BUILD_CMDS
$(MAKE) -C $(@D)/sql gen_lex_hash
endef
-define HOST_MYSQL_INSTALL_CMDS
+define HOST_ORACLE_MYSQL_INSTALL_CMDS
$(INSTALL) -m 0755 $(@D)/sql/gen_lex_hash $(HOST_DIR)/usr/bin/
endef
ifeq ($(BR2_PACKAGE_OPENSSL),y)
-MYSQL_DEPENDENCIES += openssl
+ORACLE_MYSQL_DEPENDENCIES += openssl
endif
ifeq ($(BR2_PACKAGE_ZLIB),y)
-MYSQL_DEPENDENCIES += zlib
+ORACLE_MYSQL_DEPENDENCIES += zlib
endif
-ifeq ($(BR2_PACKAGE_MYSQL_SERVER),y)
-MYSQL_DEPENDENCIES += host-mysql host-bison
+ifeq ($(BR2_PACKAGE_ORACLE_MYSQL_SERVER),y)
+ORACLE_MYSQL_DEPENDENCIES += host-oracle-mysql host-bison
-MYSQL_CONF_OPTS += \
+ORACLE_MYSQL_CONF_OPTS += \
--localstatedir=/var/mysql \
--with-atomic-ops=up \
--with-embedded-server \
@@ -91,28 +91,28 @@ MYSQL_CONF_OPTS += \
# Debugging is only available for the server, so no need for
# this if-block outside of the server if-block
ifeq ($(BR2_ENABLE_DEBUG),y)
-MYSQL_CONF_OPTS += --with-debug=full
+ORACLE_MYSQL_CONF_OPTS += --with-debug=full
else
-MYSQL_CONF_OPTS += --without-debug
+ORACLE_MYSQL_CONF_OPTS += --without-debug
endif
-define MYSQL_USERS
+define ORACLE_MYSQL_USERS
mysql -1 nogroup -1 * /var/mysql - - MySQL daemon
endef
-define MYSQL_ADD_FOLDER
+define ORACLE_MYSQL_ADD_FOLDER
$(INSTALL) -d $(TARGET_DIR)/var/mysql
endef
-MYSQL_POST_INSTALL_TARGET_HOOKS += MYSQL_ADD_FOLDER
+ORACLE_MYSQL_POST_INSTALL_TARGET_HOOKS += ORACLE_MYSQL_ADD_FOLDER
-define MYSQL_INSTALL_INIT_SYSV
- $(INSTALL) -D -m 0755 package/mysql/S97mysqld \
+define ORACLE_MYSQL_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 0755 package/oracle-mysql/S97mysqld \
$(TARGET_DIR)/etc/init.d/S97mysqld
endef
-define MYSQL_INSTALL_INIT_SYSTEMD
- $(INSTALL) -D -m 644 package/mysql/mysqld.service \
+define ORACLE_MYSQL_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 644 package/oracle-mysql/mysqld.service \
$(TARGET_DIR)/usr/lib/systemd/system/mysqld.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
ln -sf ../../../../usr/lib/systemd/system/mysqld.service \
@@ -120,16 +120,16 @@ define MYSQL_INSTALL_INIT_SYSTEMD
endef
else
-MYSQL_CONF_OPTS += \
+ORACLE_MYSQL_CONF_OPTS += \
--without-server
endif
-define MYSQL_REMOVE_TEST_PROGS
+define ORACLE_MYSQL_REMOVE_TEST_PROGS
rm -rf $(TARGET_DIR)/usr/mysql-test $(TARGET_DIR)/usr/sql-bench
endef
-MYSQL_POST_INSTALL_TARGET_HOOKS += MYSQL_REMOVE_TEST_PROGS
+ORACLE_MYSQL_POST_INSTALL_TARGET_HOOKS += ORACLE_MYSQL_REMOVE_TEST_PROGS
$(eval $(autotools-package))
$(eval $(host-autotools-package))
--
2.9.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [RFC v3 2/3] mariadb: new package
2016-09-27 1:53 [Buildroot] [RFC v3 0/3] mariadb: new package Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 1/3] mysql: rename package to oracle-mysql Ryan Coe
@ 2016-09-27 1:53 ` Ryan Coe
2016-10-27 4:06 ` Frank Hunleth
2016-09-27 1:53 ` [Buildroot] [RFC v3 3/3] mysql: convert to virtual package Ryan Coe
2 siblings, 1 reply; 6+ messages in thread
From: Ryan Coe @ 2016-09-27 1:53 UTC (permalink / raw)
To: buildroot
Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
---
DEVELOPERS | 3 +
package/Config.in | 1 +
| 26 +++++
...ld-failure-when-HAVE_STACKTRACE-is-not-de.patch | 33 ++++++
package/mariadb/Config.in | 32 ++++++
package/mariadb/S97mysqld | 77 ++++++++++++++
package/mariadb/mariadb.hash | 2 +
package/mariadb/mariadb.mk | 113 +++++++++++++++++++++
package/mariadb/mysqld.service | 13 +++
package/oracle-mysql/Config.in | 1 +
10 files changed, 301 insertions(+)
create mode 100644 package/mariadb/0001-add-extra-check-for-librt.patch
create mode 100644 package/mariadb/0002-prevent-build-failure-when-HAVE_STACKTRACE-is-not-de.patch
create mode 100644 package/mariadb/Config.in
create mode 100644 package/mariadb/S97mysqld
create mode 100644 package/mariadb/mariadb.hash
create mode 100644 package/mariadb/mariadb.mk
create mode 100644 package/mariadb/mysqld.service
diff --git a/DEVELOPERS b/DEVELOPERS
index 7a6ab9f..19e7f75 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1241,6 +1241,9 @@ F: package/python-pysnmp-apps/
F: package/python-pysnmp-mibs/
F: package/python-tornado/
+N: Ryan Coe <bluemrp9@gmail.com>
+F: package/mariadb/
+
N: Ryan Wilkins <ryan@deadfrog.net>
F: package/biosdevname/
diff --git a/package/Config.in b/package/Config.in
index 5c5cb25..4e71ddb 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -909,6 +909,7 @@ menu "Database"
source "package/kompexsqlite/Config.in"
source "package/leveldb/Config.in"
source "package/libpqxx/Config.in"
+ source "package/mariadb/Config.in"
source "package/mongodb/Config.in"
source "package/oracle-mysql/Config.in"
source "package/postgresql/Config.in"
--git a/package/mariadb/0001-add-extra-check-for-librt.patch b/package/mariadb/0001-add-extra-check-for-librt.patch
new file mode 100644
index 0000000..aea7064
--- /dev/null
+++ b/package/mariadb/0001-add-extra-check-for-librt.patch
@@ -0,0 +1,26 @@
+From 31094bd1fcccba2fb8b234735bb9bf60ba4afa28 Mon Sep 17 00:00:00 2001
+From: Ryan Coe <bluemrp9@gmail.com>
+Date: Sun, 18 Sep 2016 16:35:59 -0700
+Subject: [PATCH 1/1] add extra check for librt
+
+Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
+---
+ configure.cmake | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure.cmake b/configure.cmake
+index 896226de954f4642a238ca6a72e0930590dc1681..77ca485fb05e6b63bb69f9561b4eabfaa208a419 100644
+--- a/configure.cmake
++++ b/configure.cmake
+@@ -126,6 +126,9 @@ IF(UNIX)
+ IF(NOT LIBRT)
+ MY_SEARCH_LIBS(clock_gettime rt LIBRT)
+ ENDIF()
++ IF(NOT LIBRT)
++ MY_SEARCH_LIBS(posix_spawn_file_actions_addclose rt LIBRT)
++ ENDIF()
+ FIND_PACKAGE(Threads)
+
+ SET(CMAKE_REQUIRED_LIBRARIES
+--
+2.9.3
diff --git a/package/mariadb/0002-prevent-build-failure-when-HAVE_STACKTRACE-is-not-de.patch b/package/mariadb/0002-prevent-build-failure-when-HAVE_STACKTRACE-is-not-de.patch
new file mode 100644
index 0000000..ea07f88
--- /dev/null
+++ b/package/mariadb/0002-prevent-build-failure-when-HAVE_STACKTRACE-is-not-de.patch
@@ -0,0 +1,33 @@
+From 3a0d3c159c581a5202de75064836fc3b22e5a71c Mon Sep 17 00:00:00 2001
+From: Ryan Coe <bluemrp9@gmail.com>
+Date: Sat, 24 Sep 2016 18:19:44 -0700
+Subject: [PATCH 2/2] prevent build failure when HAVE_STACKTRACE is not defined
+
+Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
+---
+ sql/signal_handler.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sql/signal_handler.cc b/sql/signal_handler.cc
+index 9dd3e532d1e73bbb0bd0531c5ac8c7204df98f19..6379e6473de8356cce4764f075d817e24667839c 100644
+--- a/sql/signal_handler.cc
++++ b/sql/signal_handler.cc
+@@ -276,6 +276,7 @@ extern "C" sig_handler handle_fatal_signal(int sig)
+ "\"mlockall\" bugs.\n");
+ }
+
++#ifdef HAVE_STACKTRACE
+ if (print_invalid_query_pointer)
+ {
+ my_safe_printf_stderr(
+@@ -285,6 +286,7 @@ extern "C" sig_handler handle_fatal_signal(int sig)
+ my_write_stderr(thd->query(), MY_MIN(65536U, thd->query_length()));
+ my_safe_printf_stderr("\n\n");
+ }
++#endif
+
+ #ifdef HAVE_WRITE_CORE
+ if (test_flags & TEST_CORE_ON_SIGNAL)
+--
+2.9.3
+
diff --git a/package/mariadb/Config.in b/package/mariadb/Config.in
new file mode 100644
index 0000000..9d70b3e
--- /dev/null
+++ b/package/mariadb/Config.in
@@ -0,0 +1,32 @@
+config BR2_PACKAGE_MARIADB
+ bool "mariadb"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_USE_MMU # fork()
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
+ depends on !BR2_PACKAGE_ORACLE_MYSQL
+ select BR2_PACKAGE_LIBAIO
+ select BR2_PACKAGE_LIBXML2
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_READLINE
+ help
+ MariaDB is one of the most popular database servers in the world.
+ It's made by the original developers of MySQL and guaranteed to
+ stay open source.
+
+ http://www.mariadb.org/
+
+if BR2_PACKAGE_MARIADB
+
+config BR2_PACKAGE_MARIADB_SERVER
+ bool "mariadb server"
+ help
+ Install the mariadb server on the target.
+
+endif
+
+comment "mariadb needs a toolchain w/ C++, threads"
+ depends on BR2_USE_MMU
+ depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/mariadb/S97mysqld b/package/mariadb/S97mysqld
new file mode 100644
index 0000000..62357fa
--- /dev/null
+++ b/package/mariadb/S97mysqld
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+# mysql
+#
+
+MYSQL_LIB="/var/lib/mysql"
+MYSQL_RUN="/run/mysql"
+MYSQL_PID="$MYSQL_RUN/mysqld.pid"
+MYSQL_BIN="/usr/bin"
+
+wait_for_ready() {
+ WAIT_DELAY=5
+ while [ $WAIT_DELAY -gt 0 ]; do
+ if $MYSQL_BIN/mysqladmin ping > /dev/null 2>&1; then
+ return 0
+ fi
+ sleep 1
+ : $((WAIT_DELAY -= 1))
+ done
+ return 1
+}
+
+start() {
+ if [ `ls -1 $MYSQL_LIB | wc -l` = 0 ] ; then
+ printf "Creating mysql system tables ... "
+ $MYSQL_BIN/mysql_install_db --basedir=/usr --user=mysql \
+ --datadir=$MYSQL_LIB > /dev/null 2>&1
+ if [ $? != 0 ]; then
+ echo "FAIL"
+ exit 1
+ fi
+ echo "OK"
+ fi
+
+ # mysqld runs as user mysql, but /run is only writable by root
+ # so create a subdirectory for mysql.
+ install -d -o mysql -g root -m 0755 $MYSQL_RUN
+
+ # We don't use start-stop-daemon because mysqld has its own
+ # wrapper script.
+ printf "Starting mysql ... "
+ $MYSQL_BIN/mysqld_safe --pid-file=$MYSQL_PID --user=mysql \
+ > /dev/null 2>&1 &
+ wait_for_ready
+ [ $? = 0 ] && echo "OK" || echo "FAIL"
+}
+
+stop() {
+ printf "Stopping mysql ... "
+ if [ -f $MYSQL_PID ]; then
+ kill `cat $MYSQL_PID` > /dev/null 2>&1
+ [ $? = 0 ] && echo "OK" || echo "FAIL"
+ else
+ echo "FAIL"
+ fi
+}
+
+restart() {
+ stop
+ sleep 1
+ start
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ restart
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ ;;
+esac
diff --git a/package/mariadb/mariadb.hash b/package/mariadb/mariadb.hash
new file mode 100644
index 0000000..f55ff6f
--- /dev/null
+++ b/package/mariadb/mariadb.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 4ca45ac5e34418761868115ebc8c068d511fed08e283b2cac52559d63ba4aab5 mariadb-10.1.17.tar.gz
diff --git a/package/mariadb/mariadb.mk b/package/mariadb/mariadb.mk
new file mode 100644
index 0000000..bac38c2
--- /dev/null
+++ b/package/mariadb/mariadb.mk
@@ -0,0 +1,113 @@
+################################################################################
+#
+# mariadb
+#
+################################################################################
+
+MARIADB_VERSION = 10.1.17
+MARIADB_SOURCE = mariadb-$(MARIADB_VERSION).tar.gz
+MARIADB_SITE = https://downloads.mariadb.org/interstitial/mariadb-$(MARIADB_VERSION)/source
+MARIADB_LICENSE = GPLv2 (server), GPLv2 with FLOSS exception (GPL client library), LGPLv2 (LGPL client library)
+MARIADB_LICENSE_FILES = README COPYING COPYING.LESSER
+MARIADB_INSTALL_STAGING = YES
+
+MARIADB_DEPENDENCIES = \
+ host-mariadb \
+ ncurses \
+ openssl \
+ zlib \
+ libaio \
+ libxml2 \
+ readline
+
+# We won't need unit tests
+MARIADB_CONF_OPTS += -DWITH_UNIT_TESTS=0
+
+# Mroonga needs libstemmer. Some work still needs to be done before it can be
+# included in buildroot. Disable it for now.
+MARIADB_CONF_OPTS += -DWITHOUT_MROONGA=1
+
+# This value is determined automatically during straight compile by compiling
+# and running a test code. You cannot do that during cross-compile. However the
+# stack grows downward in most if not all modern systems. The only exception I
+# am aware of is PA-RISC which is not supported by buildroot. Therefore it makes
+# sense to hardcode the value. If an arch is added the stack of which grows up
+# one should expect unpredictable behavior at run time.
+MARIADB_CONF_OPTS += -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.
+MARIADB_CONF_OPTS += -DWITH_JEMALLOC=no -DWITHOUT_TOKUDB=1
+
+# Make it explicit that we are cross-compiling
+MARIADB_CONF_OPTS += -DCMAKE_CROSSCOMPILING=1
+
+ifeq ($(BR2_PACKAGE_MARIADB_SERVER),y)
+MARIADB_CONF_OPTS += -DWITH_EMBEDDED_SERVER=ON
+else
+MARIADB_CONF_OPTS += -DWITHOUT_SERVER=ON
+endif
+
+MARIADB_CONF_OPTS += \
+ -DINSTALL_DOCDIR=share/doc/mariadb-$(MARIADB_VERSION) \
+ -DINSTALL_DOCREADMEDIR=share/doc/mariadb-$(MARIADB_VERSION) \
+ -DINSTALL_MANDIR=share/man \
+ -DINSTALL_MYSQLSHAREDIR=share/mysql \
+ -DINSTALL_MYSQLTESTDIR=share/mysql/test \
+ -DINSTALL_PLUGINDIR=lib/mysql/plugin \
+ -DINSTALL_SBINDIR=sbin \
+ -DINSTALL_SCRIPTDIR=bin \
+ -DINSTALL_SQLBENCHDIR=share/mysql/bench \
+ -DINSTALL_SUPPORTFILESDIR=share/mysql \
+ -DMYSQL_DATADIR=/var/lib/mysql \
+ -DMYSQL_UNIX_ADDR=$(MYSQL_SOCKET)
+
+# 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.
+# -DIMPORT_EXECUTABLES=$(HOST_MARIADB_BUILDDIR)/import_executables.cmake
+# must then be passed to cmake during target build.
+# see also https://mariadb.com/kb/en/mariadb/cross-compiling-mariadb/
+HOST_MARIADB_MAKE_OPTS = import_executables
+
+MARIADB_CONF_OPTS += \
+ -DIMPORT_EXECUTABLES=$(HOST_MARIADB_BUILDDIR)/import_executables.cmake
+
+# Don't install host-mariadb. We just need to build import_executable
+# Therefore only run 'true' and do nothing, not even the default action.
+HOST_MARIADB_INSTALL_CMDS = true
+
+ifeq ($(BR2_PACKAGE_MARIADB_SERVER),y)
+define MARIADB_USERS
+ mysql -1 mysql -1 * /var/lib/mysql - - MySQL Server
+endef
+
+define MARIADB_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 0755 package/mariadb/S97mysqld \
+ $(TARGET_DIR)/etc/init.d/S97mysqld
+endef
+
+define MARIADB_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 644 package/mariadb/mysqld.service \
+ $(TARGET_DIR)/usr/lib/systemd/system/mysqld.service
+ mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+ ln -sf ../../../../usr/lib/systemd/system/mysqld.service \
+ $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/mysqld.service
+endef
+endif
+
+define MARIADB_POST_INSTALL
+ mkdir -p $(TARGET_DIR)/var/lib/mysql
+ $(INSTALL) -D -m 644 $(TARGET_DIR)/usr/share/mysql/my-small.cnf \
+ $(TARGET_DIR)/etc/mysql/my.cnf
+ # We don't need this on the target as it's only useful in staging
+ $(RM) $(TARGET_DIR)/usr/bin/mysql_config
+ # Remove test suite
+ $(RM) -r $(TARGET_DIR)/usr/share/mysql/test
+endef
+
+MARIADB_POST_INSTALL_TARGET_HOOKS += MARIADB_POST_INSTALL
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
diff --git a/package/mariadb/mysqld.service b/package/mariadb/mysqld.service
new file mode 100644
index 0000000..cd30831
--- /dev/null
+++ b/package/mariadb/mysqld.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=MySQL database server
+
+[Service]
+ExecStartPre=/bin/sh -c 'test "`ls -1 /var/lib/mysql | wc -l`" != "0" || mysql_install_db --basedir=/usr --datadir=/var/lib/mysql'
+ExecStart=/usr/bin/mysqld_safe
+Restart=always
+User=mysql
+RuntimeDirectory=mysql
+RuntimeDirectoryMode=0755
+
+[Install]
+WantedBy=multi-user.target
diff --git a/package/oracle-mysql/Config.in b/package/oracle-mysql/Config.in
index 0622a13..1c2d33b 100644
--- a/package/oracle-mysql/Config.in
+++ b/package/oracle-mysql/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_ORACLE_MYSQL
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on !BR2_PACKAGE_MARIADB
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_READLINE
help
--
2.9.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [RFC v3 3/3] mysql: convert to virtual package
2016-09-27 1:53 [Buildroot] [RFC v3 0/3] mariadb: new package Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 1/3] mysql: rename package to oracle-mysql Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 2/3] mariadb: new package Ryan Coe
@ 2016-09-27 1:53 ` Ryan Coe
2 siblings, 0 replies; 6+ messages in thread
From: Ryan Coe @ 2016-09-27 1:53 UTC (permalink / raw)
To: buildroot
Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
---
package/Config.in | 3 +-
package/mariadb/Config.in | 32 --------------
package/mariadb/mariadb.mk | 1 +
package/mysql/Config.in | 83 ++++++++++++++++++++++++++++++++++++
package/mysql/mysql.mk | 7 +++
package/oracle-mysql/Config.in | 25 -----------
package/oracle-mysql/oracle-mysql.mk | 1 +
7 files changed, 93 insertions(+), 59 deletions(-)
delete mode 100644 package/mariadb/Config.in
create mode 100644 package/mysql/Config.in
create mode 100644 package/mysql/mysql.mk
delete mode 100644 package/oracle-mysql/Config.in
diff --git a/package/Config.in b/package/Config.in
index 4e71ddb..fe3ac2c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -909,9 +909,8 @@ menu "Database"
source "package/kompexsqlite/Config.in"
source "package/leveldb/Config.in"
source "package/libpqxx/Config.in"
- source "package/mariadb/Config.in"
source "package/mongodb/Config.in"
- source "package/oracle-mysql/Config.in"
+ source "package/mysql/Config.in"
source "package/postgresql/Config.in"
source "package/redis/Config.in"
source "package/sqlcipher/Config.in"
diff --git a/package/mariadb/Config.in b/package/mariadb/Config.in
deleted file mode 100644
index 9d70b3e..0000000
--- a/package/mariadb/Config.in
+++ /dev/null
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_MARIADB
- bool "mariadb"
- depends on BR2_INSTALL_LIBSTDCPP
- depends on BR2_USE_MMU # fork()
- depends on BR2_TOOLCHAIN_HAS_THREADS
- depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
- depends on !BR2_PACKAGE_ORACLE_MYSQL
- select BR2_PACKAGE_LIBAIO
- select BR2_PACKAGE_LIBXML2
- select BR2_PACKAGE_NCURSES
- select BR2_PACKAGE_OPENSSL
- select BR2_PACKAGE_READLINE
- help
- MariaDB is one of the most popular database servers in the world.
- It's made by the original developers of MySQL and guaranteed to
- stay open source.
-
- http://www.mariadb.org/
-
-if BR2_PACKAGE_MARIADB
-
-config BR2_PACKAGE_MARIADB_SERVER
- bool "mariadb server"
- help
- Install the mariadb server on the target.
-
-endif
-
-comment "mariadb needs a toolchain w/ C++, threads"
- depends on BR2_USE_MMU
- depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
- depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/mariadb/mariadb.mk b/package/mariadb/mariadb.mk
index bac38c2..67e6df4 100644
--- a/package/mariadb/mariadb.mk
+++ b/package/mariadb/mariadb.mk
@@ -10,6 +10,7 @@ MARIADB_SITE = https://downloads.mariadb.org/interstitial/mariadb-$(MARIADB_VERS
MARIADB_LICENSE = GPLv2 (server), GPLv2 with FLOSS exception (GPL client library), LGPLv2 (LGPL client library)
MARIADB_LICENSE_FILES = README COPYING COPYING.LESSER
MARIADB_INSTALL_STAGING = YES
+MARIADB_PROVIDES = mysql
MARIADB_DEPENDENCIES = \
host-mariadb \
diff --git a/package/mysql/Config.in b/package/mysql/Config.in
new file mode 100644
index 0000000..e485d6b
--- /dev/null
+++ b/package/mysql/Config.in
@@ -0,0 +1,83 @@
+config BR2_PACKAGE_MYSQL
+ bool "mysql support"
+ help
+ Select the desired mysql provider.
+
+if BR2_PACKAGE_MYSQL
+
+choice
+ prompt "mysql variant"
+ default BR2_PACKAGE_ORACLE_MYSQL
+ help
+ Select either the oracle mysql server or the mariadb server
+
+config BR2_PACKAGE_MARIADB
+ bool "mariadb"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_USE_MMU # fork()
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
+ select BR2_PACKAGE_LIBAIO
+ select BR2_PACKAGE_LIBXML2
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_READLINE
+ select BR2_PACKAGE_HAS_MYSQL
+ help
+ MariaDB is one of the most popular database servers in the world.
+ It's made by the original developers of MySQL and guaranteed to
+ stay open source.
+
+ http://www.mariadb.org/
+
+config BR2_PACKAGE_ORACLE_MYSQL
+ bool "oracle mysql"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_USE_MMU # fork()
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ select BR2_PACKAGE_NCURSES
+ select BR2_PACKAGE_READLINE
+ select BR2_PACKAGE_HAS_MYSQL
+ help
+ The MySQL Open Source Database System
+
+ http://www.mysql.com/
+
+endchoice
+
+comment "mariadb needs a toolchain w/ C++, threads"
+ depends on BR2_USE_MMU
+ depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
+
+comment "oracle mysql needs a toolchain w/ C++, threads"
+ depends on BR2_USE_MMU
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
+
+if BR2_PACKAGE_MARIADB
+
+config BR2_PACKAGE_MARIADB_SERVER
+ bool "mariadb server"
+ help
+ Install the mariadb server on the target.
+
+endif
+
+if BR2_PACKAGE_ORACLE_MYSQL
+
+config BR2_PACKAGE_ORACLE_MYSQL_SERVER
+ bool "oracle mysql server"
+ help
+ Install the MySQL server on the target.
+
+endif
+
+config BR2_PACKAGE_HAS_MYSQL
+ bool
+
+config BR2_PACKAGE_PROVIDES_MYSQL
+ string
+ default "mariadb" if BR2_PACKAGE_MARIADB
+ default "oracle-mysql" if BR2_PACKAGE_ORACLE_MYSQL
+
+endif
diff --git a/package/mysql/mysql.mk b/package/mysql/mysql.mk
new file mode 100644
index 0000000..d655625
--- /dev/null
+++ b/package/mysql/mysql.mk
@@ -0,0 +1,7 @@
+################################################################################
+#
+# mysql
+#
+################################################################################
+
+$(eval $(virtual-package))
diff --git a/package/oracle-mysql/Config.in b/package/oracle-mysql/Config.in
deleted file mode 100644
index 1c2d33b..0000000
--- a/package/oracle-mysql/Config.in
+++ /dev/null
@@ -1,25 +0,0 @@
-config BR2_PACKAGE_ORACLE_MYSQL
- bool "oracle mysql"
- depends on BR2_INSTALL_LIBSTDCPP
- depends on BR2_USE_MMU # fork()
- depends on BR2_TOOLCHAIN_HAS_THREADS
- depends on !BR2_PACKAGE_MARIADB
- select BR2_PACKAGE_NCURSES
- select BR2_PACKAGE_READLINE
- help
- The MySQL Open Source Database System
-
- http://www.mysql.com/
-
-if BR2_PACKAGE_ORACLE_MYSQL
-
-config BR2_PACKAGE_ORACLE_MYSQL_SERVER
- bool "oracle mysql server"
- help
- Install the MySQL server on the target.
-
-endif
-
-comment "oracle mysql needs a toolchain w/ C++, threads"
- depends on BR2_USE_MMU
- depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/oracle-mysql/oracle-mysql.mk b/package/oracle-mysql/oracle-mysql.mk
index 532cced..e542fb3 100644
--- a/package/oracle-mysql/oracle-mysql.mk
+++ b/package/oracle-mysql/oracle-mysql.mk
@@ -13,6 +13,7 @@ ORACLE_MYSQL_DEPENDENCIES = readline ncurses
ORACLE_MYSQL_AUTORECONF = YES
ORACLE_MYSQL_LICENSE = GPLv2
ORACLE_MYSQL_LICENSE_FILES = README COPYING
+ORACLE_MYSQL_PROVIDES = mysql
# Unix socket. This variable can also be consulted by other buildroot packages
MYSQL_SOCKET = /run/mysql/mysql.sock
--
2.9.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [RFC v3 2/3] mariadb: new package
2016-09-27 1:53 ` [Buildroot] [RFC v3 2/3] mariadb: new package Ryan Coe
@ 2016-10-27 4:06 ` Frank Hunleth
2016-12-14 20:54 ` Ryan Coe
0 siblings, 1 reply; 6+ messages in thread
From: Frank Hunleth @ 2016-10-27 4:06 UTC (permalink / raw)
To: buildroot
Hi Ryan,
On Mon, Sep 26, 2016 at 9:53 PM, Ryan Coe <bluemrp9@gmail.com> wrote:
> diff --git a/package/mariadb/mariadb.mk b/package/mariadb/mariadb.mk
> new file mode 100644
> index 0000000..bac38c2
> --- /dev/null
> +++ b/package/mariadb/mariadb.mk
> @@ -0,0 +1,113 @@
> +################################################################################
> +#
> +# mariadb
> +#
> +################################################################################
> +
> +MARIADB_VERSION = 10.1.17
> +MARIADB_SOURCE = mariadb-$(MARIADB_VERSION).tar.gz
> +MARIADB_SITE = https://downloads.mariadb.org/interstitial/mariadb-$(MARIADB_VERSION)/source
> +MARIADB_LICENSE = GPLv2 (server), GPLv2 with FLOSS exception (GPL client library), LGPLv2 (LGPL client library)
> +MARIADB_LICENSE_FILES = README COPYING COPYING.LESSER
> +MARIADB_INSTALL_STAGING = YES
> +
> +MARIADB_DEPENDENCIES = \
> + host-mariadb \
> + ncurses \
> + openssl \
> + zlib \
> + libaio \
> + libxml2 \
> + readline
> +
> +# We won't need unit tests
> +MARIADB_CONF_OPTS += -DWITH_UNIT_TESTS=0
> +
> +# Mroonga needs libstemmer. Some work still needs to be done before it can be
> +# included in buildroot. Disable it for now.
> +MARIADB_CONF_OPTS += -DWITHOUT_MROONGA=1
> +
> +# This value is determined automatically during straight compile by compiling
> +# and running a test code. You cannot do that during cross-compile. However the
> +# stack grows downward in most if not all modern systems. The only exception I
> +# am aware of is PA-RISC which is not supported by buildroot. Therefore it makes
> +# sense to hardcode the value. If an arch is added the stack of which grows up
> +# one should expect unpredictable behavior at run time.
> +MARIADB_CONF_OPTS += -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.
> +MARIADB_CONF_OPTS += -DWITH_JEMALLOC=no -DWITHOUT_TOKUDB=1
> +
> +# Make it explicit that we are cross-compiling
> +MARIADB_CONF_OPTS += -DCMAKE_CROSSCOMPILING=1
> +
The next time you re-spin your patch, could you add the following lines to it?
# Explicitly disable dtrace to avoid detection of a host version
MARIADB_CONF_OPTS += -DENABLE_DTRACE=0
With this change, mariadb appears to build and run fine for me.
Also, fwiw, I didn't apply the other patches in the series since it
didn't look like BR2_PACKAGE_HAS_MYSQL was propagated to all of the
packages that depended on mysql. I just deleted the mysql package
completely and changed all references to mariadb.
Thanks,
Frank
> +ifeq ($(BR2_PACKAGE_MARIADB_SERVER),y)
> +MARIADB_CONF_OPTS += -DWITH_EMBEDDED_SERVER=ON
> +else
> +MARIADB_CONF_OPTS += -DWITHOUT_SERVER=ON
> +endif
> +
> +MARIADB_CONF_OPTS += \
> + -DINSTALL_DOCDIR=share/doc/mariadb-$(MARIADB_VERSION) \
> + -DINSTALL_DOCREADMEDIR=share/doc/mariadb-$(MARIADB_VERSION) \
> + -DINSTALL_MANDIR=share/man \
> + -DINSTALL_MYSQLSHAREDIR=share/mysql \
> + -DINSTALL_MYSQLTESTDIR=share/mysql/test \
> + -DINSTALL_PLUGINDIR=lib/mysql/plugin \
> + -DINSTALL_SBINDIR=sbin \
> + -DINSTALL_SCRIPTDIR=bin \
> + -DINSTALL_SQLBENCHDIR=share/mysql/bench \
> + -DINSTALL_SUPPORTFILESDIR=share/mysql \
> + -DMYSQL_DATADIR=/var/lib/mysql \
> + -DMYSQL_UNIX_ADDR=$(MYSQL_SOCKET)
> +
> +# 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.
> +# -DIMPORT_EXECUTABLES=$(HOST_MARIADB_BUILDDIR)/import_executables.cmake
> +# must then be passed to cmake during target build.
> +# see also https://mariadb.com/kb/en/mariadb/cross-compiling-mariadb/
> +HOST_MARIADB_MAKE_OPTS = import_executables
> +
> +MARIADB_CONF_OPTS += \
> + -DIMPORT_EXECUTABLES=$(HOST_MARIADB_BUILDDIR)/import_executables.cmake
> +
> +# Don't install host-mariadb. We just need to build import_executable
> +# Therefore only run 'true' and do nothing, not even the default action.
> +HOST_MARIADB_INSTALL_CMDS = true
> +
> +ifeq ($(BR2_PACKAGE_MARIADB_SERVER),y)
> +define MARIADB_USERS
> + mysql -1 mysql -1 * /var/lib/mysql - - MySQL Server
> +endef
> +
> +define MARIADB_INSTALL_INIT_SYSV
> + $(INSTALL) -D -m 0755 package/mariadb/S97mysqld \
> + $(TARGET_DIR)/etc/init.d/S97mysqld
> +endef
> +
> +define MARIADB_INSTALL_INIT_SYSTEMD
> + $(INSTALL) -D -m 644 package/mariadb/mysqld.service \
> + $(TARGET_DIR)/usr/lib/systemd/system/mysqld.service
> + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
> + ln -sf ../../../../usr/lib/systemd/system/mysqld.service \
> + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/mysqld.service
> +endef
> +endif
> +
> +define MARIADB_POST_INSTALL
> + mkdir -p $(TARGET_DIR)/var/lib/mysql
> + $(INSTALL) -D -m 644 $(TARGET_DIR)/usr/share/mysql/my-small.cnf \
> + $(TARGET_DIR)/etc/mysql/my.cnf
> + # We don't need this on the target as it's only useful in staging
> + $(RM) $(TARGET_DIR)/usr/bin/mysql_config
> + # Remove test suite
> + $(RM) -r $(TARGET_DIR)/usr/share/mysql/test
> +endef
> +
> +MARIADB_POST_INSTALL_TARGET_HOOKS += MARIADB_POST_INSTALL
> +
> +$(eval $(cmake-package))
> +$(eval $(host-cmake-package))
> diff --git a/package/mariadb/mysqld.service b/package/mariadb/mysqld.service
> new file mode 100644
> index 0000000..cd30831
> --- /dev/null
> +++ b/package/mariadb/mysqld.service
> @@ -0,0 +1,13 @@
> +[Unit]
> +Description=MySQL database server
> +
> +[Service]
> +ExecStartPre=/bin/sh -c 'test "`ls -1 /var/lib/mysql | wc -l`" != "0" || mysql_install_db --basedir=/usr --datadir=/var/lib/mysql'
> +ExecStart=/usr/bin/mysqld_safe
> +Restart=always
> +User=mysql
> +RuntimeDirectory=mysql
> +RuntimeDirectoryMode=0755
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/package/oracle-mysql/Config.in b/package/oracle-mysql/Config.in
> index 0622a13..1c2d33b 100644
> --- a/package/oracle-mysql/Config.in
> +++ b/package/oracle-mysql/Config.in
> @@ -3,6 +3,7 @@ config BR2_PACKAGE_ORACLE_MYSQL
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_USE_MMU # fork()
> depends on BR2_TOOLCHAIN_HAS_THREADS
> + depends on !BR2_PACKAGE_MARIADB
> select BR2_PACKAGE_NCURSES
> select BR2_PACKAGE_READLINE
> help
> --
> 2.9.3
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
Frank Hunleth
Troodon Software LLC
Embedded Software Development
http://troodon-software.com/
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [RFC v3 2/3] mariadb: new package
2016-10-27 4:06 ` Frank Hunleth
@ 2016-12-14 20:54 ` Ryan Coe
0 siblings, 0 replies; 6+ messages in thread
From: Ryan Coe @ 2016-12-14 20:54 UTC (permalink / raw)
To: buildroot
Frank, All,
I've been away for awhile and I am finally getting ready to send a new
version.
On 10/26/2016 9:06 PM, Frank Hunleth wrote:
> Hi Ryan,
>
> On Mon, Sep 26, 2016 at 9:53 PM, Ryan Coe <bluemrp9@gmail.com> wrote:
>> diff --git a/package/mariadb/mariadb.mk b/package/mariadb/mariadb.mk
>> new file mode 100644
>> index 0000000..bac38c2
>> --- /dev/null
>> +++ b/package/mariadb/mariadb.mk
>> @@ -0,0 +1,113 @@
>> +################################################################################
>> +#
>> +# mariadb
>> +#
>> +################################################################################
>> +
>> +MARIADB_VERSION = 10.1.17
>> +MARIADB_SOURCE = mariadb-$(MARIADB_VERSION).tar.gz
>> +MARIADB_SITE = https://downloads.mariadb.org/interstitial/mariadb-$(MARIADB_VERSION)/source
>> +MARIADB_LICENSE = GPLv2 (server), GPLv2 with FLOSS exception (GPL client library), LGPLv2 (LGPL client library)
>> +MARIADB_LICENSE_FILES = README COPYING COPYING.LESSER
>> +MARIADB_INSTALL_STAGING = YES
>> +
>> +MARIADB_DEPENDENCIES = \
>> + host-mariadb \
>> + ncurses \
>> + openssl \
>> + zlib \
>> + libaio \
>> + libxml2 \
>> + readline
>> +
>> +# We won't need unit tests
>> +MARIADB_CONF_OPTS += -DWITH_UNIT_TESTS=0
>> +
>> +# Mroonga needs libstemmer. Some work still needs to be done before it can be
>> +# included in buildroot. Disable it for now.
>> +MARIADB_CONF_OPTS += -DWITHOUT_MROONGA=1
>> +
>> +# This value is determined automatically during straight compile by compiling
>> +# and running a test code. You cannot do that during cross-compile. However the
>> +# stack grows downward in most if not all modern systems. The only exception I
>> +# am aware of is PA-RISC which is not supported by buildroot. Therefore it makes
>> +# sense to hardcode the value. If an arch is added the stack of which grows up
>> +# one should expect unpredictable behavior at run time.
>> +MARIADB_CONF_OPTS += -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.
>> +MARIADB_CONF_OPTS += -DWITH_JEMALLOC=no -DWITHOUT_TOKUDB=1
>> +
>> +# Make it explicit that we are cross-compiling
>> +MARIADB_CONF_OPTS += -DCMAKE_CROSSCOMPILING=1
>> +
> The next time you re-spin your patch, could you add the following lines to it?
>
> # Explicitly disable dtrace to avoid detection of a host version
> MARIADB_CONF_OPTS += -DENABLE_DTRACE=0
>
> With this change, mariadb appears to build and run fine for me.
>
> Also, fwiw, I didn't apply the other patches in the series since it
> didn't look like BR2_PACKAGE_HAS_MYSQL was propagated to all of the
> packages that depended on mysql. I just deleted the mysql package
> completely and changed all references to mariadb.
>
> Thanks,
> Frank
I added the "-DENABLE_DTRACE" above. I am, however, confused about your
comment about BR2_PACKAGE_HAS_MYSQL. I am probably missing something,
but doesn't the dependency to still exist on all of the packages that
depend on mysql? Either of the oracle-mysql or mariadb virtual packages
provides mysql.
>> +ifeq ($(BR2_PACKAGE_MARIADB_SERVER),y)
>> +MARIADB_CONF_OPTS += -DWITH_EMBEDDED_SERVER=ON
>> +else
>> +MARIADB_CONF_OPTS += -DWITHOUT_SERVER=ON
>> +endif
>> +
>> +MARIADB_CONF_OPTS += \
>> + -DINSTALL_DOCDIR=share/doc/mariadb-$(MARIADB_VERSION) \
>> + -DINSTALL_DOCREADMEDIR=share/doc/mariadb-$(MARIADB_VERSION) \
>> + -DINSTALL_MANDIR=share/man \
>> + -DINSTALL_MYSQLSHAREDIR=share/mysql \
>> + -DINSTALL_MYSQLTESTDIR=share/mysql/test \
>> + -DINSTALL_PLUGINDIR=lib/mysql/plugin \
>> + -DINSTALL_SBINDIR=sbin \
>> + -DINSTALL_SCRIPTDIR=bin \
>> + -DINSTALL_SQLBENCHDIR=share/mysql/bench \
>> + -DINSTALL_SUPPORTFILESDIR=share/mysql \
>> + -DMYSQL_DATADIR=/var/lib/mysql \
>> + -DMYSQL_UNIX_ADDR=$(MYSQL_SOCKET)
>> +
>> +# 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.
>> +# -DIMPORT_EXECUTABLES=$(HOST_MARIADB_BUILDDIR)/import_executables.cmake
>> +# must then be passed to cmake during target build.
>> +# see also https://mariadb.com/kb/en/mariadb/cross-compiling-mariadb/
>> +HOST_MARIADB_MAKE_OPTS = import_executables
>> +
>> +MARIADB_CONF_OPTS += \
>> + -DIMPORT_EXECUTABLES=$(HOST_MARIADB_BUILDDIR)/import_executables.cmake
>> +
>> +# Don't install host-mariadb. We just need to build import_executable
>> +# Therefore only run 'true' and do nothing, not even the default action.
>> +HOST_MARIADB_INSTALL_CMDS = true
>> +
>> +ifeq ($(BR2_PACKAGE_MARIADB_SERVER),y)
>> +define MARIADB_USERS
>> + mysql -1 mysql -1 * /var/lib/mysql - - MySQL Server
>> +endef
>> +
>> +define MARIADB_INSTALL_INIT_SYSV
>> + $(INSTALL) -D -m 0755 package/mariadb/S97mysqld \
>> + $(TARGET_DIR)/etc/init.d/S97mysqld
>> +endef
>> +
>> +define MARIADB_INSTALL_INIT_SYSTEMD
>> + $(INSTALL) -D -m 644 package/mariadb/mysqld.service \
>> + $(TARGET_DIR)/usr/lib/systemd/system/mysqld.service
>> + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
>> + ln -sf ../../../../usr/lib/systemd/system/mysqld.service \
>> + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/mysqld.service
>> +endef
>> +endif
>> +
>> +define MARIADB_POST_INSTALL
>> + mkdir -p $(TARGET_DIR)/var/lib/mysql
>> + $(INSTALL) -D -m 644 $(TARGET_DIR)/usr/share/mysql/my-small.cnf \
>> + $(TARGET_DIR)/etc/mysql/my.cnf
>> + # We don't need this on the target as it's only useful in staging
>> + $(RM) $(TARGET_DIR)/usr/bin/mysql_config
>> + # Remove test suite
>> + $(RM) -r $(TARGET_DIR)/usr/share/mysql/test
>> +endef
>> +
>> +MARIADB_POST_INSTALL_TARGET_HOOKS += MARIADB_POST_INSTALL
>> +
>> +$(eval $(cmake-package))
>> +$(eval $(host-cmake-package))
>> diff --git a/package/mariadb/mysqld.service b/package/mariadb/mysqld.service
>> new file mode 100644
>> index 0000000..cd30831
>> --- /dev/null
>> +++ b/package/mariadb/mysqld.service
>> @@ -0,0 +1,13 @@
>> +[Unit]
>> +Description=MySQL database server
>> +
>> +[Service]
>> +ExecStartPre=/bin/sh -c 'test "`ls -1 /var/lib/mysql | wc -l`" != "0" || mysql_install_db --basedir=/usr --datadir=/var/lib/mysql'
>> +ExecStart=/usr/bin/mysqld_safe
>> +Restart=always
>> +User=mysql
>> +RuntimeDirectory=mysql
>> +RuntimeDirectoryMode=0755
>> +
>> +[Install]
>> +WantedBy=multi-user.target
>> diff --git a/package/oracle-mysql/Config.in b/package/oracle-mysql/Config.in
>> index 0622a13..1c2d33b 100644
>> --- a/package/oracle-mysql/Config.in
>> +++ b/package/oracle-mysql/Config.in
>> @@ -3,6 +3,7 @@ config BR2_PACKAGE_ORACLE_MYSQL
>> depends on BR2_INSTALL_LIBSTDCPP
>> depends on BR2_USE_MMU # fork()
>> depends on BR2_TOOLCHAIN_HAS_THREADS
>> + depends on !BR2_PACKAGE_MARIADB
>> select BR2_PACKAGE_NCURSES
>> select BR2_PACKAGE_READLINE
>> help
>> --
>> 2.9.3
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>
>
Thanks,
Ryan
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-12-14 20:54 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-27 1:53 [Buildroot] [RFC v3 0/3] mariadb: new package Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 1/3] mysql: rename package to oracle-mysql Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 2/3] mariadb: new package Ryan Coe
2016-10-27 4:06 ` Frank Hunleth
2016-12-14 20:54 ` Ryan Coe
2016-09-27 1:53 ` [Buildroot] [RFC v3 3/3] mysql: convert to virtual package Ryan Coe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox