1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-19 19:59:43 +00:00

New port: sysutils/fusefs-webdavfs. It presents FUSE webdav filesystem.

This filesystem behaves like a real network filesystem - no unnecessary
copying of entire files. Currently, it claims read-write support for
Apache's mod_dav and PHP's SabreDav (used by e.g. NextCloud) only.
It forces read-only mode for other DAV servers.
This commit is contained in:
Eugene Grosbein 2018-03-10 10:14:17 +00:00
parent 9bac3f50d1
commit 389509f2a2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=464060
6 changed files with 108 additions and 0 deletions

View File

@ -384,6 +384,7 @@
SUBDIR += fusefs-sshfs
SUBDIR += fusefs-unionfs
SUBDIR += fusefs-wdfs
SUBDIR += fusefs-webdavfs
SUBDIR += fusefs-wikipediafs
SUBDIR += fusefs-zip
SUBDIR += fvcool

View File

@ -0,0 +1,51 @@
# Created by: Eugene Grosbein <eugen@FreeBSD.org>
# $FreeBSD$
PORTNAME= fusefs-webdavfs
DISTVERSION= g20170810
CATEGORIES= sysutils
MAINTAINER= eugen@FreeBSD.org
COMMENT= FUSE filesystem for WEBDAV shares
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKDIR}/fuse-${FUSE_GH_TAGNAME}/LICENSE
USE_GITHUB= yes
GH_ACCOUNT= miquels
GH_PROJECT= webdavfs
GH_TAGNAME= 0eec7b6
GETOPT_GH_ACCOUNT= pborman
GETOPT_GH_PROJECT= getopt
GETOPT_GH_TAGNAME= 7148bc3
GETOPT_WRKSRCDIR= ${GO_WRKSRC}/../src/github.com/${GETOPT_GH_ACCOUNT}/${GETOPT_GH_PROJECT}
FUSE_GH_ACCOUNT= bazil
FUSE_GH_PROJECT= fuse
FUSE_GH_TAGNAME= 371fbbd
FUSE_WRKSRCDIR= ${GO_WRKSRC}/../src/bazil.org
GH_ACCOUNT+= ${GETOPT_GH_ACCOUNT}:getopt ${FUSE_GH_ACCOUNT}:fuse
GH_PROJECT+= ${GETOPT_GH_PROJECT}:getopt ${FUSE_GH_PROJECT}:fuse
GH_TAGNAME+= ${GETOPT_GH_TAGNAME}:getopt ${FUSE_GH_TAGNAME}:fuse
PLIST_FILES= sbin/mount.webdavfs sbin/mount_webdavfs
SUB_FILES= pkg-message mount_webdavfs
# This needs to be Go 1.7 or newer.
USES= go
post-patch:
${GREP} -Flr '"golang.org/x/net/context"' ${WRKDIR} |\
${XARGS} ${REINPLACE_CMD} -i '' 's,golang.org/x/net/context,context,'
${MKDIR} ${GETOPT_WRKSRCDIR} ${FUSE_WRKSRCDIR}
${LN} -s ${WRKDIR}/getopt-${GETOPT_GH_TAGNAME}/v2 ${GETOPT_WRKSRCDIR}
${LN} -s ${WRKDIR}/fuse-${FUSE_GH_TAGNAME} ${FUSE_WRKSRCDIR}/fuse
do-install:
${INSTALL_PROGRAM} ${WRKDIR}/bin/${PORTNAME} ${STAGEDIR}${PREFIX}/sbin/mount.webdavfs
${INSTALL_SCRIPT} ${WRKDIR}/mount_webdavfs ${STAGEDIR}${PREFIX}/sbin
.include <bsd.port.mk>

View File

@ -0,0 +1,7 @@
TIMESTAMP = 1520664992
SHA256 (miquels-webdavfs-g20170810-0eec7b6_GH0.tar.gz) = c1bf96f05f4f97fea9a192b3dca43fe67e6989ac2ee024f6ed08e84d037bde04
SIZE (miquels-webdavfs-g20170810-0eec7b6_GH0.tar.gz) = 19275
SHA256 (pborman-getopt-7148bc3_GH0.tar.gz) = 5828aab17ad7c149535cb87b5db6ca2b0bb1a9209e051bef00a3ac73809a4528
SIZE (pborman-getopt-7148bc3_GH0.tar.gz) = 37914
SHA256 (bazil-fuse-371fbbd_GH0.tar.gz) = 799b6ef7f8458941ea4cfdc210764f3b3e7e90cdd19d7709889397f5fdc04864
SIZE (bazil-fuse-371fbbd_GH0.tar.gz) = 187723

View File

@ -0,0 +1,33 @@
#!/bin/sh
mountprog=%%PREFIX%%/sbin/mount.webdavfs
while getopts "fo:DF:T:" opt
do
case "$opt" in
o) case "$OPTARG" in
username=*) username=${OPTARG#username=} ;;
password=*) password=${OPTARG#password=} ;;
rw) ;;
*) options="$options,$OPTARG" ;;
esac ;;
T) traceopts="$traceopts,$OPTARG" ;;
*) flags="$flags -$opt $OPTARG" ;;
esac
done
shift $((OPTIND - 1))
[ -n "$username" ] && options="$options,username=$username"
[ -n "$password" ] && options="$options,password=$password"
options=${options#,}
traceopts=${traceopts#,}
[ -n "$traceopts" ] && flags="$flags -T $traceopts"
if [ -z "$options" ]; then
exec $mountprog $flags "$@"
else
exec $mountprog $flags -o "$options" "$@"
fi

View File

@ -0,0 +1,8 @@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Make sure you have fuse.ko loaded then use mount.webdavfs command
or add an entry to the /etc/fstab such as:
https://webdav.server.net/path /mnt/path fusefs rw,late,mountprog=%%PREFIX%%/sbin/mount_webdavfs,username=login,password=pass,-F=/var/tmp/trace.log,-T=webdav,-T=httpreq,-T=httphdr 0 0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

View File

@ -0,0 +1,8 @@
FUSE webdav filesystem.
This filesystem behaves like a real network filesystem - no unnecessary
copying of entire files. Currently, it claims read-write support for
Apache's mod_dav and PHP's SabreDav (used by e.g. NextCloud) only.
It forces read-only mode for other DAV servers.
WWW: https://github.com/miquels/webdavfs