Ticket #39510: Portfile.py-oursql-1.diff

File Portfile.py-oursql-1.diff, 3.8 KB (added by stevecheckoway (Stephen Checkoway), 11 years ago)

Updates oursql to 0.9.3 for py3x and 0.9.3.1 for py2x. Drops mysql4 variant and adds mariadb and percona variants.

  • Portfile

    old new  
    1 # $Id$
     1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 expandtab
     2# $Id: Portfile 91979 2012-04-14 11:33:24Z jmr@macports.org $
    23
    34PortSystem 1.0
    45PortGroup python 1.0
    56
    67name                py-oursql
    7 version             0.9.2
    88categories          python devel databases
    99maintainers         gmail.com:habnabit
    1010description         Python driver for MySQL
     
    1313                    parameterization and real server-side cursors.
    1414platforms           darwin
    1515homepage            https://launchpad.net/oursql
    16 master_sites        http://launchpad.net/oursql/trunk/${version}/+download/
     16if {${python.version} >= 30} {
     17    version         0.9.3
     18    master_sites    http://launchpad.net/oursql/py3k/py3k-${version}/+download/
     19    checksums       rmd160  259fb68bebf901cee83ffcadfbb17da0ff72be64 \
     20                    sha256  778ccbd1cfc80cf22a2245cd63cf715348aa8bbcf1d45fb91b4aa0dd3744dd6f
     21    dist_subdir     ${name}-py3k
     22    use_zip         yes
     23    patchfiles      patch-oursqlx-oursql.c.diff
     24} else {
     25    version         0.9.3.1
     26    master_sites    http://launchpad.net/oursql/trunk/${version}/+download/
     27    checksums       rmd160  e38d9566acb3abe513e0cfe92a533f128410db2c \
     28                    sha256  a6d8044591b2ecb859b8bf72a1c535d0b33bd249f7fecdbe63d2173855b568b7
     29    use_zip         yes
     30}
    1731distname            oursql-${version}
    18 use_bzip2           yes
    19 checksums           sha1 d3d82bc5f6bf646f37853020171fed48e9920d9e \
    20                     rmd160 0f38d57b34ce5194c8ad5a9717e5cf3fe2dcd7af
    2132
    22 python.versions     26 27
     33python.versions     26 27 31 32 33
    2334python.default_version 27
    2435
    25 variant mysql4 conflicts mysql5 description {Build with MySQL 4} {
    26     if {$subport != $name} {
    27         depends_lib-append  port:mysql4
    28         build.env           MYSQL_CONFIG=mysql_config4
    29     }
    30 }
     36if {$subport != $name} {
     37    set mysql_variants {mysql5 mysql51 mysql55 mysql56 mariadb percona}
    3138
    32 variant mysql5 conflicts mysql4 description {Build with MySQL 5} {
    33     if {$subport != $name} {
    34         depends_lib-append  path:bin/mysql_config5:mysql5
    35         build.env           MYSQL_CONFIG=mysql_config5
     39    proc desc {name} {
     40        switch -regexp -matchvar matchlst $name {
     41            mysql([0-9])([0-9])? {
     42                if {[llength $matchlst] == 2} {
     43                    return "Build with MySQL [lindex $matchlst 1]"
     44                }
     45                return "Build with MySQL [lindex $matchlst 1].[lindex $matchlst 2]"
     46            }
     47            mariadb { return "Build with MariaDB" }
     48            percona { return "Build with Percona" }
     49        }
    3650    }
    37 }
    3851
    39 if {![variant_isset mysql4]} {
    40     default_variants +mysql5
    41 }
     52    for {set i 0} {$i < [llength $mysql_variants]} {incr i} {
     53        set var   [lindex $mysql_variants $i]
     54        set confs [lreplace $mysql_variants $i $i]
     55        set cmd [concat variant $var conflicts $confs description]
     56        lappend cmd [description $var] "
     57            depends_lib-append port:$var
     58            set mysql_config lib/$var/bin/mysql_config
     59        "
     60        eval $cmd
     61    }
    4262
    43 pre-fetch {
    44     if {![variant_isset mysql4] && ![variant_isset mysql5]} {
    45         return -code error "you must select either mysql4 or mysql5"
     63    proc mysql_variant_isset {variants} {
     64        foreach var $variants {
     65            if {[variant_isset $var]} {
     66                return true
     67            }
     68        }
     69        return false
     70    }
     71   
     72    if ![mysql_variant_isset $mysql_variants] {
     73        default_variants +mysql5
     74    }
     75   
     76    pre-fetch {
     77        if ![mysql_variant_isset $mysql_variants] {
     78            return -code error "You must select one of the following variants: $mysql_variants"
     79        }
    4680    }
    4781}