summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rwxr-xr-xaccounts1
-rwxr-xr-xdatabase/mariadb/BUILD80
-rwxr-xr-xdatabase/mariadb/CONFIGURE68
-rwxr-xr-xdatabase/mariadb/CONFLICTS1
-rwxr-xr-xdatabase/mariadb/DEPENDS20
-rwxr-xr-xdatabase/mariadb/DETAILS19
-rw-r--r--database/mariadb/HISTORY3
-rwxr-xr-xdatabase/mariadb/INSTALL4
-rwxr-xr-xdatabase/mariadb/POST_INSTALL3
-rwxr-xr-xdatabase/mariadb/PRE_BUILD4
-rwxr-xr-xdatabase/mariadb/PRE_REMOVE1
-rwxr-xr-xdatabase/mariadb/PRE_SUB_DEPENDS5
-rwxr-xr-xdatabase/mariadb/PROVIDES1
-rwxr-xr-xdatabase/mariadb/SUB_DEPENDS11
-rwxr-xr-xdatabase/mariadb/UP_TRIGGERS16
-rw-r--r--database/mariadb/init.d/mariadb186
-rw-r--r--database/mariadb/profile.d/mariadb4
-rwxr-xr-xgroups1
19 files changed, 431 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0ce740ea92..dbf0b07ae4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2010-04-02 Philippe 'Puppet_Master' Caseiro <puppetmaster@sourcemage.org>
+ * database/mariadb: new spell, mysql fork
+
2010-04-01 Arjan Bouter <abouter@sourcemage.org>
* spelling/mythes: new spell, thesaurus library
diff --git a/accounts b/accounts
index 41cbd6f8db..29ac05113b 100755
--- a/accounts
+++ b/accounts
@@ -84,5 +84,6 @@ avahi:168:162
tss:175:175
memcached:176:177
camera:177:178
+mariadb:178:180
avahi-autoipd:180:180
nobody:65534:65534
diff --git a/database/mariadb/BUILD b/database/mariadb/BUILD
new file mode 100755
index 0000000000..a1c3986513
--- /dev/null
+++ b/database/mariadb/BUILD
@@ -0,0 +1,80 @@
+OPTS="--with-charset=$MADB_CHARSET $OPTS" &&
+
+
+if list_find "$MADB_ENGINES" "none" ; then
+ OPTS="--without-archive-storage-engine \
+ --without-berkeley-db \
+ --without-blackhole-storage-engine \
+ --without-example-storage-engine \
+ --without-federated-storage-engine \
+ --without-innodb \
+ --without-ndbcluster \
+ $OPTS"
+else
+ if list_find "$MADB_ENGINES" "ARCHIVE" ; then
+ OPTS="--with-archive-storage-engine $OPTS"
+ else
+ OPTS="--without-archive-storage-engine $OPTS"
+ fi &&
+ if ! list_find "$MADB_ENGINES" "BerkeleyDB" ; then
+ OPTS="--without-berkeley-db $OPTS"
+ fi &&
+ if list_find "$MADB_ENGINES" "BLACKHOLE" ; then
+ OPTS="--with-blackhole-storage-engine $OPTS"
+ else
+ OPTS="--without-blackhole-storage-engine $OPTS"
+ fi &&
+ if list_find "$MADB_ENGINES" "EXAMPLE" ; then
+ OPTS="--with-example-storage-engine $OPTS"
+ else
+ OPTS="--without-example-storage-engine $OPTS"
+ fi &&
+ if list_find "$MADB_ENGINES" "FEDERATED" ; then
+ OPTS="--with-federated-storage-engine $OPTS"
+ else
+ OPTS="--without-federated-storage-engine $OPTS"
+ fi &&
+ if list_find "$MADB_ENGINES" "InnoDB" ; then
+ OPTS="--with-innodb $OPTS"
+ else
+ OPTS="--without-innodb $OPTS"
+ fi &&
+ if list_find "$MADB_ENGINES" "ndbcluster" ; then
+ OPTS="--with-ndbcluster $OPTS"
+ else
+ OPTS="--without-ndbcluster $OPTS"
+ fi
+fi &&
+
+OPTS="$MADB_SERVER $MADB_EMBED $OPTS" &&
+CFLAGS="${CFLAGS//-ffast-math}" &&
+
+create_account mariadb &&
+
+local LD_PRELOAD_OLD="$LD_PRELOAD" &&
+unset LD_PRELOAD &&
+export CFLAGS="$CFLAGS -DUSE_OLD_FUNCTIONS" &&
+
+if glibc_is_nptl; then
+ OPTS="$OPTS --with-named-thread-libs=-lpthread" &&
+ export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+fi &&
+OPTS="$OPTS --with-mysqld-user=mariadb --without-bench \
+ --localstatedir=${INSTALL_ROOT}/var/lib/mysql \
+ --enable-assembler --enable-thread-safe-client" &&
+default_build &&
+
+#./configure --build=$BUILD \
+# --prefix=$INSTALL_ROOT/usr \
+# --sysconfdir=$INSTALL_ROOT/etc \
+# --mandir=$INSTALL_ROOT/usr/share/man \
+# --infodir=$INSTALL_ROOT/usr/share/info \
+# --localstatedir=/var/lib/mysql \
+# --with-mysqld-user=mysql \
+# --without-bench \
+# --enable-assembler \
+# --enable-thread-safe-client \
+# $OPTS &&
+
+export LD_PRELOAD="$LD_PRELOAD_OLD" &&
+make pkglibdir=${TRACK_ROOT}/usr/lib
diff --git a/database/mariadb/CONFIGURE b/database/mariadb/CONFIGURE
new file mode 100755
index 0000000000..a9ecc458c4
--- /dev/null
+++ b/database/mariadb/CONFIGURE
@@ -0,0 +1,68 @@
+source $GRIMOIRE/config_query_multi.function &&
+
+config_query_option MADB_SERVER \
+ "Install client only?" \
+ n \
+ "--without-server" \
+ "--with-server" &&
+
+config_query_list MADB_CHARSET "Select default character set" \
+ latin1 \
+ utf8 \
+ binary \
+ armscii8 \
+ ascii \
+ big5 \
+ cp1250 \
+ cp1251 \
+ cp1256 \
+ cp1257 \
+ cp850 \
+ cp852 \
+ cp866 \
+ cp932 \
+ dec8 \
+ eucjpms \
+ euckr \
+ gb2312 \
+ gbk \
+ geostd8 \
+ greek \
+ hebrew \
+ hp8 \
+ keybcs2 \
+ koi8r \
+ koi8u \
+ latin2 \
+ latin5 \
+ latin7 \
+ macce \
+ macroman \
+ sjis \
+ swe7 \
+ tis620 \
+ ucs2 \
+ ujis &&
+
+config_query_multi MADB_ENGINES \
+ "What additional storage engines to build?" \
+ none \
+ all \
+ ARCHIVE \
+ BerkeleyDB \
+ BLACKHOLE \
+ EXAMPLE \
+ FEDERATED \
+ InnoDB \
+ ndbcluster &&
+
+if list_find "$MADB_ENGINES" "all"
+then
+ MADB_ENGINES="ARCHIVE BerkeleyDB BLACKHOLE EXAMPLE FEDERATED InnoDB ndbcluster"
+fi &&
+
+config_query_option MADB_EMBED \
+ "Build the embedded server (libmysqld)?" \
+ n \
+ "--with-embedded-server" \
+ "--without-embedded-server"
diff --git a/database/mariadb/CONFLICTS b/database/mariadb/CONFLICTS
new file mode 100755
index 0000000000..59a63e1828
--- /dev/null
+++ b/database/mariadb/CONFLICTS
@@ -0,0 +1 @@
+conflicts mysql
diff --git a/database/mariadb/DEPENDS b/database/mariadb/DEPENDS
new file mode 100755
index 0000000000..3387320186
--- /dev/null
+++ b/database/mariadb/DEPENDS
@@ -0,0 +1,20 @@
+depends zlib &&
+depends perl &&
+depends procps &&
+depends g++ &&
+
+if [[ $OLD == y ]]; then
+ optional_depends openssl \
+ "--with-openssl" \
+ "--without-openssl" \
+ "for OpenSSL support"
+else
+ optional_depends openssl \
+ "--with-ssl" \
+ "--without-ssl" \
+ "for OpenSSL support"
+fi &&
+
+if ! list_find "$MSQL_ENGINES" "none" && list_find "$MSQL_ENGINES" "BerkeleyDB"; then
+ depends db "--with-berkeley-db"
+fi
diff --git a/database/mariadb/DETAILS b/database/mariadb/DETAILS
new file mode 100755
index 0000000000..34aef073f0
--- /dev/null
+++ b/database/mariadb/DETAILS
@@ -0,0 +1,19 @@
+ SPELL=mariadb
+ VERSION=5.1.44
+ SOURCE=$SPELL-$VERSION.tar.gz
+ SOURCE2_IGNORE=signature
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ SOURCE_HASH=sha512:b8c0e9fd0c8447962c94f4d82948b3c3154c25cf2587ee1e7c50b39dc4e81c6548ace118461a46f673d296414188fc59dc280419a9831dce7286896699db19d9
+ SOURCE_URL[0]=http://ftp.rediris.es/mirror/MariaDB/${SPELL}-${VERSION}/distro/kvm-tarbake-jaunty-x86/${SOURCE}
+ LICENSE[0]=GPL
+ WEB_SITE=http://askmonty.org/wiki/MariaDB
+ KEYWORDS="sql database"
+ ENTERED=20011114
+ SHORT="MariaDB is a backward compatible, drop-in replacement branch of the MySQL® Database Sever"
+cat << EOF
+MariaDB is a backward compatible, drop-in replacement branch of the
+MySQL® Database Server.
+
+It includes all major open source storage engines,
+including the Maria storage engine.
+EOF
diff --git a/database/mariadb/HISTORY b/database/mariadb/HISTORY
new file mode 100644
index 0000000000..cc06a6c3c3
--- /dev/null
+++ b/database/mariadb/HISTORY
@@ -0,0 +1,3 @@
+2010-04-02 Philippe "Puppet_Master" Caseiro <puppetmaster@sourcemage.org>
+ * spell created
+
diff --git a/database/mariadb/INSTALL b/database/mariadb/INSTALL
new file mode 100755
index 0000000000..cdf532bcdb
--- /dev/null
+++ b/database/mariadb/INSTALL
@@ -0,0 +1,4 @@
+make pkglibdir=${TRACK_ROOT}/usr/lib install &&
+rm -rf ${INSTALL_ROOT}/usr/mysql-test &&
+install -m 0644 $SCRIPT_DIRECTORY/profile.d/mariadb $INSTALL_ROOT/etc/sysconfig &&
+install-info ${INSTALL_ROOT}/usr/share/info/mysql.info --info-dir ${INSTALL_ROOT}/usr/share/info
diff --git a/database/mariadb/POST_INSTALL b/database/mariadb/POST_INSTALL
new file mode 100755
index 0000000000..16144c361b
--- /dev/null
+++ b/database/mariadb/POST_INSTALL
@@ -0,0 +1,3 @@
+default_post_install &&
+chown mariadb.mariadb /var/lib/mariadb
+${INSTALL_ROOT}/usr/bin/mysql_install_db --user=mariadb --datadir=/var/lib/mariadb
diff --git a/database/mariadb/PRE_BUILD b/database/mariadb/PRE_BUILD
new file mode 100755
index 0000000000..db6414aa1f
--- /dev/null
+++ b/database/mariadb/PRE_BUILD
@@ -0,0 +1,4 @@
+default_pre_build &&
+cd $SOURCE_DIRECTORY &&
+sedit 's:$(libdir)/@PACKAGE@:$(libdir):' libmysql/Makefile.in &&
+sedit 's:$(libdir)/@PACKAGE@:$(libdir):' libmysql_r/Makefile.in
diff --git a/database/mariadb/PRE_REMOVE b/database/mariadb/PRE_REMOVE
new file mode 100755
index 0000000000..65c9a4ec69
--- /dev/null
+++ b/database/mariadb/PRE_REMOVE
@@ -0,0 +1 @@
+install-info --delete ${INSTALL_ROOT}/usr/share/info/mysql.info --info-dir ${INSTALL_ROOT}/usr/share/info
diff --git a/database/mariadb/PRE_SUB_DEPENDS b/database/mariadb/PRE_SUB_DEPENDS
new file mode 100755
index 0000000000..b79f83d974
--- /dev/null
+++ b/database/mariadb/PRE_SUB_DEPENDS
@@ -0,0 +1,5 @@
+case $THIS_SUB_DEPENDS in
+ embedded|EMBEDDED) if [ $MSQL_EMBED == "--with-embedded-server" ]; then return 0; fi;;
+ innodb|INNODB) if [[ $MSQL_ENGINES == *InnoDB* || "$MSQL_ENGINES" == "all" ]]; then return 0; fi;;
+esac
+return 1
diff --git a/database/mariadb/PROVIDES b/database/mariadb/PROVIDES
new file mode 100755
index 0000000000..b433cc9a77
--- /dev/null
+++ b/database/mariadb/PROVIDES
@@ -0,0 +1 @@
+SQL
diff --git a/database/mariadb/SUB_DEPENDS b/database/mariadb/SUB_DEPENDS
new file mode 100755
index 0000000000..b31384a1b6
--- /dev/null
+++ b/database/mariadb/SUB_DEPENDS
@@ -0,0 +1,11 @@
+case $THIS_SUB_DEPENDS in
+ embedded|EMBEDDED) echo "Embbeded mysql requested, forcing it." &&
+ MSQL_EMBED="--with-embedded-server" ;;
+ innodb|INNODB) echo "InnoDB storage engine support requested, forcing it." &&
+ if [ "$MSQL_ENGINES" == "none" ]; then
+ MSQL_ENGINES="InnoDB"
+ else
+ MSQL_ENGINES="$MSQL_ENGINES InnoDB"
+ fi ;;
+ *) echo "unknown sub-depends!"; return 1 ;;
+esac
diff --git a/database/mariadb/UP_TRIGGERS b/database/mariadb/UP_TRIGGERS
new file mode 100755
index 0000000000..000b21cdb3
--- /dev/null
+++ b/database/mariadb/UP_TRIGGERS
@@ -0,0 +1,16 @@
+# up_trigger everything on update to 5.1.32 as most stuff links to libmysqlclient.so.15 from version 5.0.77
+
+local OLD_SPELL_VERSION=""
+if spell_ok $SPELL; then
+ OLD_SPELL_VERSION="$(installed_version $SPELL)"
+ if test "${VERSION:0:3}" != "${OLD_SPELL_VERSION:0:3}"; then
+ message "This is a possibly incompatible update of libmysql..."
+ message "Figuring out what spells need to be recast, this may take a while."
+ for each in $(show_up_depends $SPELL 1); do
+ if gaze install $each | xargs readelf -d 2> /dev/null |
+ grep -q "NEEDED.*libmysqlclient.so.15"; then
+ up_trigger $each cast_self
+ fi
+ done
+ fi
+fi
diff --git a/database/mariadb/init.d/mariadb b/database/mariadb/init.d/mariadb
new file mode 100644
index 0000000000..2b5d8eeb01
--- /dev/null
+++ b/database/mariadb/init.d/mariadb
@@ -0,0 +1,186 @@
+#!/bin/bash
+# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
+# This file is public domain and comes with NO WARRANTY of any kind
+#
+# If you install MySQL on some other places than /usr, then you
+# have to do one of the following things for this script to work:
+#
+# - Run this script from within the MySQL installation directory
+# - Create a /etc/my.cnf file with the following information:
+# [mariadbd]
+# basedir=<path-to-mariadb-installation-directory>
+# - Add the above to any other configuration file (for example ~/.my.ini)
+# and copy my_print_defaults to /usr/bin
+# - Add the path to the mariadb-installation-directory to the basedir variable
+# below.
+#
+# If you want to affect other MySQL variables, you should make your changes
+# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.
+#
+# SMGL-script-version=20030723
+# SMGL-START:3 4 5:S90
+# SMGL-STOP:0 1 2 6:K10
+
+PROGRAM=
+RUNLEVEL=3
+NEEDS="+remote_fs"
+
+. /etc/init.d/smgl_init
+. /etc/sysconfig/mariadb
+
+[[ ! -d ${DATA_DIR} ]] && mkdir -p ${DATA_DIR}
+
+basedir=
+
+# The following variables are only set for letting mariadb.server find things.
+
+# Set some defaults
+datadir=${DATA_DIR}
+pid_file=
+if test -z "$basedir"
+then
+ basedir=/usr
+ bindir=/usr/bin
+else
+ bindir="$basedir/bin"
+fi
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin
+export PATH
+
+if test -z "$pid_file"
+then
+ pid_file=$datadir/`/bin/hostname`.pid
+else
+ case "$pid_file" in
+ /* ) ;;
+ * ) pid_file="$datadir/$pid_file" ;;
+ esac
+fi
+
+mode=$1 # start or stop
+
+parse_arguments() {
+ for arg do
+ case "$arg" in
+ --basedir=*) basedir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+ --datadir=*) datadir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+ --pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+ esac
+ done
+}
+
+# Get arguments from the my.cnf file,
+# groups [mariadbd] [mariadb_server] and [mariadb.server]
+if test -x ./bin/my_print_defaults
+then
+ print_defaults="./bin/my_print_defaults"
+elif test -x $bindir/my_print_defaults
+then
+ print_defaults="$bindir/my_print_defaults"
+elif test -x $bindir/mariadb_print_defaults
+then
+ print_defaults="$bindir/mariadb_print_defaults"
+else
+ # Try to find basedir in /etc/my.cnf
+ conf=/etc/my.cnf
+ print_defaults=
+ if test -r $conf
+ then
+ subpat='^[^=]*basedir[^=]*=\(.*\)$'
+ dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`
+ for d in $dirs
+ do
+ d=`echo $d | sed -e 's/[ ]//g'`
+ if test -x "$d/bin/my_print_defaults"
+ then
+ print_defaults="$d/bin/my_print_defaults"
+ break
+ fi
+ if test -x "$d/bin/mariadb_print_defaults"
+ then
+ print_defaults="$d/bin/mariadb_print_defaults"
+ break
+ fi
+ done
+ fi
+
+ # Hope it's in the PATH ... but I doubt it
+ test -z "$print_defaults" && print_defaults="my_print_defaults"
+fi
+
+parse_arguments `$print_defaults mariadbd mariadb_server mariadb.server`
+
+# Safeguard (relative paths, core dumps..)
+cd $basedir
+
+case "$mode" in
+ 'start')
+ # Start daemon
+
+ if test -x $bindir/mysqld_safe
+ then
+ # Give extra arguments to mariadbd with the my.cnf file. This script may
+ # be overwritten at next upgrade.
+ echo "Starting mariadbd_safe..."
+ iter=0
+ ( unset -f echo
+ $bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file 2>&1 > /dev/null ) &
+ while [ ! -e $pid_file ] && [ $((iter++)) -lt 10 ] ; do sleep 1; echo -n . ; done
+ [ $((iter++)) -lt 11 ]
+ evaluate_retval
+ # Make lock for RedHat / SuSE
+ if test -w /var/lock/subsys
+ then
+ touch /var/lock/subsys/mariadb
+ fi
+ else
+ echo "Can't execute $bindir/mariadbd_safe from dir $basedir"
+ fi
+ evaluate_retval
+ ;;
+
+ 'stop')
+ # Stop daemon. We use a signal here to avoid having to know the
+ # root password.
+ if test -s "$pid_file"
+ then
+ mariadbd_pid=`cat $pid_file`
+ echo "Killing mariadbd with pid $mariadbd_pid"
+ kill $mariadbd_pid
+ # mariadbd should remove the pid_file when it exits, so wait for it.
+
+ sleep 1
+ while [ -s $pid_file -a "$flags" != aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ]
+ do
+ [ -z "$flags" ] && echo -n "Wait for mariadbd to exit" || echo -n "."
+ flags=a$flags
+ sleep 1
+ done
+ if [ -s $pid_file ]
+ then echo " gave up waiting!"
+ elif [ -n "$flags" ]
+ then echo " done"
+ fi
+ # delete lock for RedHat / SuSE
+ if test -f /var/lock/subsys/mariadb
+ then
+ rm /var/lock/subsys/mariadb
+ fi
+ else
+ echo "No mariadbd pid file found. Looked for $pid_file."
+ fi
+ evaluate_retval
+ ;;
+ 'restart')
+ echo "Restarting mariadb server"
+ $0 stop
+ $0 start
+ evaluate_retval
+ ;;
+ *)
+ # usage
+ echo "usage: $0 start|stop|restart"
+ exit 1
+ ;;
+esac
diff --git a/database/mariadb/profile.d/mariadb b/database/mariadb/profile.d/mariadb
new file mode 100644
index 0000000000..b591f15469
--- /dev/null
+++ b/database/mariadb/profile.d/mariadb
@@ -0,0 +1,4 @@
+# Mariadb Global Configuration
+# Set the Data directory here
+
+DATA_DIR=/var/lib/mariadb
diff --git a/groups b/groups
index 2aaacad54c..da9e656df9 100755
--- a/groups
+++ b/groups
@@ -103,6 +103,7 @@ pkcs11:176:
memcached:177:
camera:178:
libvirt:179:
+mariadb:180:
avahi-autoipd:180
users:1000:
nogroup:65534: