public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [ITP] FUSE 2.8
@ 2016-07-17  1:03 Bill Zissimopoulos
  2016-07-17 15:43 ` David Stacey
                   ` (2 more replies)
  0 siblings, 3 replies; 83+ messages in thread
From: Bill Zissimopoulos @ 2016-07-17  1:03 UTC (permalink / raw)
  To: cygwin-apps

This package adds FUSE 2.8 support to Cygwin. FUSE is the well-known
"Filesystem in Userspace" project for Linux and other platforms: [FUSE].

FUSE file systems that use this package usually require minimal changes to
run on Cygwin. For example, here are the pull requests I have submitted to
SSHFS and FUSEPY to make them run on Cygwin: [SSHFS-PR], [FUSEPY-PR].

FUSE file systems that use this package will expose a file system not just
to Cygwin, but to ALL of Windows (i.e. Explorer, cmd.exe and all of
Windows apps will be able to access their files). For this to work the
cygfuse.dll in the package needs to interface with a kernel mode
component, which does NOT ship as part of this package.

Which brings me to a large caveat with this package. The package has an
external dependency on my own open source project called WinFsp [WINFSP].
WinFsp includes the necessary kernel-mode driver that enables the
FUSE-like functionality on Windows. Unfortunately this driver can only be
built with Microsoft tools. Furthermore it must be signed with an EV
certificate (and going forward Microsoft will soon require that they sign
every kernel mode driver themselves through the sysdev portal).

For this reason you cannot simply get the source code for the FUSE cygport
and WinFsp and compile everything from scratch. This is not a licensing
issue (all code is AGPLv3), but a tools/signing issue. The alternatives
are:

1. Accept the FUSE cygport package as is. Understand that it requires
prior installation of WinFsp in order to properly work.

2. Accept the FUSE cygport package, but require that the package downloads
and installs the WinFsp MSI (perhaps as part of its post install process).

3. Reject this package.

I have currently implemented option (1) but I am happy to change to option
(2). The package files can be found at [CYGFUSE]. The source code for the
package can be found under the opt/cygfuse directory in this repository:
[WINFSP-GH]

The setup.hint file is as follows:

    category: Utils
    requires: cygwin pkg-config
    sdesc: "WinFsp-FUSE compatibility layer"
    ldesc: "WinFsp-FUSE enables FUSE file systems to be run on Cygwin."

The package is generated by the following cygport file:

    NAME="fuse"
    VERSION=2.8
    RELEASE=3
    CATEGORY="Utils"
    SUMMARY="WinFsp-FUSE compatibility layer"
    DESCRIPTION="WinFsp-FUSE enables FUSE file systems to be run on
Cygwin."
    HOMEPAGE="http://www.secfs.net/winfsp/"

    
