-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Friday 07 November 2003 19:17, Jeffrey Smelser wrote:
> According to http://packages.gentoo.org/search/?sstring=mysql an ebuild has
> not been created for it yet..

I have it running on my fileserver, only minor inconvenience is the new 
password format breaking all current clients.
Simple start the server with --old-passwords, or something similar.
No stability problems, but I rarely use it.

- -- 
Mike Williams
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/q/uAInuLMrk7bIwRAtPgAJ9uhCgt5bA6pBn5RvjI242zqU9OMACgrejO
nbz7m5MsmH+9AH25MLuplJo=
=V5Uc
-----END PGP SIGNATURE-----
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /home/cvsroot/gentoo-x86/dev-db/mysql/mysql-4.0.13-r3.ebuild,v 1.4 
2003/07/03 08:26:23 robbat2 Exp $

#to accomodate -laadeedah releases
NEWP=${P/_alpha/-alpha}

SVER=${PV%.*}
#normal releases:
SDIR=MySQL-${SVER}
#for a pre-release:
#SDIR=MySQL-${SVER}-Pre

S=${WORKDIR}/${NEWP}

DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
HOMEPAGE="http://www.mysql.com/";
SRC_URI="mirror://mysql/Downloads/${SDIR}/${NEWP}.tar.gz"

KEYWORDS="x86 ~sparc ~ppc arm"
LICENSE="GPL-2"
SLOT="0"
IUSE="static readline innodb berkdb tcpd ssl perl"

DEPEND="readline? ( >=sys-libs/readline-4.1 )
        tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
        ssl? ( >=dev-libs/openssl-0.9.6d )
        perl? ( dev-lang/perl )
        >=sys-libs/zlib-1.1.3
        sys-apps/procps
        >=sys-apps/sed-4
        app-portage/gentoolkit"
PDEPEND="perl? ( dev-perl/DBI dev-perl/DBD-mysql )"

warning() {
        ewarn
        ewarn "If you're upgrading from MySQL-3.x, you must recompile the other"
        ewarn "packages on your system that link with libmysqlclient after the"
        ewarn "upgrade completes.  To obtain such a list of packages for your"
        ewarn "system, you may use the: ${FILESDIR}/rebuilder.sh"
        ewarn "script."
        ewarn
#       sleep 5
}

pkg_setup() {
        warning
}

src_unpack() {
        if use static && use ssl; then
                local msg="MySQL does not support building statically with SSL support"
                eerror "${msg}"
                die "${msg}"
        fi
        if use ssl; then
                ewarn "SSL connections are broken in MySQL-4.0.13. See MySQL bug #673"
                ewarn "(http://bugs.mysql.com/bug.php?id=673&error=no). If you need 
SSL"
                ewarn "connections, you should revert to 4.0.12."
        fi
        unpack ${A} || die
        cd ${S} || die
        #required for qmail-mysql
#       patch -p0 < ${FILESDIR}/mysql-4.0-nisam.h.diff || die
        #zap startup script messages
#       patch -p1 < ${FILESDIR}/mysql-4.0.4-install-db-sh.diff || die
        #zap binary distribution stuff
#       patch -p1 < ${FILESDIR}/mysql-4.0-mysqld-safe-sh.diff || die
        #for correct hardcoded sysconf directory
#       patch -p1 < ${FILESDIR}/mysql-4.0-my-print-defaults.diff || die
        #patch -p1 < ${FILESDIR}/mysql-3.23.51-tcpd.patch || die

        # attempt to get libmysqlclient_r linked against ssl if USE="ssl" enabled
        # i would really prefer to fix this at the Makefile.am level, but can't
        # get the software to autoreconf as distributed - too many missing files
        # Robert Coie <[EMAIL PROTECTED]> 2003.06.12
#       patch -p0 < ${FILESDIR}/${P}-thrssl.patch || die
}

src_compile() {
        local myconf

        #The following fix is due to a bug with bdb on sparc's. See: 
        #http://www.geocrawler.com/mail/msg.php3?msg_id=4754814&list=8
        if use sparc || use sparc64 || use alpha || use hppa
        then
                myconf="${myconf} --without-berkeley-db"
        else
                use berkdb \
                        && myconf="${myconf} --with-berkeley-db=./bdb" \
                        || myconf="${myconf} --without-berkeley-db"
        fi

        #readline pair reads backwards on purpose, DONT change it around, Ok?
        use readline && myconf="${myconf} --without-readline"
        use readline || myconf="${myconf} --with-readline"

        use static \
                && myconf="${myconf} --with-mysqld-ldflags=-all-static 
--disable-shared" \
                || myconf="${myconf} --enable-shared --enable-static"

        myconf="${myconf} `use_with tcpd libwrap`"
        myconf="${myconf} `use_with innodb`"

        use ssl \
                && myconf="${myconf} --with-vio --with-openssl" \
                || myconf="${myconf} --without-openssl"

        [ -n "${DEBUGBUILD}" ] \
                && myconf="${myconf} --with-debug" \
                || myconf="${myconf} --without-debug"

        #glibc-2.3.2_pre fix; bug #16496
        export CFLAGS="${CFLAGS} -DHAVE_ERRNO_AS_DEFINE=1"

        #bug fix for #15099, should make this api backward compatible
        export CFLAGS="${CFLAGS} -DUSE_OLD_FUNCTIONS"

        #the compiler flags are as per their "official" spec ;)
        #CFLAGS="${CFLAGS/-O?/} -O3" \
        CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-exceptions -fno-rtti" \
        econf \
                --libexecdir=/usr/sbin \
                --sysconfdir=/etc/mysql \
                --localstatedir=/var/lib/mysql \
                --with-raid \
                --with-low-memory \
                --enable-assembler \
                --with-charset=latin1 \
                --enable-local-infile \
                --with-mysqld-user=mysql \
                --with-extra-charsets=all \
                --enable-thread-safe-client \
                --with-client-ldflags=-lstdc++ \
                --with-comment="Gentoo Linux ${PF}" \
                --with-unix-socket-path=/var/run/mysqld/mysqld.sock \
                --with-embedded-server \
                ${myconf} || die "bad ./configure"

        emake || die "compile problem"
}

