void-packages/srcpkgs/mysql/template
Jürgen Buchmüller eaa3099a63
mysql: fix cross build
Thanks to @jnbr. Set TRY_RUN() flag and result code for
HAVE_LIBCPP_EXITCODE. Also enable parallel builds again
because they seem to work just fine.

Closes: #11063

Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
2019-04-25 17:47:28 +02:00

123 lines
4 KiB
Bash

# Template file for 'mysql'
pkgname=mysql
version=5.6.43
revision=2
build_style=cmake
configure_args="-DSYSCONFDIR=/etc/mysql -DMYSQL_DATADIR=/var/lib/mysql
-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON
-DINSTALL_INFODIR=share/mysql/docs -DINSTALL_MANDIR=share/man
-DINSTALL_PLUGINDIR=lib/mysql/plugin -DINSTALL_SCRIPTDIR=bin
-DINSTALL_INCLUDEDIR=include/mysql -DINSTALL_DOCREADMEDIR=share/mysql
-DINSTALL_SUPPORTFILESDIR=share/mysql -DINSTALL_MYSQLSHAREDIR=share/mysql
-DINSTALL_DOCDIR=share/mysql/docs -DINSTALL_SHAREDIR=share/mysql
-DWITH_ZLIB=system -DWITH_SSL=system -DWITH_LIBWRAP=OFF
-DWITH_EXTRA_CHARSETS=complex -DWITH_EMBEDDED_SERVER=ON
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1
-DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DSTACK_DIRECTION=1 -DHAVE_LLVM_LIBCPP_EXITCODE=0"
hostmakedepends="perl bison ncurses-devel"
makedepends="zlib-devel libressl-devel readline-devel"
depends="mysql-client"
conf_files="/etc/mysql/my.cnf"
short_desc="World's most popular open source database"
maintainer="Juan RP <xtraeme@voidlinux.org>"
license="GPL-2.0-only"
homepage="https://www.mysql.com/products/community/"
distfiles="http://dev.mysql.com/get/Downloads/MySQL-${version%.*}/mysql-${version}.tar.gz"
checksum=1c95800bf0e1b7a19a37d37fbc5023af85c6bc0b41532433b3a886263a1673ef
system_accounts="mysql"
mysql_homedir="/var/lib/mysql"
lib32disabled=yes
CFLAGS="-D__STDC_ISO_10646__"
if [ "$CROSS_BUILD" ]; then
configure_args+=" -DHAVE_LLVM_LIBCPP_EXITCODE=1"
configure_args+=" -DHAVE_LLVM_LIBCPP_EXITCODE__TRYRUN_OUTPUT=0"
fi
pre_configure() {
# libressl major detection.
sed -i '/OPENSSL_MAJOR_VERSION/s/1/2/' cmake/ssl.cmake
sed -i 's/sys\/poll\.h/poll.h/' include/my_net.h
# We need some host binaries before starting cross compilation.
if [ "$CROSS_BUILD" ]; then
CC= CXX= CPP= LD= AR= AS= RANLIB= CFLAGS= CXXFLAGS= LDFLAGS= cmake .
make comp_err comp_sql gen_lex_hash gen_lex_token
mkdir -p bin.host
cp extra/comp_err bin.host
cp scripts/comp_sql bin.host
cp sql/gen_lex_hash bin.host
cp sql/gen_lex_token bin.host
make clean
rm CMakeCache.txt
fi
}
pre_build() {
if [ "$CROSS_BUILD" ]; then
cp bin.host/comp_err ${wrksrc}/extra
cp bin.host/comp_sql ${wrksrc}/scripts
cp bin.host/gen_lex_hash ${wrksrc}/sql
cp bin.host/gen_lex_token ${wrksrc}/sql
export PATH=${PATH}:${wrksrc}/extra:${wrksrc}/scripts:${wrksrc}/sql
fi
}
post_install() {
# Remove unneeded stuff.
rm -rf ${DESTDIR}/usr/{sql-bench,mysql-test,data}
rm -f ${DESTDIR}/usr/share/man/man1/mysql-test-run.pl.1
# Configuration file.
vinstall ${FILESDIR}/my.cnf 640 etc/mysql
# runit service
vsv mysqld
}
libmysqlclient_package() {
short_desc+=" - client library"
pkg_install() {
vmove "usr/lib/libmysqlclient*.so.*"
}
}
libmysqlclient-devel_package() {
depends="libmysqlclient>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/bin/mysql_config
vmove usr/share/man/man1/mysql_config.1
vmove usr/include
vmove "usr/lib/*.a"
vmove "usr/lib/*.so"
}
}
mysql-client_package() {
depends="perl"
short_desc+=" - database client binaries"
pkg_install() {
for f in innochecksum innotop myisam_ftdump mysql mysql_client_test \
mysql_client_test_embedded mysqldumpslow mysqlbinlog \
mysql_find_rows mysql_fix_extensions mysql_waitpid mysqlaccess \
mysqladmin mysqlanalyze mysqlbug mysqlcheck mysqldump \
mysqlimport mysqloptimize mysqlrepair mysqlreport mysqlshow \
mysqlslap mysqltest_embedded mysqlmanager mysqltest \
mysqlhotcopy mysql_upgrade mysql_zap; do
if [ -f ${DESTDIR}/usr/bin/${f} ]; then
vmove usr/bin/${f}
elif [ -f ${DESTDIR}/usr/sbin/${f} ]; then
vmove usr/sbin/${f}
fi
if [ -f ${DESTDIR}/usr/share/man/man1/${f}.1 ]; then
vmove usr/share/man/man1/${f}.1
elif [ -f ${DESTDIR}/usr/share/man/man8/${f}.8 ]; then
vmove usr/share/man/man8/${f}.8
fi
done
}
}