mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
189 lines
6.5 KiB
Bash
189 lines
6.5 KiB
Bash
# $Id$
|
|
# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
|
|
|
|
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
|
# - drop numactl makedepend, don't build with NUMA
|
|
# - disable epoll on aarch64
|
|
|
|
pkgbase=percona-server
|
|
pkgname=('libperconaserverclient' 'percona-server-clients' 'percona-server')
|
|
pkgver=5.7.21_21
|
|
_boost_ver=1.59.0
|
|
_pkgver=${pkgver/_/-}
|
|
_myver=${pkgver/_rel*}
|
|
pkgrel=2
|
|
arch=('x86_64')
|
|
makedepends=('cmake' 'zlib' 'lz4' 'zstd' 'libaio' 'systemd-tools' 'pam' 'jemalloc' 'openssl' 'rpcsvc-proto')
|
|
license=('GPL')
|
|
url="https://www.percona.com/software/mysql-database/percona-server"
|
|
source=("https://www.percona.com/downloads/Percona-Server-${pkgver%.*_*}/Percona-Server-$_pkgver/source/tarball/percona-server-$_pkgver.tar.gz"
|
|
"http://jenkins.percona.com/downloads/boost/boost_${_boost_ver//./_}.tar.gz"
|
|
'my.cnf'
|
|
'mysql-user.conf'
|
|
'rocksdb-systemlibs.patch'
|
|
'mysql-tirpc.patch')
|
|
sha256sums=('8f9b3723741ad8f7b4d1d9366199aa3e7bb081b46130260c13fe9c14302d6b6b'
|
|
'47f11c8844e579d02691a607fbd32540104a9ac7a2534a8ddaef50daf502baac'
|
|
'ae451839c368f0db25a63bb0a6a890194897a8e74818bd4245140933c29e5f83'
|
|
'e638a2657085f15b6728f43c1fd6aa551b27608fbf6b435e33afd3606a0cfb0e'
|
|
'fcc3bea0982cda6cc35637d448a46924eccdfeb4c4da0634a26c9d190cf50fe4'
|
|
'fa3e4b3e6fab751fe6857e994e72a1ba951b36d27c8a1e59a7263d3f60a13c28')
|
|
|
|
prepare() {
|
|
cd $pkgbase-$_pkgver
|
|
rm -v sql/sql_yacc.{cc,h}
|
|
|
|
sed 's/${fullhostname}/"archbuild"/' -i storage/tokudb/PerconaFT/cmake_modules/TokuSetupCTest.cmake
|
|
sed 's/-Werror//g' -i \
|
|
storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake \
|
|
plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/CMakeLists.txt
|
|
|
|
patch -p1 -i "$srcdir"/rocksdb-systemlibs.patch
|
|
patch -p1 -i "$srcdir"/mysql-tirpc.patch
|
|
}
|
|
|
|
build() {
|
|
# rm -rf build
|
|
mkdir -p build
|
|
cd build
|
|
|
|
[[ $CARCH == "aarch64" ]] && CONFIG="-DHAVE_SYS_EPOLL_H=0"
|
|
|
|
cmake ../$pkgbase-$_pkgver \
|
|
-DBUILD_CONFIG=mysql_release \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DSYSCONFDIR=/etc/mysql \
|
|
-DMYSQL_DATADIR=/var/lib/mysql \
|
|
-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \
|
|
-DDEFAULT_CHARSET=utf8mb4 \
|
|
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
|
|
-DENABLED_LOCAL_INFILE=ON \
|
|
-DINSTALL_INFODIR=share/doc/percona-server \
|
|
-DINSTALL_DOCREADMEDIR=share/doc/percona-server \
|
|
-DINSTALL_DOCDIR=share/doc/percona-server \
|
|
-DINSTALL_MANDIR=share/man \
|
|
-DINSTALL_PLUGINDIR=lib/mysql/plugin \
|
|
-DINSTALL_SCRIPTDIR=bin \
|
|
-DINSTALL_INCLUDEDIR=include/perconaserver \
|
|
-DINSTALL_SUPPORTFILESDIR=share/mysql \
|
|
-DINSTALL_MYSQLSHAREDIR=share/mysql \
|
|
-DWITH_ZLIB=system \
|
|
-DWITH_LZ4=system \
|
|
-DWITH_SSL=system \
|
|
-DWITH_LIBWRAP=OFF \
|
|
-DWITH_MECAB=OFF \
|
|
-DWITH_PAM=ON \
|
|
-DWITH_EXTRA_CHARSETS=complex \
|
|
-DWITH_EMBEDDED_SERVER=ON \
|
|
-DWITH_EMBEDDED_SHARED_LIBRARY=ON \
|
|
-DWITH_INNODB_MEMCACHED=ON \
|
|
-DWITH_ARCHIVE_STORAGE_ENGINE=ON \
|
|
-DWITH_BLACKHOLE_STORAGE_ENGINE=ON \
|
|
-DWITH_FEDERATED_STORAGE_ENGINE=ON \
|
|
-DWITH_ROCKSDB=ON \
|
|
-DTOKU_DEBUG_PARANOID=OFF \
|
|
-DWITH_VALGRIND=OFF \
|
|
-DUSE_VALGRIND=OFF \
|
|
-DDEBUG_EXTNAME=OFF \
|
|
-DBUILD_TESTING=OFF \
|
|
-DWITH_UNIT_TESTS=OFF \
|
|
-DUSE_GTAGS=OFF \
|
|
-DUSE_CTAGS=OFF \
|
|
-DUSE_ETAGS=OFF \
|
|
-DUSE_CSCOPE=OFF \
|
|
-DTOKUDB_BACKUP_PLUGIN_VERSION=$_pkgver \
|
|
-DWITH_SYSTEMD=1 \
|
|
-DWITH_SCALABILITY_METRICS=ON \
|
|
-DCMAKE_EXE_LINKER_FLAGS='-ljemalloc' \
|
|
-DCMAKE_C_FLAGS="-fPIC $CFLAGS -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer -fno-delete-null-pointer-checks -Wno-dev" \
|
|
-DCMAKE_CXX_FLAGS="-fPIC $CXXFLAGS -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-delete-null-pointer-checks -Wno-dev -Wno-error=nonnull-compare -Wno-deprecated-declarations -Wno-misleading-indentation -Wno-maybe-uninitialized" \
|
|
-DWITH_MYSQLD_LDFLAGS="-pie ${LDFLAGS},-z,now" \
|
|
-DWITH_BOOST="../boost_${_boost_ver//./_}" \
|
|
-DWITH_NUMA=OFF \
|
|
$CONFIG
|
|
|
|
make
|
|
}
|
|
|
|
package_libperconaserverclient() {
|
|
pkgdesc='Percona Server client libraries'
|
|
depends=('zlib' 'openssl')
|
|
|
|
cd build
|
|
for dir in include libmysql libmysqld libservices; do
|
|
make -C $dir DESTDIR="$pkgdir" install
|
|
done
|
|
|
|
# Conflicting files with libmariadbclient
|
|
rm -rf "$pkgdir"/usr/lib/{libmysql*,mysql}
|
|
|
|
install -Dm755 scripts/mysql_config "$pkgdir"/usr/bin/perconaserver_config
|
|
install -Dm644 "$srcdir"/$pkgbase-$_pkgver/man/mysql_config.1 "$pkgdir"/usr/share/man/man1/perconaserver_config.1
|
|
|
|
install -D -m0644 scripts/perconaserverclient.pc "$pkgdir"/usr/lib/pkgconfig/perconaserverclient.pc
|
|
install -D -m0644 "$srcdir"/$pkgbase-$_pkgver/support-files/mysql.m4 "$pkgdir"/usr/share/aclocal/perconaserverclient.m4
|
|
}
|
|
|
|
package_percona-server-clients() {
|
|
pkgdesc='Percona Server client tools'
|
|
depends=('libperconaserverclient' 'zlib' 'lz4' 'jemalloc' 'readline')
|
|
conflicts=('mysql-clients')
|
|
provides=("mysql-clients=$_myver" "mariadb-clients=$_myver")
|
|
|
|
cd build
|
|
make -C client DESTDIR="$pkgdir" install
|
|
|
|
# install man pages
|
|
install -d "$pkgdir"/usr/share/man/man1
|
|
for man in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap mysqlpump; do
|
|
install -m644 "$srcdir"/$pkgbase-$_pkgver/man/$man.1 "$pkgdir"/usr/share/man/man1/$man.1
|
|
done
|
|
|
|
# provided by percona-server
|
|
rm "$pkgdir"/usr/bin/mysql{_plugin,_upgrade,binlog,test,_config_editor,_install_db,_secure_installation,_ssl_rsa_setup}
|
|
}
|
|
|
|
package_percona-server() {
|
|
pkgdesc='Drop-in replacement for MySQL that provides improved performance, diagnostics, instrumentation and TokuDB storage engine'
|
|
backup=('etc/mysql/my.cnf')
|
|
depends=('libaio' 'systemd-tools' 'pam' 'jemalloc' 'lz4' 'zstd' 'openssl' 'libtirpc')
|
|
optdepends=('perl-dbd-mysql')
|
|
conflicts=('mysql')
|
|
provides=("mysql=$_myver" "mariadb=$_myver")
|
|
options=('emptydirs')
|
|
|
|
cd build
|
|
make DESTDIR="$pkgdir" install
|
|
|
|
install -Dm644 ../my.cnf "$pkgdir"/etc/mysql/my.cnf
|
|
install -Dm644 ../mysql-user.conf "$pkgdir"/usr/lib/sysusers.d/mysql.conf
|
|
|
|
cd "$pkgdir"
|
|
mv usr/usr/lib/* usr/lib
|
|
rm -rf usr/usr
|
|
|
|
# Move documentation
|
|
if [ -f usr/PATENTS ]; then
|
|
mv usr/{PATENTS,README.md} usr/share/doc/$pkgname/
|
|
rm usr/COPYING.*
|
|
fi
|
|
|
|
# provided by libperconaserverclient
|
|
rm usr/bin/mysql_config
|
|
rm usr/lib/lib{mysql,perconaserver}*
|
|
rm -r usr/include/
|
|
rm usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1
|
|
rm -r usr/share/aclocal usr/lib/pkgconfig
|
|
|
|
# provided by percona-server-clients
|
|
rm usr/bin/mysql{,admin,check,dump,import,show,slap,pump}
|
|
rm usr/share/man/man1/mysql{,admin,check,dump,import,show,slap,pump}.1
|
|
|
|
# deprecated/unused
|
|
rm usr/bin/replace
|
|
rm usr/share/man/man1/replace.1
|
|
|
|
# not needed
|
|
rm -r usr/mysql-test
|
|
rm usr/share/man/man1/mysql-test-run.pl.1
|
|
}
|