aboutsummaryrefslogtreecommitdiff
path: root/patches/mysql/mysql.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'patches/mysql/mysql.SlackBuild')
-rwxr-xr-xpatches/mysql/mysql.SlackBuild178
1 files changed, 178 insertions, 0 deletions
diff --git a/patches/mysql/mysql.SlackBuild b/patches/mysql/mysql.SlackBuild
new file mode 100755
index 00000000..ef0eeb7f
--- /dev/null
+++ b/patches/mysql/mysql.SlackBuild
@@ -0,0 +1,178 @@
+#!/bin/bash
+# Build and install MySQL on Slackware
+#
+# by: David Cantrell <david@slackware.com>
+# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com>
+#
+# Small changes by rhatto
+#
+
+CWD="`pwd`"
+
+if [ -f "/etc/slackbuildrc" ]; then
+ source /etc/slackbuildrc
+fi
+
+if [ -f "~/.slackbuildrc" ]; then
+ source ~/.slackbuildrc
+fi
+
+PACKAGE="mysql"
+VERSION=${VERSION:=4.1.21}
+ARCH=${ARCH:=x86_64}
+BUILD=${BUILD:-1rha}
+TMP=${TMP:-/tmp}
+SRC_DIR=${SRC:=$CWD}
+REPOS=${REPOS:=$TMP}
+
+RTOOL="wget"
+PACKAGE_EXT="bz2"
+SRC="$PACKAGE-$VERSION.tar.$PACKAGE_EXT"
+URL="http://mirror.pacific.net.au/linux/slackware/slackware-10.2/patches/source/mysql/$SRC"
+
+if [ "$PACKAGE_EXT" == "bz2" ]; then
+ tarflag="j"
+else
+ tarflag="z"
+fi
+
+SRC_DIR="$SRC_DIR/$PACKAGE"
+mkdir -p $SRC_DIR
+
+if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$SRC" ]; then
+ wget "$URL" -O "$SRC_DIR/$SRC"
+fi
+
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+fi
+
+TMP="$TMP/$PACKAGE"
+PKG=$TMP/package-$PACKAGE
+rm -rf $TMP
+mkdir -p $PKG
+cd $TMP
+
+LIBDIR="lib"
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIR="lib64"
+fi
+
+cd $TMP
+rm -rf mysql-$VERSION
+tar xjvf $SRC_DIR/$SRC
+cd mysql-$VERSION
+chown -R root.root .
+find . -perm 777 -exec chmod 755 {} \;
+find . -perm 775 -exec chmod 755 {} \;
+find . -perm 666 -exec chmod 644 {} \;
+find . -perm 664 -exec chmod 644 {} \;
+find . -perm 444 -exec chmod 644 {} \;
+CFLAGS="$SLKCFLAGS" CXX=gcc CXXFLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/$LIBDIR
+ --with-mysqld-user=mysql \
+ --with-unix-socket-path=/var/run/mysql/mysql.sock \
+ --localstatedir=/var/lib/mysql \
+ --enable-assembler \
+ --with-raid \
+ --without-debug \
+ --enable-thread-safe-client \
+ --without-bench \
+ --with-extra-charsets=complex \
+ --with-vio \
+ --with-openssl \
+ --program-prefix="" \
+ --program-suffix="" \
+ $ARCH-slackware-linux
+#
+# --without-readline
+
+make -j3
+make install DESTDIR=$PKG
+
+# Strip ELF objects:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/etc
+( cd support-files
+ cp my-huge.cnf my-large.cnf my-medium.cnf my-small.cnf $PKG/etc )
+
+# install docs
+mkdir -p $PKG/usr/doc/mysql-$VERSION/Docs
+# Don't need the (huge) INSTALL-SOURCE... the source is installed already.
+#cp -a COPYING* INSTALL-SOURCE MIRRORS README /usr/doc/mysql-$VERSION
+cp -a COPYING* MIRRORS README $PKG/usr/doc/mysql-$VERSION
+( cd Docs
+ cp -a INSTALL-BINARY *.html *.txt Flags \
+ $PKG/usr/doc/mysql-$VERSION/Docs )
+# Also 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 644 {} \;
+
+# this is the directory where databases are stored
+mkdir -p $PKG/var/lib/mysql
+chown mysql.mysql $PKG/var/lib/mysql
+chmod 750 $PKG/var/lib/mysql
+
+# this is where the socket is stored
+mkdir -p $PKG/var/run/mysql
+chown mysql.mysql $PKG/var/run/mysql
+chmod 755 $PKG/var/run/mysql
+
+# Do not include the test suite:
+rm -r $PKG/usr/mysql-test
+
+# Add init script:
+mkdir -p $PKG/etc/rc.d
+# This is intentionally chmod 644.
+zcat $CWD/rc.mysqld.gz > $PKG/etc/rc.d/rc.mysqld.new
+
+# Install script:
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Add some handy library symlinks:
+if [ -r $PKG/usr/$LIBDIR/mysql/libmysqlclient.so.14 ]; then
+ mkdir -p $PKG/usr/$LIBDIR
+ ( cd $PKG/usr/$LIBDIR
+ rm -f libmysqlclient.so libmysqlclient.so.14
+ ln -sf mysql/libmysqlclient.so .
+ ln -sf mysql/libmysqlclient.so.14 .
+ )
+fi
+if [ -r $PKG/usr/$LIBDIR/mysql/libmysqlclient_r.so.14 ]; then
+ mkdir -p $PKG/usr/$LIBDIR
+ ( cd $PKG/usr/$LIBDIR
+ rm -f libmysqlclient_r.so libmysqlclient_r.so.14
+ ln -sf mysql/libmysqlclient_r.so .
+ ln -sf mysql/libmysqlclient_r.so.14 .
+ )
+fi
+
+# Packaging standards:
+chown -R root.bin $PKG/usr/bin
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+gzip -9 $PKG/usr/man/man?/*.?
+
+# Build package:
+cd $PKG
+makepkg -l y -c n $REPOS/mysql-$VERSION-$ARCH-$BUILD.tgz
+
+if [ "$1" == "--cleanup" ]; then
+ cd $TMP
+ rm -rf mysql-$VERSION
+fi