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="@termux" TERMUX_PKG_VERSION=2:10.6.7 TERMUX_PKG_SRCURL=http://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-${TERMUX_PKG_VERSION:2}/source/mariadb-${TERMUX_PKG_VERSION:2}.tar.gz TERMUX_PKG_SHA256=75ee0f1f865a765fc461ab165419417a719e308faba784b2c97ecbe9e4b4b2c5 # MariaDB 10.6.x does not support OpenSSL 3.0: # https://github.com/MariaDB/server/commit/c9beef43154a199bfcd9f71049c011a2ed77ca74 # https://jira.mariadb.org/browse/MDEV-25785 TERMUX_PKG_DEPENDS="libc++, libiconv, liblzma, ncurses, libedit, openssl-1.1, pcre2, libcrypt, libandroid-support, libandroid-glob, zlib, liblz4" TERMUX_PKG_BREAKS="mariadb-dev" TERMUX_PKG_REPLACES="mariadb-dev" TERMUX_PKG_SERVICE_SCRIPT=("mysqld" "exec mysqld --basedir=$TERMUX_PREFIX --datadir=$TERMUX_PREFIX/var/lib/mysql 2>&1") TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DBISON_EXECUTABLE=$(command -v bison) -DGETCONF=$(command -v getconf) -DBUILD_CONFIG=mysql_release -DCAT_EXECUTABLE=$(command -v cat) -DGIT_EXECUTABLE=$(command -v git) -DGSSAPI_FOUND=NO -DGRN_WITH_LZ4=yes -DENABLED_LOCAL_INFILE=ON -DHAVE_UCONTEXT_H=False -DIMPORT_EXECUTABLES=$TERMUX_PKG_HOSTBUILD_DIR/import_executables.cmake -DINSTALL_LAYOUT=DEB -DINSTALL_UNIX_ADDRDIR=$TERMUX_PREFIX/var/run/mysqld.sock -DINSTALL_SBINDIR=$TERMUX_PREFIX/bin -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 -DPLUGIN_GSSAPI=OFF -DPLUGIN_ROCKSDB=NO -DPLUGIN_TOKUDB=NO -DPLUGIN_SERVER_AUDIT=NO -DSTACK_DIRECTION=-1 -DTMPDIR=$TERMUX_PREFIX/tmp -DWITH_EXTRA_CHARSETS=complex -DWITH_JEMALLOC=OFF -DWITH_MARIABACKUP=OFF -DWITH_PCRE=system -DWITH_LZ4=system -DWITH_READLINE=OFF -DWITH_SSL=system -DWITH_WSREP=False -DWITH_ZLIB=system -DWITH_INNODB_BZIP2=OFF -DWITH_INNODB_LZ4=ON -DWITH_INNODB_LZMA=ON -DWITH_INNODB_LZO=OFF -DWITH_INNODB_SNAPPY=OFF -DWITH_UNIT_TESTS=OFF -DINSTALL_SYSCONFDIR=$TERMUX_PREFIX/etc -DOPENSSL_INCLUDE_DIR=$TERMUX_PREFIX/include/openssl-1.1 -DOPENSSL_LIBRARIES=$TERMUX_PREFIX/lib/openssl-1.1 -DOPENSSL_CRYPTO_LIBRARY=$TERMUX_PREFIX/lib/openssl-1.1/libcrypto.so.1.1 -DOPENSSL_SSL_LIBRARY=$TERMUX_PREFIX/lib/openssl-1.1/libssl.so.1.1 " TERMUX_PKG_HOSTBUILD=true TERMUX_CMAKE_BUILD="Unix Makefiles" TERMUX_PKG_CONFLICTS="mysql" TERMUX_PKG_RM_AFTER_INSTALL=" bin/mysqltest* share/man/man1/mysql-test-run.pl.1 share/mysql/mysql-test mysql-test sql-bench " # 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 sed -i 's/^\s*END[(][)]/ENDIF()/g' $TERMUX_PKG_SRCDIR/libmariadb/cmake/ConnectorName.cmake cmake -G "Unix Makefiles" \ $TERMUX_PKG_SRCDIR \ -DWITH_SSL=bundled \ -DCMAKE_BUILD_TYPE=Release make -j $TERMUX_MAKE_PROCESSES import_executables } termux_step_pre_configure() { # Certain packages are not safe to build on device because their # build.sh script deletes specific files in $TERMUX_PREFIX. if $TERMUX_ON_DEVICE_BUILD; then termux_error_exit "Package '$TERMUX_PKG_NAME' is not safe for on-device builds." fi CPPFLAGS+=" -Dushort=u_short" if [ $TERMUX_ARCH_BITS = 32 ]; then CPPFLAGS+=" -D__off64_t_defined" fi if [ $TERMUX_ARCH = "i686" ]; then # Avoid undefined reference to __atomic_load_8: CFLAGS+=" -latomic" fi sed -i 's/^\s*END[(][)]/ENDIF()/g' $TERMUX_PKG_SRCDIR/libmariadb/cmake/ConnectorName.cmake CFLAGS="-I$TERMUX_PREFIX/include/openssl-1.1 $CFLAGS" CPPFLAGS="-I$TERMUX_PREFIX/include/openssl-1.1 $CPPFLAGS" CXXFLAGS="-I$TERMUX_PREFIX/include/openssl-1.1 $CXXFLAGS" LDFLAGS="-L$TERMUX_PREFIX/lib/openssl-1.1 -Wl,-rpath=$TERMUX_PREFIX/lib/openssl-1.1 $LDFLAGS" } termux_step_post_massage() { mkdir -p $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/etc/my.cnf.d } termux_step_create_debscripts() { echo "if [ ! -e "$TERMUX_PREFIX/var/lib/mysql" ]; then" > postinst echo " echo 'Initializing mysql data directory...'" >> postinst echo " mkdir -p $TERMUX_PREFIX/var/lib/mysql" >> postinst echo " $TERMUX_PREFIX/bin/mysql_install_db --user=\$(whoami) --datadir=$TERMUX_PREFIX/var/lib/mysql --basedir=$TERMUX_PREFIX" >> postinst echo "fi" >> postinst echo "exit 0" >> postinst chmod 0755 postinst }