diff options
author | Muflone | 2015-06-13 17:59:22 +0200 |
---|---|---|
committer | Muflone | 2015-06-13 17:59:22 +0200 |
commit | a1a0c03168f2b47d9e1fc3fbf3c98beef886f40c (patch) | |
tree | 2de362684398401371fe9139efaaad7d4c3ed513 | |
download | aur-a1a0c03168f2b47d9e1fc3fbf3c98beef886f40c.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 50 | ||||
-rw-r--r-- | PKGBUILD | 162 | ||||
-rw-r--r-- | mysql.install | 37 | ||||
-rwxr-xr-x | mysqld-post.sh | 8 | ||||
-rw-r--r-- | mysqld-tmpfile.conf | 1 | ||||
-rw-r--r-- | mysqld.service | 16 |
6 files changed, 274 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..37e9fb2edd01 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,50 @@ +pkgbase = mysql55 + pkgdesc = Fast SQL database server, community edition v5.5 + pkgver = 5.5.43 + pkgrel = 1 + url = https://www.mysql.com/products/community/ + arch = i686 + arch = x86_64 + license = GPL + makedepends = openssl + makedepends = zlib + makedepends = cmake + makedepends = systemd-tools + makedepends = libaio + options = !libtool + source = https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.43.tar.gz + source = mysqld-post.sh + source = mysqld-tmpfile.conf + source = mysqld.service + sha256sums = 43d3df79e5c839a2749deb6e056a4589e49c903e09034c18653ec56e6e4774cd + sha256sums = 368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd + sha256sums = 2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd + sha256sums = 50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556 + +pkgname = mysql55 + pkgdesc = Fast SQL database server, community edition v5.5 + install = mysql.install + depends = mysql-clients55 + depends = openssl + depends = libaio + provides = mariadb=5.5.43 + provides = mysql=5.5.43 + conflicts = mariadb + options = emptydirs + backup = etc/mysql/my.cnf + +pkgname = libmysqlclient55 + pkgdesc = MySQL client libraries, v5.5 + depends = openssl + provides = libmariadbclient=5.5.43 + provides = libmysqlclient=5.5.43 + conflicts = libmariadbclient + +pkgname = mysql-clients55 + pkgdesc = MySQL client tools, v5.5 + depends = libmysqlclient55 + depends = openssl + provides = mariadb-clients=5.5.43 + provides = mysql-clients=5.5.43 + conflicts = mariadb-clients + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..abb36f56b7e7 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,162 @@ +# Maintainer: Muflone http://www.muflone.com/contacts/english/ +# Contributor: Rustam Tsurik <rustam.tsurik@gmail.com> +# Contributor: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Douglas Soares de Andrade <douglas@archlinux.org> + +pkgname=('mysql55' 'libmysqlclient55' 'mysql-clients55') +_pkgname=mysql +pkgbase=mysql55 +pkgver=5.5.43 +pkgrel=1 +pkgdesc="Fast SQL database server, community edition v5.5" +arch=('i686' 'x86_64') +makedepends=('openssl' 'zlib' 'cmake' 'systemd-tools' 'libaio') +license=('GPL') +url="https://www.mysql.com/products/community/" +options=('!libtool') +source=("https://dev.mysql.com/get/Downloads/MySQL-5.5/${_pkgname}-${pkgver}.tar.gz" + "mysqld-post.sh" + "mysqld-tmpfile.conf" + "mysqld.service") +sha256sums=('43d3df79e5c839a2749deb6e056a4589e49c903e09034c18653ec56e6e4774cd' + '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd' + '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd' + '50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556') + +build() { + rm -rf build + mkdir build + cd build + + cmake "../${_pkgname}-${pkgver}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -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_READLINE=ON \ + -DWITH_ZLIB=system \ + -DWITH_SSL=system \ + -DWITH_LIBWRAP=OFF \ + -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \ + -DWITH_EXTRA_CHARSETS=complex \ + -DWITH_EMBEDDED_SERVER=ON \ + -DWITH_INNOBASE_STORAGE_ENGINE=ON \ + -DWITH_PARTITION_STORAGE_ENGINE=ON \ + -DWITH_ARCHIVE_STORAGE_ENGINE=ON \ + -DWITH_BLACKHOLE_STORAGE_ENGINE=ON \ + -DWITHOUT_EXAMPLE_STORAGE_ENGINE=ON \ + -DWITHOUT_FEDERATED_STORAGE_ENGINE=ON \ + -DCMAKE_C_FLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \ + -DCMAKE_CXX_FLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" + make +} + +package_libmysqlclient55(){ + pkgdesc="MySQL client libraries, v5.5" + depends=('openssl') + conflicts=('libmariadbclient') + provides=("libmariadbclient=${pkgver}" "libmysqlclient=${pkgver}") + + cd build + for dir in include libmysql libmysqld libservices + do + make -C "${dir}" DESTDIR="${pkgdir}" install + done + + install -m 755 -d "${pkgdir}/usr/bin" + install -m 755 scripts/mysql_config "${pkgdir}/usr/bin/" + install -m 755 -d "${pkgdir}/usr/share/man/man1" + for man in mysql_config mysql_client_test_embedded mysqltest_embedded + do + install -m 644 "${srcdir}/${_pkgname}-${pkgver}/man/${man}.1" "${pkgdir}/usr/share/man/man1/${man}.1" + done +} + +package_mysql-clients55(){ + pkgdesc="MySQL client tools, v5.5" + depends=('libmysqlclient55' 'openssl') + conflicts=('mariadb-clients') + provides=("mariadb-clients=${pkgver}" "mysql-clients=${pkgver}") + + 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 + do + install -m644 "${srcdir}/${_pkgname}-${pkgver}/man/${man}.1" "${pkgdir}/usr/share/man/man1/${man}.1" + done + + # provided by mysql + rm "${pkgdir}/usr/bin/mysql_plugin" + rm "${pkgdir}/usr/bin/mysql_upgrade" + rm "${pkgdir}/usr/bin/mysqlbinlog" + rm "${pkgdir}/usr/bin/mysqltest" +} + +package_mysql55(){ + pkgdesc="Fast SQL database server, community edition v5.5" + backup=('etc/mysql/my.cnf') + install="${_pkgname}.install" + depends=('mysql-clients55' 'openssl' 'libaio') + conflicts=('mariadb') + provides=("mariadb=${pkgver}" "mysql=${pkgver}") + options=('emptydirs') + + cd build + make DESTDIR="${pkgdir}" install + + install -m 644 -D "${pkgdir}/usr/share/mysql/my-medium.cnf" "${pkgdir}/etc/mysql/my.cnf" + install -m 755 -D "${srcdir}/mysqld-post.sh" "${pkgdir}/usr/bin/mysqld-post" + install -m 644 -D "${srcdir}/mysqld-tmpfile.conf" "${pkgdir}/usr/lib/tmpfiles.d/mysqld.conf" + install -m 755 -d "${pkgdir}/usr/lib/systemd/system" + install -m 644 -D "${srcdir}/mysqld.service" "${pkgdir}/usr/lib/systemd/system/" + + # provided by libmysqlclient + rm "${pkgdir}/usr/bin/mysql_config" + rm "${pkgdir}/usr/bin/mysql_client_test_embedded" + rm "${pkgdir}/usr/bin/mysqltest_embedded" + rm "${pkgdir}"/usr/lib/libmysql* + rm -r "${pkgdir}/usr/include/" + rm "${pkgdir}/usr/share/man/man1/mysql_config.1" + rm "${pkgdir}/usr/share/man/man1/mysql_client_test_embedded.1" + rm "${pkgdir}/usr/share/man/man1/mysqltest_embedded.1" + + # provided by mysql-clients + rm "${pkgdir}/usr/bin/mysql" + rm "${pkgdir}/usr/bin/mysqladmin" + rm "${pkgdir}/usr/bin/mysqlcheck" + rm "${pkgdir}/usr/bin/mysqldump" + rm "${pkgdir}/usr/bin/mysqlimport" + rm "${pkgdir}/usr/bin/mysqlshow" + rm "${pkgdir}/usr/bin/mysqlslap" + rm "${pkgdir}/usr/share/man/man1/mysql.1" + rm "${pkgdir}/usr/share/man/man1/mysqladmin.1" + rm "${pkgdir}/usr/share/man/man1/mysqlcheck.1" + rm "${pkgdir}/usr/share/man/man1/mysqldump.1" + rm "${pkgdir}/usr/share/man/man1/mysqlimport.1" + rm "${pkgdir}/usr/share/man/man1/mysqlshow.1" + rm "${pkgdir}/usr/share/man/man1/mysqlslap.1" + + # not needed + rm -r "${pkgdir}/usr/data" + rm -r "${pkgdir}/usr/mysql-test" + rm -r "${pkgdir}/usr/sql-bench" + rm "${pkgdir}/usr/share/man/man1/mysql-test-run.pl.1" +} + diff --git a/mysql.install b/mysql.install new file mode 100644 index 000000000000..907e98656dd7 --- /dev/null +++ b/mysql.install @@ -0,0 +1,37 @@ +if [[ $(command -v my_print_defaults >/dev/null 2>&1) ]]; then + datadir=$(my_print_defaults mysqld | sed -n "s/^--datadir=//p") +fi +[[ -z $datadir ]] && datadir=/var/lib/mysql + +post_install(){ + groupadd -g 89 mysql &>/dev/null + useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null + + if [[ ! -e $datadir ]]; then + install -dm700 $datadir + usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=$datadir + chown -R mysql:mysql var/lib/mysql &>/dev/null + fi + + usr/bin/systemd-tmpfiles --create mysqld.conf +} + +post_upgrade(){ + getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null + getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null + + if [ "$(vercmp $2 5.5)" -lt 0 ]; then + echo " >> " + echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it." + echo " >> " + fi +} + +post_remove(){ + if getent passwd mysql >/dev/null 2>&1; then + userdel mysql + fi + if getent group mysql >/dev/null 2>&1; then + groupdel mysql + fi +} diff --git a/mysqld-post.sh b/mysqld-post.sh new file mode 100755 index 000000000000..c4ac181710d4 --- /dev/null +++ b/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/mysqld-tmpfile.conf b/mysqld-tmpfile.conf new file mode 100644 index 000000000000..6883dc798881 --- /dev/null +++ b/mysqld-tmpfile.conf @@ -0,0 +1 @@ +d /run/mysqld 0755 mysql mysql - diff --git a/mysqld.service b/mysqld.service new file mode 100644 index 000000000000..a6fc8cf889ad --- /dev/null +++ b/mysqld.service @@ -0,0 +1,16 @@ +[Unit] +Description=MySQL 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 |