<!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>[144150] trunk/dports</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/144150">144150</a></dd>
<dt>Author</dt> <dd>mcalhoun@macports.org</dd>
<dt>Date</dt> <dd>2016-01-02 23:40:58 -0800 (Sat, 02 Jan 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>octave-devel, octave_select: new and resurrected ports
*) allows testing of major revisions before transitioning (e.g. 3.8.2 -&gt; 4.0.0, #48622, #47979)
*) allows testing of release candidates
*) allows testing of cutting-edge features</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsmathoctavedevelPortfile">trunk/dports/math/octave-devel/Portfile</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/dports/math/octave-devel/files/</li>
<li><a href="#trunkdportsmathoctavedevelfilesclanglibcxxfixpatch">trunk/dports/math/octave-devel/files/clang-libcxx-fix.patch</a></li>
<li><a href="#trunkdportsmathoctavedevelfilesoctavebug_41027patch">trunk/dports/math/octave-devel/files/octave-bug_41027.patch</a></li>
<li><a href="#trunkdportsmathoctavedevelfilesoctaveclangclassdefpatch">trunk/dports/math/octave-devel/files/octave-clang-classdef.patch</a></li>
<li><a href="#trunkdportsmathoctavedevelfilesoctavedevel">trunk/dports/math/octave-devel/files/octave-devel</a></li>
<li><a href="#trunkdportsmathoctavedevelfilesoctavedevelrc">trunk/dports/math/octave-devel/files/octave-devel-rc</a></li>
<li><a href="#trunkdportsmathoctavedevelfilesoctavedevelrelease">trunk/dports/math/octave-devel/files/octave-devel-release</a></li>
<li><a href="#trunkdportsmathoctavedevelfilesosmesa_mac_fixpatch">trunk/dports/math/octave-devel/files/osmesa_mac_fix.patch</a></li>
<li><a href="#trunkdportsmathoctavedevelfilespatchstdioinhdiff">trunk/dports/math/octave-devel/files/patch-stdio.in.h.diff</a></li>
<li>trunk/dports/sysutils/octave_select/</li>
<li><a href="#trunkdportssysutilsoctave_selectPortfile">trunk/dports/sysutils/octave_select/Portfile</a></li>
<li>trunk/dports/sysutils/octave_select/files/</li>
<li><a href="#trunkdportssysutilsoctave_selectfilesbase">trunk/dports/sysutils/octave_select/files/base</a></li>
<li><a href="#trunkdportssysutilsoctave_selectfilesnone">trunk/dports/sysutils/octave_select/files/none</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsmathoctavedevelPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/math/octave-devel/Portfile (144149 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/Portfile        2016-01-03 07:17:55 UTC (rev 144149)
+++ trunk/dports/math/octave-devel/Portfile        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -1,35 +1,622 @@
</span><del>-# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4
</del><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
</ins><span class="cx"> # $Id$
</span><span class="cx"> 
</span><span class="cx"> PortSystem          1.0
</span><ins>+PortGroup           compilers  1.0
+PortGroup           muniversal 1.0
+PortGroup           active_variants 1.1
+PortGroup           select     1.0
</ins><span class="cx"> 
</span><span class="cx"> name                octave-devel
</span><del>-version             3.6.4
-revision            11
-
</del><span class="cx"> categories          math science
</span><del>-maintainers         michaelld openmaintainer
-license             GPL-3
</del><span class="cx"> platforms           darwin
</span><ins>+license             GPL-3+
+maintainers         mcalhoun openmaintainer
+description         a high-level language for numerical computations
+long_description    \
+    GNU Octave is a high-level language, primarily intended for numerical \
+    computations.  It provides a convenient command line interface for \
+    solving linear and nonlinear problems numerically.
</ins><span class="cx"> 
</span><del>-description         a Matlab-like environment for numerical analysis
-long_description    Octave provides a convenient command line interface \
-                    for solving linear and nonlinear problems numerically, \
-                    using a language that is mostly compatible with Matlab. \
-                    It is easily extensible and customizable via \
-                    user-defined functions or using dynamically loaded \
-                    modules written in e.g. C++, C or Fortran.
</del><ins>+homepage            http://www.gnu.org/software/octave
</ins><span class="cx"> 
</span><del>-homepage            http://www.gnu.org/software/octave/
</del><ins>+#fetch.type          hg
+#hg.url              http://hg.savannah.gnu.org/hgweb/octave/
</ins><span class="cx"> 
</span><del>-replaced_by         octave
</del><ins>+set version_release 4.0.0
+set version_rc      4.0.1
+set version_tip     4.1.0+
</ins><span class="cx"> 
</span><del>-archive_sites
-distfiles
</del><ins>+#revision           0
</ins><span class="cx"> 
</span><del>-pre-fetch {
-    ui_error &quot;${subport} has been temporarily replaced by the port 'octave'. Please install octave instead.&quot;
-    return -code error &quot;obsolete port&quot;
</del><ins>+if { ${name} eq ${subport} } {
+    version         ${version_tip}
+    #incr revision  0
+    hg.tag          5a340d8458d6
+
+    checksums-append               \
+        ${hg.tag}${extract.suffix} \
+        rmd160  9fc8bf87a82331ed644f68b31bb8a2cd7f2ec539 \
+        sha256  152b316872d20eca275433a9dd2d339ce7e475b5be36d37d1637601ccd3cd898
+
+    livecheck.regex   &quot;&lt;a href=\&quot;/hgweb/octave/rev/(\[a-zA-Z0-9.\]+)\&quot;&gt;\ntip&quot;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-livecheck.type      none
</del><ins>+subport octave-devel-rc {
+    version         ${version_rc}
+    #incr revision  0
+    hg.tag          20b17dda0e0c
+
+    if {${version_rc} eq ${version_release}} {
+        conflicts-append octave-devel-release
+    }
+
+    checksums-append               \
+        ${hg.tag}${extract.suffix} \
+        rmd160  bc42b7b3b2a4fca3b1264203bad4cbc3e941206e \
+        sha256  9ab6b66f698e7bd187d462844edd59dc5911e341f1bcdaa8f98f7de4f9950aae
+
+    livecheck.regex   &quot;&lt;a href=\&quot;/hgweb/octave/rev/(\[a-zA-Z0-9.\]+)\&quot;&gt;\nrc-&quot;
+}
+
+subport octave-devel-release {
+    version         ${version_release}
+    #incr revision  0
+    hg.tag          3ccc2d02e64b
+
+    if {${version_release} eq ${version_rc}} {
+        conflicts-append octave-devel-release
+    }
+
+    # see http://savannah.gnu.org/bugs/?41178
+    patchfiles-append \
+        octave-clang-classdef.patch
+
+    checksums-append               \
+        ${hg.tag}${extract.suffix} \
+        rmd160  4bbcc004ffdde859b0735e602aac2d01388d0b2c \
+        sha256  2a4017a03ca80c280b5d39cf88af8954c7bfdbf1b3b40b9f09d3bd4bd1dd6040
+
+    livecheck.regex   &quot;&lt;a href=\&quot;/hgweb/octave/rev/(\[a-zA-Z0-9.\]+)\&quot;&gt;\nrelease-&quot;
+}
+
+select.group octave
+select.file  ${filespath}/${subport}
+
+# check http://hg.savannah.gnu.org/hgweb/octave/gnulib-hg/rev for latest version
+set hg_gnu_tag      7f19e7f2afa2
+
+checksums-append \
+    ${hg_gnu_tag}${extract.suffix} \
+    rmd160  9d906212fdb4201f8592da10524606dadb3f50e3 \
+    sha256  85add8ce0c53e8868d903c28c407d864ca54bd42e8d472e09b1a1bb4b105b741
+
+master_sites        http://hg.savannah.gnu.org/hgweb/octave/archive:octave \
+                    http://hg.savannah.gnu.org/hgweb/octave/gnulib-hg/archive:gnulib \
+use_bzip2           yes
+
+distfiles           \
+    ${hg.tag}${extract.suffix}:octave \
+    ${hg_gnu_tag}${extract.suffix}:gnulib
+
+worksrcdir          octave-${hg.tag}
+
+#depends_extract-append port:git
+post-extract {
+    # command from bootstrap script file
+    #system -W ${worksrcpath} &quot;${prefix}/bin/git clone --depth 2 git://git.sv.gnu.org/gnulib gnulib-hg&quot;
+    move ${worksrcpath}/../gnulib-hg-${hg_gnu_tag} ${worksrcpath}/gnulib-hg
+}
+
+# allow osmesa support to at least compile
+patchfiles-append   \
+    osmesa_mac_fix.patch
+
+# see http://savannah.gnu.org/bugs/?41027
+patchfiles-append   \
+    octave-bug_41027.patch
+
+# see http://git.savannah.gnu.org/cgit/gnulib.git/commit/lib/stdio.in.h?id=d6176702c3ffb6c56e6620397470e1b3bd540b10
+patchfiles-append   \
+    patch-stdio.in.h.diff
+
+pre-patch {
+    # code located in pre-patch because variants from PortGroup compilers must
+    #    be evaluated before it can be determined if clang is being used
+
+    # see http://trac.macports.org/ticket/45011
+    # see http://savannah.gnu.org/bugs/?43298
+    set libcxxbug no
+    if { ${configure.cc} eq &quot;/usr/bin/clang&quot; &amp;&amp; [lindex [split ${xcodeversion} .] 0] eq 6 } {
+        set libcxxbug yes
+    } elseif { [variant_exists clang35] &amp;&amp; [variant_isset clang35] } {
+        set libcxxbug yes
+    }
+    if { ${libcxxbug} } {
+        patchfiles-append   \
+            clang-libcxx-fix.patch
+    }
+}
+
+# need for autoconf
+depends_build-append \
+    port:autoconf    \
+    port:automake    \
+    port:libtool
+
+use_autoconf         yes
+autoconf.cmd         ./bootstrap
+autoconf.args
+
+# avoid depends_build-append port:coreutils
+configure.env-append MKDIR_P=&quot;/bin/mkdir -p&quot;
+
+# avoid depends_build-append port:cctools
+configure.env-append RANLIB=/usr/bin/ranlib
+
+# main octave port lists as a depends_lib
+# configure.ac list it among the &quot;[p]rograms used in Makefiles&quot;
+depends_build-append port:gawk
+configure.awk ${prefix}/bin/gawk
+
+# in configure.ac, said to be &quot;[p]rograms used to generate icons file formats
+depends_build-append \
+    port:icoutils    \
+    port:librsvg
+configure.env-append              \
+    ICOTOOL=${prefix}/bin/icotool \
+    RSVG_CONVERT=${prefix}/bin/rsvg-convert
+
+# main octave port lists as a depends_lib
+# configure.ac list it among the &quot;[p]rograms used in Makefiles&quot;
+depends_build-append port:grep
+configure.env-append  GREP=${prefix}/bin/grep
+configure.env-append EGREP=${prefix}/bin/egrep
+configure.env-append FGREP=${prefix}/bin/fgrep
+
+# configure.ac list it among the &quot;[p]rograms used in Makefiles&quot;
+depends_build-append port:findutils
+configure.env-append FIND=${prefix}/bin/gfind
+
+# main octave port lists as a depends_lib
+# configure.ac list it among the &quot;[p]rograms used in Makefiles&quot;
+depends_build-append port:gsed
+configure.env-append SED=${prefix}/bin/gsed
+
+depends_build-append port:flex
+configure.env-append LEX=${prefix}/bin/flex
+
+depends_build-append port:bison
+configure.env-append YACC=&quot;${prefix}/bin/bison -y&quot;
+
+depends_build-append port:gperf
+configure.env-append GPERF=/usr/bin/gperf
+
+# configure.ac list it among the &quot;[p]rograms used in Makefiles&quot;
+depends_build-append port:perl5
+configure.perl ${prefix}/bin/perl5
+
+# avoid depends_build-append port:desktop-file-utils
+#configure.env-append DESKTOP_FILE_INSTALL=&quot;&quot;
+configure.env-append ac_cv_prog_DESKTOP_FILE_INSTALL=&quot;&quot;
+
+depends_build-append \
+    port:pkgconfig
+
+compilers.choose    fc f77 f90 cc cxx
+
+# for now, limit the number of variants
+# some of these compilers may work fine
+compilers.setup     \
+    require_fortran \
+    -dragonegg      \
+    -gcc49          \
+    -gcc48          \
+    -gcc46          \
+    -gcc45          \
+    -gcc44          \
+    -g95            \
+    -llvm           \
+    -gcc47          \
+    -gcc46          \
+    -gcc45          \
+    -gcc44          \
+    -clang36        \
+    -clang35        \
+    -clang34        \
+    -clang33
+
+# offscreen rendering with OpenGL via osmesa would be nice to have, but the following
+#    causes a segmentation fault:
+#    h = figure (&quot;visible&quot;, &quot;off&quot;); fn = tempname (); sombrero (); __osmesa_print__ (h, fn, &quot;svg&quot;);
+#
+# solution is ???
+#
+#depends_lib-append port:mesa
+configure.args-append       \
+    --without-OSMesa
+
+#configure.args-append --with-shell=???
+
+configure.args-append       \
+    --with-framework-opengl \
+    --with-framework-carbon \
+    --without-x             \
+    --enable-static
+
+configure.args-append       \
+    --disable-openmp
+
+configure.args-append       \
+    --disable-java          \
+    --disable-gui           \
+    --without-fltk          \
+    --disable-jit           \
+    --without-sndfile       \
+    --without-portaudio     \
+    --without-magick
+
+# in configure.ac, listed as one of &quot;[p]rograms used when running Octave&quot;
+depends_lib-append port:python27
+configure.python ${prefix}/bin/python2.7
+
+# in configure.ac, listed as one of &quot;[p]rograms used when running Octave&quot;
+depends_lib-append port:ghostscript
+configure.env-append GHOSTSCRIPT=${prefix}/bin/gs
+
+# in configure.ac, listed as one of &quot;[p]rograms used when running Octave&quot;
+depends_lib-append port:gnuplot
+configure.env-append GNUPLOT=${prefix}/bin/gnuplot
+
+# in configure.ac, listed as one of &quot;[p]rograms used when running Octave&quot;
+depends_lib-append port:less
+configure.env-append DEFAULT_PAGER=${prefix}/bin/less
+
+depends_lib-append   port:ncurses
+depends_lib-append   port:readline
+depends_lib-append   port:fontconfig
+depends_lib-append   port:pcre
+
+#--disable-docs
+depends_lib-append port:texinfo
+configure.env-append                \
+    MAKEINFO=${prefix}/bin/makeinfo \
+    TEXI2DVI=${prefix}/bin/texi2dvi \
+    TEXI2PDF=${prefix}/bin/texi2pdf
+
+#--without-amd
+#--without-camd
+#--without-colamd
+#--without-cholmod
+#--without-cxsparse
+#--without-umfpack
+depends_lib-append  port:SuiteSparse
+foreach lib {amd camd colamd cholmod cxsparse umfpack} {
+    configure.args-append \
+        --with-${lib}=&quot;-l${lib} -lsuitesparseconfig&quot;
+}
+
+#--without-qhull
+depends_lib-append  port:qhull
+
+#--without-z
+depends_lib-append  port:zlib
+
+#--without-hdf5
+depends_lib-append  port:hdf5
+
+#--disable-fftw-threads
+#--without-fftw3
+#--without-fftw3f
+depends_lib-append  port:fftw-3
+depends_lib-append  port:fftw-3-single
+
+#--without-glpk
+depends_lib-append  port:glpk
+
+#--without-curl
+depends_lib-append  port:curl
+
+#--without-qrupdate
+depends_lib-append port:qrupdate
+
+#--without-arpack
+depends_lib-append port:arpack
+
+#--without-openssl
+depends_lib-append port:openssl
+
+# fortran arch flag is not set automatically
+if {![variant_isset universal]} {
+    if {${build_arch} eq &quot;x86_64&quot; || ${build_arch} eq &quot;ppc64&quot;} {
+        configure.fflags-append -m64
+    } else {
+        configure.fflags-append -m32
+    }
+}
+
+# see etc/README.MacOS
+depends_run-append   \
+    port:epstool     \
+    port:ghostscript \
+    port:transfig    \
+    port:pstoedit
+
+depends_run-append port:octave_select
+
+variant accelerate description {use BLAS from Apple's Accelerate.framework} conflicts atlas openblas {
+    depends_lib-append port:vecLibFort
+
+    # dependents must be built with same BLAS and LAPACK
+    #require_active_variants port:arpack      accelerate
+    #require_active_variants port:SuiteSparse accelerate
+    #require_active_variants port:qrupdate    accelerate
+
+    configure.args-append        \
+        --with-blas=-lvecLibFort \
+        --with-lapack=&quot;&quot;
+}
+
+variant openblas description {use BLAS from MacPorts' openblas port} conflicts atlas accelerate {
+
+    depends_lib-append path:lib/libopenblas.dylib:OpenBLAS
+    # LAPACK required
+    require_active_variants path:lib/libopenblas.dylib:OpenBLAS lapack
+
+    # dependents must be built with same BLAS and LAPACK
+    #require_active_variants port:arpack      openblas
+    #require_active_variants port:SuiteSparse openblas
+    #require_active_variants port:qrupdate    openblas
+
+    # replicate default values if configure script finds openblas on its own
+    configure.args-append        \
+        --with-blas=-lopenblas   \
+        --with-lapack=&quot;&quot;
+}
+
+variant atlas description {use BLAS from MacPorts' atlas port} conflicts accelerate openblas {
+    depends_lib-append port:atlas
+
+    # dependents must be built with same BLAS and LAPACK
+    #require_active_variants port:arpack      atlas
+    #require_active_variants port:SuiteSparse atlas
+    #require_active_variants port:qrupdate    atlas
+
+    # replicate default values if configure script finds atlas on its own
+    configure.args-append        \
+        --with-blas=&quot;-lcblas -lf77blas -latlas&quot; \
+        --with-lapack=-llapack
+}
+
+if {![variant_isset accelerate] &amp;&amp; ![variant_isset openblas] &amp;&amp; ![variant_isset atlas] } {
+    default_variants-append +accelerate
+}
+
+if {![variant_isset accelerate] &amp;&amp; ![variant_isset openblas] &amp;&amp; ![variant_isset atlas] } {
+    ui_error &quot;\n\nYou must select either the +accelerate, +atlas, or +openblas variant.\n&quot;
+    return -code error &quot;Invalid variant selection&quot;
+}
+
+variant java description {enable Java interface} {
+    PortGroup java 1.0
+    configure.args-replace --disable-java --enable-java
+}
+default_variants-append +java
+
+variant qt4gui description {build the GUI using Qt4} {
+    PortGroup qt4 1.0
+    depends_lib-append  port:qscintilla
+    configure.args-replace --disable-gui --enable-gui
+}
+default_variants-append +qt4gui
+
+variant fltk description {enable fltk as a graphics toolkit for plotting} {
+    depends_lib-append path:lib/libfltk.dylib:fltk
+
+    # as of version 4.1.0 revision 0:
+    #    without fltk, configure script turns off &quot;native_graphics,&quot; and
+    #       does not look for either freetype or gl2ps
+    #    it still looks for and links against fontconfig, however
+    depends_lib-append \
+        port:freetype  \
+        port:gl2ps
+
+    configure.args-replace --without-fltk --with-fltk
+}
+default_variants-append +fltk
+
+variant jit description {enable JIT compiler (EXPERIMENTAL)} {
+    # JIT requires LLVM, so select a version to use
+    set llvm_ver 3.7
+
+    # prevent multiple versions of llvm being required
+    # if clangXY compiler is requested, use llvm-X.Y
+    foreach clang ${compilers.clang_variants} {
+        if { [variant_exists ${clang}] &amp;&amp; [variant_isset ${clang}] } {
+            set llvm_ver [string index ${clang} end-1].[string index ${clang} end]
+        }
+    }
+
+    depends_lib-append port:llvm-${llvm_ver}
+    configure.args-replace --disable-jit --enable-jit
+    configure.env-append LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_ver}
+    configure.cxxflags-append -std=c++11
+}
+
+if {[variant_isset fltk] &amp;&amp; [variant_isset qt4gui]} {
+    notes-append &quot;unless octave is run with --no-gui-libs, graphics_toolkit(\&quot;fltk\&quot;) will cause a crash&quot;
+}
+
+variant sound description {enable audio support (file I/O and playback)} {
+    depends_lib-append port:libsndfile
+    depends_lib-append port:portaudio
+
+    configure.args-replace --without-sndfile   --with-sndfile
+    configure.args-replace --without-portaudio --with-portaudio
+}
+default_variants-append +sound
+
+variant app description {} {
+    depends_build-append port:ImageMagick
+
+    global appName
+    set appName Octave_${version}.app
+
+    post-build {
+        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents
+        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents/Resources
+        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents/MacOS
+
+        set script [open &quot;${worksrcpath}/${appName}/Contents/MacOS/Octave&quot; w 0755]
+        puts ${script} &quot;#!/bin/sh&quot;
+        puts ${script} &quot;&quot;
+        if { [variant_isset qt4gui] } {
+            puts ${script} &quot;${prefix}/bin/octave-${version} --force-gui&quot;
+        } else {
+            puts ${script} &quot;/usr/bin/osascript -e 'tell application \&quot;Terminal\&quot; to do script \&quot;${prefix}/bin/octave-${version}  --no-gui-libs; exit\&quot;'&quot;
+        }
+        close ${script}
+
+        #NSHumanReadableCopyright      ''
+        #LSUIElement                   1
+        set values &quot;
+            CFBundleDevelopmentRegion     English
+            CFBundleExecutable            Octave
+            CFBundleIconFile              Octave.icns
+            CFBundleDocumentTypes         {-array \'{\&quot;CFBundleTypeExtensions\&quot; = (\&quot;m\&quot;); \&quot;CFBundleTypeOSTypes\&quot; = (\&quot;Mfile\&quot;); \&quot;CFBundleTypeRole\&quot; = \&quot;Editor\&quot;;}\'}
+            CFBundleIdentifier            org.octave.Octave
+            CFBundleInfoDictionaryVersion 6.0
+            CFBundleSignature             Octave
+            CFBundleVersion               ${version}
+            CFBundleShortVersionString    ${version}
+        &quot;
+        foreach {key value} ${values} {
+            system &quot;/usr/bin/defaults write ${worksrcpath}/${appName}/Contents/Info ${key} ${value}&quot;
+        }
+
+        # have Info.plist be human readable
+        system &quot;/usr/bin/plutil -convert xml1 ${worksrcpath}/${appName}/Contents/Info.plist&quot;
+
+        # conversion by plutil set verys limited permission
+        system &quot;/bin/chmod 0644 ${worksrcpath}/${appName}/Contents/Info.plist&quot;
+
+        xinstall -d -m 0755 ${worksrcpath}/Octave.iconset
+
+        # values from original SVG file
+        set svg    etc/icons/octave-logo.svg
+        set width  283.28912
+        set height 283.28833
+        set dpi    90
+
+        foreach res {16 32 128 256 512} {
+
+            set hres [expr 2*${res}]
+
+            # find new density so that converted PNG files do not look pixelated
+            set denw  [expr ${dpi}*${res}/${width}]
+            set denh  [expr ${dpi}*${res}/${height}]
+
+            set hdenw [expr 2*${denw}]
+            set hdenh [expr 2*${denh}]
+
+            system -W ${worksrcpath} &quot;${prefix}/bin/convert -background transparent -resize ${res}x${res}   -density ${denw}x${denh}   ${svg}  Octave.iconset/icon_${res}x${res}.png&quot;
+            system -W ${worksrcpath} &quot;${prefix}/bin/convert -background transparent -resize ${hres}x${hres} -density ${hdenw}x${hdenh} ${svg} Octave.iconset/icon_${res}x${res}@2x.png&quot;
+        }
+
+        system -W ${worksrcpath} &quot;/usr/bin/iconutil -c icns -o ${appName}/Contents/Resources/Octave.icns Octave.iconset&quot;
+    }
+
+    post-destroot {
+        copy ${worksrcpath}/${appName} ${destroot}${applications_dir}
+    }
+}
+default_variants-append +app
+
+# GraphicsMagick and octave need to be built with the same C++ standard library
+# or else undefined symbols:
+#    &quot;Magick::Image::ping(std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;)&quot;
+set magickConflict {}
+set magickDefault yes
+if {${configure.cxx_stdlib} ne &quot;libstdc++&quot;} {
+    foreach gccVar ${compilers.gcc_variants} {
+        if {[variant_exists ${gccVar}] } {
+            lappend magickConflict ${gccVar}
+
+            if {[variant_isset ${gccVar}] } {
+                set magickDefault no
+            }
+        }
+    }
+}
+eval &quot;variant graphicsmagick description {use GraphicsMagick for image I/O} conflicts ${magickConflict} {
+    depends_lib-append port:GraphicsMagick
+    configure.args-replace --without-magick --with-magick=GraphicsMagick
+}&quot;
+if {${magickDefault}} {
+    default_variants-append +graphicsmagick
+}
+
+# remove architecture flags from header file
+if { [variant_exists universal] &amp;&amp; [variant_isset universal] } {
+    merger-post-destroot {
+        foreach arch ${universal_archs_to_use} {
+            set hfile ${destroot}-${arch}${prefix}/include/octave-${version}/octave/oct-conf.h
+            reinplace &quot;s:-arch ${arch}::g&quot;   ${hfile}
+            reinplace {s:-m32::g}            ${hfile}
+            reinplace {s:-m64::g}            ${hfile}
+        }
+    }
+} else {
+    post-destroot {
+        set hfile ${destroot}${prefix}/include/octave-${version}/octave/oct-conf.h
+        reinplace &quot;s:-arch ${build_arch}::g&quot; ${hfile}
+        reinplace {s:-m32::g}                ${hfile}
+        reinplace {s:-m64::g}                ${hfile}
+    }
+}
+
+# remove or rename conflicting files
+post-destroot {
+    foreach bin {mkoctfile octave octave-cli octave-config} {
+        # delete since just a link to versioned name
+        file delete ${destroot}${prefix}/bin/${bin}
+
+        # put version number in man file
+        move ${destroot}${prefix}/share/man/man1/${bin}.1 ${destroot}${prefix}/share/man/man1/${bin}-${version}.1
+    }
+
+    # put version nubmer in info files
+    foreach name {liboctave octave} {
+        move ${destroot}${prefix}/share/info/${name}.info  ${destroot}${prefix}/share/info/${name}-${version}.info
+    }
+    foreach suffix {1 2 3 4 5 6 7 8 9} {
+        move ${destroot}${prefix}/share/info/octave.info-${suffix}  ${destroot}${prefix}/share/info/octave-${version}.info-${suffix}
+    }
+
+    # put any startup commands in ${destroot}${prefix}/share/octave/${version}/m/startup/octaverc
+    # see https://www.gnu.org/software/octave/doc/interpreter/Startup-Files.html
+    file delete ${destroot}${prefix}/share/octave/site/m/startup/octaverc
+
+    # move appdata and icons into a versioned directory
+    xinstall -d -m 0755 ${destroot}${prefix}/share/octave/${version}/appdata
+    move \
+        ${destroot}${prefix}/share/appdata/www.octave.org-octave.appdata.xml \
+        ${destroot}${prefix}/share/octave/${version}/appdata/
+    foreach num {16 22 24 32 48 64 128 256 512} {
+        xinstall -d -m 0755 -p ${destroot}${prefix}/share/octave/${version}/icons/hicolor/${num}x${num}/apps
+        move \
+            ${destroot}${prefix}/share/icons/hicolor/${num}x${num}/apps/octave.png \
+            ${destroot}${prefix}/share/octave/${version}/icons/hicolor/${num}x${num}/apps/octave.png
+    }
+    xinstall -d -m 0755 -p ${destroot}${prefix}/share/octave/${version}/icons/hicolor/scalable/apps
+    move \
+        ${destroot}${prefix}/share/icons/hicolor/scalable/apps/octave.svg \
+        ${destroot}${prefix}/share/octave/${version}/icons/hicolor/scalable/apps/octave.svg
+}
+
+test.run    yes
+test.target check
+
+livecheck.type    regexm
+livecheck.url     http://hg.savannah.gnu.org/hgweb/octave/tags
+livecheck.version ${hg.tag}
</ins></span></pre></div>
<a id="trunkdportsmathoctavedevelfilesclanglibcxxfixpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/math/octave-devel/files/clang-libcxx-fix.patch (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/files/clang-libcxx-fix.patch                                (rev 0)
+++ trunk/dports/math/octave-devel/files/clang-libcxx-fix.patch        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,105 @@
</span><ins>+# HG changeset patch
+# User Kefu Chai &lt;tchaikov@gmail.com&gt;
+# Date 1413043255 -28800
+#      Sun Oct 12 00:00:55 2014 +0800
+# Node ID 1433cd4f7b7bda0b0e0a04f990b55ffc3cbaf701
+# Parent  91a6f06c505220d269de3a0dab8cc898d03d91a0
+fix the build error on clang 3.5 and libc++ (bug #43298)
+
+* liboctave/operators/mx-inlines.cc:
+use the workaround if libc++ with this issue is detected.
+
+* liboctave/operators/libcxx-fix.cc:
+add a workaround for http://llvm.org/bugs/show_bug.cgi?id=21083, so that only
+the arithmetic types are accepted for the function template &quot;libcxx_fix::pow()&quot;.
+
+diff -r 91a6f06c5052 -r 1433cd4f7b7b liboctave/operators/libcxx-fix.h
+--- /dev/null        Thu Jan 01 00:00:00 1970 +0000
++++ liboctave/operators/libcxx-fix.h        Sun Oct 12 00:00:55 2014 +0800
+@@ -0,0 +1,69 @@
++#ifndef _LIBCPP_VERSION
++#error &quot;for libc++ only&quot;
++#endif
++
++namespace libcxx_fix {
++
++using std::is_integral;
++using std::is_same;
++using std::enable_if;
++
++template &lt;class _Tp, class _Tn = void&gt;
++struct numeric_type
++{
++    typedef void type;
++    static const bool value = false;
++};
++
++template &lt;class _Tp&gt;
++struct numeric_type&lt;_Tp, typename enable_if&lt;is_integral&lt;_Tp&gt;::value ||
++                                            is_same&lt;_Tp, double&gt;::value&gt;::type&gt;
++{
++    typedef double type;
++    static const bool value = true;
++};
++
++template &lt;class _Tp&gt;
++struct numeric_type&lt;_Tp, typename enable_if&lt;is_same&lt;_Tp, long double&gt;::value ||
++                                            is_same&lt;_Tp, float&gt;::value&gt;::type&gt;
++{
++    typedef _Tp type;
++    static const bool value = true;
++};
++
++template &lt;&gt;
++struct numeric_type&lt;void, void&gt;
++{
++    static const bool value = true;
++};
++
++template &lt;class _A1, class _A2,
++          bool = numeric_type&lt;_A1&gt;::value &amp;&amp;
++                 numeric_type&lt;_A2&gt;::value&gt;
++class promote
++{};
++
++template &lt;class _A1, class _A2&gt;
++class promote&lt;_A1, _A2, true&gt;
++{
++private:
++    typedef typename numeric_type&lt;_A1&gt;::type __type1;
++    typedef typename numeric_type&lt;_A2&gt;::type __type2;
++public:
++    typedef decltype(__type1() + __type2()) type;
++};
++
++template &lt;class _A1, class _A2&gt;
++inline _LIBCPP_INLINE_VISIBILITY
++typename promote&lt;_A1, _A2&gt;::type
++pow(_A1 __x, _A2 __y) _NOEXCEPT
++{
++    typedef typename promote&lt;_A1, _A2&gt;::type __result_type;
++#if _LIBCPP_STD_VER &gt; 11
++    static_assert((!(is_same&lt;_A1, __result_type&gt;::value &amp;&amp;
++                     is_same&lt;_A2, __result_type&gt;::value)), &quot;&quot;);
++#endif
++    return ::pow(static_cast&lt;__result_type&gt;(__x), static_cast&lt;__result_type&gt;(__y));
++}
++
++}
+diff -r 91a6f06c5052 -r 1433cd4f7b7b liboctave/operators/mx-inlines.cc
+--- a/liboctave/operators/mx-inlines.cc        Thu Oct 09 20:38:04 2014 -0700
++++ liboctave/operators/mx-inlines.cc        Sun Oct 12 00:00:55 2014 +0800
+@@ -307,7 +307,13 @@

+ // Let the compiler decide which pow to use, whichever best matches the
+ // arguments provided.
++#if defined(_LIBCPP_VERSION) &amp;&amp; (_LIBCPP_VERSION &gt;= 1101)
++// Workaround http://llvm.org/bugs/show_bug.cgi?id=21083
++#include &quot;libcxx-fix.h&quot;
++using libcxx_fix::pow;
++#else
+ using std::pow;
++#endif
+ DEFMXMAPPER2X (mx_inline_pow, pow)

+ // Arbitrary function appliers. The function is a template parameter to enable
</ins></span></pre></div>
<a id="trunkdportsmathoctavedevelfilesoctavebug_41027patch"></a>
<div class="addfile"><h4>Added: trunk/dports/math/octave-devel/files/octave-bug_41027.patch (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/files/octave-bug_41027.patch                                (rev 0)
+++ trunk/dports/math/octave-devel/files/octave-bug_41027.patch        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,24 @@
</span><ins>+diff -r 900b524d9072 libinterp/corefcn/comment-list.h
+--- a/libinterp/corefcn/comment-list.h        Sat Apr 19 09:28:20 2014 -0700
++++ libinterp/corefcn/comment-list.h        Sun May 18 18:09:05 2014 +0200
+@@ -25,7 +25,7 @@

+ #include &lt;string&gt;

+-#include &lt;base-list.h&gt;
++#include &quot;base-list.h&quot;

+ extern std::string get_comment_text (void);

+diff -r 900b524d9072 libinterp/corefcn/oct.h
+--- a/libinterp/corefcn/oct.h        Sat Apr 19 09:28:20 2014 -0700
++++ libinterp/corefcn/oct.h        Sun May 18 18:09:05 2014 +0200
+@@ -28,7 +28,7 @@
+ // config.h needs to be first because it includes #defines that can */
+ // affect other header files.

+-#include &lt;config.h&gt;
++#include &quot;config.h&quot;

+ #include &quot;Matrix.h&quot;

</ins></span></pre></div>
<a id="trunkdportsmathoctavedevelfilesoctaveclangclassdefpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/math/octave-devel/files/octave-clang-classdef.patch (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/files/octave-clang-classdef.patch                                (rev 0)
+++ trunk/dports/math/octave-devel/files/octave-clang-classdef.patch        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+# HG changeset patch
+# User akira noda &lt;you.akira.noda@gmail.com&gt;
+# Date 1440176752 14400
+#      Fri Aug 21 13:05:52 2015 -0400
+# Node ID 03a20edfe1c7f147e7adcface83025351b8f31c9
+# Parent  0fe7133da8ceb02744b3288841927f586b9a514c
+Fix compilation of classdef with the clang compiler (bug #41178)
+
+* ov-classdef.cc, ov-classdef.h (cdef_object_scalar::mark_as_constructed):
+Move function definition out of header file to avoid dependency on incomplete
+type, compilation error with clang.
+
+diff --git a/libinterp/octave-value/ov-classdef.cc b/libinterp/octave-value/ov-classdef.cc
+--- a/libinterp/octave-value/ov-classdef.cc
++++ libinterp/octave-value/ov-classdef.cc
+@@ -1946,6 +1946,12 @@ cdef_object_scalar::is_partially_constru
+   return true;
+ }

++void
++cdef_object_scalar::mark_as_constructed (const cdef_class&amp; cls)
++{
++  ctor_list.erase (cls);
++}
++
+ handle_cdef_object::~handle_cdef_object (void)
+ {
+ #if DEBUG_TRACE
+diff --git a/libinterp/octave-value/ov-classdef.h b/libinterp/octave-value/ov-classdef.h
+--- a/libinterp/octave-value/ov-classdef.h
++++ libinterp/octave-value/ov-classdef.h
+@@ -438,7 +438,7 @@ public:

+   void mark_as_constructed (void) { ctor_list.clear (); }

+-  void mark_as_constructed (const cdef_class&amp; cls) { ctor_list.erase (cls); }
++  void mark_as_constructed (const cdef_class&amp; cls);

+   bool is_constructed (void) const { return ctor_list.empty (); }

</ins></span></pre></div>
<a id="trunkdportsmathoctavedevelfilesoctavedevel"></a>
<div class="addfile"><h4>Added: trunk/dports/math/octave-devel/files/octave-devel (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/files/octave-devel                                (rev 0)
+++ trunk/dports/math/octave-devel/files/octave-devel        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+bin/mkoctfile-4.1.0+
+bin/octave-4.1.0+
+bin/octave-cli-4.1.0+
+bin/octave-config-4.1.0+
+share/man/man1/mkoctfile-4.1.0+.1.gz
+share/man/man1/octave-cli-4.1.0+.1.gz
+share/man/man1/octave-config-4.1.0+.1.gz
+share/man/man1/octave-4.1.0+.1.gz
+share/info/liboctave-4.1.0+.info
+share/info/octave-4.1.0+.info
+share/info/octave-4.1.0+.info-1
+share/info/octave-4.1.0+.info-2
+share/info/octave-4.1.0+.info-3
+share/info/octave-4.1.0+.info-4
+share/info/octave-4.1.0+.info-5
+share/info/octave-4.1.0+.info-6
+share/info/octave-4.1.0+.info-7
+share/info/octave-4.1.0+.info-8
+share/info/octave-4.1.0+.info-9
+share/octave/4.1.0+/appdata/www.octave.org-octave.appdata.xml
+share/octave/4.1.0+/icons/hicolor/16x16/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/22x22/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/24x24/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/32x32/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/48x48/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/64x64/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/128x128/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/256x256/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/512x512/apps/octave.png
+share/octave/4.1.0+/icons/hicolor/scalable/apps/octave.svg
</ins></span></pre></div>
<a id="trunkdportsmathoctavedevelfilesoctavedevelrc"></a>
<div class="addfile"><h4>Added: trunk/dports/math/octave-devel/files/octave-devel-rc (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/files/octave-devel-rc                                (rev 0)
+++ trunk/dports/math/octave-devel/files/octave-devel-rc        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+bin/mkoctfile-4.0.1
+bin/octave-4.0.1
+bin/octave-cli-4.0.1
+bin/octave-config-4.0.1
+share/man/man1/mkoctfile-4.0.1.1.gz
+share/man/man1/octave-cli-4.0.1.1.gz
+share/man/man1/octave-config-4.0.1.1.gz
+share/man/man1/octave-4.0.1.1.gz
+share/info/liboctave-4.0.1.info
+share/info/octave-4.0.1.info
+share/info/octave-4.0.1.info-1
+share/info/octave-4.0.1.info-2
+share/info/octave-4.0.1.info-3
+share/info/octave-4.0.1.info-4
+share/info/octave-4.0.1.info-5
+share/info/octave-4.0.1.info-6
+share/info/octave-4.0.1.info-7
+share/info/octave-4.0.1.info-8
+share/info/octave-4.0.1.info-9
+share/octave/4.0.1/appdata/www.octave.org-octave.appdata.xml
+share/octave/4.0.1/icons/hicolor/16x16/apps/octave.png
+share/octave/4.0.1/icons/hicolor/22x22/apps/octave.png
+share/octave/4.0.1/icons/hicolor/24x24/apps/octave.png
+share/octave/4.0.1/icons/hicolor/32x32/apps/octave.png
+share/octave/4.0.1/icons/hicolor/48x48/apps/octave.png
+share/octave/4.0.1/icons/hicolor/64x64/apps/octave.png
+share/octave/4.0.1/icons/hicolor/128x128/apps/octave.png
+share/octave/4.0.1/icons/hicolor/256x256/apps/octave.png
+share/octave/4.0.1/icons/hicolor/512x512/apps/octave.png
+share/octave/4.0.1/icons/hicolor/scalable/apps/octave.svg
</ins></span></pre></div>
<a id="trunkdportsmathoctavedevelfilesoctavedevelrelease"></a>
<div class="addfile"><h4>Added: trunk/dports/math/octave-devel/files/octave-devel-release (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/files/octave-devel-release                                (rev 0)
+++ trunk/dports/math/octave-devel/files/octave-devel-release        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+bin/mkoctfile-4.0.0
+bin/octave-4.0.0
+bin/octave-cli-4.0.0
+bin/octave-config-4.0.0
+share/man/man1/mkoctfile-4.0.0.1.gz
+share/man/man1/octave-cli-4.0.0.1.gz
+share/man/man1/octave-config-4.0.0.1.gz
+share/man/man1/octave-4.0.0.1.gz
+share/info/liboctave-4.0.0.info
+share/info/octave-4.0.0.info
+share/info/octave-4.0.0.info-1
+share/info/octave-4.0.0.info-2
+share/info/octave-4.0.0.info-3
+share/info/octave-4.0.0.info-4
+share/info/octave-4.0.0.info-5
+share/info/octave-4.0.0.info-6
+share/info/octave-4.0.0.info-7
+share/info/octave-4.0.0.info-8
+share/info/octave-4.0.0.info-9
+share/octave/4.0.0/appdata/www.octave.org-octave.appdata.xml
+share/octave/4.0.0/icons/hicolor/16x16/apps/octave.png
+share/octave/4.0.0/icons/hicolor/22x22/apps/octave.png
+share/octave/4.0.0/icons/hicolor/24x24/apps/octave.png
+share/octave/4.0.0/icons/hicolor/32x32/apps/octave.png
+share/octave/4.0.0/icons/hicolor/48x48/apps/octave.png
+share/octave/4.0.0/icons/hicolor/64x64/apps/octave.png
+share/octave/4.0.0/icons/hicolor/128x128/apps/octave.png
+share/octave/4.0.0/icons/hicolor/256x256/apps/octave.png
+share/octave/4.0.0/icons/hicolor/512x512/apps/octave.png
+share/octave/4.0.0/icons/hicolor/scalable/apps/octave.svg
</ins></span></pre></div>
<a id="trunkdportsmathoctavedevelfilesosmesa_mac_fixpatch"></a>
<div class="addfile"><h4>Added: trunk/dports/math/octave-devel/files/osmesa_mac_fix.patch (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/files/osmesa_mac_fix.patch                                (rev 0)
+++ trunk/dports/math/octave-devel/files/osmesa_mac_fix.patch        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+diff -Naur a/libinterp/dldfcn/__osmesa_print__.cc b/libinterp/dldfcn/__osmesa_print__.cc
+--- libinterp/dldfcn/__osmesa_print__.cc        2015-05-23 16:21:53.000000000 +0200
++++ libinterp/dldfcn/__osmesa_print__.cc        2015-10-05 21:08:50.000000000 +0200
+@@ -27,6 +27,12 @@
+ #include &lt;config.h&gt;
+ #endif

++#if defined (HAVE_OSMESA_H)
++#include &quot;osmesa.h&quot;
++#elif defined (HAVE_GL_OSMESA_H)
++#include &quot;GL/osmesa.h&quot;
++#endif
++
+ #include &quot;oct-locbuf.h&quot;
+ #include &quot;unwind-prot.h&quot;

+@@ -36,12 +42,6 @@
+ #include &quot;graphics.h&quot;
+ #include &quot;gripes.h&quot;

+-#if defined (HAVE_OSMESA_H)
+-#include &quot;osmesa.h&quot;
+-#elif defined (HAVE_GL_OSMESA_H)
+-#include &quot;GL/osmesa.h&quot;
+-#endif
+-
+ #if defined (HAVE_OSMESA) &amp;&amp; defined (HAVE_OPENGL)
+ static void
+ close_fcn (FILE *f)
</ins></span></pre></div>
<a id="trunkdportsmathoctavedevelfilespatchstdioinhdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/math/octave-devel/files/patch-stdio.in.h.diff (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/octave-devel/files/patch-stdio.in.h.diff                                (rev 0)
+++ trunk/dports/math/octave-devel/files/patch-stdio.in.h.diff        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,53 @@
</span><ins>+From d6176702c3ffb6c56e6620397470e1b3bd540b10 Mon Sep 17 00:00:00 2001
+From: Jonathan Perkin &lt;jperkin@joyent.com&gt;
+Date: Thu, 04 Jun 2015 11:10:34 +0000
+Subject: stdio: Don't redefine gets when using C++
+
+We've hit this failure a few times in pkgsrc with packages which embed gnulib,
+an example being the latest gnutls:
+
+  ../../src/gl/stdio.h:1034:1: error: 'char* gets(char*)' conflicts with a previous declaration
+   _GL_WARN_ON_USE (gets, &quot;gets is a security hole - use fgets instead&quot;);
+   ^
+
+  /opt/tools/gcc49/lib/gcc/x86_64-sun-solaris2.11/4.9.2/include-fixed/iso/stdio_iso.h:259:14: note: previous declaration 'char* std::gets(char*)'
+   extern char *gets(char *);
+                ^
+
+Full build log is here:
+
+  http://us-east.manta.joyent.com/pkgsrc/public/reports/upstream-trunk32/20150602.2233/gnutls-3.3.15/build.log
+
+We've fixed it a few different ways over time:
+
+  https://github.com/joyent/pkgsrc/blob/joyent/release/2015Q1/devel/m4/patches/patch-lib_stdio.in.h
+  https://github.com/joyent/pkgsrc/blob/joyent/release/2015Q1/math/octave/patches/patch-libgnu_stdio.in.h
+  https://github.com/joyent/pkgsrc/blob/joyent/release/2015Q1/security/gnutls/patches/patch-gl_stdio.in.h
+
+but the cleanest fix appears to be the last, so I am proposing it here for
+inclusion upstream.
+
+Message-Id: &lt;20150604111034.GG66573@joyent.com&gt;
+Signed-off-by: Eric Blake &lt;eblake@redhat.com&gt;
+---
+(limited to 'lib/stdio.in.h')
+
+diff --git a/lib/stdio.in.h b/lib/stdio.in.h
+index fa6b595..476dee1 100644
+--- a/lib/stdio.in.h
++++ gnulib-hg/lib/stdio.in.h
+@@ -723,11 +723,10 @@ _GL_WARN_ON_USE (getline, &quot;getline is unportable - &quot;
+    so any use of gets warrants an unconditional warning; besides, C11
+    removed it.  */
+ #undef gets
+-#if HAVE_RAW_DECL_GETS
++#if HAVE_RAW_DECL_GETS &amp;&amp; !defined __cplusplus
+ _GL_WARN_ON_USE (gets, &quot;gets is a security hole - use fgets instead&quot;);
+ #endif

+-
+ #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
+ struct obstack;
+ /* Grow an obstack with formatted output.  Return the number of
+--
+cgit v0.9.0.2
</ins></span></pre></div>
<a id="trunkdportssysutilsoctave_selectPortfile"></a>
<div class="addfile"><h4>Added: trunk/dports/sysutils/octave_select/Portfile (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/sysutils/octave_select/Portfile                                (rev 0)
+++ trunk/dports/sysutils/octave_select/Portfile        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,46 @@
</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           select 1.0
+
+name                octave_select
+version             1.0
+
+categories          sysutils math
+platforms           darwin
+maintainers         mcalhoun openmaintainer
+license             BSD
+supported_archs     noarch
+
+description         common files for selecting default octave version
+long_description    octave_select installs files that allow 'port select' to \
+                    switch between octave versions
+
+homepage            http://www.gnu.org/software/octave
+distfiles
+
+destroot.keepdirs-append                \
+    ${destroot}${prefix}/bin            \
+    ${destroot}${prefix}/share/man/man1 \
+    ${destroot}${prefix}/share/info/    \
+    ${destroot}${prefix}/share/appdata
+
+foreach sz {16 22 24 32 48 64 128 256 512} {
+    destroot.keepdirs-append \
+        ${destroot}${prefix}/share/icons/hicolor/${sz}x${sz}/apps
+}
+
+destroot.keepdirs-append \
+    ${destroot}${prefix}/share/icons/hicolor/scalable/apps
+
+use_configure       no
+
+build               {}
+
+destroot {
+    select::install octave ${filespath}/base
+    select::install octave ${filespath}/none
+}
+
+livecheck.type      none
</ins><span class="cx">Property changes on: trunk/dports/sysutils/octave_select/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="trunkdportssysutilsoctave_selectfilesbase"></a>
<div class="addfile"><h4>Added: trunk/dports/sysutils/octave_select/files/base (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/sysutils/octave_select/files/base                                (rev 0)
+++ trunk/dports/sysutils/octave_select/files/base        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+bin/mkoctfile
+bin/octave
+bin/octave-cli
+bin/octave-config
+share/man/man1/mkoctfile.1.gz
+share/man/man1/octave-cli.1.gz
+share/man/man1/octave-config.1.gz
+share/man/man1/octave.1.gz
+share/info/liboctave.info
+share/info/octave.info
+share/info/octave.info-1
+share/info/octave.info-2
+share/info/octave.info-3
+share/info/octave.info-4
+share/info/octave.info-5
+share/info/octave.info-6
+share/info/octave.info-7
+share/info/octave.info-8
+share/info/octave.info-9
+share/appdata/www.octave.org-octave.appdata.xml
+share/icons/hicolor/16x16/apps/octave.png
+share/icons/hicolor/22x22/apps/octave.png
+share/icons/hicolor/24x24/apps/octave.png
+share/icons/hicolor/32x32/apps/octave.png
+share/icons/hicolor/48x48/apps/octave.png
+share/icons/hicolor/64x64/apps/octave.png
+share/icons/hicolor/128x128/apps/octave.png
+share/icons/hicolor/256x256/apps/octave.png
+share/icons/hicolor/512x512/apps/octave.png
+share/icons/hicolor/scalable/apps/octave.svg
</ins></span></pre></div>
<a id="trunkdportssysutilsoctave_selectfilesnone"></a>
<div class="addfile"><h4>Added: trunk/dports/sysutils/octave_select/files/none (0 => 144150)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/sysutils/octave_select/files/none                                (rev 0)
+++ trunk/dports/sysutils/octave_select/files/none        2016-01-03 07:40:58 UTC (rev 144150)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
</ins></span></pre>
</div>
</div>

</body>
</html>