[121395] trunk/dports/python

petr at macports.org petr at macports.org
Tue Jun 24 13:57:09 PDT 2014


Revision: 121395
          https://trac.macports.org/changeset/121395
Author:   petr at macports.org
Date:     2014-06-24 13:57:09 -0700 (Tue, 24 Jun 2014)
Log Message:
-----------
py-obspy-devel: new port for obspy development snapshots, version derived from git describe

Added Paths:
-----------
    trunk/dports/python/py-obspy-devel/
    trunk/dports/python/py-obspy-devel/Portfile
    trunk/dports/python/py-obspy-devel/files/
    trunk/dports/python/py-obspy-devel/files/patch-setup-suds.py.diff
    trunk/dports/python/py-obspy-devel/files/patch-setup.py.diff

Added: trunk/dports/python/py-obspy-devel/Portfile
===================================================================
--- trunk/dports/python/py-obspy-devel/Portfile	                        (rev 0)
+++ trunk/dports/python/py-obspy-devel/Portfile	2014-06-24 20:57:09 UTC (rev 121395)
@@ -0,0 +1,133 @@
+# -*- 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
+# $Id$
+
+PortSystem          1.0
+PortGroup           python 1.0
+PortGroup           github 1.0
+
+github.setup        obspy obspy 0.9.2-787-gf176f4cdae
+name                py-${github.project}-devel
+conflicts           py-${github.project}
+
+categories-append   science
+platforms           darwin
+license             LGPL-3
+
+maintainers         petr openmaintainer
+
+description         Python framework for processing seismological data \
+                    (development snapshot)
+
+long_description    \
+    This port provides a development snapshot of the ObsPy package, which \
+    might not be always stable. \
+    ObsPy is an open-source project dedicated to provide a Python framework \
+    for processing seismological data. It provides support for file formats \
+    and signal processing routines which allow the manipulation, analysis \
+    and visualization of seismological time series. The goal of the ObsPy \
+    project is to facilitate rapid application development for seismology.
+
+homepage            http://www.obspy.org/
+
+checksums           md5     c9b406044bc50c069398c6fd0c39066d \
+                    rmd160  9d5d51fc9a20324d5f584845a7b4b66d821a2798 \
+                    sha256  af0db51604e478cae54005998eb006786f3f11a8d575a7477c8bbf1aa53121c7
+
+python.versions     26 27 33 34
+
+if {${name} ne ${subport}} {
+    depends_build-append    port:py${python.version}-numpy
+
+    depends_lib-append      port:py${python.version}-future \
+                            port:py${python.version}-numpy \
+                            port:py${python.version}-scipy \
+                            port:py${python.version}-lxml \
+                            port:py${python.version}-sqlalchemy \
+                            port:py${python.version}-matplotlib
+
+    # suds alternative dependency, Py2 only: suds or suds-jurko
+    if { ${python.version} < 30 } {
+        depends_lib-append \
+            path:${python.pkgd}/suds:py${python.version}-suds-jurko
+
+        patchfiles-append   patch-setup-suds.py.diff      
+    } else {
+        depends_lib-append  port:py${python.version}-suds-jurko
+    }
+
+    # Note: Required for post-installation testing only 
+    depends_run-append      port:py${python.version}-flake8 \
+                            port:py${python.version}-nose
+    # Python 3.3+: mock is available as unittest.mock
+    if { ${python.version} < 33 } {
+        depends_run-append  port:py${python.version}-mock
+    }
+
+    # Note: temporary workaround for numpy.distutils behaviour
+    patchfiles-prepend   patch-setup.py.diff
+
+    # creates a obspy/RELEASE-VERSION file dynamically
+    post-patch {
+        # set release version, python version string and target file
+        set ver_dev     ${github.version}
+        set ver_fname   ${worksrcpath}/obspy/RELEASE-VERSION
+
+        # open, write, close
+        set ver_fid [open ${ver_fname} "w"]
+        puts -nonewline ${ver_fid} ${ver_dev}
+        close ${ver_fid}
+    }
+
+    # py-scipy is not universal
+    universal_variant       no
+
+    set gcc_versions {4.3 4.4 4.5 4.6 4.7 4.8 4.9}
+    set default_fortran_variant +gcc48
+
+    foreach ver ${gcc_versions} {
+        set ver_no_dot [join [split ${ver} "."] ""]
+
+        set variant_line {variant gcc${ver_no_dot} description "build with gfortran from gcc${ver_no_dot}"}
+
+        foreach over ${gcc_versions} {
+            if {${ver} == ${over}} {
+                continue
+            }
+
+            set over_no_dot [join [split ${over} "."] ""]
+            append variant_line " conflicts gcc${over_no_dot}"
+        }
+        append variant_line { {}}
+
+        eval $variant_line
+
+        if {[variant_isset gcc${ver_no_dot}]} {
+            if {${default_fortran_variant} != "+gcc${ver_no_dot}"} {
+                set default_fortran_variant ""
+            }
+        }
+    }
+
+    if {${default_fortran_variant} != ""} {
+        default_variants-append "${default_fortran_variant}"
+    }
+
+    foreach ver ${gcc_versions} {
+        set ver_no_dot [join [split ${ver} "."] ""]
+
+        if {[variant_isset gcc${ver_no_dot}]} {
+            depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
+            depends_build-append port:gcc${ver_no_dot}
+
+            # F90 is the relevant variable!
+            configure.fc  ${prefix}/bin/gfortran-mp-${ver}
+            configure.f77 ${prefix}/bin/gfortran-mp-${ver}
+            configure.f90 ${prefix}/bin/gfortran-mp-${ver}
+
+            # `setup.py install` tests for Fortran compiler
+            destroot.env-append FC=${configure.fc}
+            destroot.env-append F77=${configure.f77}
+            destroot.env-append F90=${configure.f90}
+        }
+    }
+}


