mariadb: new package
v4 cover mariadb: new package
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 <[email protected]>
https://patchwork.ozlabs.org/patch/538045/
Changes v4 -> v3
- rebased
- bump version to 10.1.20
- removed second patch as it is now upstream
- explicitly disable dtrace to avoid detection of a host version (suggested by Frank Hunleth)
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 (4):
mysql: rename package to oracle-mysql
mariadb: new package
DEVELOPERS: add entry for mariadb
mysql: convert to virtual package
DEVELOPERS | 1 +
.../mariadb/0001-add-extra-check-for-librt.patch | 27 ++++
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 +++++++++++++++++++++
20 files changed, 437 insertions(+), 136 deletions(-)
create mode 100644 package/mariadb/0001-add-extra-check-for-librt.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.mkSignature · 1 line
2.9.3
RFC v4 1/4 mysql: rename package to oracle-mysql
---
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%)package/Config.in +1 -1
@@ -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"
package/oracle-mysql/0000-ac_cache_check.patch renamed from package/mysql/0000-ac_cache_check.patch +0 -0
package/oracle-mysql/0001-configure-ps-cache-check.patch renamed from package/mysql/0001-configure-ps-cache-check.patch +0 -0
package/oracle-mysql/0002-use-new-readline-iface.patch renamed from package/mysql/0002-use-new-readline-iface.patch +0 -0
package/oracle-mysql/0003-ac_stack_direction-is-unset.patch renamed from package/mysql/0003-ac_stack_direction-is-unset.patch +0 -0
package/oracle-mysql/0004-Fix-gen_lex_hash-execution.patch renamed from package/mysql/0004-Fix-gen_lex_hash-execution.patch +0 -0
package/oracle-mysql/0005-bison_3_breaks_mysql_server_build.patch renamed from package/mysql/0005-bison_3_breaks_mysql_server_build.patch +0 -0
package/oracle-mysql/0006-no-force-static-build.patch renamed from package/mysql/0006-no-force-static-build.patch +0 -0
package/oracle-mysql/0007-dont-install-in-mysql-directory.patch renamed from package/mysql/0007-dont-install-in-mysql-directory.patch +0 -0
package/oracle-mysql/Config.in renamed from package/mysql/Config.in +6 -6
@@ -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
package/oracle-mysql/S97mysqld renamed from package/mysql/S97mysqld +0 -0
package/oracle-mysql/mysqld.service renamed from package/mysql/mysqld.service +0 -0
package/oracle-mysql/oracle-mysql.hash renamed from package/mysql/mysql.hash +0 -0
package/oracle-mysql/oracle-mysql.mk renamed from package/mysql/mysql.mk +33 -33
144 lines not on this page · raw message
Signature · 1 line
2.9.3
RFC v4 2/4 mariadb: new package
In reply to Ryan Coe--- package/Config.in | 1 + .../mariadb/0001-add-extra-check-for-librt.patch | 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
package/Config.in +1 -0
@@ -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"
package/mariadb/0001-add-extra-check-for-librt.patch new file +27 -0
@@ -0,0 +1,27 @@ +From e6244400dfd3547531a3a3289fadbbe19873f096 Mon Sep 17 00:00:00 2001 +From: Ryan Coe <[email protected]> +Date: Thu, 27 Oct 2016 20:33:21 -0700 +Subject: [PATCH 1/1] add extra check for librt + +Signed-off-by: Ryan Coe <[email protected]> +--- + 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 +
package/mariadb/Config.in new file +32 -0
@@ -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
package/mariadb/S97mysqld new file +77 -0
77 lines not on this page · raw message
package/mariadb/mariadb.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally computed +sha256 c24e83f24d674d9912319f9e9422f093c8ca6be1721a4380cbd74792b89ba0b9 mariadb-10.1.20.tar.gz
package/mariadb/mariadb.mk new file +113 -0
113 lines not on this page · raw message
package/mariadb/mysqld.service new file +13 -0
@@ -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
package/oracle-mysql/Config.in +1 -0
@@ -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
Signature · 1 line
2.9.3
RFC v4 3/4 DEVELOPERS: add entry for mariadb
In reply to Ryan Coe--- DEVELOPERS | 1 + 1 file changed, 1 insertion(+)
DEVELOPERS +1 -0
@@ -1289,6 +1289,7 @@ F: package/python-tornado/ N: Ryan Coe <[email protected]> F: package/inadyn/ F: package/libite/ +F: package/mariadb/ N: Ryan Wilkins <[email protected]> F: package/biosdevname/
Signature · 1 line
2.9.3
RFC v4 4/4 mysql: convert to virtual package
In reply to Ryan Coe--- 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
package/Config.in +1 -2
@@ -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"
package/mariadb/Config.in deleted +0 -32
@@ -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
package/mariadb/mariadb.mk +1 -0
@@ -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 \
package/mysql/Config.in new file +83 -0
83 lines not on this page · raw message
package/mysql/mysql.mk new file +7 -0
@@ -0,0 +1,7 @@ +################################################################################ +# +# mysql +# +################################################################################ + +$(eval $(virtual-package))
package/oracle-mysql/Config.in deleted +0 -25
@@ -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
package/oracle-mysql/oracle-mysql.mk +1 -0
@@ -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
Signature · 1 line
2.9.3
v4 cover mariadb: new package
In reply to Ryan CoeHello,
Quoted 5 lines · Ryan Coe
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_64with 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
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com