diff options
Diffstat (limited to '')
-rwxr-xr-x | source/ap/mariadb/mariadb.SlackBuild (renamed from source/ap/mysql/mysql.SlackBuild) | 170 |
1 files changed, 69 insertions, 101 deletions
diff --git a/source/ap/mysql/mysql.SlackBuild b/source/ap/mariadb/mariadb.SlackBuild index 6690c0f5e..7ba019593 100755 --- a/source/ap/mysql/mysql.SlackBuild +++ b/source/ap/mariadb/mariadb.SlackBuild @@ -1,6 +1,7 @@ #!/bin/sh -# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2008, 2009, 2010, 2012, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2011, 2012, 2013 Heinz Wiesinger, Amsterdam, The Netherlands # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,12 +23,28 @@ # Build and install MySQL on Slackware # by: David Cantrell <david@slackware.com> -# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com> +# MariaDB conversion by: Heinz Wiesinger <pprkut@liwjatan.at> +# Also maintained by: Patrick Volkerding <volkerdi@slackware.com> - -VERSION=${VERSION:-$(echo mysql-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +PKGNAM=mariadb +VERSION=${VERSION:-$(echo ${PKGNAM}-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-1} +# To reduce the package size, the embedded server my be omitted. Currently +# only amarok uses this. To build without embedded support, set this to NO. +EMBEDDED=${EMBEDDED:-YES} + +# Add a description tag to the $BUILD. This is used by +# "build_embedded_package.sh" to mark packages containing the embedded server, +# but can optionally be used with any kind of custom tag desired. +TAG=${TAG:-} + +# Don't keep the large static libraries by default: +KEEPSTATIC=${KEEPSTATIC:-NO} + +# Don't keep the test suite by default: +KEEPTESTS=${KEEPTESTS:-NO} + # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -41,28 +58,25 @@ fi NUMJOBS=${NUMJOBS:-" -j7 "} CWD=$(pwd) TMP=${TMP:-/tmp} -PKG=$TMP/package-mysql +PKG=$TMP/package-${PKGNAM} if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" LIBDIRSUFFIX="" -elif [ "$ARCH" = "s390" ]; then - SLKCFLAGS="-O2" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" LIBDIRSUFFIX="64" -else - SLKCFLAGS="-O2" - LIBDIRSUFFIX="" fi rm -rf $PKG mkdir -p $TMP $PKG cd $TMP -rm -rf mysql-$VERSION -tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1 -cd mysql-$VERSION +rm -rf ${PKGNAM}-$VERSION +tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1 +cd ${PKGNAM}-$VERSION if ls $CWD/*.diff.gz 1> /dev/null 2> /dev/null ; then for patch in $CWD/*.diff.gz ; do @@ -79,10 +93,9 @@ find . \ mkdir build cd build -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \ -CXX=gcc \ cmake \ + -DCMAKE_C_FLAGS="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \ -DBUILD_CONFIG=mysql_release \ -DFEATURE_SET="community" \ -DINSTALL_LAYOUT="RPM" \ @@ -93,129 +106,84 @@ cmake \ -DINSTALL_MYSQLSHAREDIR=share/mysql \ -DINSTALL_SQLBENCHDIR= \ -DINSTALL_MYSQLTESTDIR=mysql-test \ - -DINSTALL_INFODIR=info \ -DINSTALL_MANDIR=man \ -DINSTALL_PLUGINDIR="lib${LIBDIRSUFFIX}/mysql/plugin" \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ -DINSTALL_MYSQLDATADIR="/var/lib/mysql" \ + -DINSTALL_DOCREADMEDIR="doc/${PKGNAM}-$VERSION" \ + -DINSTALL_DOCDIR="doc/${PKGNAM}-$VERSION" \ -DMYSQL_DATADIR="/var/lib/mysql" \ -DMYSQL_UNIX_ADDR="/var/run/mysql/mysql.sock" \ -DWITH_EXTRA_CHARSETS=complex \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=ON \ - -DWITH_EMBEDDED_SERVER=OFF \ + -DWITH_EMBEDDED_SERVER=${EMBEDDED} \ -DWITH_READLINE=ON \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ + -DUSE_ARIA_FOR_TMP_TABLES=ON \ + -DMANUFACTURER="Slackware" \ .. make $NUMJOBS || make || exit 1 make install DESTDIR=$PKG -# Install sample configuration files: -mkdir -p $PKG/etc/mysql -cp support-files/my-*.cnf $PKG/etc/mysql - -# Move mysqlaccess.conf to a more proper place -mv $PKG/usr/bin/mysqlaccess.conf $PKG/etc/mysqlaccess.conf.new -chmod 644 $PKG/etc/mysqlaccess.conf.new - # Leave build directory: cd .. -# install additional headers needed for building external engine plugins: -mkdir -p $PKG/usr/include/mysql/private/atomic - -install -m 644 regex/my_regex.h $PKG/usr/include/mysql/private/ - -for i in sql include; do - for j in $i/*.h; do - install -m 644 $j $PKG/usr/include/mysql/private/ - done -done +if [ "$KEEPSTATIC" = "NO" ]; then + # Remove large static libraries: + rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient.a + rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient_r.a + rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqld.a +fi -for i in include/atomic/*.h; do - install -m 644 $i $PKG/usr/include/mysql/private/atomic/ -done +if [ "$KEEPTESTS" = "NO" ]; then + # Do not include the test suite: + rm -rf $PKG/usr/mysql-test +fi -find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +# The ./configure option to omit this has gone away, so we'll omit it +# the old-fashioned way. It's all in the source tarball if you need it. +rm -rf $PKG/usr/sql-bench -# Install docs -mkdir -p $PKG/usr/doc/mysql-$VERSION/Docs -cp -a \ - BUILD* COPYING* EXCEPTIONS* INSTALL-SOURCE README* VERSION \ - $PKG/usr/doc/mysql-$VERSION -( cd Docs - # Seems most of the Docs/* are gone, but we'll leave the cp stuff - # in case it returns. - cp -a INFO_SRC INSTALL-BINARY *.html *.txt Flags \ - $PKG/usr/doc/mysql-$VERSION/Docs ) -## Too large to justify since the .html version is right there: -#rm $PKG/usr/doc/mysql-$VERSION/Docs/manual.txt -find $PKG/usr/doc/mysql-$VERSION -type f -exec chmod 0644 {} \; - -# This is the directory where databases are stored: +# This is the directory where databases are stored mkdir -p $PKG/var/lib/mysql chown mysql.mysql $PKG/var/lib/mysql chmod 0750 $PKG/var/lib/mysql -# This is where the socket is stored: +# This is where the socket is stored mkdir -p $PKG/var/run/mysql chown mysql.mysql $PKG/var/run/mysql chmod 0755 $PKG/var/run/mysql -# Do not package the test suite: -rm -rf $PKG/usr/mysql-test - -# More unpackaged things: -rm -f $PKG/usr/info/dir -rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient.a -rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient_r.* -( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf libmysqlclient.so libmysqlclient_r.so ) - # Add init script: mkdir -p $PKG/etc/rc.d -# This is intentionally chmod 644. +# This is installed chmod 644 so that the server does not run by default. zcat $CWD/rc.mysqld.gz > $PKG/etc/rc.d/rc.mysqld.new +rm -rf $PKG/etc/init.d -# Install script: -mkdir -p $PKG/install -zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh -cat $CWD/slack-desc > $PKG/install/slack-desc +# Install mysqlaccess.conf +install -m 644 scripts/mysqlaccess.conf $PKG/etc/mysqlaccess.conf.new -# Compress and link manpages, if any: -if [ -d $PKG/usr/man ]; then - ( cd $PKG/usr/man - for manpagedir in $(find . -type d -name "man*") ; do - ( cd $manpagedir - for eachpage in $( find . -type l -maxdepth 1) ; do - ln -s $( readlink $eachpage ).gz $eachpage.gz - rm $eachpage - done - gzip -9 *.? - ) - done - ) -fi +# Mark config files under /etc as .new +mv $PKG/etc/my.cnf $PKG/etc/my.cnf.new +mv $PKG/etc/logrotate.d/mysql $PKG/etc/logrotate.d/mysql.new +for i in client mysql-clients server; do + mv $PKG/etc/my.cnf.d/$i.cnf $PKG/etc/my.cnf.d/$i.cnf.new +done -# Compress info files, if any: -if [ -d $PKG/usr/info ]; then - ( cd $PKG/usr/info - rm -f dir - gzip -9 * - ) -fi +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null -# If there's a ChangeLog, installing at least part of the recent history -# is useful, but don't let it get totally out of control: -if [ -r ChangeLog ]; then - DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) - cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog - touch -r ChangeLog $DOCSDIR/ChangeLog -fi +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc -# Build package: cd $PKG -/sbin/makepkg -l y -c n $TMP/mysql-$VERSION-$ARCH-$BUILD.txz +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-${BUILD}${TAG}.txz + |