# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com> # Contributor: Christian Hesse <eworm@archlinux.org> _android_arch=riscv64 pkgname=android-${_android_arch}-mariadb pkgdesc="Fast SQL database server, derived from MySQL (Android ${_android_arch})" pkgver=11.7.2 pkgrel=1 arch=('any') license=('GPL') url='https://mariadb.org/' groups=('android-mariadb') depends=("android-${_android_arch}-bzip2" "android-${_android_arch}-jemalloc" "android-${_android_arch}-liburing" "android-${_android_arch}-libxcrypt" "android-${_android_arch}-libxml2" "android-${_android_arch}-lz4" "android-${_android_arch}-lzo" "android-${_android_arch}-ncurses" "android-${_android_arch}-openssl" "android-${_android_arch}-pcre2" "android-${_android_arch}-snappy" "android-${_android_arch}-zlib" "android-${_android_arch}-zstd") makedepends=('android-cmake' 'judy' "android-${_android_arch}-boost" "android-${_android_arch}-bzip2" "android-${_android_arch}-cracklib" "android-${_android_arch}-curl" "android-${_android_arch}-jemalloc" "android-${_android_arch}-judy" "android-${_android_arch}-liburing" "android-${_android_arch}-libxcrypt" "android-${_android_arch}-libxml2" "android-${_android_arch}-lz4" "android-${_android_arch}-openssl" "android-${_android_arch}-pcre2" "android-${_android_arch}-xz" "android-${_android_arch}-zlib" "android-${_android_arch}-zstd") optdepends=("android-${_android_arch}-cracklib: for cracklib plugin" "android-${_android_arch}-curl: for ha_s3 plugin" "android-${_android_arch}-judy: for Open Query GRAPH (OQGraph) computation engine" "android-${_android_arch}-xz: lzma provider") options=(!strip !buildflags staticlibs !emptydirs) # The default links with mirror redirection fail for signatures, specific # mirrors may be out of date every now and then. Let's use the upstream # rsync source via https and hope it does not hurt them too much. # https://mariadb.com/kb/en/library/mirror-sites-for-mariadb/ source=("https://rsync.osuosl.org/pub/mariadb/mariadb-${pkgver}/source/mariadb-${pkgver}.tar.gz"{,.asc} '0001-Disable-gssapi.patch' '0002-Remove-setpwent.patch' '0003-Remove-strchr.patch' '0004-Dont-read-PEM-keys.patch' '0005-Add-missing-headers.patch' '0006-Remove-endpwent.patch' '0007-Fix-missing-builtin-in-riscv.patch' '0008-Fix-ncurses-headers.patch') md5sums=('52d864795caeeaad3efe4321fc107301' 'SKIP' '4c9ae845bf4e50a9b0f5e74c888de9ff' '8f2f84a58b52e348ebdb9a1cf385eb00' '068a65705c097321d40cadaaafe37429' '05ce29a22db5d51618eb62fd01cf77ed' '7b53dfa88c8b7a83fad76c454222d9f7' '481e93621e4c2e040b4eb380904e1865' '904d67433581cd450c75cb9a9260a8d2' 'bd8ebd1967c42f660dcd59503ca0213d') validpgpkeys=('177F4010FE56CA3336300305F1656F24C74CD1D8') # MariaDB Signing Key <signing-key@mariadb.org> prepare() { cd "${srcdir}/mariadb-${pkgver}" source android-env ${_android_arch} patch -Np1 -i ../0001-Disable-gssapi.patch patch -Np1 -i ../0003-Remove-strchr.patch patch -Np1 -i ../0004-Dont-read-PEM-keys.patch patch -Np1 -i ../0005-Add-missing-headers.patch patch -Np1 -i ../0007-Fix-missing-builtin-in-riscv.patch patch -Np1 -i ../0008-Fix-ncurses-headers.patch if [ "${ANDROID_MINIMUM_PLATFORM}" -lt 26 ]; then patch -Np1 -i ../0002-Remove-setpwent.patch patch -Np1 -i ../0006-Remove-endpwent.patch fi sed -i 's|ushort|unsigned short|g' libmariadb/plugins/auth/my_auth.c sed -i 's|ushort|unsigned short|g' libmariadb/libmariadb/mariadb_lib.c sed -i 's|ushort|unsigned short|g' libmariadb/libmariadb/mariadb_stmt.c sed -i 's|ushort|unsigned short|g' libmariadb/libmariadb/ma_stmt_codec.c rm -rf plugin/auth_gssapi rm -f libmariadb/cmake/FindGSSAPI.cmake } build() { cd "${srcdir}/mariadb-${pkgver}" unset CC unset CXX unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset AR unset LD unset NM unset OBJCOPY unset OBJDUMP unset RANLIB unset STRIP cmake -S . -B cross-build -Wno-dev make -C cross-build import_executables source android-env ${_android_arch} export CFLAGS="${CFLAGS} -I${PWD}/include" export CXXFLAGS="${CXXFLAGS} -I${PWD}/include" export PATH="${PWD}/cross-build/strings:${PATH}" android-${_android_arch}-cmake \ -S . \ -B build-shared \ -DCOMPILATION_COMMENT="Android ${ANDROID_MINIMUM_PLATFORM} ${_android_arch}" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -Wno-dev \ -DWITH_PIC=ON \ -DDISABLE_SHARED=OFF \ -DIMPORT_EXECUTABLES="${PWD}/cross-build/import_executables.cmake" \ -DINSTALL_SYSCONFDIR="${ANDROID_PREFIX_ETC}" \ -DINSTALL_SYSCONF2DIR="${ANDROID_PREFIX_ETC}/my.cnf.d" \ -DINSTALL_UNIX_ADDRDIR=/run/mysqld/mysqld.sock \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_INCLUDEDIR=include/mysql \ -DINSTALL_PLUGINDIR=lib/mysql/plugin \ -DINSTALL_SHAREDIR=share \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ -DINSTALL_MYSQLSHAREDIR=share/mysql \ -DINSTALL_DOCREADMEDIR=share/doc/mariadb \ -DINSTALL_DOCDIR=share/doc/mariadb \ -DINSTALL_MANDIR=share/man \ -DMYSQL_DATADIR="${ANDROID_PREFIX_VAR}/lib/mysql" \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_unicode_ci \ -DENABLED_LOCAL_INFILE=ON \ -DHAVE_SYSTEM_LIBFMT_EXITCODE=0 \ -DPLUGIN_EXAMPLE=NO \ -DPLUGIN_FEDERATED=NO \ -DPLUGIN_FEEDBACK=NO \ -DWITH_EXTRA_CHARSETS=complex \ -DWITH_JEMALLOC=ON \ -DWITH_LIBFMT=system \ -DWITH_LIBWRAP=OFF \ -DWITH_PCRE2=system \ -DWITH_READLINE=ON \ -DWITH_SSL=system \ -DWITH_UNIT_TESTS=OFF \ -DWITH_ZLIB=system \ -DWITH_SYSTEMD=no \ -DWITHOUT_SERVER=ON \ -DAUTH_GSSAPI_PLUGIN_TYPE=OFF \ -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \ -DOPENSSL_ROOT_DIR="${ANDROID_PREFIX}" \ -DOPENSSL_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \ -DOPENSSL_CRYPTO_LIBRARY="${ANDROID_PREFIX_LIB}/libcrypto.so" \ -DOPENSSL_SSL_LIBRARY="${ANDROID_PREFIX_LIB}/libssl.so" \ -DCURL_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \ -DCURL_LIBRARY="${ANDROID_PREFIX_LIB}/libcurl.so" \ -Dpkgcfg_lib_PC_CURL_curl="${ANDROID_PREFIX_LIB}/libcurl.so" \ -DCURSES_INCLUDE_PATH="${ANDROID_PREFIX_INCLUDE}" \ -DCURSES_CURSES_LIBRARY="${ANDROID_PREFIX_LIB}/libcurses.so" \ -DCURSES_FORM_LIBRARY="${ANDROID_PREFIX_LIB}/libformw.so" \ -DCURSES_NCURSES_LIBRARY="${ANDROID_PREFIX_LIB}/libncursesw.so" \ -DZSTD_LIBRARIES="${ANDROID_PREFIX_LIB}/libzstd.so" \ -DZSTD_INCLUDE_DIRS="${ANDROID_PREFIX_INCLUDE}" \ -DLIBXML2_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \ -DBoost_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \ -DBZIP2_LIBRARIES="${ANDROID_PREFIX_LIB}/libbz2.so" \ -DBZIP2_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \ -DLZ4_LIBRARIES="${ANDROID_PREFIX_LIB}/liblz4.so" \ -DLZ4_INCLUDE_DIRS="${ANDROID_PREFIX_INCLUDE}" \ -DLZO_LIBRARIES="${ANDROID_PREFIX_LIB}/liblzo2.so" \ -DLZO_INCLUDE_DIRS="${ANDROID_PREFIX_INCLUDE}" \ -DLIBLZMA_LIBRARY="${ANDROID_PREFIX_LIB}/liblzma.so" \ -DLIBLZMA_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \ -DSNAPPY_LIBRARIES="${ANDROID_PREFIX_LIB}/libsnappy.so" \ -DSNAPPY_INCLUDE_DIRS="${ANDROID_PREFIX_INCLUDE}" \ -DJudy_INCLUDE_DIRS="${ANDROID_PREFIX_INCLUDE}" \ -DJudy_LIBRARIES="${ANDROID_PREFIX_LIB}/libljudy.so" \ -DLIBFMT_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" make -C build-shared $MAKEFLAGS } package() { cd "${srcdir}/mariadb-${pkgver}" source android-env ${_android_arch} make -C build-shared DESTDIR="${pkgdir}" install files=(mariadb mariadb_config mariadb-admin mariadb-binlog mariadb-check mariadb-config mariadb-conv mariadb-dump mariadb-import mariadb-plugin mariadb-show mariadb-slap mariadb-test mariadb-waitpid my_print_defaults mysql mysql_plugin mysql_waitpid mysqladmin mysqlbinlog mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap mysqltest replace resolve_stack_dump) for f in "${files[@]}"; do rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/${f}" done rm -rf "${pkgdir}/${ANDROID_PREFIX_SHARE}" ${ANDROID_STRIP} -g --strip-unneeded "${pkgdir}/${ANDROID_PREFIX_LIB}"/*.so ${ANDROID_STRIP} -g "${pkgdir}/${ANDROID_PREFIX_LIB}"/*.a }