* [Buildroot] [RFC v4 1/4] mysql: rename package to oracle-mysql
2016-12-16 22:26 [Buildroot] [RFC v4 0/4] mariadb: new package Ryan Coe
@ 2016-12-16 22:26 ` Ryan Coe
2016-12-16 22:26 ` [Buildroot] [RFC v4 2/4] mariadb: new package Ryan Coe
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Ryan Coe @ 2016-12-16 22:26 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 f7e8c0a..bc9c164 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -926,7 +926,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 ea330f2..4ec6f73 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://dev.mysql.com/get/Downloads/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://dev.mysql.com/get/Downloads/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 \
@@ -37,16 +37,16 @@ MYSQL_CONF_OPTS = \
--with-unix-socket-path=$(MYSQL_SOCKET) \
--disable-mysql-maintainer-mode
-# host-mysql only installs what is needed to build mysql, i.e. the
+# host-oracle-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
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/include my_config.h
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/mysys libmysys.a
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/strings libmystrings.a
@@ -56,22 +56,22 @@ define HOST_MYSQL_BUILD_CMDS
$(HOST_MAKE_ENV) $(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,27 +91,27 @@ 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
+define ORACLE_MYSQL_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 644 package/mysql/mysqld.service \
$(TARGET_DIR)/usr/lib/systemd/system/mysqld.service
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
@@ -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 v4 2/4] mariadb: new package
2016-12-16 22:26 [Buildroot] [RFC v4 0/4] mariadb: new package Ryan Coe
2016-12-16 22:26 ` [Buildroot] [RFC v4 1/4] mysql: rename package to oracle-mysql Ryan Coe
@ 2016-12-16 22:26 ` Ryan Coe
2016-12-16 22:26 ` [Buildroot] [RFC v4 3/4] DEVELOPERS: add entry for mariadb Ryan Coe
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Ryan Coe @ 2016-12-16 22:26 UTC (permalink / raw)
To: buildroot
Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
---
package/Config.in | 1 +
| 27 +++++
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 +
8 files changed, 266 insertions(+)
create mode 100644 package/mariadb/0001-add-extra-check-for-librt.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/package/Config.in b/package/Config.in
index bc9c164..dd600bc 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -925,6 +925,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..9a072a9
--- /dev/null
+++ b/package/mariadb/0001-add-extra-check-for-librt.patch
@@ -0,0 +1,27 @@
+From e6244400dfd3547531a3a3289fadbbe19873f096 Mon Sep 17 00:00:00 2001
+From: Ryan Coe <bluemrp9@gmail.com>
+Date: Thu, 27 Oct 2016 20:33:21 -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/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..c86eb44
--- /dev/null
+++ b/package/mariadb/mariadb.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 c24e83f24d674d9912319f9e9422f093c8ca6be1721a4380cbd74792b89ba0b9 mariadb-10.1.20.tar.gz
diff --git a/package/mariadb/mariadb.mk b/package/mariadb/mariadb.mk
new file mode 100644
index 0000000..7b47557
--- /dev/null
+++ b/package/mariadb/mariadb.mk
@@ -0,0 +1,113 @@
+################################################################################
+#
+# mariadb
+#
+################################################################################
+
+MARIADB_VERSION = 10.1.20
+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 v4 3/4] DEVELOPERS: add entry for mariadb
2016-12-16 22:26 [Buildroot] [RFC v4 0/4] mariadb: new package Ryan Coe
2016-12-16 22:26 ` [Buildroot] [RFC v4 1/4] mysql: rename package to oracle-mysql Ryan Coe
2016-12-16 22:26 ` [Buildroot] [RFC v4 2/4] mariadb: new package Ryan Coe
@ 2016-12-16 22:26 ` Ryan Coe
2016-12-16 22:26 ` [Buildroot] [RFC v4 4/4] mysql: convert to virtual package Ryan Coe
2016-12-17 14:04 ` [Buildroot] [RFC v4 0/4] mariadb: new package Thomas Petazzoni
4 siblings, 0 replies; 6+ messages in thread
From: Ryan Coe @ 2016-12-16 22:26 UTC (permalink / raw)
To: buildroot
Signed-off-by: Ryan Coe <bluemrp9@gmail.com>
---
DEVELOPERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/DEVELOPERS b/DEVELOPERS
index d855d11..1b8955c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1289,6 +1289,7 @@ F: package/python-tornado/
N: Ryan Coe <bluemrp9@gmail.com>
F: package/inadyn/
F: package/libite/
+F: package/mariadb/
N: Ryan Wilkins <ryan@deadfrog.net>
F: package/biosdevname/
--
2.9.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [RFC v4 4/4] mysql: convert to virtual package
2016-12-16 22:26 [Buildroot] [RFC v4 0/4] mariadb: new package Ryan Coe
` (2 preceding siblings ...)
2016-12-16 22:26 ` [Buildroot] [RFC v4 3/4] DEVELOPERS: add entry for mariadb Ryan Coe
@ 2016-12-16 22:26 ` Ryan Coe
2016-12-17 14:04 ` [Buildroot] [RFC v4 0/4] mariadb: new package Thomas Petazzoni
4 siblings, 0 replies; 6+ messages in thread
From: Ryan Coe @ 2016-12-16 22:26 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 dd600bc..f7e8c0a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -925,9 +925,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 7b47557..6c609da 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 4ec6f73..ed3c0ea 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 v4 0/4] mariadb: new package
2016-12-16 22:26 [Buildroot] [RFC v4 0/4] mariadb: new package Ryan Coe
` (3 preceding siblings ...)
2016-12-16 22:26 ` [Buildroot] [RFC v4 4/4] mysql: convert to virtual package Ryan Coe
@ 2016-12-17 14:04 ` Thomas Petazzoni
4 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2016-12-17 14:04 UTC (permalink / raw)
To: buildroot
Hello,
On Fri, 16 Dec 2016 14:26:50 -0800, Ryan Coe wrote:
> 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.
Thanks a lot, I've applied your patch series. However, before doing so,
I did a few changes. Indeed, with your patch series, after PATCH 1, but
before PATCH 4, all packages in Buildroot that did depend or select
BR2_PACKAGE_MYSQL would have been broken.
To keep things bisectable, here is what I have done:
- Move the patch introducing mariadb as the first patch. I adjusted
the "depends on !BR2_PACKAGE_ORACLE_MYSQL" to "depends
on !BR2_PACKAGE_MYSQL".
- Merge the patches renaming mysql to oracle-mysql and moving it to a
virtual package (also offering mariadb).
I did some quick built tests, and it also went fine. Let's monitor the
autobuilders in the next days to see if anything breaks.
However, it is good to remind you that since mariadb is only selected
through a choice and is not the default, it will never be chosen by the
autobuilders (due to a Kconfig issue, choices are not randomized in our
autobuilder testing).
Thanks again!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread