<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[121395] trunk/dports/python</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/121395">121395</a></dd>
<dt>Author</dt> <dd>petr@macports.org</dd>
<dt>Date</dt> <dd>2014-06-24 13:57:09 -0700 (Tue, 24 Jun 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>py-obspy-devel: new port for obspy development snapshots, version derived from git describe</pre>

<h3>Added Paths</h3>
<ul>
<li>trunk/dports/python/py-obspy-devel/</li>
<li><a href="#trunkdportspythonpyobspydevelPortfile">trunk/dports/python/py-obspy-devel/Portfile</a></li>
<li>trunk/dports/python/py-obspy-devel/files/</li>
<li><a href="#trunkdportspythonpyobspydevelfilespatchsetupsudspydiff">trunk/dports/python/py-obspy-devel/files/patch-setup-suds.py.diff</a></li>
<li><a href="#trunkdportspythonpyobspydevelfilespatchsetuppydiff">trunk/dports/python/py-obspy-devel/files/patch-setup.py.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportspythonpyobspydevelPortfile"></a>
<div class="addfile"><h4>Added: trunk/dports/python/py-obspy-devel/Portfile (0 => 121395)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,133 @@
</span><ins>+# -*- 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} &lt; 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} &lt; 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} &quot;w&quot;]
+        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} &quot;.&quot;] &quot;&quot;]
+
+        set variant_line {variant gcc${ver_no_dot} description &quot;build with gfortran from gcc${ver_no_dot}&quot;}
+
+        foreach over ${gcc_versions} {
+            if {${ver} == ${over}} {
+                continue
+            }
+
+            set over_no_dot [join [split ${over} &quot;.&quot;] &quot;&quot;]
+            append variant_line &quot; conflicts gcc${over_no_dot}&quot;
+        }
+        append variant_line { {}}
+
+        eval $variant_line
+
+        if {[variant_isset gcc${ver_no_dot}]} {
+            if {${default_fortran_variant} != &quot;+gcc${ver_no_dot}&quot;} {
+                set default_fortran_variant &quot;&quot;
+            }
+        }
+    }
+
+    if {${default_fortran_variant} != &quot;&quot;} {
+        default_variants-append &quot;${default_fortran_variant}&quot;
+    }
+
+    foreach ver ${gcc_versions} {
+        set ver_no_dot [join [split ${ver} &quot;.&quot;] &quot;&quot;]
+
+        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}
+        }
+    }
+}
</ins><span class="cx">Property changes on: trunk/dports/python/py-obspy-devel/Portfile
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkdportspythonpyobspydevelfilespatchsetupsudspydiff"></a>
<div class="addfile"><h4>Added: trunk/dports/python/py-obspy-devel/files/patch-setup-suds.py.diff (0 => 121395)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+--- setup.orig.py
++++ setup.py
+@@ -92,8 +92,7 @@
+     'scipy',
+     'matplotlib',
+     'lxml',
+-    'sqlalchemy',
+-    'suds-jurko']
++    'sqlalchemy' ]
+ EXTRAS_REQUIRE = {
+     'tests': ['flake8&gt;=2',
+               'nose',
</ins></span></pre></div>
<a id="trunkdportspythonpyobspydevelfilespatchsetuppydiff"></a>
<div class="addfile"><h4>Added: trunk/dports/python/py-obspy-devel/files/patch-setup.py.diff (0 => 121395)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+--- setup.orig.py
++++ setup.py
+@@ -455,7 +455,11 @@
+     libname = _get_lib_name(&quot;tau&quot;, add_extension_suffix=False)
+     files = glob.glob(os.path.join(path, &quot;*.f&quot;))
+     # 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(&quot;build&quot;, libname + os.extsep + &quot;pyf&quot;)
+@@ -473,6 +477,20 @@
+     # gfortran the option -lgcov is required
+     if os.environ.get('OBSPY_C_COVERAGE', &quot;&quot;):
+         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)
</ins></span></pre>
</div>
</div>

</body>
</html>