diff options
Diffstat (limited to 'patches/mysql/mysql.SlackBuild')
-rwxr-xr-x | patches/mysql/mysql.SlackBuild | 178 |
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 |