diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rwxr-xr-x | accounts | 1 | ||||
-rwxr-xr-x | database/mariadb/BUILD | 80 | ||||
-rwxr-xr-x | database/mariadb/CONFIGURE | 68 | ||||
-rwxr-xr-x | database/mariadb/CONFLICTS | 1 | ||||
-rwxr-xr-x | database/mariadb/DEPENDS | 20 | ||||
-rwxr-xr-x | database/mariadb/DETAILS | 19 | ||||
-rw-r--r-- | database/mariadb/HISTORY | 3 | ||||
-rwxr-xr-x | database/mariadb/INSTALL | 4 | ||||
-rwxr-xr-x | database/mariadb/POST_INSTALL | 3 | ||||
-rwxr-xr-x | database/mariadb/PRE_BUILD | 4 | ||||
-rwxr-xr-x | database/mariadb/PRE_REMOVE | 1 | ||||
-rwxr-xr-x | database/mariadb/PRE_SUB_DEPENDS | 5 | ||||
-rwxr-xr-x | database/mariadb/PROVIDES | 1 | ||||
-rwxr-xr-x | database/mariadb/SUB_DEPENDS | 11 | ||||
-rwxr-xr-x | database/mariadb/UP_TRIGGERS | 16 | ||||
-rw-r--r-- | database/mariadb/init.d/mariadb | 186 | ||||
-rw-r--r-- | database/mariadb/profile.d/mariadb | 4 | ||||
-rwxr-xr-x | groups | 1 |
19 files changed, 431 insertions, 0 deletions
@@ -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 @@ -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 @@ -103,6 +103,7 @@ pkcs11:176: memcached:177: camera:178: libvirt:179: +mariadb:180: avahi-autoipd:180 users:1000: nogroup:65534: |