[101459] trunk/dports/python/py-polygon

Ryan Schmidt ryandesign at macports.org
Sun Jan 13 22:57:40 PST 2013


On Jan 11, 2013, at 03:59, stromnov at macports.org wrote:

> Revision: 101459
>          https://trac.macports.org/changeset/101459
> Author:   stromnov at macports.org
> Date:     2013-01-11 01:59:36 -0800 (Fri, 11 Jan 2013)
> Log Message:
> -----------
> py-polygon: update to version 2.0.5
> 
> Modified Paths:
> --------------
>    trunk/dports/python/py-polygon/Portfile
>    trunk/dports/python/py-polygon/files/patch-setup.py.diff
> 
> Modified: trunk/dports/python/py-polygon/Portfile
> ===================================================================
> --- trunk/dports/python/py-polygon/Portfile	2013-01-11 09:44:57 UTC (rev 101458)
> +++ trunk/dports/python/py-polygon/Portfile	2013-01-11 09:59:36 UTC (rev 101459)
> @@ -5,8 +5,8 @@
> PortGroup           python 1.0
> 
> name                py-polygon
> -version             2.0.4
> -revision            1
> +version             2.0.5
> +revision            0
> categories-append   devel math
> license             LGPL
> platforms           darwin
> @@ -26,17 +26,21 @@
> distname            Polygon-${version}
> use_zip             yes
> 
> -checksums           md5     9a036b22d1ee9568b8cbfa40b0bfa721 \
> -                    sha1    aa734572c911c0ddb4b39d1bf21f8ecbfa3685c8 \
> -                    rmd160  dfb26325998f3e8b44ac36f6ef2c0be30b8d9fd9
> +checksums           rmd160  6593a9ea0c8b25cab29c9cbaaf5d37230364b32d \
> +                    sha256  e0a111559eee27c8aee455cca6a1c5480a593ad5b0c11719a5cf066867d7a465
> 
> python.versions     25 26 27
> python.default_version 27
> 
> +patchfiles-append   patch-setup.py.diff
> +
> variant numpy description {Build with NumPy support} {
>     if {$subport != $name} {
>         depends_lib-append  port:py${python.version}-numpy
> -        patchfiles-append   patch-setup.py.diff
> +
> +        post-patch {
> +            reinplace "s|withNumPy=False|withNumPy=True|g" ${worksrcpath}/setup.py
> +        }
>     }
> }
> 
> 
> Modified: trunk/dports/python/py-polygon/files/patch-setup.py.diff
> ===================================================================
> --- trunk/dports/python/py-polygon/files/patch-setup.py.diff	2013-01-11 09:44:57 UTC (rev 101458)
> +++ trunk/dports/python/py-polygon/files/patch-setup.py.diff	2013-01-11 09:59:36 UTC (rev 101459)
> @@ -1,21 +1,24 @@
> ---- setup.py.orig	2011-04-07 15:26:45.000000000 +0400
> -+++ setup.py	2011-04-07 15:27:57.000000000 +0400
> -@@ -6,12 +6,16 @@
> +--- setup.py.orig	2012-07-03 13:55:50.000000000 +0400
> ++++ setup.py	2013-01-11 13:54:00.000000000 +0400
> +@@ -5,12 +5,19 @@
>  #  * faster adding of contours from NumPy arrays
>  #  * data style STYLE_NUMPY to get contours and TriStrips
>  #    as NumPy arrays
> --withNumPy=False
> -+withNumPy=True
> +-withNumPy=True
> ++withNumPy=False
> 
>  # if withNumPy is True, set the include path for numpy/arrayobject.h
>  # the example is for python on Windows:
>  # numPyIncludePath='C:\\Python26\\Lib\\site-packages\\numpy\\core\\include'
> -numPyIncludePath=''
> -+try:
> -+    import numpy
> -+except ImportError:
> -+    raise Exception("PYTHON interface requires numpy")
> -+numPyIncludePath = numpy.get_include()
> ++if withNumPy:
> ++    try:
> ++        import numpy
> ++    except ImportError:
> ++        raise Exception("PYTHON interface requires numpy")
> ++    numPyIncludePath = numpy.get_include()
> ++else:
> ++    numPyIncludePath = ''
> 
>  # defaultStyle may be used to set the default style to one of:
>  #  * STYLE_TUPLE to get tuples of points


I see you're applying a patch in the main part of the portfile which disables numpy in the setup file, and then in the numpy variant, you're applying a reinplace to turn it back on again. reinplaces are fragile, and you don't get any notification from MacPorts if they fail to apply. This can lead to problems when the software is updated in the future. An alternate method I could recommend would be to break the patchfile up into two files. Apply one of them in the main part of the port, and apply the other one (the one that turns off numpy support) only if the numpy variant is not selected.

Additionally, the numpy variant should be declared inside the "if {$subport != $name}" block; stub ports shouldn't have variants. (You can then remove the "if {$subport != $name}" check that's inside the variant.)




More information about the macports-dev mailing list