# $Id: Portfile 56431 2009-08-27 11:26:57Z ryandesign@macports.org $

PortSystem              1.0

name                    mysql5-devel
version                 5.1.37
revision                1
set branch              [join [lrange [split ${version} .] 0 1] .]
homepage                http://www.mysql.com/
categories              databases
platforms               darwin
maintainers             jwa ryandesign
distname                mysql-${version}
dist_subdir             mysql5
use_parallel_build      yes

description \
    Multithreaded SQL database server

long_description \
    MySQL is an open-source, multi-threaded SQL database \
    with a command syntax very similar to mSQL.

master_sites \
    http://dev.mysql.com/get/Downloads/MySQL-${branch}/ \
    http://mysql.mirrors.pair.com/Downloads/MySQL-${branch}/ \
    http://mysql.he.net/Downloads/MySQL-${branch}/ \
    http://mysql.orst.edu/Downloads/MySQL-${branch} \
    http://mysql.oss.eznetsols.org/Downloads/MySQL-${branch}/ \
    http://mirrors.sunsite.dk/mysql/Downloads/MySQL-${branch}/ \
    http://sunsite.informatik.rwth-aachen.de/mysql/Downloads/MySQL-${branch}/ \
    http://ftp.plusline.de/mysql/Downloads/MySQL-${branch}/ \
    http://mysql.tonnikala.org/mysql/Downloads/MySQL-${branch}/ \
    http://www.innodb.com/download/innodb_plugin/:plugin

checksums \
    [suffix ${distname}] \
        md5     cbdb8783b053019755ee9196f67ea04c \
        sha1    ac3d7ce106149fef20e8a990b6124f9e05524e49 \
        rmd160  131dfbf78bf916a9c50c352681d25bd949b4c914

depends_lib \
    port:zlib \
    port:openssl

set major_version       [strsed ${version} {s/\..*$//}]
set mysql               mysql${major_version}
set libdir              ${prefix}/lib/${mysql}
set bindir              ${libdir}/bin
set dbdir               ${prefix}/var/db/${mysql}
set sysconfdir          ${prefix}/etc/${mysql}
set mysqluser           mysql

patchfiles \
    patch-mysql_secure_installation.sh.diff

post-patch {
    reinplace s%@BINDIR@%${bindir}%g ${worksrcpath}/scripts/mysql_secure_installation.sh
}

configure.args \
    --mandir=${prefix}/share/man \
    --infodir=${prefix}/share/info \
    --localstatedir=${dbdir} \
    --libdir=${libdir} \
    --bindir=${bindir} \
    --includedir=${prefix}/include/${mysql} \
    --datadir=${prefix}/share/${mysql} \
    --sysconfdir=${sysconfdir} \
    --with-zlib-dir=${prefix} \
    --with-ssl=${prefix} \
    --with-extra-charsets=complex \
    --with-unix-socket-path=${prefix}/var/run/${mysql}/mysqld.sock \
    --with-mysqld-user=${mysqluser} \
    --without-docs \
    --without-bench \
    --with-partition \
    --with-plugins=all \
    --enable-thread-safe-client
# the following is in store for future
#    --program-suffix=5

# Add readline support.
# "--without-readline" has the peculiar meaning "do not use the bundled copy
# of readline but use the system's (i.e. MacPorts') copy of readline"
depends_lib-append      port:readline
configure.args-append   --without-readline

# Build libmysqld embedded server
configure.cflags-append -fPIC
configure.cxxflags-append -fPIC
configure.args-append --with-embedded-server --with-pic

post-configure {
    reinplace "s;openssl_includes = -I;openssl_includes_includes = -I${prefix}/include/openssl;" ${worksrcpath}/tests/Makefile
}

variant server description "Obsolete; install ${mysql}-server-devel port instead" {
    pre-configure {
        ui_msg "The +server variant is obsolete. Please install the ${mysql}-server-devel port instead."
    }
}

set plugin_version      1.0.4
set plugin_distname     innodb_plugin-${plugin_version}
set plugin_distfile     [suffix ${plugin_distname}]
set plugin_worksrcdir   ${plugin_distname}
set plugin_worksrcpath  ${workpath}/${plugin_worksrcdir}
set innobase_dir        storage/innobase

variant innodb_plugin description "Install the InnoDB plugin Early Adopter release ${plugin_version}" {
    distfiles-append        ${plugin_distfile}:plugin
    
    checksums-append \
        ${plugin_distfile} \
            md5     4350ba7c1520edce35635f982449efb3 \
            sha1    c39e2a9cfa18b9f103c930d0c4a8edced81ed4ee \
            rmd160  bd0467a10781677a7a7bb2e58ad38e0a43841d7f
    
    post-extract {
        delete ${worksrcpath}/${innobase_dir}
        move ${plugin_worksrcpath} ${worksrcpath}/${innobase_dir}
    }
}

# the directories ${prefix}/sql-bench ${prefix}/mysql-test
destroot.violate_mtree  yes

pre-destroot {
    xinstall -m 755 -d ${destroot}${sysconfdir}
    destroot.keepdirs-append ${destroot}${sysconfdir}
}

post-destroot {
    delete ${destroot}${prefix}/mysql-test
    
    # Fix paths in manpages and sample configuration files
    foreach manpage [glob -type f ${destroot}${prefix}/share/man/man\[1-9\]/*] {
        reinplace "s|/etc/my.cnf|${sysconfdir}/my.cnf|g" ${manpage}
    }
    foreach samp_conffile [glob -type f ${destroot}${prefix}/share/${mysql}/mysql/my-*.cnf] {
        reinplace "s|/etc/my.cnf|${sysconfdir}/my.cnf|g" ${samp_conffile}
    }
    
    # Symlink mysql binaries into bin directory, with ${major_version} appended to the name
    foreach f [glob -tails -directory ${destroot}${bindir} my*] {
        ln -sf ${bindir}/${f} ${destroot}${prefix}/bin/${f}${major_version}
    }
}

livecheck.check         regex
livecheck.url           http://dev.mysql.com/
livecheck.regex         "(5\\.1\\.\[0-9\.\]+)"
