From 3f4195d6844f8a4417dceb4188b1ddb3649d111d Mon Sep 17 00:00:00 2001 From: Juan RP Date: Mon, 23 Sep 2013 16:26:00 +0200 Subject: [PATCH] New package: mariadb-5.5.33 (close #48). XXX not cross compilable! --- srcpkgs/libmariadbclient | 1 + srcpkgs/libmariadbclient-devel | 1 + srcpkgs/mariadb-client | 1 + srcpkgs/mariadb/INSTALL | 8 ++ srcpkgs/mariadb/files/mysqld-post.sh | 8 ++ srcpkgs/mariadb/files/mysqld.service | 16 +++ srcpkgs/mariadb/files/mysqld.tmpfiles | 1 + srcpkgs/mariadb/template | 139 ++++++++++++++++++++++++++ 8 files changed, 175 insertions(+) create mode 120000 srcpkgs/libmariadbclient create mode 120000 srcpkgs/libmariadbclient-devel create mode 120000 srcpkgs/mariadb-client create mode 100644 srcpkgs/mariadb/INSTALL create mode 100644 srcpkgs/mariadb/files/mysqld-post.sh create mode 100644 srcpkgs/mariadb/files/mysqld.service create mode 100644 srcpkgs/mariadb/files/mysqld.tmpfiles create mode 100644 srcpkgs/mariadb/template diff --git a/srcpkgs/libmariadbclient b/srcpkgs/libmariadbclient new file mode 120000 index 00000000000..45f92cdb790 --- /dev/null +++ b/srcpkgs/libmariadbclient @@ -0,0 +1 @@ +mariadb \ No newline at end of file diff --git a/srcpkgs/libmariadbclient-devel b/srcpkgs/libmariadbclient-devel new file mode 120000 index 00000000000..45f92cdb790 --- /dev/null +++ b/srcpkgs/libmariadbclient-devel @@ -0,0 +1 @@ +mariadb \ No newline at end of file diff --git a/srcpkgs/mariadb-client b/srcpkgs/mariadb-client new file mode 120000 index 00000000000..45f92cdb790 --- /dev/null +++ b/srcpkgs/mariadb-client @@ -0,0 +1 @@ +mariadb \ No newline at end of file diff --git a/srcpkgs/mariadb/INSTALL b/srcpkgs/mariadb/INSTALL new file mode 100644 index 00000000000..f6506edc7d6 --- /dev/null +++ b/srcpkgs/mariadb/INSTALL @@ -0,0 +1,8 @@ +# *-*-shell-*-* +# +case ${ACTION} in +post) + usr/bin/mysql_install_db --user=mysql --basedir=/usr + chown -R mysql:mysql var/lib/mysql + ;; +esac diff --git a/srcpkgs/mariadb/files/mysqld-post.sh b/srcpkgs/mariadb/files/mysqld-post.sh new file mode 100644 index 00000000000..c4ac181710d --- /dev/null +++ b/srcpkgs/mariadb/files/mysqld-post.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +while true; do + response=$(/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1) && break + echo "$response" | grep -q "mysqld is alive" && break + echo "$response" | grep -q "Access denied for user" && break + sleep 1 +done diff --git a/srcpkgs/mariadb/files/mysqld.service b/srcpkgs/mariadb/files/mysqld.service new file mode 100644 index 00000000000..dd65511d7b7 --- /dev/null +++ b/srcpkgs/mariadb/files/mysqld.service @@ -0,0 +1,16 @@ +[Unit] +Description=MariaDB database server +After=syslog.target + +[Service] +User=mysql +Group=mysql + +ExecStart=/usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid +ExecStartPost=/usr/bin/mysqld-post + +Restart=always +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/srcpkgs/mariadb/files/mysqld.tmpfiles b/srcpkgs/mariadb/files/mysqld.tmpfiles new file mode 100644 index 00000000000..6883dc79888 --- /dev/null +++ b/srcpkgs/mariadb/files/mysqld.tmpfiles @@ -0,0 +1 @@ +d /run/mysqld 0755 mysql mysql - diff --git a/srcpkgs/mariadb/template b/srcpkgs/mariadb/template new file mode 100644 index 00000000000..8d912bedec9 --- /dev/null +++ b/srcpkgs/mariadb/template @@ -0,0 +1,139 @@ +# Template file for 'mariadb' +pkgname=mariadb +version=5.5.33 +revision=1 +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=/usr/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_EMBEDDED_SERVER=ON -DWITH_ARCHIVE_STORAGE_ENGINE=1 + -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 + -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_TOKUDB_STORAGE_ENGINE=1 + -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 + -DWITHOUT_PBXT_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=complex + -DSTACK_DIRECTION=1" +hostmakedepends="perl cmake bison" +makedepends="zlib-devel ncurses-devel openssl-devel readline-devel" +short_desc="Fast SQL database server, drop-in replacement for MySQL" +maintainer="Juan RP " +homepage="http://mariadb.org/" +license="GPL-2" +distfiles="http://mirrors.supportex.net/$pkgname/$pkgname-$version/kvm-tarbake-jaunty-x86/$pkgname-$version.tar.gz" +checksum=233251494242e7c964523f834e513e624728f2c2602ada0eb717aaff777ac546 + +if [ "$CROSS_BUILD" ]; then + hostmakedepends+=" ncurses-devel" +fi + +pre_configure() { + # We need some host binaries before starting cross compilation. + if [ "$CROSS_BUILD" ]; then + # Set sysroot and host. + sed -e "s,enable-static,& --sysroot=$XBPS_CROSS_BASE --host=$XBPS_CROSS_TRIPLET," \ + -i storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake + sed -e "s,enable-cc-silence\",& \"--host=$XBPS_CROSS_TRIPLET\"," \ + -i cmake/jemalloc.cmake + # XXX still broken: jemalloc configure execs host bins. + CC= CXX= CPP= LD= AR= AS= RANLIB= CFLAGS= CXXFLAGS= LDFLAGS= cmake . + make comp_err comp_sql gen_lex_hash + mkdir bin.host + cp extra/comp_err bin.host + cp scripts/comp_sql bin.host + cp sql/gen_lex_hash 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 + export PATH=${PATH}:${wrksrc}/extra:${wrksrc}/scripts:${wrksrc}/sql + fi + export LD_LIBRARY_PATH=${wrksrc}/build/storage/tokudb/ft-index/portability +} + +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. + install -Dm644 ${DESTDIR}/usr/share/mysql/my-medium.cnf ${DESTDIR}/etc/mysql/my.cnf + + # systemd service. + vinstall ${FILESDIR}/mysqld.service 644 usr/lib/systemd/system + vinstall ${FILESDIR}/mysqld-post.sh 755 usr/lib/systemd/scripts mysqld-post + vinstall ${FILESDIR}/mysqld.tmpfiles 644 usr/lib/tmpfiles.d mysqld.conf +} + +libmariadbclient_package() { + short_desc+=" - client library" + provides="libmysqlclient-${version}_${revision}" + replaces="libmysqlclient>=0" + pkg_install() { + vmove "usr/lib/libmysqlclient*.so.*" + } +} + +libmariadbclient-devel_package() { + depends="libmariadbclient>=${version}_${revision}" + provides="libmysqlclient-devel-${version}_${revision}" + replaces="libmysqlclient-devel>=0" + short_desc+=" - client 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" + } +} + +mariadb-client_package() { + depends="perl" + provides="mysql-client-${version}_${revision}" + replaces="mysql-client>=0" + short_desc=+" - 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 + } +} + +mariadb_package() { + depends="shadow mariadb-client" + provides="mysql-${version}_${revision}" + replaces="mysql>=0" + conf_files="/etc/mysql/my.cnf" + systemd_services="mysqld.service on" + system_accounts="mysql" + mysqld_homedir="/var/lib/mysql" + pkg_install() { + vmove all + } +}