diff options
author | Gonzalo Exequiel Pedone | 2024-03-27 23:28:52 -0300 |
---|---|---|
committer | Gonzalo Exequiel Pedone | 2024-03-27 23:28:52 -0300 |
commit | 79216d1f70a716dd154b845a49b1794daf02f57e (patch) | |
tree | 3e400ff71e05fa5eeeff51b687b3608a062b30e1 | |
download | aur-android-x86-mariadb.tar.gz |
New package.
-rw-r--r-- | .SRCINFO | 63 | ||||
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | 0002-Remove-setpwent.patch | 10 | ||||
-rw-r--r-- | 0003-Remove-strchr.patch | 12 | ||||
-rw-r--r-- | 0004-Dont-read-PEM-keys.patch | 30 | ||||
-rw-r--r-- | 0005-Add-missing-headers.patch | 11 | ||||
-rw-r--r-- | 0006-Remove-endpwent.patch | 10 | ||||
-rw-r--r-- | 0008-Fix-ncurses-headers.patch | 36 | ||||
-rw-r--r-- | PKGBUILD | 216 |
9 files changed, 394 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..50fefb982294 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,63 @@ +pkgbase = android-x86-mariadb + pkgdesc = Fast SQL database server, derived from MySQL (Android x86) + pkgver = 11.3.2 + pkgrel = 1 + url = https://mariadb.org/ + arch = any + license = GPL + makedepends = android-cmake + makedepends = android-x86-boost + makedepends = android-x86-bzip2 + makedepends = android-x86-cracklib + makedepends = android-x86-curl + makedepends = android-x86-jemalloc + makedepends = android-x86-judy + makedepends = android-x86-liburing + makedepends = android-x86-libxcrypt + makedepends = android-x86-libxml2 + makedepends = android-x86-lz4 + makedepends = android-x86-openssl + makedepends = android-x86-pcre2 + makedepends = android-x86-xz + makedepends = android-x86-zlib + makedepends = android-x86-zstd + depends = android-x86-bzip2 + depends = android-x86-jemalloc + depends = android-x86-liburing + depends = android-x86-libxcrypt + depends = android-x86-libxml2 + depends = android-x86-lz4 + depends = android-x86-lzo + depends = android-x86-ncurses + depends = android-x86-openssl + depends = android-x86-pcre2 + depends = android-x86-snappy + depends = android-x86-zlib + depends = android-x86-zstd + optdepends = android-x86-cracklib: for cracklib plugin + optdepends = android-x86-curl: for ha_s3 plugin + optdepends = android-x86-judy: for Open Query GRAPH (OQGraph) computation engine + optdepends = android-x86-xz: lzma provider + options = !strip + options = !buildflags + options = staticlibs + options = !emptydirs + source = https://rsync.osuosl.org/pub/mariadb/mariadb-11.3.2/source/mariadb-11.3.2.tar.gz + source = https://rsync.osuosl.org/pub/mariadb/mariadb-11.3.2/source/mariadb-11.3.2.tar.gz.asc + source = 0002-Remove-setpwent.patch + source = 0003-Remove-strchr.patch + source = 0004-Dont-read-PEM-keys.patch + source = 0005-Add-missing-headers.patch + source = 0006-Remove-endpwent.patch + source = 0008-Fix-ncurses-headers.patch + validpgpkeys = 177F4010FE56CA3336300305F1656F24C74CD1D8 + sha256sums = 5570778f0a2c27af726c751cda1a943f3f8de96d11d107791be5b44a0ce3fb5c + sha256sums = SKIP + sha256sums = f38a62d8fcf13a63c1368816ae9f97505f73343941ca667d91adf8f51176787e + sha256sums = 281f85613b325d1cc35ea3701d8a7cb54971389a23ad9e90df0214d3672174d5 + sha256sums = d025b6710cbca6e64d395b322d622ef1b1bb868893ee0550150d5ff5000c2d57 + sha256sums = 21529ea4e45530f43b393e117b9263ad5b19c452d67396b6fe8cfc7651b9296b + sha256sums = 909d2b7893864c31dea42b92e1593d4dc9abecfa5db50fd5c0a3864e72023d2f + sha256sums = f9dccbec9b8bc20aacfc73c92dac3a0496ab9eaac5d772b991e943a232163eb1 + +pkgname = android-x86-mariadb diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..b5b03b115225 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +pkg +src +*.tar.xz +*.tar.gz +*.tar.bz2 +*.asc diff --git a/0002-Remove-setpwent.patch b/0002-Remove-setpwent.patch new file mode 100644 index 000000000000..df7da56b814d --- /dev/null +++ b/0002-Remove-setpwent.patch @@ -0,0 +1,10 @@ +--- a/extra/readline/complete.c ++++ b/extra/readline/complete.c +@@ -1855,7 +1855,6 @@ + #if defined (HAVE_GETPWENT) + namelen = strlen (username); + #endif +- setpwent (); + } + + #if defined (HAVE_GETPWENT) diff --git a/0003-Remove-strchr.patch b/0003-Remove-strchr.patch new file mode 100644 index 000000000000..f9dd5b831aec --- /dev/null +++ b/0003-Remove-strchr.patch @@ -0,0 +1,12 @@ +--- a/extra/readline/histlib.h ++++ b/extra/readline/histlib.h +@@ -51,9 +51,6 @@ + #endif + + #ifndef member +-# ifndef strchr +-extern char *strchr (); +-# endif + #define member(c, s) ((c) ? ((char *)strchr ((s), (c)) != (char *)NULL) : 0) + #endif + diff --git a/0004-Dont-read-PEM-keys.patch b/0004-Dont-read-PEM-keys.patch new file mode 100644 index 000000000000..cdecf582c387 --- /dev/null +++ b/0004-Dont-read-PEM-keys.patch @@ -0,0 +1,30 @@ +--- a/libmariadb/libmariadb/secure/openssl.c ++++ b/libmariadb/libmariadb/secure/openssl.c +@@ -380,27 +380,10 @@ + + if (keyfile && keyfile[0]) + { +- FILE *fp; +- if ((fp= fopen(keyfile, "rb"))) +- { +- EVP_PKEY *key= EVP_PKEY_new(); +- PEM_read_PrivateKey(fp, &key, NULL, pw); +- fclose(fp); +- if (SSL_CTX_use_PrivateKey(ctx, key) != 1) +- { +- unsigned long err= ERR_peek_error(); +- EVP_PKEY_free(key); +- if (!(ERR_GET_LIB(err) == ERR_LIB_X509 && +- ERR_GET_REASON(err) == X509_R_CERT_ALREADY_IN_HASH_TABLE)) +- goto error; +- } +- EVP_PKEY_free(key); +- } else { + my_set_error(mysql, CR_SSL_CONNECTION_ERROR, SQLSTATE_UNKNOWN, + CER(CR_FILE_NOT_FOUND), keyfile); + return 1; + } +- } + /* verify key */ + if (certfile && SSL_CTX_check_private_key(ctx) != 1) + goto error; diff --git a/0005-Add-missing-headers.patch b/0005-Add-missing-headers.patch new file mode 100644 index 000000000000..613f1986307d --- /dev/null +++ b/0005-Add-missing-headers.patch @@ -0,0 +1,11 @@ +--- a/mysys/get_password.c ++++ b/mysys/get_password.c +@@ -14,6 +14,8 @@ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + ++#include <ctype.h> ++ + /* + ** Ask for a password from tty + ** This is an own file to avoid conflicts with curses diff --git a/0006-Remove-endpwent.patch b/0006-Remove-endpwent.patch new file mode 100644 index 000000000000..178e655db771 --- /dev/null +++ b/0006-Remove-endpwent.patch @@ -0,0 +1,10 @@ +--- a/mysys/mf_pack.c ++++ b/mysys/mf_pack.c +@@ -382,7 +382,6 @@ + save= *str; *str= '\0'; + user_entry=getpwnam(*path); + *str=save; +- endpwent(); + if (user_entry) + { + *path=str; diff --git a/0008-Fix-ncurses-headers.patch b/0008-Fix-ncurses-headers.patch new file mode 100644 index 000000000000..eb084e3c2d75 --- /dev/null +++ b/0008-Fix-ncurses-headers.patch @@ -0,0 +1,36 @@ +--- a/client/mysql.cc ++++ b/client/mysql.cc +@@ -61,31 +61,8 @@ + #include "client_metadata.h" + + extern "C" { +-#if defined(HAVE_CURSES_H) && defined(HAVE_TERM_H) +-#include <curses.h> +-#include <term.h> +-#else +-#if defined(HAVE_TERMIOS_H) +-#include <termios.h> +-#include <unistd.h> +-#elif defined(HAVE_TERMBITS_H) +-#include <termbits.h> +-#elif defined(HAVE_ASM_TERMBITS_H) && (!defined __GLIBC__ || !(__GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ > 0)) +-#include <asm/termbits.h> // Standard linux +-#endif +-#undef VOID +-#if defined(HAVE_TERMCAP_H) +-#include <termcap.h> +-#else +-#ifdef HAVE_CURSES_H +-#include <curses.h> +-#endif +-#undef SYSV // hack to avoid syntax error +-#ifdef HAVE_TERM_H +-#include <term.h> +-#endif +-#endif +-#endif /* defined(HAVE_CURSES_H) && defined(HAVE_TERM_H) */ ++#include <ncursesw/curses.h> ++#include <ncursesw/term.h> + + #undef bcmp // Fix problem with new readline + #if !defined(_WIN32) diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..406fe37efc88 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,216 @@ +# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com> +# Contributor: Christian Hesse <eworm@archlinux.org> + +_android_arch=x86 + +pkgname=android-${_android_arch}-mariadb +pkgdesc="Fast SQL database server, derived from MySQL (Android ${_android_arch})" +pkgver=11.3.2 +pkgrel=1 +arch=('any') +license=('GPL') +url='https://mariadb.org/' +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' + "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} + '0002-Remove-setpwent.patch' + '0003-Remove-strchr.patch' + '0004-Dont-read-PEM-keys.patch' + '0005-Add-missing-headers.patch' + '0006-Remove-endpwent.patch' + '0008-Fix-ncurses-headers.patch') +sha256sums=('5570778f0a2c27af726c751cda1a943f3f8de96d11d107791be5b44a0ce3fb5c' + 'SKIP' + 'f38a62d8fcf13a63c1368816ae9f97505f73343941ca667d91adf8f51176787e' + '281f85613b325d1cc35ea3701d8a7cb54971389a23ad9e90df0214d3672174d5' + 'd025b6710cbca6e64d395b322d622ef1b1bb868893ee0550150d5ff5000c2d57' + '21529ea4e45530f43b393e117b9263ad5b19c452d67396b6fe8cfc7651b9296b' + '909d2b7893864c31dea42b92e1593d4dc9abecfa5db50fd5c0a3864e72023d2f' + 'f9dccbec9b8bc20aacfc73c92dac3a0496ab9eaac5d772b991e943a232163eb1') +validpgpkeys=('177F4010FE56CA3336300305F1656F24C74CD1D8') # MariaDB Signing Key <signing-key@mariadb.org> + +prepare() { + cd "${srcdir}/mariadb-$pkgver" + source android-env ${_android_arch} + + 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 ../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 +} + +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 + make -C cross-build import_executables + + source android-env ${_android_arch} + + export PATH="${PWD}/cross-build/strings:${PATH}" + + android-${_android_arch}-cmake \ + -DCOMPILATION_COMMENT="Android ${ANDROID_MINIMUM_PLATFORM} ${_android_arch}" \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -Wno-dev \ + -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 \ + -DPLUGIN_EXAMPLE=NO \ + -DPLUGIN_FEDERATED=NO \ + -DPLUGIN_FEEDBACK=NO \ + -DWITH_EMBEDDED_SERVER=ON \ + -DWITH_EXTRA_CHARSETS=complex \ + -DWITH_JEMALLOC=ON \ + -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 \ + -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" \ + -DCURSES_INCLUDE_PATH="${ANDROID_PREFIX_INCLUDE}" \ + -DCURSES_LIBRARY="${ANDROID_PREFIX_LIB}/libcurses.so" \ + -DCURL_LIBRARY="${ANDROID_PREFIX_LIB}/libcurl.so" \ + -DCURL_INCLUDE_DIR="${ANDROID_PREFIX_INCLUDE}" \ + -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" \ + . + make $MAKEFLAGS +} + +package() { + cd "${srcdir}/mariadb-$pkgver" + source android-env ${_android_arch} + + make DESTDIR="$pkgdir" install + + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb_config" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-admin" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-binlog" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-check" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-config" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-conv" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-dump" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-import" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-plugin" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-show" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-slap" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-test" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mariadb-waitpid" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/my_print_defaults" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysql" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysql_plugin" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysql_waitpid" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysqladmin" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysqlbinlog" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysqlcheck" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysqldump" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysqlimport" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysqlshow" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysqlslap" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/mysqltest" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/replace" + rm -f "${pkgdir}/${ANDROID_PREFIX_BIN}/resolve_stack_dump" + rm -rf "${pkgdir}/${ANDROID_PREFIX_SHARE}" + rm -rf "${pkgdir}/usr" + ${ANDROID_STRIP} -g --strip-unneeded "${pkgdir}"/${ANDROID_PREFIX_LIB}/*.so + ${ANDROID_STRIP} -g "$pkgdir"/${ANDROID_PREFIX_LIB}/*.a +} |