Changeset 92142


Ignore:
Timestamp:
Apr 20, 2012, 12:21:25 AM (8 years ago)
Author:
pixilla@…
Message:

databases/mysql51:

  • New mysql51 port based off mysql5. (svn cp)
Location:
trunk/dports/databases/mysql51
Files:
2 added
1 deleted
2 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/dports/databases/mysql51/Portfile

    r89161 r92142  
    22# $Id$
    33
    4 PortSystem              1.0
    5 PortGroup               archcheck 1.0
    6 
    7 # http://bugs.mysql.com/bug.php?id=47360
    8 PortGroup               muniversal 1.0
    9 
    10 name                    mysql5
    11 conflicts               mysql5-devel mysql4 mariadb
    12 version                 5.1.61
    13 set branch              [join [lrange [split ${version} .] 0 1] .]
    14 homepage                http://www.mysql.com/
    15 categories              databases
    16 platforms               darwin
    17 maintainers             ryandesign
    18 license                 GPL-2
    19 distname                mysql-${version}
    20 use_parallel_build      yes
    21 
    22 description \
    23     Multithreaded SQL database server
    24 
    25 long_description \
    26     MySQL is an open-source, multi-threaded SQL database \
    27     with a command syntax very similar to mSQL.
    28 
    29 master_sites \
    30     http://mysql.mirrors.pair.com/Downloads/MySQL-${branch}/ \
    31     http://mysql.he.net/Downloads/MySQL-${branch}/ \
    32     http://mirrors.sunsite.dk/mysql/Downloads/MySQL-${branch}/ \
    33     http://sunsite.informatik.rwth-aachen.de/mysql/Downloads/MySQL-${branch}/ \
    34     http://mirror.facebook.net/mysql/Downloads/MySQL-${branch}/ \
    35     http://ftp.plusline.de/mysql/Downloads/MySQL-${branch}/
    36 
    37 checksums               rmd160  392b7394a0f7821134f177a3ba4580a29d60e3f4 \
    38                         sha256  879c6424282e38eb1ba9b1910db98b378a5574ceed431a69e344643a5524f918
    39 
    40 depends_lib \
    41     port:zlib \
    42     port:openssl
    43 
    44 archcheck.files         lib/libz.dylib \
    45                         lib/libssl.dylib
    46 
    47 set major_version       [strsed ${version} {s/\..*$//}]
    48 set mysql               mysql${major_version}
    49 set libdir              ${prefix}/lib/${mysql}
    50 set bindir              ${libdir}/bin
    51 set dbdir               ${prefix}/var/db/${mysql}
    52 set sysconfdir          ${prefix}/etc/${mysql}
     4PortSystem          1.0
     5
     6name                mysql51
     7# Fixme: Subdir mysql5.
     8# Conflict due to mysqld_safe finding mysql5 ports ${prefix}/libexec/mysqld.
     9conflicts           mysql5
     10version             5.1.62
     11categories          databases
     12platforms           darwin
     13maintainers         pixilla openmaintainer
     14license             GPL-2
    5315
    5416if {"darwin" == ${os.platform} && ${os.major} > 8} {
     
    5820}
    5921
    60 patchfiles \
    61     patch-Makefile.in.diff \
    62     patch-mysql_secure_installation.sh.diff
    63 
    64 post-patch {
    65     reinplace s%@BINDIR@%${bindir}%g ${worksrcpath}/scripts/mysql_secure_installation.sh
     22if {$subport == $name} {
     23
     24# http://bugs.mysql.com/bug.php?id=47360
     25    PortGroup           muniversal 1.0
     26    PortGroup           archcheck 1.0
     27    PortGroup           select 1.0
     28   
     29    set branch          [join [lrange [split ${version} .] 0 1] .]
     30
     31    license             GPL-2
     32    description         Multithreaded SQL database server
     33    long_description    MySQL is an open-source, multi-threaded SQL database with a command \
     34                        syntax very similar to mSQL.
     35   
     36    homepage            http://www.mysql.com/
     37    master_sites \
     38        http://mysql.mirrors.pair.com/Downloads/MySQL-${branch}/ \
     39        http://mysql.he.net/Downloads/MySQL-${branch}/ \
     40        http://mirrors.sunsite.dk/mysql/Downloads/MySQL-${branch}/ \
     41        http://sunsite.informatik.rwth-aachen.de/mysql/Downloads/MySQL-${branch}/ \
     42        http://mirror.facebook.net/mysql/Downloads/MySQL-${branch}/ \
     43        http://ftp.plusline.de/mysql/Downloads/MySQL-${branch}/
     44   
     45   
     46    distname            mysql-${version}
     47    use_parallel_build  yes
     48   
     49    patch.pre_args      -p1
     50    patchfiles          patch-Makefile.in.diff \
     51                        patch-scripts-mysql_secure_installation.sh.diff
     52
     53    checksums           rmd160  c5720deee2b04a40a20f56a3b305b37fecb343fe \
     54                        sha256  97c07b2478e25892fe915b2c46e99083973f541ecdf06672241f0c22f79fead3
     55   
     56    depends_lib         port:zlib
     57   
     58    depends_run         port:mysql_select
     59   
     60    select.group        mysql
     61    select.file         ${filespath}/${name}
     62   
     63    archcheck.files     lib/libz.dylib
     64   
     65    post-patch {
     66        reinplace s%@BINDIR@%${prefix}/lib/${name}/bin%g ${worksrcpath}/scripts/mysql_secure_installation.sh
     67    }
     68   
     69    configure.args \
     70        --bindir=${prefix}/lib/${name}/bin \
     71        --sbindir=${prefix}/lib/${name}/bin \
     72        --libexecdir=${prefix}/lib/${name}/bin \
     73        --sysconfdir=${prefix}/etc/${name} \
     74        --localstatedir=${prefix}/var/db/${name} \
     75        --libdir=${prefix}/lib/${name} \
     76        --includedir=${prefix}/include/${name} \
     77        --datarootdir=${prefix}/share/${name} \
     78        --infodir=${prefix}/share/info/${name} \
     79        --mandir=${prefix}/share/man/${name} \
     80        --with-zlib-dir=${prefix} \
     81        --without-ssl \
     82        --with-extra-charsets=complex \
     83        --with-unix-socket-path=${prefix}/var/run/${name}/mysqld.sock \
     84        --with-mysqld-user=${mysqluser} \
     85        --without-docs \
     86        --with-plugins=all \
     87        --enable-thread-safe-client
     88   
     89    # Add readline support.
     90    # "--without-readline" has the peculiar meaning "do not use the bundled copy
     91    # of readline but use the system's (i.e. MacPorts') copy of readline"
     92    depends_lib-append      port:readline
     93    archcheck.files-append  lib/libreadline.dylib
     94    configure.args-append   --without-readline
     95   
     96    # Build libmysqld embedded server.
     97    configure.cflags-append -fPIC
     98    configure.cxxflags-append -fPIC
     99    configure.args-append --with-embedded-server --with-pic
     100   
     101    # BUILD FIX TODO: clang, build system
     102    # doesn't build with clang as of 2011.06.27
     103    # This looks like a bug in mysql's build system
     104    if {${configure.compiler} == "clang"} {
     105        configure.compiler llvm-gcc-4.2
     106    }
     107   
     108    post-build {
     109        if {[variant_isset universal]} {
     110            set dirs {}
     111            foreach arch ${universal_archs_to_use} {
     112                lappend dirs ${worksrcpath}-${arch}
     113            }
     114        } else {
     115            set dirs ${worksrcpath}
     116        }
     117        foreach dir ${dirs} {
     118            reinplace -E {s|-arch [a-z0-9_]+||g} \
     119                ${dir}/scripts/mysql_config \
     120                ${dir}/scripts/mysqlbug
     121        }
     122    }
     123   
     124    pre-destroot {
     125        xinstall -m 755 -d ${destroot}${prefix}/etc/${name}
     126        destroot.keepdirs-append ${destroot}${prefix}/etc/${name}
     127    }
     128   
     129    post-destroot {
     130        # proc portdestroot::destroot_finish fails to find and compress our man pages
     131        # so borrow the compress command and run on our files now.
     132        set manpath "${destroot}${prefix}/share/man"
     133        set gzip [findBinary gzip ${portutil::autoconf::gzip_path}]
     134        foreach manpage [glob -type f ${destroot}${prefix}/share/man/${name}/man\[1-9\]/*] {
     135            # Fix paths in manpages
     136            reinplace "s|/etc/|${prefix}/etc/${name}/|g" ${manpage}
     137            # Compress all manpages with gzip
     138            system "$gzip -9vf ${manpage}"
     139        }
     140        foreach samp_conffile [glob -type f ${destroot}${prefix}/share/${name}/mysql/my-*.cnf] {
     141            # Fix paths in sample configuration files
     142            reinplace "s|/etc/my.cnf|${prefix}/etc/${name}/my.cnf|g" ${samp_conffile}
     143        }
     144       
     145    }
     146   
     147    post-install {
     148        if {![file exists ${prefix}/etc/LaunchDaemons/org.macports.${name}/org.macports.${name}.plist]} {
     149            ui_msg "The MySQL client has been installed."
     150            ui_msg "If you also want a MySQL server, install the mysql5-server port."
     151        }
     152    }
     153   
     154    variant openssl description {Enable OpenSSL support} {
     155   
     156        license-append          OpenSSL SSLeay
     157        depends_lib-append      port:openssl
     158        configure.args-delete   --without-ssl
     159        configure.args-append   --with-ssl=${prefix}
     160        archcheck.files-append  lib/libssl.dylib
     161    }
     162
     163    livecheck.type          regex
     164    livecheck.version       [lindex [split ${version} -] 0]
     165    livecheck.url           http://dev.mysql.com/
     166    livecheck.regex         "<a href=\"http://dev.mysql.com/downloads/mysql/\[^\"\]+\">(${branch}(\.\[0-9.\]+)?)\[^<\]*</a>"
    66167}
    67 
    68 configure.args \
    69     --mandir=${prefix}/share/man \
    70     --infodir=${prefix}/share/info \
    71     --localstatedir=${dbdir} \
    72     --libdir=${libdir} \
    73     --bindir=${bindir} \
    74     --includedir=${prefix}/include/${mysql} \
    75     --datadir=${prefix}/share/${mysql} \
    76     --sysconfdir=${sysconfdir} \
    77     --with-zlib-dir=${prefix} \
    78     --with-ssl=${prefix} \
    79     --with-extra-charsets=complex \
    80     --with-unix-socket-path=${prefix}/var/run/${mysql}/mysqld.sock \
    81     --with-mysqld-user=${mysqluser} \
    82     --without-docs \
    83     --with-plugins=all \
    84     --enable-thread-safe-client
    85 # the following is in store for future
    86 #    --program-suffix=5
    87 
    88 # Add readline support.
    89 # "--without-readline" has the peculiar meaning "do not use the bundled copy
    90 # of readline but use the system's (i.e. MacPorts') copy of readline"
    91 depends_lib-append      port:readline
    92 archcheck.files-append  lib/libreadline.dylib
    93 configure.args-append   --without-readline
    94 
    95 # Build libmysqld embedded server.
    96 configure.cflags-append -fPIC
    97 configure.cxxflags-append -fPIC
    98 configure.args-append --with-embedded-server --with-pic
    99 
    100 # BUILD FIX TODO: clang, build system
    101 # doesn't build with clang as of 2011.06.27
    102 # This looks like a bug in mysql's build system
    103 if {${configure.compiler} == "clang"} {
    104     configure.compiler llvm-gcc-4.2
     168subport mysql51-server {
     169
     170    license                 BSD
     171    description             Multithreaded SQL database server
     172    long_description        MySQL is an open-source, multi-threaded SQL database with a command \
     173                            syntax very similar to mSQL.
     174   
     175    homepage                http://www.mysql.com/
     176    supported_archs         noarch
     177    distfiles
     178   
     179    depends_run             port:${name}
     180   
     181    add_users ${mysqluser} group=${mysqluser} realname=MySQL\ Server
     182   
     183    startupitem.create      yes
     184    startupitem.name        ${name}
     185    startupitem.start       "${prefix}/share/${name}/mysql/mysql.server start"
     186    startupitem.stop        "${prefix}/share/${name}/mysql/mysql.server stop"
     187   
     188    use_configure           no
     189   
     190    build {}
     191   
     192    destroot {
     193        xinstall -m 755 -o root -d ${destroot}${prefix}/var/run
     194        xinstall -m 755 -o ${mysqluser} -g ${mysqluser} -d \
     195            ${destroot}${prefix}/var/db/${name} \
     196            ${destroot}${prefix}/var/log/${name} \
     197            ${destroot}${prefix}/var/run/${name}
     198        destroot.keepdirs-append  \
     199            ${destroot}${prefix}/var/db/${name} \
     200            ${destroot}${prefix}/var/log/${name} \
     201            ${destroot}${prefix}/var/run/${name}
     202    }
     203   
     204    notes "
     205   
     206    If this is a new install you might want to run:
     207        \$ sudo -u ${mysqluser} ${prefix}/lib/${name}/bin/mysql_install_db
     208   
     209    "
     210   
     211    livecheck.type          none
    105212}
    106 
    107 post-build {
    108     if {[variant_isset universal]} {
    109         set dirs {}
    110         foreach arch ${universal_archs_to_use} {
    111             lappend dirs ${worksrcpath}-${arch}
    112         }
    113     } else {
    114         set dirs ${worksrcpath}
    115     }
    116     foreach dir ${dirs} {
    117         reinplace -E {s|-arch [a-z0-9_]+||g} \
    118             ${dir}/scripts/mysql_config \
    119             ${dir}/scripts/mysqlbug
    120     }
    121 }
    122 
    123 pre-destroot {
    124     xinstall -m 755 -d ${destroot}${sysconfdir}
    125     destroot.keepdirs-append ${destroot}${sysconfdir}
    126 }
    127 
    128 post-destroot {
    129     # Fix paths in manpages and sample configuration files
    130     foreach manpage [glob -type f ${destroot}${prefix}/share/man/man\[1-9\]/*] {
    131         reinplace "s|/etc/my.cnf|${sysconfdir}/my.cnf|g" ${manpage}
    132     }
    133     foreach samp_conffile [glob -type f ${destroot}${prefix}/share/${mysql}/mysql/my-*.cnf] {
    134         reinplace "s|/etc/my.cnf|${sysconfdir}/my.cnf|g" ${samp_conffile}
    135     }
    136    
    137     # Symlink mysql binaries into bin directory, with ${major_version} appended to the name
    138     foreach f [glob -tails -directory ${destroot}${bindir} my*] {
    139         ln -sf ${bindir}/${f} ${destroot}${prefix}/bin/${f}${major_version}
    140     }
    141 }
    142 
    143 post-install {
    144     if {![file exists ${prefix}/etc/LaunchDaemons/org.macports.${mysql}/org.macports.${mysql}.plist]} {
    145         ui_msg "The MySQL client has been installed."
    146         ui_msg "If you also want a MySQL server, install the mysql5-server port."
    147     }
    148 }
    149 
    150 livecheck.type          regex
    151 livecheck.version       [lindex [split ${version} -] 0]
    152 livecheck.url           http://dev.mysql.com/
    153 livecheck.regex         "<a href=\"http://dev.mysql.com/downloads/mysql/\[^\"\]+\">(${branch}(\.\[0-9.\]+)?)\[^<\]*</a>"
  • trunk/dports/databases/mysql51/files/patch-Makefile.in.diff

    r71223 r92142  
    1 --- Makefile.in.orig    2010-08-03 12:29:19.000000000 -0500
    2 +++ Makefile.in 2010-09-05 02:53:04.000000000 -0500
    3 @@ -417,7 +417,7 @@
     1--- a/Makefile.in       2012-04-12 09:59:54.000000000 -0700
     2+++ b/Makefile.in       2012-04-12 09:59:19.000000000 -0700
     3@@ -412,7 +412,7 @@
    44                        @sql_union_dirs@ unittest \
    55                        @sql_server@ @man_dirs@ tests \
Note: See TracChangeset for help on using the changeset viewer.