diff options
Diffstat (limited to 'network/tnfs-fuse')
-rw-r--r-- | network/tnfs-fuse/COPYING | 23 | ||||
-rw-r--r-- | network/tnfs-fuse/README | 8 | ||||
-rw-r--r-- | network/tnfs-fuse/libdir.diff | 19 | ||||
-rw-r--r-- | network/tnfs-fuse/slack-desc | 19 | ||||
-rw-r--r-- | network/tnfs-fuse/tnfs-client.1 | 108 | ||||
-rw-r--r-- | network/tnfs-fuse/tnfs-client.rst | 97 | ||||
-rw-r--r-- | network/tnfs-fuse/tnfs-fuse.1 | 99 | ||||
-rw-r--r-- | network/tnfs-fuse/tnfs-fuse.SlackBuild | 113 | ||||
-rw-r--r-- | network/tnfs-fuse/tnfs-fuse.info | 12 | ||||
-rw-r--r-- | network/tnfs-fuse/tnfs-fuse.rst | 82 |
10 files changed, 580 insertions, 0 deletions
diff --git a/network/tnfs-fuse/COPYING b/network/tnfs-fuse/COPYING new file mode 100644 index 0000000000..b2c3b59099 --- /dev/null +++ b/network/tnfs-fuse/COPYING @@ -0,0 +1,23 @@ +License for tnfs-fuse: + +The MIT License + +Copyright (c) 2012 Radu Cristescu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/network/tnfs-fuse/README b/network/tnfs-fuse/README new file mode 100644 index 0000000000..d7eb799f87 --- /dev/null +++ b/network/tnfs-fuse/README @@ -0,0 +1,8 @@ +tnfs-fuse (client for trivial network filesystem) + +TNFS is a simplified Internet file transfer protocol, designed for +limited resource usage and ease of implementation on small systems, +such as 8-bit computers. It's simpler than NFS, SMB, or FTP. It's +similar to TFTP, but has features TFTP lacks. + +This package is the Linux (and Mac, *BSD, etc) client. diff --git a/network/tnfs-fuse/libdir.diff b/network/tnfs-fuse/libdir.diff new file mode 100644 index 0000000000..9b1d0f5fa5 --- /dev/null +++ b/network/tnfs-fuse/libdir.diff @@ -0,0 +1,19 @@ +diff -Naur spectranet-tnfs-fuse-fd46ffca3281db4a0c60c04dc83c9cf2cb80bc9e/tnfs-fuse.py spectranet-tnfs-fuse-fd46ffca3281db4a0c60c04dc83c9cf2cb80bc9e.patched/tnfs-fuse.py +--- spectranet-tnfs-fuse-fd46ffca3281db4a0c60c04dc83c9cf2cb80bc9e/tnfs-fuse.py 2013-01-27 13:02:20.000000000 -0500 ++++ spectranet-tnfs-fuse-fd46ffca3281db4a0c60c04dc83c9cf2cb80bc9e.patched/tnfs-fuse.py 2022-07-18 14:47:20.902204356 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python2 + + # The MIT License + # +@@ -22,6 +22,9 @@ + # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + # THE SOFTWARE. + ++import sys ++sys.path.insert(0, '@LIBDIR@') ++ + import fuse + fuse.fuse_python_api = (0, 2) + diff --git a/network/tnfs-fuse/slack-desc b/network/tnfs-fuse/slack-desc new file mode 100644 index 0000000000..a211837aa1 --- /dev/null +++ b/network/tnfs-fuse/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +tnfs-fuse: tnfs-fuse (client for trivial network filesystem) +tnfs-fuse: +tnfs-fuse: TNFS is a simplified Internet file transfer protocol, designed for +tnfs-fuse: limited resource usage and ease of implementation on small systems, +tnfs-fuse: such as 8-bit computers. It's simpler than NFS, SMB, or FTP. It's +tnfs-fuse: similar to TFTP, but has features TFTP lacks. +tnfs-fuse: +tnfs-fuse: This package is the Linux (and Mac, *BSD, etc) client. +tnfs-fuse: +tnfs-fuse: +tnfs-fuse: diff --git a/network/tnfs-fuse/tnfs-client.1 b/network/tnfs-fuse/tnfs-client.1 new file mode 100644 index 0000000000..86475abdca --- /dev/null +++ b/network/tnfs-fuse/tnfs-client.1 @@ -0,0 +1,108 @@ +.\" Man page generated from reStructuredText. +. +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.TH "TNFS-CLIENT" 1 "2022-08-24" "20130127_fd46ff" "SlackBuilds.org" +.SH NAME +tnfs-client \- trivial network filesystem client +.\" RST source for tnfs-client(1) man page. Convert with: +. +.\" rst2man.py tnfs-client.rst > tnfs-client.1 +. +.\" rst2man.py comes from the SBo development/docutils package. +. +.SH SYNOPSIS +.sp +\fBtnfs\-client\fP [\fIhost\fP [\fIport\fP]] +.SH DESCRIPTION +.sp +TNFS is a simplified Internet file transfer protocol, designed for +simplicity and ease of implementation on small systems, such as 8\-bit +computers. It\(aqs simpler than NFS, SMB, or FTP. It\(aqs similar to TFTP, +but has features TFTP lacks. +.sp +\fBtnfs\-client\fP is a simple client for the TNFS protocol. It uses UDP +port 16384 by default (standard for TNFS). +.sp +\fBtnfs\-client\fP doesn\(aqt mount the TNFS share as a directory (see +\fBtnfs\-fuse\fP(1) for that). It has a textmode user interface similar +to \fBftp\fP(1). +.sp +If \fBhost\fP is omitted, the default host is \fIvexed4.alioth.net\fP\&. If +\fBport\fP is omitted, the default port is \fI16384\fP\&. +.SH COMMANDS +.sp +The client supports these commands: +.INDENT 0.0 +.TP +.B \fBls\fP [\fI\-l\fP] +List contents of current directory. With \fI\-l\fP, show details. +.TP +.B \fBdir\fP [\fI\-l\fP] +Synonym for \fBls\fP\&. +.TP +.B \fBcd\fP \fIpath\fP +Change working directory on server to \fIpath\fP\&. +.TP +.B \fBpwd\fP +Print current working directory on server. +.TP +.B \fBget\fP \fIremote\-filename\fP [\fIlocal\-filename\fP] +Download a file. +.TP +.B \fBput\fP \fIlocal\-filename\fP [\fIremote\-filename\fP] +Upload a file. +.TP +.B \fBmkdir\fP \fIpath\fP +Create a directory. +.TP +.B \fBrmdir\fP \fIpath\fP +Delete a directory (which must be empty). +.TP +.B \fBquit\fP +Exit the client. +.UNINDENT +.sp +Note that there\(aqs no \fBrm\fP command, or any other way to delete +a file. There\(aqs also no \fBlcd\fP command; you can\(aqt change the local +working directory, so make sure you\(aqre in the right place before you +start the client. +.SH COPYRIGHT +.sp +See the file /usr/doc/tnfs\-fuse\-20130127_fd46ff/COPYING for license information. +.SH AUTHORS +.sp +tnfs\-client was written by Radu Cristescu. +.sp +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. +.SH SEE ALSO +.sp +\fBtnfs\-fuse\fP(1), \fBtnfsd\fP(1), \fBfuse\fP(8) +.\" Generated by docutils manpage writer. +. diff --git a/network/tnfs-fuse/tnfs-client.rst b/network/tnfs-fuse/tnfs-client.rst new file mode 100644 index 0000000000..216eb6a76d --- /dev/null +++ b/network/tnfs-fuse/tnfs-client.rst @@ -0,0 +1,97 @@ +.. RST source for tnfs-client(1) man page. Convert with: +.. rst2man.py tnfs-client.rst > tnfs-client.1 +.. rst2man.py comes from the SBo development/docutils package. + +.. |version| replace:: 20130127_fd46ff +.. |date| date:: + +=========== +tnfs-client +=========== + +--------------------------------- +trivial network filesystem client +--------------------------------- + +:Manual section: 1 +:Manual group: SlackBuilds.org +:Date: |date| +:Version: |version| + +SYNOPSIS +======== + +**tnfs-client** [*host* [*port*]] + +DESCRIPTION +=========== + +TNFS is a simplified Internet file transfer protocol, designed for +simplicity and ease of implementation on small systems, such as 8-bit +computers. It's simpler than NFS, SMB, or FTP. It's similar to TFTP, +but has features TFTP lacks. + +**tnfs-client** is a simple client for the TNFS protocol. It uses UDP +port 16384 by default (standard for TNFS). + +**tnfs-client** doesn't mount the TNFS share as a directory (see +**tnfs-fuse**\(1) for that). It has a textmode user interface similar +to **ftp**\(1). + +If **host** is omitted, the default host is *vexed4.alioth.net*. If +**port** is omitted, the default port is *16384*. + +COMMANDS +======== + +The client supports these commands: + +**ls** [*-l*] + List contents of current directory. With *-l*, show details. + +**dir** [*-l*] + Synonym for **ls**. + +**cd** *path* + Change working directory on server to *path*. + +**pwd** + Print current working directory on server. + +**get** *remote-filename* [*local-filename*] + Download a file. + +**put** *local-filename* [*remote-filename*] + Upload a file. + +**mkdir** *path* + Create a directory. + +**rmdir** *path* + Delete a directory (which must be empty). + +**quit** + Exit the client. + +Note that there's no **rm** command, or any other way to delete +a file. There's also no **lcd** command; you can't change the local +working directory, so make sure you're in the right place before you +start the client. + +COPYRIGHT +========= + +See the file /usr/doc/tnfs-fuse-|version|/COPYING for license information. + +AUTHORS +======= + +tnfs-client was written by Radu Cristescu. + +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. + +SEE ALSO +======== + +**tnfs-fuse**\(1), **tnfsd**\(1), **fuse**\(8) diff --git a/network/tnfs-fuse/tnfs-fuse.1 b/network/tnfs-fuse/tnfs-fuse.1 new file mode 100644 index 0000000000..c1c939b013 --- /dev/null +++ b/network/tnfs-fuse/tnfs-fuse.1 @@ -0,0 +1,99 @@ +.\" Man page generated from reStructuredText. +. +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.TH "TNFS-FUSE" 1 "2022-08-24" "20130127_fd46ff" "SlackBuilds.org" +.SH NAME +tnfs-fuse \- trivial network filesystem client +.\" RST source for tnfs-fuse(1) man page. Convert with: +. +.\" rst2man.py tnfs-fuse.rst > tnfs-fuse.1 +. +.\" rst2man.py comes from the SBo development/docutils package. +. +.SH SYNOPSIS +.sp +tnfs\-fuse \fBdirectory\fP \fB\-o address=host\fP[:\fIport\fP] +.SH DESCRIPTION +.sp +TNFS is a simplified Internet file transfer protocol, designed for +simplicity and ease of implementation on small systems, such as 8\-bit +computers. It\(aqs simpler than NFS, SMB, or FTP. It\(aqs similar to TFTP, +but has features TFTP lacks. +.sp +\fBtnfs\-fuse\fP is a client for the TNFS protocol. It uses UDP port +16384 by default (standard for TNFS). +.sp +When working with mounted TNFS directories, some error messages will +be wrong, e.g. instead of "Permission denied", you may get "Bad file +descriptor". +.SH OPTIONS +.INDENT 0.0 +.TP +.B \fB\-o address=host\fP[:\fIport\fP] +The hostname or IP address of the TNFS server to mount. If \fI:port\fP is +not given, the default TNFS port (16384) is used. +.TP +.B \fB\-o ro\fP +Mount read\-only. +.UNINDENT +.sp +\fBtnfs\-fuse\fP supports the full set of \fBfuse\fP options. See +\fBfuse\fP(8) or \fBtnfs\-fuse \-\-help\fP for the list. +.SH EXAMPLE +.sp +To mount the TNFS server at \fBfujinet.online\fP: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +mkdir fujinet +tnfs\-fuse fujinet \-o address=fujinet.online +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +Now the contents of the TNFS server are visible under fujinet/ (or +whatever name you chose). You might also want to add \fB\-o ro\fP to mount +read\-only. +.SH COPYRIGHT +.sp +See the file /usr/doc/tnfs\-fuse\-20130127_fd46ff/COPYING for license information. +.SH AUTHORS +.sp +tnfs\-fuse was written by Radu Cristescu. +.sp +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. +.SH SEE ALSO +.sp +\fBtnfs\-client\fP(1), \fBtnfsd\fP(1), \fBfuse\fP(8) +.\" Generated by docutils manpage writer. +. diff --git a/network/tnfs-fuse/tnfs-fuse.SlackBuild b/network/tnfs-fuse/tnfs-fuse.SlackBuild new file mode 100644 index 0000000000..adac24633b --- /dev/null +++ b/network/tnfs-fuse/tnfs-fuse.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/bash + +# Slackware build script for tnfs-fuse + +# Written by B. Watson (urchlay@slackware.uk) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +# 20220824 bkw: BUILD=2 +# - fix man page: this client does *not* use TCP, I don't know what +# I was smoking when I wrote that... +# - tnfs_client.py, the library, is also an executable. include +# symlink to /usr/bin and man page for it. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=tnfs-fuse +VERSION=${VERSION:-20130127_fd46ff} +BUILD=${BUILD:-2} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +SRCVER="$( echo $VERSION | cut -d_ -f2 )" +SRCNAM="spectranet-tnfs-fuse" + +# I didn't make a separate build for python-fuse, because it would +# conflict with the existing python-fusepy. No idea why there are +# two incompatible fuse modules for python, and don't care either. +# This python-fuse will get installed in a private directory so it +# won't stomp on python-fusepy. +LIBNAM="python-fuse" +LIBVER="1.0.5" + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +set -e + +LIBDIR=/usr/lib$LIBDIRSUFFIX/$PRGNAM +PKGLIB=$PKG/$LIBDIR + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +mkdir -p $PRGNAM-$VERSION +cd $PRGNAM-$VERSION +TOPDIR="$(pwd)" +tar xvf $CWD/$SRCNAM-$SRCVER*.tar.gz +tar xvf $CWD/$LIBNAM-$LIBVER.tar.gz +chown -R root:root . +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ + +# first the library. remember, private directory. +cd $LIBNAM-$LIBVER +python2 setup.py install --root=$PKG +mkdir -p $PKGLIB +mv $PKG/usr/lib*/python*/site-packages/* $PKGLIB +rm -rf $PKG/usr/lib*/python* +strip $PKGLIB/*/*.so + +# now the application (which also has a library) +cd $TOPDIR/$SRCNAM-$SRCVER* +patch -p1 < $CWD/libdir.diff +mkdir -p $PKG/usr/bin +sed "s,@LIBDIR@,$LIBDIR," < $PRGNAM.py > $PKG/usr/bin/$PRGNAM +chmod 755 $PKG/usr/bin/$PRGNAM +install -m0755 tnfs_client.py $PKGLIB +ln -s ../lib$LIBDIRSUFFIX/$PRGNAM/tnfs_client.py $PKG/usr/bin/tnfs-client + +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC +cp -a README.md $PKGDOC +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild + +# upstream didn't include a separate license, so copy/paste the comments. +cat $CWD/COPYING > $PKGDOC/COPYING + +# man pages written for this SlackBuild. +mkdir -p $PKG/usr/man/man1 +gzip -9c < $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz +gzip -9c < $CWD/tnfs-client.1 > $PKG/usr/man/man1/tnfs-client.1.gz + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/network/tnfs-fuse/tnfs-fuse.info b/network/tnfs-fuse/tnfs-fuse.info new file mode 100644 index 0000000000..dc184ba8e3 --- /dev/null +++ b/network/tnfs-fuse/tnfs-fuse.info @@ -0,0 +1,12 @@ +PRGNAM="tnfs-fuse" +VERSION="20130127_fd46ff" +HOMEPAGE="https://github.com/Uplink03/spectranet-tnfs-fuse" +DOWNLOAD="https://github.com/Uplink03/spectranet-tnfs-fuse/archive/fd46ff/spectranet-tnfs-fuse-fd46ffca3281db4a0c60c04dc83c9cf2cb80bc9e.tar.gz \ + https://github.com/libfuse/python-fuse/archive/v1.0.5/python-fuse-1.0.5.tar.gz" +MD5SUM="d544ceb6cea5df8efa53859bc7c3dba7 \ + 6b79b1dc0be30f21d62996f408cfd397" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="B. Watson" +EMAIL="urchlay@slackware.uk" diff --git a/network/tnfs-fuse/tnfs-fuse.rst b/network/tnfs-fuse/tnfs-fuse.rst new file mode 100644 index 0000000000..66b1862132 --- /dev/null +++ b/network/tnfs-fuse/tnfs-fuse.rst @@ -0,0 +1,82 @@ +.. RST source for tnfs-fuse(1) man page. Convert with: +.. rst2man.py tnfs-fuse.rst > tnfs-fuse.1 +.. rst2man.py comes from the SBo development/docutils package. + +.. |version| replace:: 20130127_fd46ff +.. |date| date:: + +========= +tnfs-fuse +========= + +--------------------------------- +trivial network filesystem client +--------------------------------- + +:Manual section: 1 +:Manual group: SlackBuilds.org +:Date: |date| +:Version: |version| + +SYNOPSIS +======== + +tnfs-fuse **directory** **-o address=host**\[:*port*] + +DESCRIPTION +=========== + +TNFS is a simplified Internet file transfer protocol, designed for +simplicity and ease of implementation on small systems, such as 8-bit +computers. It's simpler than NFS, SMB, or FTP. It's similar to TFTP, +but has features TFTP lacks. + +**tnfs-fuse** is a client for the TNFS protocol. It uses UDP port +16384 by default (standard for TNFS). + +When working with mounted TNFS directories, some error messages will +be wrong, e.g. instead of "Permission denied", you may get "Bad file +descriptor". + +OPTIONS +======= + +**-o address=host**\[:*port*] + The hostname or IP address of the TNFS server to mount. If *:port* is + not given, the default TNFS port (16384) is used. + +**-o ro** + Mount read-only. + +**tnfs-fuse** supports the full set of **fuse** options. See +**fuse**\(8) or **tnfs-fuse --help** for the list. + +EXAMPLE +======= + +To mount the TNFS server at **fujinet.online**:: + + mkdir fujinet + tnfs-fuse fujinet -o address=fujinet.online + +Now the contents of the TNFS server are visible under fujinet/ (or +whatever name you chose). You might also want to add **-o ro** to mount +read-only. + +COPYRIGHT +========= + +See the file /usr/doc/tnfs-fuse-|version|/COPYING for license information. + +AUTHORS +======= + +tnfs-fuse was written by Radu Cristescu. + +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. + +SEE ALSO +======== + +**tnfs-client**\(1), **tnfsd**\(1), **fuse**\(8) |