summaryrefslogtreecommitdiffstats
path: root/source/ap/mariadb/mariadb.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xsource/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
+