Property changes on: trunk/dports/python/py-obspy-devel/Portfile
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: trunk/dports/python/py-obspy-devel/files/patch-setup-suds.py.diff
===================================================================
--- trunk/dports/python/py-obspy-devel/files/patch-setup-suds.py.diff	                        (rev 0)
+++ trunk/dports/python/py-obspy-devel/files/patch-setup-suds.py.diff	2014-06-24 20:57:09 UTC (rev 121395)
@@ -0,0 +1,12 @@
+--- setup.orig.py
++++ setup.py
+@@ -92,8 +92,7 @@
+     'scipy',
+     'matplotlib',
+     'lxml',
+-    'sqlalchemy',
+-    'suds-jurko']
++    'sqlalchemy' ]
+ EXTRAS_REQUIRE = {
+     'tests': ['flake8>=2',
+               'nose',

Added: trunk/dports/python/py-obspy-devel/files/patch-setup.py.diff
===================================================================
--- trunk/dports/python/py-obspy-devel/files/patch-setup.py.diff	                        (rev 0)
+++ trunk/dports/python/py-obspy-devel/files/patch-setup.py.diff	2014-06-24 20:57:09 UTC (rev 121395)
@@ -0,0 +1,36 @@
+--- setup.orig.py
++++ setup.py
+@@ -455,7 +455,11 @@
+     libname = _get_lib_name("tau", add_extension_suffix=False)
+     files = glob.glob(os.path.join(path, "*.f"))
+     # compiler specific options
+-    kwargs = {'libraries': []}
++    # 2014-02-10, petr -- modification needed below
++    kwargs = {}
++    kwargs.update({'libraries': []})
++    kwargs.update({'extra_link_args': []})
++
+     # XXX: The build subdirectory is difficult to determine if installed
+     # via pypi or other means. I could not find a reliable way of doing it.
+     new_interface_path = os.path.join("build", libname + os.extsep + "pyf")
+@@ -473,6 +477,20 @@
+     # gfortran the option -lgcov is required
+     if os.environ.get('OBSPY_C_COVERAGE', ""):
+         kwargs['libraries'].append('gcov')
++
++    # 2014-02-10, petr -- workaround for unexpected numpy.distutils behaviour
++    #   This hot fix is needed for Macports. Macports sets `LDFLAGS` via
++    #   `Python Portgroup` to control build architecture setings.
++    #   For Fortran extentions this causes the default link arguments to be
++    #   canceled, which does not correspond to C bevavior. The fix below adds
++    #   these arguments manually.
++    #
++    #   Should probably be adressed in numpy.distutils.
++    #
++    if platform.system() == 'Darwin':
++        kwargs['extra_link_args'].append('-bundle')
++        kwargs['extra_link_args'].append('-undefined dynamic_lookup')
++
+     config.add_extension(libname, files, **kwargs)
+ 
+     add_data_files(config)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140624/d9fd22bc/attachment.html>


More information about the macports-changes mailing list