src_install() {
        make install DESTDIR=${D} benchdir_root=/usr/share/mysql || die

        #move client libs, install a couple of missing headers
        mv ${D}/usr/lib/mysql/libmysqlclient*.so* ${D}/usr/lib
        dosym ../libmysqlclient.so /usr/lib/mysql/libmysqlclient.so
        dosym ../libmysqlclient_r.so /usr/lib/mysql/libmysqlclient_r.so
        insinto /usr/include/mysql ; doins include/{my_config.h,my_dir.h}

        #convenience links
        dosym /usr/bin/mysqlcheck /usr/bin/mysqlanalyze
        dosym /usr/bin/mysqlcheck /usr/bin/mysqlrepair
        dosym /usr/bin/mysqlcheck /usr/bin/mysqloptimize

        #various junk
        rm -f ${D}/usr/share/mysql/mysql.server
        rm -f ${D}/usr/share/mysql/binary-configure
        rm -f ${D}/usr/share/mysql/make_binary_distribution
        rm -f ${D}/usr/share/mysql/mysql-log-rotate
        rm -f ${D}/usr/share/mysql/{post,pre}install
        rm -f ${D}/usr/share/mysql/mi_test*
        rm -f ${D}/usr/share/mysql/*.spec # Redhat gunk
        rm -f ${D}/usr/share/mysql/*.plist # Apple gunk
        rm -f ${D}/usr/share/mysql/my-*.cnf # Put them elsewhere

        # All of these (ab)use Perl.
        if ! use perl; then
                rm -f ${D}/usr/bin/mysql_setpermission
                rm -rf ${D}/usr/share/mysql/sql-bench
        fi

        dodoc README COPYING COPYING.LIB MIRRORS Docs/manual.*
        docinto conf-samples  
        dodoc support-files/my-*.cnf
        dohtml -r Docs/*

        insinto /etc/mysql
        doins ${FILESDIR}/my.cnf scripts/mysqlaccess.conf
        exeinto /etc/init.d
        newexe ${FILESDIR}/mysql-4.0.rc6 mysql
}

pkg_config() {
        if [ ! -d ${ROOT}/var/lib/mysql/mysql ] ; then
                einfo "Press ENTER to create the mysql database and set proper"
                einfo "permissions on it, or Control-C to abort now..."
                read
                ${ROOT}/usr/bin/mysql_install_db #>>/var/log/mysql/mysql.err 2>&1
        else
                einfo "Hmm, it appears as though you already have the mysql"
                einfo "database in place.  If you are having problems trying"
                einfo "to start mysqld, perhaps you need to manually run"
                einfo "/usr/bin/mysql_install_db and/or check your config"
                einfo "file(s) and/or database(s) and/or logfile(s)."
        fi
}

pkg_preinst() {
        if ! groupmod mysql; then
                groupadd -g 60 mysql || die "problem adding group mysql"
        fi

        if ! id mysql; then
                useradd -g mysql -s /dev/null -d /var/lib/mysql -c "mysql" mysql
                assert "problem adding user mysql"
        fi
}

pkg_postinst() {
        #empty dirs...
        install -d -m0755 -o mysql -g mysql ${ROOT}/var/lib/mysql
        install -d -m0755 -o mysql -g mysql ${ROOT}/var/run/mysqld
        install -d -m0755 -o mysql -g mysql ${ROOT}/var/log/mysql

        #secure the logfiles... does this bother anybody?
        touch ${ROOT}/var/log/mysql/mysql.{log,err}
        chown mysql.mysql ${ROOT}/var/log/mysql/mysql.{log,err}
        chmod 0660 ${ROOT}/var/log/mysql/mysql.{log,err}

        #your friendly public service announcement...
        einfo
        einfo "You might want to run:"
        einfo "\"ebuild /var/db/pkg/dev-db/${PF}/${PF}.ebuild config\""
        einfo "if this is a new install."
        einfo

        warning
}

--
[EMAIL PROTECTED] mailing list

Reply via email to