SRC_URI=${CYGPORT_SRC_URI:-"https://github.com/billziss-gh/winfsp/archive/m
aster.tar.gz"}
    SRC_DIR=${CYGPORT_SRC_DIR:-winfsp-master}

    src_compile()
    {
        lndirs
        cd ${B}/opt/cygfuse
        make
     }

    src_install()
    {
        cd ${B}/inc/fuse
        includeinto fuse
        doinclude fuse.h
        doinclude fuse_common.h
        doinclude fuse_opt.h
        doinclude winfsp_fuse.h

        cd ${B}/opt/cygfuse
        dobin cygfuse-${VERSION}.dll
        dolib libfuse-${VERSION}.dll.a
        dosym libfuse-${VERSION}.dll.a /usr/lib/libfuse.dll.a
        dopkgconfig fuse.pc
    }

    RESTRICT="strip postinst-doc"

To test the package install it and the WinFsp MSI. Also install glib2 and
any build tools you may be missing. Clone my fork of SSHFS from [SSHFS].
Then issue the following commands in the cloned repository.

    autoreconf -i
    ./configure
    make

You should now be able to test sshfs with a command line such as:

    ./sshfs -o idmap=user billziss@macbook-pro: Y:

Be sure to issue this command from a non-administrator prompt as Windows
has some arcane rules on how drives are assigned. You can now open Windows
explorer and browse through drive Y:. When you are done simply issue:

    pkill sshfs

Comments greatly appreciated.

Bill

[CYGFUSE]   https://github.com/billziss-gh/winfsp/releases/tag/v0.14
[FUSE]      https://en.wikipedia.org/wiki/Filesystem_in_Userspace
[FUSEPY-PR] https://github.com/terencehonles/fusepy/pull/54
[SSHFS]     https://github.com/billziss-gh/sshfs
[SSHFS-PR]  https://github.com/libfuse/sshfs/pull/23
[WINFSP]    http://www.secfs.net/winfsp/
[WINFSP-GH] https://github.com/billziss-gh/winfsp


^ permalink raw reply	[flat|nested] 83+ messages in thread
* Re: [ITP] FUSE 2.8
@ 2016-07-22 11:59 Adrien JUND
  2016-07-22 17:55 ` Bill Zissimopoulos
  0 siblings, 1 reply; 83+ messages in thread
From: Adrien JUND @ 2016-07-22 11:59 UTC (permalink / raw)
  To: cygwin-apps

Hi,

Here is Liryna from Dokan-dev community, our project Dokany have the
same purpose of Bill project.
Like WinFSP, it is able to mount FUSE filesystem on cygwin before WinFSP exist.

I would like to point out that naming WinFSP package "fuse" is not the
good way to integrate WinFSP in cygwin.

The package is not related to fuse developers or community.
It would make the user believe that the package is an official fuse
project and I am not sure that’s what Nikratio from libfuse would
like.
The package should be renamed winfsp-fuse for give ability of cygwin
users to choose which solution they would like to use. Like
dokan-fuse, cbfs-fuse and other projects that offer the same
service...
All these packages would install their own libfuse for link
compatibility that use their own dependency.
Fuse name should be kept for official port by libfuse or by a future
integration directly compatible with windows kernels.
The official fuse window integration is an official request made by
devs on WPDEV. This request is well placed on the top so it is
probably only a question of time before windows do it in the same time
as the Linux subsystem integration.
https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/13522845-add-fuse-filesystem-in-userspace-support-in-wsl

I also would like to point out that WinFSP has absolutely no feedback
of any kind by users and has not been tested on all windows versions.
I think Kernel drivers should at least have some feedback and known as
used in production before choosing to be distributed as cygwin
package.
Unstable kernel drivers can create severity damage in case of BSOD
like windows or user files corruption.

These analyses are probably severe but for the good of cygwin users,
integrate kernel driver dependence should be well thought before
making the step.

Thanks,
Liryna,

2016-07-22 9:59 GMT+02:00 Corinna Vinschen <corinna-cygwin@cygwin.com>:
>
> On Jul 21 22:11, Bill Zissimopoulos wrote:
> > On 7/20/16, 1:52 AM, Corinna Vinschen wrote:
> >
> > >We just might still want to change the name to "no+body".
> > >
> > >What do others on this list think?  What sounds better?
> > >
> > > "nodomain+nobody" or "no+body"
> >
> > Corinna, hi.
> >
> > I know you have asked others to chime in, but IMO you should go ahead and
> > change it to “no+body”.
>
> Done.
>
> > I also would ask others to chime in regarding this package and
> > specifically if it is one they would like to see in Cygwin.
> >
> > I am also unclear on what the next steps are regarding this package
> > submission. Does the package need 5 votes in order to be accepted? Does it
> > only need 1 GTG vote because FUSE packages already exist on most major
> > Linux distros?
>
> A GTG should be ok here.
>
>
> Thanks,
> Corinna
>
> --
> Corinna Vinschen                  Please, send mails regarding Cygwin to
> Cygwin Maintainer                 cygwin AT cygwin DOT com
> Red Hat

^ permalink raw reply	[flat|nested] 83+ messages in thread

end of thread, other threads:[~2016-09-08 16:58 UTC | newest]

Thread overview: 83+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-17  1:03 [ITP] FUSE 2.8 Bill Zissimopoulos
2016-07-17 15:43 ` David Stacey
2016-07-17 21:18 ` Marco Atzeri
2016-07-18 19:15   ` Bill Zissimopoulos
2016-07-18  8:19 ` Corinna Vinschen
2016-07-18 19:43   ` Bill Zissimopoulos
2016-07-18 19:52     ` Bill Zissimopoulos
2016-07-19  9:41       ` Corinna Vinschen
2016-07-19 17:27         ` Bill Zissimopoulos
2016-07-20  8:52           ` Corinna Vinschen
2016-07-21 22:12             ` Bill Zissimopoulos
2016-07-22  7:59               ` Corinna Vinschen
2016-07-22 12:30                 ` Adrien JUND
2016-07-22 12:53                   ` Marco Atzeri
2016-07-22 13:41                     ` Corinna Vinschen
2016-07-22 17:58                     ` Bill Zissimopoulos
2016-07-22 19:58                       ` Marco Atzeri
2016-07-23  0:31                         ` Bill Zissimopoulos
2016-07-23  6:02                           ` Marco Atzeri
2016-07-23  6:33                             ` Bill Zissimopoulos
2016-07-22 17:55                 ` Bill Zissimopoulos
2016-07-22 11:59 Adrien JUND
2016-07-22 17:55 ` Bill Zissimopoulos
2016-07-22 19:56   ` Adrien JUND
2016-07-23  0:23     ` Bill Zissimopoulos
2016-07-23 10:40       ` Corinna Vinschen
2016-07-23 16:44         ` Bill Zissimopoulos
2016-07-23 17:48           ` Corinna Vinschen
2016-07-23 18:34             ` Bill Zissimopoulos
2016-07-25  7:35               ` Corinna Vinschen
2016-07-25 21:20                 ` Bill Zissimopoulos
2016-07-26  6:28                   ` Mark Geisert
2016-07-26  8:45                     ` Herbert Stocker
2016-07-26 12:40                       ` Adrien JUND
2016-07-26 18:13                         ` Mark Geisert
2016-07-26 18:41                           ` Bill Zissimopoulos
2016-07-26 17:23                     ` Bill Zissimopoulos
2016-07-26 18:38                     ` Bill Zissimopoulos
2016-07-26 19:02                       ` Mark Geisert
2016-07-26 19:10                         ` Bill Zissimopoulos
2016-07-26 23:22                         ` Bill Zissimopoulos
2016-07-27  9:03                           ` Mark Geisert
2016-07-27 17:45                             ` Bill Zissimopoulos
2016-07-28  9:17                               ` Mark Geisert
2016-07-28 16:36                                 ` Bill Zissimopoulos
2016-07-28 17:29                                   ` Mark Geisert
2016-07-28 17:43                                     ` Bill Zissimopoulos
2016-07-28 19:14                                     ` Bill Zissimopoulos
2016-07-28 19:21                                       ` Bill Zissimopoulos
2016-07-28 19:59                                       ` Mark Geisert
2016-07-28 20:08                                         ` Corinna Vinschen
2016-07-28 20:04                                       ` Corinna Vinschen
2016-07-28 21:18                                         ` Bill Zissimopoulos
2016-07-29  0:05                                           ` Mark Geisert
2016-07-29  0:17                                             ` Bill Zissimopoulos
2016-07-29  0:27                                               ` Bill Zissimopoulos
2016-07-29  8:19                                                 ` Mark Geisert
2016-07-29  8:51                                                   ` Corinna Vinschen
2016-07-29  9:15                                                     ` Mark Geisert
2016-07-29  9:48                                                       ` Corinna Vinschen
2016-08-16 17:32                                                         ` Corinna Vinschen
2016-08-17  8:27                                                           ` Mark Geisert
2016-08-17  9:14                                                             ` Corinna Vinschen
2016-08-22  9:43                                                               ` Mark Geisert
2016-08-22 11:54                                                                 ` Corinna Vinschen
2016-08-25  8:49                                                                 ` Bill Zissimopoulos
2016-09-05  9:36                                                                   ` Mark Geisert
2016-09-05 11:20                                                                     ` Adrien JUND
2016-09-05 20:16                                                                       ` Mark Geisert
2016-09-06 21:15                                                                         ` Bill Zissimopoulos
2016-09-07  5:22                                                                         ` Herbert Stocker
2016-09-08  8:13                                                                           ` Mark Geisert
2016-09-06 22:07                                                                       ` Mark Geisert
2016-09-06 21:13                                                                     ` Bill Zissimopoulos
2016-09-08 12:01                                                                       ` Corinna Vinschen
2016-09-08 16:58                                                                         ` Bill Zissimopoulos
2016-08-25  8:58                                                                 ` Bill Zissimopoulos
2016-07-29 15:35                                                   ` Bill Zissimopoulos
2016-07-29 18:35                                                     ` Mark Geisert
2016-07-29  7:50                                     ` Bill Zissimopoulos
2016-07-29  8:02                                       ` Mark Geisert
2016-07-26 20:07                       ` Adrien JUND
2016-07-26 20:56                         ` Bill Zissimopoulos

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).