On 10/03/2022 06:16, Mark Geisert wrote:
This is a Cygwin version of libfuse{,3} that can be found in various
Linux distributions. It is a couple of link libraries and additions to
/usr/include to allow porting of FUSE apps. FUSE: File System In User
Space. I will shortly be providing an sshfs FUSE app, to be covered by
a separate ITP.
Importantly, cygfuse depends on an underlying Windows FUSE
implementation: WinFSP. In fact the Cygwin library code was provided by
the author of WinFSP. I'm just providing a bona-fide Cygwin package for
the code.
WinFSP, and thus cygfuse, is made available under GPLv3 for Free/Libre
and Open Source Software or under a commercial license.
If another Windows FUSE provider shows interest in supporting Cygwin, I
suspect it could be supported with alternatives(8).
It's not quite that straightforward as the Windows loader can only
follow symlinks to DLLs if they are
But that's not
The initial project files for review are located at:
http://maxrnd.com/~mark/cygwin/cygfuse/cygfuse.cygport
http://maxrnd.com/~mark/cygwin/cygfuse/cygfuse-3.2.0-1-src.tar.xz
http://maxrnd.com/~mark/cygwin/cygfuse/cygfuse-3.2.0-1.src.patch
Thanks for reading and for any feedback you might have,
A few small comments on the cygport file
HOMEPAGE="https://github.com/mgeisert/cygfuse"
#SRC_URI="http://maxrnd.com/~mark/cygwin/x86_64/release/cygfuse/cygfuse-${PV}.tar.xz"
#NOT YET: GIT_URI="https://github.com/mgeisert/cygfuse.git"
#NOT YET: GIT_TAG="v$VERSION"
#NOT YET: inherit git
It's unclear where the upstream source tarball comes from...
PKG_NAMES="cygfuse"
cygfuse_CONTENTS="
usr/bin/*
usr/include/fuse/*
usr/include/fuse3/*
usr/lib/*
usr/share/man/man1/*
usr/share/man/man8/*
"
# take over these activities from cygport..
_CYGPORT_RESTRICT_strip_=1
This should be written 'RESTRICT=strip', I think.
src_compile()
{
# fix source tree glitch.. (maybe 'prep' stumbling or bad tarfile layout?)
if [ -e ${S}/src ]; then
mv ${S}/src/cygfuse ${S}
rmdir ${S}/src
fi
I think this can be handled with 'SRC_DIR=src/cygfuse' (and suitable
adjustment to paths throughout)
# and on with the show..
cd ${S}
lndirs
# compile emulation of Linux libfuse..
mkdir -p ${B}/cygfuse/fuse
cd ${B}/cygfuse/fuse
cygmake
# compile emulation of Linux libfuse3..
mkdir -p ${B}/cygfuse/fuse3
cd ${B}/cygfuse/fuse3
cygmake
}