source: trunk/dports/math/octave-devel/Portfile @ 147594

Last change on this file since 147594 was 147594, checked in by khindenburg@…, 4 years ago

glpk: update to 4.60 maintainer #50674; rev-bump deps

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 21.4 KB
Line 
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
2# $Id: Portfile 147594 2016-04-09 13:44:38Z khindenburg@macports.org $
3
4PortSystem          1.0
5PortGroup           compilers  1.0
6PortGroup           muniversal 1.0
7PortGroup           active_variants 1.1
8PortGroup           select     1.0
9
10name                octave-devel
11categories          math science
12platforms           darwin
13license             GPL-3+
14maintainers         mcalhoun openmaintainer
15description         a high-level language for numerical computations
16long_description    \
17    GNU Octave is a high-level language, primarily intended for numerical \
18    computations.  It provides a convenient command line interface for \
19    solving linear and nonlinear problems numerically.
20
21homepage            http://www.gnu.org/software/octave
22
23#fetch.type          hg
24#hg.url              http://hg.savannah.gnu.org/hgweb/octave/
25
26set version_release 4.0.0
27set version_rc      4.0.1-rc4
28set version_tip     4.1.0+
29
30if { ${name} eq ${subport} } {
31    version         ${version_tip}
32    revision        8
33    hg.tag          2868abbc88eb
34
35    # see http://savannah.gnu.org/bugs/?41027
36    patchfiles-append   \
37        octave-bug_41027-half.patch
38
39    checksums-append               \
40        ${hg.tag}${extract.suffix} \
41        rmd160  0a5fd063e2587d451a1c8bde668e1c9b542d5fde \
42        sha256  58b725674c43ea866c87235da7e7c9a75e9629b3215908c0c8c20aa60ee818b4
43
44    livecheck.regex   "<a href=\"/hgweb/octave/rev/(\[a-zA-Z0-9.\]+)\">\ntip"
45}
46
47subport octave-devel-rc {
48    version         ${version_rc}
49    revision        4
50    hg.tag          2b66f30a0de7
51
52    if {${version_rc} eq ${version_release}} {
53        conflicts-append octave-devel-release
54    }
55
56    # see http://savannah.gnu.org/bugs/?func=detailitem&item_id=46592
57    patchfiles-append \
58        patch-e870a68742a6.diff
59
60    # see http://savannah.gnu.org/bugs/?41027
61    patchfiles-append   \
62        octave-bug_41027.patch
63
64    checksums-append               \
65        ${hg.tag}${extract.suffix} \
66        rmd160  4bf919790f28f21752381e127cf55b3a5f4d7344 \
67        sha256  4785967cff091dddd7d82dbbd094658a39ad26d4a7219abc1f1bbc4fe696d43a
68
69    livecheck.regex   "<a href=\"/hgweb/octave/rev/(\[a-zA-Z0-9.\]+)\">\nrc-"
70}
71
72subport octave-devel-release {
73    version         ${version_release}
74    revision        7
75    hg.tag          3ccc2d02e64b
76
77    if {${version_release} eq ${version_rc}} {
78        conflicts-append octave-devel-release
79    }
80
81    # see http://savannah.gnu.org/bugs/?41178
82    patchfiles-append \
83        octave-clang-classdef.patch
84
85    # see http://savannah.gnu.org/bugs/?func=detailitem&item_id=46592
86    patchfiles-append \
87        patch-e870a68742a6.diff
88
89    # allow osmesa support to at least compile
90    patchfiles-append   \
91        osmesa_mac_fix.patch
92
93    # force "${prefix}/bin/octave-${version} --no-gui-libs" to call octave-cli-${version} instead of octave-cli
94    patchfiles-append   \
95        patch-append_version_cli.diff
96
97    # see http://savannah.gnu.org/bugs/?41027
98    patchfiles-append   \
99        octave-bug_41027.patch
100
101    checksums-append               \
102        ${hg.tag}${extract.suffix} \
103        rmd160  4bbcc004ffdde859b0735e602aac2d01388d0b2c \
104        sha256  2a4017a03ca80c280b5d39cf88af8954c7bfdbf1b3b40b9f09d3bd4bd1dd6040
105
106    livecheck.regex   "<a href=\"/hgweb/octave/rev/(\[a-zA-Z0-9.\]+)\">\nrelease-"
107}
108
109select.group octave
110select.file  ${filespath}/${subport}
111
112# check http://hg.savannah.gnu.org/hgweb/octave/gnulib-hg/rev for latest version
113set hg_gnu_tag      7f19e7f2afa2
114
115checksums-append \
116    ${hg_gnu_tag}${extract.suffix} \
117    rmd160  9d906212fdb4201f8592da10524606dadb3f50e3 \
118    sha256  85add8ce0c53e8868d903c28c407d864ca54bd42e8d472e09b1a1bb4b105b741
119
120master_sites        http://hg.savannah.gnu.org/hgweb/octave/archive:octave \
121                    http://hg.savannah.gnu.org/hgweb/octave/gnulib-hg/archive:gnulib
122
123distfiles           \
124    ${hg.tag}${extract.suffix}:octave \
125    ${hg_gnu_tag}${extract.suffix}:gnulib
126
127worksrcdir          octave-${hg.tag}
128
129#depends_extract-append port:git
130post-extract {
131    # command from bootstrap script file
132    #system -W ${worksrcpath} "${prefix}/bin/git clone --depth 2 git://git.sv.gnu.org/gnulib gnulib-hg"
133    move ${worksrcpath}/../gnulib-hg-${hg_gnu_tag} ${worksrcpath}/gnulib-hg
134}
135
136# see http://git.savannah.gnu.org/cgit/gnulib.git/commit/lib/stdio.in.h?id=d6176702c3ffb6c56e6620397470e1b3bd540b10
137patchfiles-append   \
138    patch-stdio.in.h.diff
139
140pre-patch {
141    # code located in pre-patch because variants from PortGroup compilers must
142    #    be evaluated before it can be determined if clang is being used
143
144    # see http://trac.macports.org/ticket/45011
145    # see http://savannah.gnu.org/bugs/?43298
146    set libcxxbug no
147    if { ${configure.cc} eq "/usr/bin/clang" && [lindex [split ${xcodeversion} .] 0] eq 6 } {
148        set libcxxbug yes
149    } elseif { [variant_exists clang35] && [variant_isset clang35] } {
150        set libcxxbug yes
151    }
152    if { ${libcxxbug} } {
153        patchfiles-append   \
154            clang-libcxx-fix.patch
155    }
156}
157
158# need for autoconf
159depends_build-append \
160    port:autoconf    \
161    port:automake    \
162    port:libtool
163
164use_autoconf         yes
165autoconf.cmd         ./bootstrap
166autoconf.args
167
168# avoid depends_build-append port:coreutils
169configure.env-append MKDIR_P="/bin/mkdir -p"
170
171# avoid depends_build-append port:cctools
172configure.env-append RANLIB=/usr/bin/ranlib
173
174# main octave port lists as a depends_lib
175# configure.ac list it among the "[p]rograms used in Makefiles"
176depends_build-append port:gawk
177configure.awk ${prefix}/bin/gawk
178
179# in configure.ac, said to be "[p]rograms used to generate icons file formats
180depends_build-append \
181    port:icoutils    \
182    port:librsvg
183configure.env-append              \
184    ICOTOOL=${prefix}/bin/icotool \
185    RSVG_CONVERT=${prefix}/bin/rsvg-convert
186
187# main octave port lists as a depends_lib
188# configure.ac list it among the "[p]rograms used in Makefiles"
189depends_build-append port:grep
190configure.env-append  GREP=${prefix}/bin/grep
191configure.env-append EGREP=${prefix}/bin/egrep
192configure.env-append FGREP=${prefix}/bin/fgrep
193
194# configure.ac list it among the "[p]rograms used in Makefiles"
195depends_build-append port:findutils
196configure.env-append FIND=${prefix}/bin/gfind
197
198# main octave port lists as a depends_lib
199# configure.ac list it among the "[p]rograms used in Makefiles"
200depends_build-append port:gsed
201configure.env-append SED=${prefix}/bin/gsed
202
203depends_build-append port:flex
204configure.env-append LEX=${prefix}/bin/flex
205
206depends_build-append port:bison
207configure.env-append YACC="${prefix}/bin/bison -y"
208
209depends_build-append port:gperf
210configure.env-append GPERF=/usr/bin/gperf
211
212# configure.ac list it among the "[p]rograms used in Makefiles"
213depends_build-append port:perl5
214configure.perl ${prefix}/bin/perl5
215
216# avoid depends_build-append port:desktop-file-utils
217#configure.env-append DESKTOP_FILE_INSTALL=""
218configure.env-append ac_cv_prog_DESKTOP_FILE_INSTALL=""
219
220depends_build-append \
221    port:pkgconfig
222
223compilers.choose    fc f77 f90 cc cxx
224
225# for now, limit the number of variants
226# some of these compilers may work fine
227compilers.setup     \
228    require_fortran \
229    -dragonegg      \
230    -gcc49          \
231    -gcc48          \
232    -gcc46          \
233    -gcc45          \
234    -gcc44          \
235    -g95            \
236    -llvm           \
237    -gcc47          \
238    -gcc46          \
239    -gcc45          \
240    -gcc44          \
241    -clang36        \
242    -clang35        \
243    -clang34        \
244    -clang33
245
246# help prevent conflicts with various octave ports
247configure.args-append \
248    --infodir=${prefix}/share/info/octave_${version}
249
250# offscreen rendering with OpenGL via osmesa would be nice to have, but the following
251#    causes a segmentation fault:
252#    h = figure ("visible", "off"); fn = tempname (); sombrero (); __osmesa_print__ (h, fn, "svg");
253#
254# solution is ???
255#
256#depends_lib-append port:mesa
257configure.args-append       \
258    --without-OSMesa
259
260#configure.args-append --with-shell=???
261
262configure.args-append       \
263    --with-framework-opengl \
264    --with-framework-carbon \
265    --without-x             \
266    --enable-static
267
268configure.args-append       \
269    --disable-openmp
270
271configure.args-append       \
272    --disable-java          \
273    --disable-gui           \
274    --without-fltk          \
275    --disable-jit           \
276    --without-sndfile       \
277    --without-portaudio     \
278    --without-magick        \
279    --disable-docs
280
281# in configure.ac, listed as one of "[p]rograms used when running Octave"
282depends_lib-append port:python27
283configure.python ${prefix}/bin/python2.7
284
285# in configure.ac, listed as one of "[p]rograms used when running Octave"
286depends_lib-append port:ghostscript
287configure.env-append GHOSTSCRIPT=${prefix}/bin/gs
288
289# in configure.ac, listed as one of "[p]rograms used when running Octave"
290depends_lib-append port:gnuplot
291configure.env-append GNUPLOT=${prefix}/bin/gnuplot
292
293# in configure.ac, listed as one of "[p]rograms used when running Octave"
294depends_lib-append port:less
295configure.env-append DEFAULT_PAGER=${prefix}/bin/less
296
297depends_lib-append   port:ncurses
298depends_lib-append   port:readline
299depends_lib-append   port:fontconfig
300depends_lib-append   port:pcre
301
302#--without-amd
303#--without-camd
304#--without-colamd
305#--without-cholmod
306#--without-cxsparse
307#--without-umfpack
308depends_lib-append  port:SuiteSparse
309foreach lib {amd camd colamd cholmod cxsparse umfpack} {
310    configure.args-append \
311        --with-${lib}="-l${lib} -lsuitesparseconfig"
312}
313
314#--without-qhull
315depends_lib-append  port:qhull
316
317#--without-z
318depends_lib-append  port:zlib
319
320#--without-hdf5
321depends_lib-append  port:hdf5
322
323#--disable-fftw-threads
324#--without-fftw3
325#--without-fftw3f
326depends_lib-append  port:fftw-3
327depends_lib-append  port:fftw-3-single
328
329#--without-glpk
330depends_lib-append  port:glpk
331
332#--without-curl
333depends_lib-append  port:curl
334
335#--without-qrupdate
336depends_lib-append port:qrupdate
337
338#--without-arpack
339depends_lib-append port:arpack
340
341#--without-openssl
342depends_lib-append port:openssl
343
344# fortran arch flag is not set automatically
345if {![variant_isset universal]} {
346    if {${build_arch} eq "x86_64" || ${build_arch} eq "ppc64"} {
347        configure.fflags-append -m64
348    } else {
349        configure.fflags-append -m32
350    }
351}
352
353# see etc/README.MacOS
354depends_run-append   \
355    port:epstool     \
356    port:ghostscript \
357    port:transfig    \
358    port:pstoedit
359
360depends_run-append port:octave_select
361
362variant accelerate description {use BLAS from Apple's Accelerate.framework} conflicts atlas openblas {
363    depends_lib-append port:vecLibFort
364
365    # dependents must be built with same BLAS and LAPACK
366    #require_active_variants port:arpack      accelerate
367    #require_active_variants port:SuiteSparse accelerate
368    #require_active_variants port:qrupdate    accelerate
369
370    configure.args-append        \
371        --with-blas=-lvecLibFort \
372        --with-lapack=""
373}
374
375variant openblas description {use BLAS from MacPorts' openblas port} conflicts atlas accelerate {
376
377    depends_lib-append path:lib/libopenblas.dylib:OpenBLAS
378    # LAPACK required
379    require_active_variants path:lib/libopenblas.dylib:OpenBLAS lapack
380
381    # dependents must be built with same BLAS and LAPACK
382    #require_active_variants port:arpack      openblas
383    #require_active_variants port:SuiteSparse openblas
384    #require_active_variants port:qrupdate    openblas
385
386    # replicate default values if configure script finds openblas on its own
387    configure.args-append        \
388        --with-blas=-lopenblas   \
389        --with-lapack=""
390}
391
392variant atlas description {use BLAS from MacPorts' atlas port} conflicts accelerate openblas {
393    depends_lib-append port:atlas
394
395    # dependents must be built with same BLAS and LAPACK
396    #require_active_variants port:arpack      atlas
397    #require_active_variants port:SuiteSparse atlas
398    #require_active_variants port:qrupdate    atlas
399
400    # replicate default values if configure script finds atlas on its own
401    configure.args-append        \
402        --with-blas="-lcblas -lf77blas -latlas" \
403        --with-lapack=-llapack
404}
405
406if {![variant_isset accelerate] && ![variant_isset openblas] && ![variant_isset atlas] } {
407    default_variants-append +accelerate
408}
409
410if {![variant_isset accelerate] && ![variant_isset openblas] && ![variant_isset atlas] } {
411    ui_error "\n\nYou must select either the +accelerate, +atlas, or +openblas variant.\n"
412    return -code error "Invalid variant selection"
413}
414
415variant java description {enable Java interface} {
416    PortGroup java 1.0
417    configure.args-replace --disable-java --enable-java
418}
419default_variants-append +java
420
421variant qt4gui description {build the GUI using Qt4} {
422    PortGroup qt4 1.0
423    depends_lib-append  port:qscintilla
424    configure.args-replace --disable-gui --enable-gui
425}
426default_variants-append +qt4gui
427
428variant fltk description {enable fltk as a graphics toolkit for plotting} {
429    depends_lib-append path:lib/libfltk.dylib:fltk
430
431    # as of version 4.1.0+ revision 0:
432    #    without fltk, configure script turns off "native_graphics," and
433    #       does not look for either freetype or gl2ps
434    #    it still looks for and links against fontconfig, however
435    depends_lib-append \
436        port:freetype  \
437        port:gl2ps
438
439    configure.args-replace --without-fltk --with-fltk
440}
441default_variants-append +fltk
442
443variant jit description {enable JIT compiler (EXPERIMENTAL)} {
444    # JIT requires LLVM, so select a version to use
445    set llvm_ver 3.7
446
447    # prevent multiple versions of llvm being required
448    # if clangXY compiler is requested, use llvm-X.Y
449    foreach clang ${compilers.clang_variants} {
450        if { [variant_exists ${clang}] && [variant_isset ${clang}] } {
451            set llvm_ver [string index ${clang} end-1].[string index ${clang} end]
452        }
453    }
454
455    depends_lib-append port:llvm-${llvm_ver}
456    configure.args-replace --disable-jit --enable-jit
457    configure.env-append LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_ver}
458    configure.cxxflags-append -std=c++11
459}
460
461if {[variant_isset fltk] && [variant_isset qt4gui]} {
462    notes-append "unless octave is run with --no-gui-libs, graphics_toolkit(\"fltk\") will cause a crash"
463}
464
465variant sound description {enable audio support (file I/O and playback)} {
466    depends_lib-append port:libsndfile
467    depends_lib-append port:portaudio
468
469    configure.args-replace --without-sndfile   --with-sndfile
470    configure.args-replace --without-portaudio --with-portaudio
471}
472default_variants-append +sound
473
474variant app description "build application bundle to launch ${subport}" {
475    depends_build-append port:ImageMagick
476
477    global appName
478    set appName Octave_${version}.app
479
480    post-build {
481        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents
482        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents/Resources
483        xinstall -d -p -m 0755 ${worksrcpath}/${appName}/Contents/MacOS
484
485        set script [open "${worksrcpath}/${appName}/Contents/MacOS/Octave" w 0755]
486        if { [variant_isset qt4gui] } {
487            puts ${script} "#!/bin/sh"
488            puts ${script} ""
489            puts ${script} "${prefix}/bin/octave-${version} --force-gui"
490        } else {
491            puts ${script} "#!/usr/bin/osascript"
492            puts ${script} ""
493            puts ${script} "tell application \"Terminal\" to do script \"${prefix}/bin/octave-${version} --no-gui-libs; exit\""
494        }
495        close ${script}
496
497        #NSHumanReadableCopyright      ''
498        #LSUIElement                   1
499        set values "
500            CFBundleDevelopmentRegion     English
501            CFBundleExecutable            Octave
502            CFBundleIconFile              Octave.icns
503            CFBundleDocumentTypes         {-array \'{\"CFBundleTypeExtensions\" = (\"m\"); \"CFBundleTypeOSTypes\" = (\"Mfile\"); \"CFBundleTypeRole\" = \"Editor\";}\'}
504            CFBundleIdentifier            org.octave.Octave
505            CFBundleInfoDictionaryVersion 6.0
506            CFBundleSignature             Octave
507            CFBundleVersion               ${version}
508            CFBundleShortVersionString    ${version}
509        "
510        foreach {key value} ${values} {
511            system "/usr/bin/defaults write ${worksrcpath}/${appName}/Contents/Info ${key} ${value}"
512        }
513
514        # have Info.plist be human readable
515        system "/usr/bin/plutil -convert xml1 ${worksrcpath}/${appName}/Contents/Info.plist"
516
517        # conversion by plutil set verys limited permissions
518        system "/bin/chmod 0644 ${worksrcpath}/${appName}/Contents/Info.plist"
519
520        xinstall -d -m 0755 ${worksrcpath}/Octave.iconset
521
522        # values from original SVG file
523        set svg    etc/icons/octave-logo.svg
524        set width  283.28912
525        set height 283.28833
526        set dpi    90
527
528        foreach res {16 32 128 256 512} {
529
530            set hres [expr 2*${res}]
531
532            # find new density so that converted PNG files do not look pixelated
533            set denw  [expr ${dpi}*${res}/${width}]
534            set denh  [expr ${dpi}*${res}/${height}]
535
536            set hdenw [expr 2*${denw}]
537            set hdenh [expr 2*${denh}]
538
539            system -W ${worksrcpath} "${prefix}/bin/convert -background transparent -resize ${res}x${res}   -density ${denw}x${denh}   ${svg} Octave.iconset/icon_${res}x${res}.png"
540            system -W ${worksrcpath} "${prefix}/bin/convert -background transparent -resize ${hres}x${hres} -density ${hdenw}x${hdenh} ${svg} Octave.iconset/icon_${res}x${res}@2x.png"
541        }
542
543        system -W ${worksrcpath} "/usr/bin/iconutil -c icns -o ${appName}/Contents/Resources/Octave.icns Octave.iconset"
544    }
545
546    post-destroot {
547        copy ${worksrcpath}/${appName} ${destroot}${applications_dir}
548    }
549}
550default_variants-append +app
551
552variant docs description {build documentation files} {
553    depends_build-append port:texinfo
554    configure.env-append                \
555        MAKEINFO=${prefix}/bin/makeinfo \
556        TEXI2DVI=${prefix}/bin/texi2dvi \
557        TEXI2PDF=${prefix}/bin/texi2pdf
558
559    # see https://lists.macosforge.org/pipermail/macports-dev/2016-January/032293.html
560    depends_build-append \
561        port:texlive-basic \
562        port:texlive-latex
563
564    configure.args-replace --disable-docs --enable-docs
565}
566default_variants-append +docs
567
568# GraphicsMagick and octave need to be built with the same C++ standard library
569# or else undefined symbols:
570#    "Magick::Image::ping(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)"
571set magickConflict {}
572set magickDefault yes
573if {${configure.cxx_stdlib} ne "libstdc++"} {
574    foreach gccVar ${compilers.gcc_variants} {
575        if {[variant_exists ${gccVar}] } {
576            lappend magickConflict ${gccVar}
577
578            if {[variant_isset ${gccVar}] } {
579                set magickDefault no
580            }
581        }
582    }
583}
584eval "variant graphicsmagick description {use GraphicsMagick for image I/O} conflicts ${magickConflict} {
585    depends_lib-append port:GraphicsMagick
586    configure.args-replace --without-magick --with-magick=GraphicsMagick
587}"
588if {${magickDefault}} {
589    default_variants-append +graphicsmagick
590}
591
592if { ${subport} eq "octave-devel-rc" || ${subport} eq "octave-devel-release" } {
593    # remove architecture flags from header file
594    if { [variant_exists universal] && [variant_isset universal] } {
595        merger-post-destroot {
596            foreach arch ${universal_archs_to_use} {
597                set hfile ${destroot}-${arch}${prefix}/include/octave-${version}/octave/oct-conf.h
598                reinplace "s:-arch ${arch}::g"   ${hfile}
599                reinplace {s:-m32::g}                ${hfile}
600                reinplace {s:-m64::g}                ${hfile}
601            }
602        }
603    } else {
604        post-destroot {
605            set hfile ${destroot}${prefix}/include/octave-${version}/octave/oct-conf.h
606            reinplace "s:-arch ${build_arch}::g" ${hfile}
607            reinplace {s:-m32::g}                ${hfile}
608            reinplace {s:-m64::g}                ${hfile}
609        }
610    }
611}
612
613# remove or rename conflicting files
614post-destroot {
615    foreach bin {mkoctfile octave octave-cli octave-config} {
616        # delete since just a link to versioned name
617        file delete ${destroot}${prefix}/bin/${bin}
618
619        if { [variant_isset docs] } {
620            # put version number in man file to avoid conflict
621            move ${destroot}${prefix}/share/man/man1/${bin}.1 ${destroot}${prefix}/share/man/man1/${bin}-${version}.1
622        }
623    }
624
625    # put any startup commands in ${destroot}${prefix}/share/octave/${version}/m/startup/octaverc
626    # see https://www.gnu.org/software/octave/doc/interpreter/Startup-Files.html
627    file delete ${destroot}${prefix}/share/octave/site/m/startup/octaverc
628
629    # move appdata and icons into a versioned directory
630    xinstall -d -m 0755 ${destroot}${prefix}/share/octave/${version}/appdata
631    move \
632        ${destroot}${prefix}/share/appdata/www.octave.org-octave.appdata.xml \
633        ${destroot}${prefix}/share/octave/${version}/appdata/
634    foreach num {16 22 24 32 48 64 128 256 512} {
635        xinstall -d -m 0755 -p ${destroot}${prefix}/share/octave/${version}/icons/hicolor/${num}x${num}/apps
636        move \
637            ${destroot}${prefix}/share/icons/hicolor/${num}x${num}/apps/octave.png \
638            ${destroot}${prefix}/share/octave/${version}/icons/hicolor/${num}x${num}/apps/octave.png
639    }
640    xinstall -d -m 0755 -p ${destroot}${prefix}/share/octave/${version}/icons/hicolor/scalable/apps
641    move \
642        ${destroot}${prefix}/share/icons/hicolor/scalable/apps/octave.svg \
643        ${destroot}${prefix}/share/octave/${version}/icons/hicolor/scalable/apps/octave.svg
644}
645
646test.run    yes
647test.target check
648
649livecheck.type    regexm
650livecheck.url     http://hg.savannah.gnu.org/hgweb/octave/tags
651livecheck.version ${hg.tag}
Note: See TracBrowser for help on using the repository browser.