SliTaz Packages

Community Doc Forum Pro Shop Bugs Hg
.

Receipt for package "mysql"

# SliTaz package receipt.

PACKAGE="mysql"
VERSION="5.7.44"
CATEGORY="office"
SHORT_DESC="SQL database system."
MAINTAINER="pascal.bellard@slitaz.org"
LICENSE="GPL2"
TARBALL="$PACKAGE-$VERSION.tar.gz"
WEB_SITE="https://www.mysql.com/"
WGET_URL="https://dev.mysql.com/get/Downloads/MySQL-${VERSION%.*}/$TARBALL"
CONFIG_FILES="/etc/mysql"
DATABASE_FILES="/var/lib/mysql"
TAZPANEL_DAEMON="man|edit::/etc/mysql/my.cnf|options|web::$WEB_SITE"
CROSS="bug: can not run test programm"

DEPENDS="busybox libmysqlclient mysql-client zlib slitaz-base-files \
gcc-lib-base openssl readline"
BUILD_DEPENDS="cmake openssl-dev zlib-dev ncurses-dev readline-dev \
libtirpc-dev"

# What is the latest version available today?
current_version()
{
    wget -O - https://github.com/mysql/mysql-server/tags 2>/dev/null | \
    sed '/mysql-[0-9]/!d;/archive.*tar/!d;s|.*/[a-z-]*\(.*\).tar.*|\1|;q'
}

# Rules to configure and make the package.
compile_rules()
{
    mkdir -p $WOK/$PACKAGE/source/build
    cd $WOK/$PACKAGE/source/build
    # CFLAGS/CXXFLAGS as suggested upstream
    # remove -fno-rtti with gcc6
    CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
    CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors" \
    cmake ../$PACKAGE-$VERSION \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DSYSCONFDIR=/etc/mysql \
        -DMYSQL_DATADIR=/var/lib/mysql \
        -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
        -DDEFAULT_CHARSET=utf8 \
        -DDEFAULT_COLLATION=utf8_general_ci \
        -DENABLED_LOCAL_INFILE=ON \
        -DINSTALL_INFODIR=share/mysql/docs \
        -DINSTALL_MANDIR=share/man \
        -DINSTALL_PLUGINDIR=/usr/lib/mysql/plugin \
        -DINSTALL_SCRIPTDIR=bin \
        -DINSTALL_INCLUDEDIR=include/mysql \
        -DINSTALL_DOCREADMEDIR=share/mysql \
        -DINSTALL_SUPPORTFILESDIR=share/mysql \
        -DINSTALL_MYSQLSHAREDIR=share/mysql \
        -DINSTALL_DOCDIR=share/mysql/docs \
        -DINSTALL_SHAREDIR=share/mysql \
        -DWITH_READLINE=ON \
        -DWITH_ZLIB=system \
        -DWITH_SSL=system \
        -DWITH_LIBWRAP=OFF \
        -DDOWNLOAD_BOOST=1 \
        -DWITH_BOOST=$src/boost-1.59.0 \
        -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \
        -DWITH_EXTRA_CHARSETS=complex \
        -DWITH_EMBEDDED_SERVER=ON \
        -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        -DWITH_PARTITION_STORAGE_ENGINE=1 \
        -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
        -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
        -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
        -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 &&
    make && make DESTDIR=$DESTDIR install
}

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
    mkdir -p \
        $fs/usr/share \
        $fs/usr/lib/mysql/plugin \
        $fs/etc/mysql \
        $fs/etc/mysql.d \
        $fs/var/lib/mysql \
        $fs/var/run/mysqld

    cp -a $install/usr/bin $fs/usr
    cp -a $install/usr/lib/mysql/plugin/*.so* $fs/usr/lib/mysql/plugin
    cp -a $install/usr/share/mysql $fs/usr/share

    # Configuration file
    cp -a $stuff/etc/init.d $fs/etc
    cp -a $stuff/etc/mysql $fs/etc
    grep -q "bind-address" $fs/etc/mysql/my.cnf || sed -i \
        's/^\[mysqld\]/[mysqld]\nbind-address\t= 127.0.0.1/' \
        $fs/etc/mysql/my.cnf

    # Permissions
    chmod 600 $fs/etc/mysql/my.cnf

    cat $stuff/*.files-list | while read file; do
        [ -f $fs$file ] && rm -f $fs$file
    done

}

# Pre and post install commands for Tazpkg.
post_install()
{
    
    local user
    local group
    
    user=mysql
    group=mysql
    
    if ! grep -q $user "$1/etc/passwd"; then
        echo
        echo -n "Adding user/group $user..."
        chroot "$1/" addgroup -S $group
        chroot "$1/" adduser -s /bin/false -S -D -H -G $group $user
        status
    fi
    # adduser mysql if needed
    if ! grep -q ${user} "$1/etc/passwd"; then
        echo
        echo -n "Adding user MySQL..."
        chroot "$1/" /bin/adduser -s /bin/false -h /dev/null \
            -g "MySQL Daemon user" -u 27 -H -D -S -G ${group} ${user}
        status
    fi
    #chroot "$1/" /bin/chown ${user}.${group} $(cat "$1/$INSTALLED/$PACKAGE/files.list")
    chroot "$1/" /bin/chown -R ${user}.${group} /var/lib/mysql
    chroot "$1/" /bin/chown -R ${user}.${group} /var/run/mysqld
    chroot "$1/" mysqld --initialize --user=${user} --basedir=/usr
    cat <<EOF
----
To start $PACKAGE server you can run :

    /etc/init.d/$PACKAGE start

Or add $PACKAGE to RUN_DAEMONS in /etc/rcS.conf
----
EOF
}

pre_install()
{
    # Cleanup old files
    rm -f "$1/usr/libexec/mysql"*
    # Mv config
    [ -f "$1/etc/my.cnf" ] &&
    mv -f "$1/etc/my.cnf" "$1/etc/mysql/my.cnf" || true
}

post_remove()
{
    echo "Removing user/group mysql"
    chroot "$1/" deluser mysql
}
6025 packages and 203154 files in current database (Thu Apr 25 06:17:47 2024)