diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 89 |
1 files changed, 68 insertions, 21 deletions
@@ -1,11 +1,12 @@ # Maintainer: Muflone http://www.muflone.com/contacts/english/ +# Contributor: Francois Menning <f.menning@pm.me> # Contributor: Rustam Tsurik <rustam.tsurik@gmail.com> # Contributor: Andrea Scarpino <andrea@archlinux.org> # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> pkgname=('mysql' 'libmysqlclient' 'mysql-clients') pkgbase=mysql -pkgver=8.0.15 +pkgver=8.0.16 pkgrel=1 pkgdesc="Fast SQL database server, community edition" arch=('x86_64') @@ -14,19 +15,18 @@ makedepends=('openssl' 'zlib' 'cmake' 'systemd-tools' 'libaio' 'jemalloc' 'rapidjson' 'protobuf') license=('GPL') url="https://www.mysql.com/products/community/" -options=('!libtool' '!ccache') # Sorry but actually ccache is not supported source=("https://cdn.mysql.com/Downloads/MySQL-8.0/${pkgbase}-boost-${pkgver}.tar.gz" - "mysqld-post.sh" - "mysqld-tmpfile.conf" - "mysqld.service" "my-default.cnf" - "mysql-ld.so.conf") -sha256sums=('95dbdb54c3967feefb255b96458b089a601e4de238bcc1f328b066018ee47db0' - '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd' - '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd' - '50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556' - '3cc3ba4149fb2f9e823601b9a414ff5b28a2a52f20bc68c74cc0505cf2d1832d' - 'e1c23fa0971a13d998f2790379b68c475438d05b6d6f2691b99051dbf497567f') + "mysql-ld.so.conf" + "mysql.sysconfig" + "mysqld_service.patch" + "systemd-sysusers-tmpfiles.patch") +sha256sums=('7c936aa7bc9f4c462b24bade2e9abe1b3a6869ea19c46e78ec0a9b2a87a3d17f' + '6bc24ae510f6b6bbad6b3edda2d0028b29292937b482274a4c2fae335f4de328' + 'e1c23fa0971a13d998f2790379b68c475438d05b6d6f2691b99051dbf497567f' + '203dcd22fea668477ac7123dbd9909fae72d3d07f8855417a669a9c94db072ae' + '8fbedfc2c5fe271ed13217feeceeac00202d2cb135e4283eeee2f9a13d6251af' + '9e585631cfe95da9d18df6c64fca370c0aff2b2cda5dc29f694579dab9d9f561') build() { rm -rf build @@ -37,6 +37,7 @@ build() { -DCMAKE_AR=/usr/bin/gcc-ar \ -DCMAKE_RANLIB=/usr/bin/gcc-ranlib \ -DBUILD_CONFIG=mysql_release \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr \ -DSYSCONFDIR=/etc/mysql \ -DMYSQL_DATADIR=/var/lib/mysql \ @@ -53,18 +54,35 @@ build() { -DINSTALL_DOCDIR=share/mysql/docs \ -DINSTALL_SHAREDIR=share/mysql \ -DWITH_SYSTEM_LIBS=ON \ + -DWITH_SSL=system \ -DWITH_LIBWRAP=OFF \ - -DCMAKE_EXE_LINKER_FLAGS='-ljemalloc' \ + -DWITH_LTO=ON \ + -DWITH_JEMALLOC=ON \ + -DWITH_READLINE=ON \ + -DWITH_SYSTEMD=yes \ + -DWITH_UNIT_TESTS=OFF \ + -DPLUGIN_EXAMPLE=NO \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=ON \ + -DPLUGIN_FEDERATED=NO \ -DWITHOUT_FEDERATED_STORAGE_ENGINE=ON \ + -DPLUGIN_FEEDBACK=NO \ -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_C_LINK_FLAGS="${LDFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_CXX_LINK_FLAGS="${LDFLAGS}" \ + -DDEFAULT_CHARSET=utf8mb4 \ + -DDEFAULT_COLLATION=utf8mb4_unicode_ci \ -DWITH_BOOST="../${pkgname}-${pkgver}/boost" make } +check() { + cd build/mysql-test + + # Takes *really* long, so disabled by default. + # ./mtr --parallel=5 --mem --force --max-test-fail=0 +} + package_libmysqlclient(){ pkgdesc="MySQL client libraries" depends=('libsasl' 'zlib') @@ -80,6 +98,9 @@ package_libmysqlclient(){ 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" + install -m 700 -d "${pkgdir}/var/lib/mysql" + install -m 644 -D "${srcdir}/my-default.cnf" "${pkgdir}/etc/mysql/my.cnf.default" + install -m 644 -D "${srcdir}/${pkgbase}-${pkgver}/support-files/mysql.m4" "${pkgdir}/usr/share/aclocal/mysql.m4" for man in mysql_config do install -m 644 "${srcdir}/${pkgbase}-${pkgver}/man/${man}.1" "${pkgdir}/usr/share/man/man1/${man}.1" @@ -106,6 +127,7 @@ package_mysql-clients(){ rm "${pkgdir}/usr/bin/mysql_upgrade" rm "${pkgdir}/usr/bin/mysql_config_editor" rm "${pkgdir}/usr/bin/mysqlbinlog" + rm "${pkgdir}/usr/bin/mysqlpump" rm "${pkgdir}/usr/bin/mysql_secure_installation" rm "${pkgdir}/usr/bin/mysql_ssl_rsa_setup" rm "${pkgdir}/usr/bin/mysqltest" @@ -113,22 +135,20 @@ package_mysql-clients(){ package_mysql(){ pkgdesc="Fast SQL database server, community edition" - backup=('etc/mysql/my.cnf') + backup=("etc/mysql/my.cnf" + "etc/conf.d/${pkgname}.conf") install="${pkgbase}.install" depends=('mysql-clients' 'libsasl' 'zlib' 'jemalloc' 'libaio' 'libtirpc' 'icu' - 'lz4' 'libevent' 'protobuf') + 'lz4' 'libevent' 'protobuf' 'systemd-libs') conflicts=('mariadb') provides=("mariadb=${pkgver}" "mysql=${pkgver}") + optdepends=('perl-dbd-mysql: for mysqlhotcopy, mysql_convert_table_format and mysql_setpermission') options=('emptydirs') cd build make DESTDIR="${pkgdir}" install install -m 644 -D "${srcdir}/my-default.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/" install -m 755 -d "${pkgdir}/etc/ld.so.conf.d" install -m 644 -D "${srcdir}/mysql-ld.so.conf" "${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf" @@ -136,28 +156,33 @@ package_mysql(){ rm "${pkgdir}/usr/bin/mysql_config" rm "${pkgdir}/usr/lib/libmysqlclient.so" rm "${pkgdir}/usr/lib/libmysqlclient.so.21" - rm "${pkgdir}/usr/lib/libmysqlclient.so.21.0.15" + rm "${pkgdir}/usr/lib/libmysqlclient.so.21.0.16" rm "${pkgdir}/usr/lib/libmysqlservices.a" rm "${pkgdir}/usr/lib/mysql/plugin/authentication_ldap_sasl_client.so" rm -r "${pkgdir}/usr/include/" rm "${pkgdir}/usr/share/man/man1/mysql_config.1" + rm "${pkgdir}/usr/share/mysql/aclocal/mysql.m4" + rmdir "${pkgdir}/usr/share/mysql/aclocal/" # provided by mysql-clients rm "${pkgdir}/usr/bin/mysql" rm "${pkgdir}/usr/bin/mysqladmin" + rm "${pkgdir}/usr/bin/mysqlbinlog" rm "${pkgdir}/usr/bin/mysqlcheck" rm "${pkgdir}/usr/bin/mysqldump" rm "${pkgdir}/usr/bin/mysqlimport" - rm "${pkgdir}/usr/bin/mysqlpump" rm "${pkgdir}/usr/bin/mysqlshow" rm "${pkgdir}/usr/bin/mysqlslap" + rm "${pkgdir}/usr/bin/mysql_upgrade" rm "${pkgdir}/usr/share/man/man1/mysql.1" rm "${pkgdir}/usr/share/man/man1/mysqladmin.1" + rm "${pkgdir}/usr/share/man/man1/mysqlbinlog.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" + rm "${pkgdir}/usr/share/man/man1/mysql_upgrade.1" # not needed rm -r "${pkgdir}/usr/mysql-test" @@ -167,7 +192,29 @@ package_mysql(){ mv "${pkgdir}/usr/LICENSE.router" "${pkgdir}/usr/share/mysql/docs" mv "${pkgdir}/usr/README.router" "${pkgdir}/usr/share/mysql/docs" + # Create environment file + install -D -m 644 "${srcdir}/mysql.sysconfig" "${pkgdir}/etc/conf.d/${pkgname}.conf" + # Fix permissions chmod 755 "${pkgdir}/usr" + + # Move systemd files + mv "${pkgdir}/usr/usr/lib/systemd" "${pkgdir}/usr/lib/" + mv "${pkgdir}/usr/usr/lib/tmpfiles.d" "${pkgdir}/usr/lib/" + + # Cleanup + rmdir "${pkgdir}/usr/usr/lib" + rmdir "${pkgdir}/usr/usr" + rmdir "${pkgdir}/usr/var/lib/mysqlrouter" + rmdir "${pkgdir}/usr/var/lib" + rmdir "${pkgdir}/usr/var" + + # Arch Linux specific patches: + # * enable PrivateTmp for a little bit more security + # * force preloading jemalloc for memory management + # * fix path to our config + cd "${pkgdir}" + patch -Np1 -i "${srcdir}/mysqld_service.patch" + patch -Np1 -i "${srcdir}/systemd-sysusers-tmpfiles.patch" } |