diff --git a/packages/mariadb/build.sh b/packages/mariadb/build.sh index 07f07bdcb..c5adfd007 100644 --- a/packages/mariadb/build.sh +++ b/packages/mariadb/build.sh @@ -2,12 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://mariadb.org TERMUX_PKG_DESCRIPTION="A drop-in replacement for mysql server" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="Vishal Biswas @vishalbiswas" - -## Newer versions fail with "Illegal instruction" error on ARM. -_VERSION=10.4.6 +_VERSION=10.4.12 TERMUX_PKG_VERSION=2:${_VERSION} TERMUX_PKG_SRCURL=http://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-${_VERSION}/source/mariadb-${_VERSION}.tar.gz -TERMUX_PKG_SHA256=a270fe6169a1aaf6f2cbbc945de2c954d818c48e1a0fc02fbed92ecb94678e70 +TERMUX_PKG_SHA256=fef1e1d38aa253dd8a51006bd15aad184912fce31c446bb69434fcde735aa208 TERMUX_PKG_DEPENDS="libc++, libiconv, liblzma, ncurses, libedit, openssl, pcre, libcrypt, libandroid-support, libandroid-glob, zlib" TERMUX_PKG_BREAKS="mariadb-dev" TERMUX_PKG_REPLACES="mariadb-dev" @@ -30,6 +28,7 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DMYSQL_DATADIR=$TERMUX_PREFIX/var/lib/mysql -DPLUGIN_AUTH_GSSAPI_CLIENT=OFF -DPLUGIN_AUTH_GSSAPI=NO +-DPLUGIN_AUTH_PAM=NO -DPLUGIN_CONNECT=NO -DPLUGIN_DAEMON_EXAMPLE=NO -DPLUGIN_EXAMPLE=NO @@ -60,6 +59,11 @@ TERMUX_PKG_HOSTBUILD=true TERMUX_PKG_CONFLICTS="mysql" TERMUX_PKG_RM_AFTER_INSTALL="bin/mysqltest*" +# i686 build fails due to: +# /home/builder/.termux-build/mariadb/src/include/my_pthread.h:822:10: error: use of undeclared identifier 'my_atomic_add32' +# (void) my_atomic_add32_explicit(value, 1, MY_MEMORY_ORDER_RELAXED); +TERMUX_PKG_BLACKLISTED_ARCHES="i686" + termux_step_host_build() { termux_setup_cmake cmake -G "Unix Makefiles" \ diff --git a/packages/mariadb/cmake-build_configurations-mysql_release.cmake.patch b/packages/mariadb/cmake-build_configurations-mysql_release.cmake.patch new file mode 100644 index 000000000..103996a09 --- /dev/null +++ b/packages/mariadb/cmake-build_configurations-mysql_release.cmake.patch @@ -0,0 +1,12 @@ +diff -u -r ../mariadb-10.4.12/cmake/build_configurations/mysql_release.cmake ./cmake/build_configurations/mysql_release.cmake +--- ../mariadb-10.4.12/cmake/build_configurations/mysql_release.cmake 2020-01-26 20:43:49.000000000 +0000 ++++ ./cmake/build_configurations/mysql_release.cmake 2020-02-15 23:22:03.546831000 +0000 +@@ -124,7 +124,7 @@ + + IF(UNIX) + SET(WITH_EXTRA_CHARSETS all CACHE STRING "") +- SET(PLUGIN_AUTH_PAM YES) ++ SET(PLUGIN_AUTH_PAM NO) + + IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") + IF(NOT IGNORE_AIO_CHECK) diff --git a/packages/mariadb/my_rdtsc.h.patch b/packages/mariadb/my_rdtsc.h.patch new file mode 100644 index 000000000..9161e4b75 --- /dev/null +++ b/packages/mariadb/my_rdtsc.h.patch @@ -0,0 +1,20 @@ +--- include/my_rdtsc.h.orig 2020-02-17 00:55:47.642830626 +0000 ++++ ./include/my_rdtsc.h 2020-02-17 00:56:16.083322798 +0000 +@@ -26,7 +26,7 @@ + # ifndef __has_builtin + # define __has_builtin(x) 0 /* Compatibility with non-clang compilers */ + # endif +-# if __has_builtin(__builtin_readcyclecounter) ++# if __has_builtin(__builtin_readcyclecounter) && !defined(__arm__) + # elif defined _WIN32 + # include + # elif defined __i386__ || defined __x86_64__ +@@ -125,7 +125,7 @@ + */ + static inline ulonglong my_timer_cycles(void) + { +-# if __has_builtin(__builtin_readcyclecounter) ++# if __has_builtin(__builtin_readcyclecounter) && !defined(__arm__) + return __builtin_readcyclecounter(); + # elif defined _WIN32 || defined __i386__ || defined __x86_64__ + return __rdtsc(); diff --git a/packages/mariadb/scripts-mysql_install_db.sh.patch b/packages/mariadb/scripts-mysql_install_db.sh.patch index 912cbb04b..14160f618 100644 --- a/packages/mariadb/scripts-mysql_install_db.sh.patch +++ b/packages/mariadb/scripts-mysql_install_db.sh.patch @@ -1,36 +1,7 @@ -diff -uNr mariadb-10.4.6/scripts/mysql_install_db.sh mariadb-10.4.6.mod/scripts/mysql_install_db.sh ---- mariadb-10.4.6/scripts/mysql_install_db.sh 2019-06-18 01:00:32.000000000 +0300 -+++ mariadb-10.4.6.mod/scripts/mysql_install_db.sh 2019-08-04 21:52:11.299044998 +0300 -@@ -1,16 +1,16 @@ - #!/bin/sh - # Copyright (c) 2000, 2013, Oracle and/or its affiliates. - # Copyright (c) 2009, 2013, Monty Program Ab --# -+# - # This program is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; version 2 of the License. --# -+# - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. --# -+# - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software - # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA -@@ -76,7 +76,7 @@ - --force Causes mysql_install_db to run even if DNS does not - work. In that case, grant table entries that - normally use hostnames will use IP addresses. -- --help Display this help and exit. -+ --help Display this help and exit. - --ldata=path The path to the MariaDB data directory. Same as - --datadir. - --no-defaults Don't read default options from any option file. -@@ -453,37 +453,10 @@ +diff -u -r ../mariadb-10.4.12/scripts/mysql_install_db.sh ./scripts/mysql_install_db.sh +--- ../mariadb-10.4.12/scripts/mysql_install_db.sh 2020-01-26 20:43:53.000000000 +0000 ++++ ./scripts/mysql_install_db.sh 2020-02-15 23:19:05.141979000 +0000 +@@ -466,42 +466,8 @@ fi chmod 700 "$dir" fi @@ -46,25 +17,30 @@ diff -uNr mariadb-10.4.6/scripts/mysql_install_db.sh mariadb-10.4.6.mod/scripts/ - fi done - if test -n "$user" - then -- chown $user "$pamtooldir/auth_pam_tool_dir" -- if test $? -ne 0 +-if test -n "$user" +-then +- if test -z "$srcdir" -a "$in_rpm" -eq 0 - then -- echo "Cannot change ownership of the '$pamtooldir/auth_pam_tool_dir' directory" -- echo " to the '$user' user. Check that you have the necessary permissions and try again." -- exit 1 -- fi -- if test -z "$srcdir" -- then -- chown 0 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool" +- chown 0 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool" && \ +- chmod 04755 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool" - if test $? -ne 0 - then - echo "Couldn't set an owner to '$pamtooldir/auth_pam_tool_dir/auth_pam_tool'." -- echo " It must be root, the PAM authentication plugin doesn't work otherwise.." +- echo "It must be root, the PAM authentication plugin doesn't work otherwise.." +- echo +- fi +- chown $user "$pamtooldir/auth_pam_tool_dir" && \ +- chmod 0700 "$pamtooldir/auth_pam_tool_dir" +- if test $? -ne 0 +- then +- echo "Cannot change ownership of the '$pamtooldir/auth_pam_tool_dir' directory" +- echo "to the '$user' user. Check that you have the necessary permissions and try again." - echo - fi - fi - args="$args --user=$user" - fi - +- args="$args --user=$user" +-fi +- + if test -f "$ldata/mysql/user.frm" + then + echo "mysql.user table already exists!"