mariadb: Blacklist 32-bit arches due to off_t (#935)
[termux-packages] / disabled-packages / mariadb / build.sh
1 TERMUX_PKG_HOMEPAGE=https://mariadb.org
2 TERMUX_PKG_DESCRIPTION="A drop-in replacement for mysql server"
3 TERMUX_PKG_VERSION=10.1.22
4 TERMUX_PKG_SRCURL=http://mirror.fibergrid.in/mariadb//mariadb-$TERMUX_PKG_VERSION/source/mariadb-$TERMUX_PKG_VERSION.tar.gz
5 TERMUX_PKG_SHA256=bcb0572e7ad32cea9740a21e9255f733bdf60a5561ffbda317c22dd12b3966ce
6 TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
7 -DBISON_EXECUTABLE=`which bison`
8 -DBUILD_CONFIG=mysql_release
9 -DCAT_EXECUTABLE=`which cat`
10 -DENABLED_LOCAL_INFILE=ON
11 -DHAVE_UCONTEXT_H=False
12 -DIMPORT_EXECUTABLES=$TERMUX_PKG_HOSTBUILD_DIR/import_executables.cmake
13 -DINSTALL_LAYOUT=DEB
14 -DINSTALL_UNIX_ADDRDIR=$TERMUX_PREFIX/tmp/mysqld.sock
15 -DMYSQL_DATADIR=$TERMUX_PREFIX/var/lib/mysql
16 -DPLUGIN_AUTH_GSSAPI_CLIENT=NO
17 -DPLUGIN_AUTH_GSSAPI=NO
18 -DPLUGIN_DAEMON_EXAMPLE=NO
19 -DPLUGIN_EXAMPLE=NO
20 -DPLUGIN_GSSAPI=NO
21 -DSTACK_DIRECTION=-1
22 -DTMPDIR=$TERMUX_PREFIX/tmp
23 -DWITH_EXTRA_CHARSETS=complex
24 -DWITH_JEMALLOC=OFF
25 -DWITH_PCRE=system
26 -DWITH_READLINE=OFF
27 -DWITH_SSL=system
28 -DWITH_WSREP=False
29 -DWITH_ZLIB=system
30 -DWITH_INNODB_BZIP2=OFF
31 -DWITH_INNODB_LZ4=OFF
32 -DWITH_INNODB_LZMA=ON
33 -DWITH_INNODB_LZO=OFF
34 -DWITH_INNODB_SNAPPY=OFF
35 "
36 TERMUX_PKG_HOSTBUILD=true
37 TERMUX_PKG_DEPENDS="liblzma, ncurses, libedit, openssl, pcre, libcrypt, libandroid-support, libandroid-glob"
38 TERMUX_PKG_MAINTAINER="Vishal Biswas @vishalbiswas"
39 TERMUX_PKG_CONFLICTS="mysql"
40 TERMUX_PKG_RM_AFTER_INSTALL="bin/mysqltest*"
41 # MariaDB doesn't support 32-bit off_t systems, see
42 # https://bugs.mysql.com/bug.php?id=41309
43 # It builds with -D_FILE_OFFSET_BITS=64 but the NDK only starts supporting
44 # that with unified headers,
45 # https://android.googlesource.com/platform/ndk/+/master/docs/UnifiedHeaders.md
46 # The unified headers are new in the current NDK r14 release and contains some
47 # issues which are being fixed for r15, at which time we'll probably switch to it.
48 # In the meantime we don't build mariadb for 32-bit arches.
49 TERMUX_PKG_BLACKLISTED_ARCHES="arm,i686"
50
51 termux_step_host_build () {
52 termux_setup_cmake
53 cmake -G "Unix Makefiles" $TERMUX_PKG_SRCDIR -DCMAKE_BUILD_TYPE=Release
54 make -j $TERMUX_MAKE_PROCESSES import_executables
55 }
56
57 termux_step_pre_configure () {
58 # it will try to define off64_t with off_t if unset
59 # and 32 bit Android has wrong off_t defined
60 CPPFLAGS="$CPPFLAGS -Dushort=u_short -D__off64_t_defined"
61 }
62
63 termux_step_post_make_install () {
64 mkdir -p $TERMUX_PREFIX/var/lib/mysql
65 # files not needed
66 rm -r $TERMUX_PREFIX/{mysql-test,sql-bench}
67 rm $TERMUX_PREFIX/share/man/man1/mysql-test-run.pl.1
68 }
69
70 termux_step_create_debscripts () {
71 return
72 echo "echo 'Initializing mysql data directory...'" > postinst
73 echo "$TERMUX_PREFIX/bin/mysql_install_db --user=\`whoami\` --datadir=$TERMUX_PREFIX/var/lib/mysql --basedir=$TERMUX_PREFIX" >> postinst
74 echo "exit 0" >> postinst
75 chmod 0755 postinst
76 }