Date: Mon, 1 Jun 2015 23:42:49 +0000 (UTC) From: Stephen Montgomery-Smith <stephen@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r388293 - in head/math: . librsb librsb/files Message-ID: <201506012342.t51NgnaW099973@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: stephen Date: Mon Jun 1 23:42:48 2015 New Revision: 388293 URL: https://svnweb.freebsd.org/changeset/ports/388293 Log: - Add port math/librsb. librsb is a library for sparse matrix computations featuring the Recursive Sparse Blocks (RSB) matrix format. Added: head/math/librsb/ head/math/librsb/Makefile (contents, props changed) head/math/librsb/distinfo (contents, props changed) head/math/librsb/files/ head/math/librsb/files/patch-rsb__util.c (contents, props changed) head/math/librsb/pkg-descr (contents, props changed) head/math/librsb/pkg-plist (contents, props changed) Modified: head/math/Makefile Modified: head/math/Makefile ============================================================================== --- head/math/Makefile Mon Jun 1 23:36:08 2015 (r388292) +++ head/math/Makefile Mon Jun 1 23:42:48 2015 (r388293) @@ -226,6 +226,7 @@ SUBDIR += libproj4 SUBDIR += libqalculate SUBDIR += libranlip + SUBDIR += librsb SUBDIR += libtommath SUBDIR += libtsnnls SUBDIR += linpack Added: head/math/librsb/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/math/librsb/Makefile Mon Jun 1 23:42:48 2015 (r388293) @@ -0,0 +1,28 @@ +# Created by: stephen@FreeBSD.org +# $FreeBSD$ + +PORTNAME= librsb +PORTVERSION= 1.2.0r1 +CATEGORIES= math +MASTER_SITES= SF/librsb +DISTNAME= ${PORTNAME}-${PORTVERSION:S/r/-rc/} + +MAINTAINER= stephen@FreeBSD.org +COMMENT= Sparse matrix library + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + +BUILD_DEPENDS= gsed:${PORTSDIR}/textproc/gsed + +USES= fortran compiler:openmp gmake shebangfix +GNU_CONFIGURE= yes +CFLAGS= -fPIC +CONFIGURE_ARGS= --enable-fortran-module-install \ + --enable-matrix-types="double, double complex" +SHEBANG_FILES= scripts/*.sh + +post-patch: + @${REINPLACE_CMD} -E s/sed/gsed/g ${WRKSRC}/scripts/*.sh + +.include <bsd.port.mk> Added: head/math/librsb/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/math/librsb/distinfo Mon Jun 1 23:42:48 2015 (r388293) @@ -0,0 +1,2 @@ +SHA256 (librsb-1.2.0-rc1.tar.gz) = 88167a22a9a73fa2bf15e83a94a37c8829a838fe93870254414ace78ea2ecdaf +SIZE (librsb-1.2.0-rc1.tar.gz) = 2212101 Added: head/math/librsb/files/patch-rsb__util.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/math/librsb/files/patch-rsb__util.c Mon Jun 1 23:42:48 2015 (r388293) @@ -0,0 +1,29 @@ +--- rsb_util.c.orig 2015-05-01 21:21:34 UTC ++++ rsb_util.c +@@ -161,6 +161,26 @@ void rsb__util_set_area_to_converted_int + return; + } + ++/* ++ * Added because of lack of functionality with FreeBSD ++ * See https://wiki.freebsd.org/Numerics ++ */ ++complex float clogf(complex float a) { ++ return logf(cabsf(a)) + I*cargf(a); ++} ++ ++complex float cpowf(complex float a, complex float b) { ++ return cexpf(b*clogf(a)); ++} ++ ++complex double clog(complex double a) { ++ return logf(cabs(a)) + I*carg(a); ++} ++ ++complex double cpow(complex double a, complex double b) { ++ return cexp(b*clog(a)); ++} ++ + rsb_coo_idx_t * rsb__util_get_partitioning_array( size_t bs, size_t X , rsb_blk_idx_t * X_b, rsb_flags_t flags){ + /*! + * Given a block size (be it rows or columns), an element size X in bytes, Added: head/math/librsb/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/math/librsb/pkg-descr Mon Jun 1 23:42:48 2015 (r388293) @@ -0,0 +1,15 @@ +librsb is a library for sparse matrix computations featuring the Recursive +Sparse Blocks (RSB) matrix format. This format allows cache efficient and +multi-threaded (that is, shared memory parallel) operations on large sparse +matrices. The most common operations necessary to iterative solvers are +available, e.g.: matrix-vector multiplication, triangular solution, +rows/columns scaling, diagonal extraction / setting, blocks extraction, norm +computation, formats conversion. The RSB format is especially well suited +for symmetric and transposed multiplication variants. Most numerical kernels +code is auto generated, and the supported numerical types can be chosen by +the user at build time. + +librsb implements the Sparse BLAS standard, as specified in the BLAS Forum +documents. + +WWW: http://librsb.sourceforge.net/ Added: head/math/librsb/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/math/librsb/pkg-plist Mon Jun 1 23:42:48 2015 (r388293) @@ -0,0 +1,221 @@ +bin/librsb-config +bin/rsbench +include/blas_sparse.h +include/blas_sparse.mod +include/rsb-config.h +include/rsb.F90 +include/rsb.h +include/rsb.mod +include/rsb_types.h +lib/librsb.a +%%PORTDOCS%%%%DOCSDIR%%/AUTHORS +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/examples/autotune.c +%%PORTDOCS%%%%DOCSDIR%%/examples/benchex.sh +%%PORTDOCS%%%%DOCSDIR%%/examples/fortran.F90 +%%PORTDOCS%%%%DOCSDIR%%/examples/fortran_rsb_fi.F90 +%%PORTDOCS%%%%DOCSDIR%%/examples/hello-spblas.c +%%PORTDOCS%%%%DOCSDIR%%/examples/hello.c +%%PORTDOCS%%%%DOCSDIR%%/examples/io-spblas.c +%%PORTDOCS%%%%DOCSDIR%%/examples/make.sh +%%PORTDOCS%%%%DOCSDIR%%/examples/pd.mtx +%%PORTDOCS%%%%DOCSDIR%%/examples/power.c +%%PORTDOCS%%%%DOCSDIR%%/examples/transpose.c +%%PORTDOCS%%%%DOCSDIR%%/examples/vf.mtx +%%PORTDOCS%%%%DOCSDIR%%/html/annotated.html +%%PORTDOCS%%%%DOCSDIR%%/html/bc_s.png +%%PORTDOCS%%%%DOCSDIR%%/html/bdwn.png +%%PORTDOCS%%%%DOCSDIR%%/html/blas__sparse_8h.html +%%PORTDOCS%%%%DOCSDIR%%/html/classblas__sparse.html +%%PORTDOCS%%%%DOCSDIR%%/html/classes.html +%%PORTDOCS%%%%DOCSDIR%%/html/classrsb.html +%%PORTDOCS%%%%DOCSDIR%%/html/closed.png +%%PORTDOCS%%%%DOCSDIR%%/html/deprecated.html +%%PORTDOCS%%%%DOCSDIR%%/html/doxygen.css +%%PORTDOCS%%%%DOCSDIR%%/html/doxygen.png +%%PORTDOCS%%%%DOCSDIR%%/html/dynsections.js +%%PORTDOCS%%%%DOCSDIR%%/html/files.html +%%PORTDOCS%%%%DOCSDIR%%/html/form_0.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_1.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_10.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_11.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_12.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_13.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_14.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_15.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_16.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_17.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_18.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_19.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_2.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_20.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_21.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_22.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_23.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_24.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_25.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_26.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_27.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_28.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_29.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_3.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_30.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_31.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_32.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_33.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_34.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_35.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_36.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_37.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_38.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_39.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_4.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_40.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_41.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_42.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_43.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_44.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_45.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_46.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_47.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_48.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_49.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_5.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_50.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_6.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_7.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_8.png +%%PORTDOCS%%%%DOCSDIR%%/html/form_9.png +%%PORTDOCS%%%%DOCSDIR%%/html/formula.repository +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2blank.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2cl.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2doc.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2folderclosed.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2folderopen.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2lastnode.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2link.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2mlastnode.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2mnode.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2mo.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2node.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2ns.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2plastnode.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2pnode.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2splitbar.png +%%PORTDOCS%%%%DOCSDIR%%/html/ftv2vertline.png +%%PORTDOCS%%%%DOCSDIR%%/html/functions.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x62.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x63.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x64.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x6b.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x6e.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x72.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x73.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x75.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x76.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_0x7a.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_func.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_vars.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_vars_0x62.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_vars_0x6b.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_vars_0x6e.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_vars_0x72.html +%%PORTDOCS%%%%DOCSDIR%%/html/functions_vars_0x76.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals_0x72.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals_defs.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals_enum.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals_eval.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals_eval_0x72.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals_func.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals_func_0x72.html +%%PORTDOCS%%%%DOCSDIR%%/html/globals_type.html +%%PORTDOCS%%%%DOCSDIR%%/html/group__rsb__doc__examples.html +%%PORTDOCS%%%%DOCSDIR%%/html/group__rsb__doc__rsb.html +%%PORTDOCS%%%%DOCSDIR%%/html/group__rsb__doc__sparse__blas.html +%%PORTDOCS%%%%DOCSDIR%%/html/index.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1rsb__blas__get__mtx.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1uscr__insert__block.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1uscr__insert__clique.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1uscr__insert__col.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1uscr__insert__entries.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1uscr__insert__entry.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1uscr__insert__row.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1usmm.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1usmv.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1ussm.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfaceblas__sparse_1_1ussv.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__coo__sort.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__file__mtx__get__dims.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__file__mtx__load.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__file__mtx__rndr.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__file__mtx__save.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__file__vec__load.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__file__vec__save.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__lib__exit.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__lib__get__opt.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__lib__init.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__lib__reinit.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__lib__set__opt.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__lib__set__opt__str.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__add__to__dense.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__alloc__from__coo__begin.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__alloc__from__coo__const.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__alloc__from__coo__end.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__alloc__from__coo__inplace.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__alloc__from__csc__const.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__alloc__from__csr__const.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__alloc__from__csr__inplace.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__clone.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__free.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__coo.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__coo__block.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__csr.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__info.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__info__str.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__nrm.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__prec.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__rows__sparse.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__vals.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__get__vec.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__rndr.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__set__vals.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__switch__to__coo.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__switch__to__csr.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__mtx__upd__vals.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__perror.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__psblas__trans__to__rsb__trans.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__spmm.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__spmsp.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__spmsp__to__dense.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__spmv.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__sppsp.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__spsm.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__spsv.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__strerror__r.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__time.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__tune__spmm.html +%%PORTDOCS%%%%DOCSDIR%%/html/interfacersb_1_1rsb__tune__spsm.html +%%PORTDOCS%%%%DOCSDIR%%/html/modules.html +%%PORTDOCS%%%%DOCSDIR%%/html/nav_f.png +%%PORTDOCS%%%%DOCSDIR%%/html/nav_g.png +%%PORTDOCS%%%%DOCSDIR%%/html/nav_h.png +%%PORTDOCS%%%%DOCSDIR%%/html/open.png +%%PORTDOCS%%%%DOCSDIR%%/html/pages.html +%%PORTDOCS%%%%DOCSDIR%%/html/rsb_8F90.html +%%PORTDOCS%%%%DOCSDIR%%/html/rsb_8h.html +%%PORTDOCS%%%%DOCSDIR%%/html/rsb__blas__sparse_8F90.html +%%PORTDOCS%%%%DOCSDIR%%/html/rsb__libspblas_8c.html +%%PORTDOCS%%%%DOCSDIR%%/html/rsb__libspblas_8h.html +%%PORTDOCS%%%%DOCSDIR%%/html/rsb__libspblas__handle_8c.html +%%PORTDOCS%%%%DOCSDIR%%/html/rsb__rsb_8c.html +%%PORTDOCS%%%%DOCSDIR%%/html/rsb__types_8h.html +%%PORTDOCS%%%%DOCSDIR%%/html/structrsb__initopts.html +%%PORTDOCS%%%%DOCSDIR%%/html/sync_off.png +%%PORTDOCS%%%%DOCSDIR%%/html/sync_on.png +%%PORTDOCS%%%%DOCSDIR%%/html/tab_a.png +%%PORTDOCS%%%%DOCSDIR%%/html/tab_b.png +%%PORTDOCS%%%%DOCSDIR%%/html/tab_h.png +%%PORTDOCS%%%%DOCSDIR%%/html/tab_s.png +%%PORTDOCS%%%%DOCSDIR%%/html/tabs.css +%%PORTDOCS%%%%DOCSDIR%%/html/todo.html
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201506012342.t51NgnaW099973>