summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMuflone2015-06-13 17:59:22 +0200
committerMuflone2015-06-13 17:59:22 +0200
commita1a0c03168f2b47d9e1fc3fbf3c98beef886f40c (patch)
tree2de362684398401371fe9139efaaad7d4c3ed513
downloadaur-a1a0c03168f2b47d9e1fc3fbf3c98beef886f40c.tar.gz
Initial import
-rw-r--r--.SRCINFO50
-rw-r--r--PKGBUILD162
-rw-r--r--mysql.install37
-rwxr-xr-xmysqld-post.sh8
-rw-r--r--mysqld-tmpfile.conf1
-rw-r--r--mysqld.service16
6 files changed, 274 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 00000000000..37e9fb2edd0
--- /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 00000000000..abb36f56b7e
--- /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 00000000000..907e98656dd
--- /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 00000000000..c4ac181710d
--- /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 00000000000..6883dc79888
--- /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 00000000000..a6fc8cf889a
--- /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