summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Exequiel Pedone2024-03-27 23:28:52 -0300
committerGonzalo Exequiel Pedone2024-03-27 23:28:52 -0300
commit79216d1f70a716dd154b845a49b1794daf02f57e (patch)
tree3e400ff71e05fa5eeeff51b687b3608a062b30e1
downloadaur-android-x86-mariadb.tar.gz
New package.
-rw-r--r--.SRCINFO63
-rw-r--r--.gitignore6
-rw-r--r--0002-Remove-setpwent.patch10
-rw-r--r--0003-Remove-strchr.patch12
-rw-r--r--0004-Dont-read-PEM-keys.patch30
-rw-r--r--0005-Add-missing-headers.patch11
-rw-r--r--0006-Remove-endpwent.patch10
-rw-r--r--0008-Fix-ncurses-headers.patch36
-rw-r--r--PKGBUILD216
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
+}