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
}


Reply via email to