X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:references :in-reply-to:content-type:content-id:content-transfer-encoding :mime-version; q=dns; s=default; b=etpemgisyF7QpUe16rDaE2TdDDzds mQ5EvmQeKhDXx27OfvnEgUsdRPqMw7QFoK2mhrehwm64PBavrFMcd7i4jlmvoHHs Js4vIumJsnKwJVTd+HKL4F0TcAO58aKrMKYqsmyPjoq+Pppob2x0CsX/6oAZfclo QXngU6acIotFEA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:references :in-reply-to:content-type:content-id:content-transfer-encoding :mime-version; s=default; bh=OESSmSIJNpVKEzkHnuWeIZv9zzQ=; b=fTC zLK3Dimwkfa1O5v1rpZXjD53wQncbpJ3j++3tREvtgJr+5a5dQjRwI/dNiR5g65O Cxc4/KQ9w9n+iRmzcghgIKi9C/XMt91B1XgZg2yTXk9goI9sgv8W45eNhQ8Z5qGL XtcGVaRvhz/cu+liBpyrfzxrkhK0XWqreEg9QSBs= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.2 required=5.0 tests=AWL,BAYES_00,CYGWIN_OWNER_BODY,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 spammy=citizens, Herbert, Hx-exchange-antispam-report-cfa-test:6040130, Hx-exchange-antispam-report-cfa-test:6043046 X-HELO: na01-bn1-obe.outbound.protection.outlook.com From: Bill Zissimopoulos To: "cygwin AT cygwin DOT com" Subject: Re: FUSE for Cygwin Date: Wed, 22 Jun 2016 19:43:40 +0000 Message-ID: References: <57667FEF DOT 5070801 AT gmx DOT de> <57670140 DOT 7050001 AT gmx DOT de> In-Reply-To: <57670140.7050001@gmx.de> authentication-results: spf=none (sender IP is ) smtp.mailfrom=billziss AT navimatics DOT com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-office365-filtering-correlation-id: b8e61e2e-65cd-40ad-40a7-08d39ad58305 x-microsoft-exchange-diagnostics: 1;CY1PR07MB2198;6:YKxtAMgkGVYTqohcwP4wliD5crVY8YDeSO6UcFumZpuZm0RmIO5vKjop4i0RXv0dRlGNOod6Dk2lmFRf6BKTDVJDwZTNN1kPIBevaPvg7wmnh5qrLvfZCmQQyLoTXfDPls///TvWYxoewteZMqf3ufE7bzJ8gOxbq+biPYBlkhA3iV2Pc/MC7ja/7YxaOceu1ez0Q6SLbMEwJuZJH/nMaebMDYaceYwlyoQRoJs8p/3VwF5bV+2flH87a5I6VB4ulLeFYNsLD8d9XE0UDd58kpeGmdMzFloMfjx4Lli57NBvy/qewVvwB9FlVbF0fhbXGcPdbIZDLjb+9cEgbohSwQ==;5:iqac4l+UoZ8CFpmzbbQoLGtl7260O+6sF09PTo5T7P8MTLAcvQS0vwFdMhkaI9qIJ4pPAe4fX9Lm9FpSVRzsVTH8InVgSJgcshmXpzrpqUzPuer2snRGWLjEVb79j7DBZueFdONXwOUvDHAG9/K/9A==;24:i6V0s2DwkMbPRWIsq7WHIPEowhcdVjbNa9D1A0S/X/qHhkOyhO9Fc7HyVfYRqVKL5OgSs9gygRCxr2CZvaVImflrdUGtz9aMSK8LzXEBmuU=;7:dT02sOLwjk8YRgiHKPkpQ04cUM6VPDWiPybd3ZcmI96mfqWj+Ozc48xshYIPsIpA8jCZ2AoTL2lVbq26CMGe+EqNpIMUqcW2NIOZcm1wY17DbB1ASXJzbbUhelsOQy1iPtg9xw+ei17kDcnqAUyXaFqGUc+9UBp42CW2PnmAvnyOShBcb4fBmygpRP6TaY0FCa1gxGUFyofMArl4jrW/lZdzU3Z5JzdvsCFynjfKVh0CfVOi51TAzHArd/6UPt9f7cifkoMihT4FmeP08o2Bhg== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2198; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(26323138287068)(166708455590820); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041072)(6043046);SRVR:CY1PR07MB2198;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2198; x-forefront-prvs: 0981815F2F x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(7916002)(199003)(377454003)(24454002)(189002)(2906002)(586003)(36756003)(189998001)(7846002)(66066001)(554214002)(102836003)(8936002)(110136002)(6116002)(86362001)(3660700001)(7736002)(305945005)(3846002)(101416001)(97736004)(87936001)(92566002)(3280700002)(5640700001)(76176999)(107886002)(11100500001)(54356999)(50986999)(1730700003)(93886004)(15975445007)(99286002)(19580405001)(2950100001)(10400500002)(81156014)(8676002)(450100001)(122556002)(68736007)(2900100001)(77096005)(2351001)(105586002)(81166006)(19580395003)(2501003)(5002640100001)(106356001)(106116001)(3480700004)(94096001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR07MB2198;H:CY1PR07MB2199.namprd07.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; received-spf: None (protection.outlook.com: navimatics.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 X-OriginatorOrg: navimatics.com X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2016 19:43:40.2740 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 21071be9-4f9a-413b-89ac-8353a5d2410a X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2198 X-IsSubscribed: yes Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by delorie.com id u5MJi6tc024755 Hi, Herbert: On 6/19/16, 1:32 PM, "cygwin-owner AT cygwin DOT com on behalf of Herbert Stocker" wrote: >>>G) Case sensitivity. >> >> WinFsp (and Windows) allows for both case-sensitive and case-insensitive >> file systems. > > >> FUSE file systems are marked as case-sensitive by default. > >If WinFsp marks FUSE file systems as case-sensitive then there is no >issue with case sensitiity. > >However we should have a look into OSXFUSE, it also has to deal with >case sensitivity. Let's see how they solved it. There's also MacFUSE >and Fuse4X according to Wikipedia. I am familiar with OSXFUSE as my primary development platform is OSX. OSXFUSE has various extensions to FUSE. In this case a file system can advertise that it is case insensitive by setting the case_insensitive bit in fuse_conn_info (passed to fuse_operations::init). As far as WinFsp-FUSE is concerned I have made it a command line option. I am happy to change how this is done though and perhaps conform to the OSXFUSE convention. >>you would now make those Win32 processes 2nd class citizens, >> as they would have to go through that intermediate process (which means >>4 >> context switches per file system request for them). > >You are right. I did not think about this extra process. Performance >wise Win32 processes would be 2nd class. i was just thinking about >feature wise, where they don't lose. > > >>>>>>> >Now this argument of yours makes me more biased towards mode (3). Let's >pay with some design unprettiness (remember pipes) and have the better >performance for both worlds. > >And besides, the translations are necessary anyway for mode (2). >Except for the pipes and hardlinks, they need not be supported in >mode (2). > >best regards, >as before, i am looking forward to use WinFsp and have FUSE available >for my Cygwin scripts and stuff. And even for windows processes. Thanks, Herbert. In the last few days I have also worked in a mode (3b): a Cygwin package that contains a cygfuse-2.8.dll that knows how to interface with the rest of the WinFsp machinery (FSD/DLL). This makes WinFsp-FUSE usable for a variety of FUSE file systems and libraries, including language bindings for Python, Perl, etc. For example, I have a small patch for FUSEPY (Python bindings for FUSE), which basically defines the Cygwin stat and statvfs structs using Python ctypes. Other than that FUSEPY just runs. [There are some small issues to be resolved, but the basis is there.] The bigger question is whether the Cygwin community would want a package like this. The obvious answer might be yes (I hope), but there is a large caveat. WinFsp includes a kernel-mode driver that needs to be built using Microsoft tools and signed using an EV certificate. In fact it looks like those requirements will only get harder as time passes -- soon we may need a sysdev account just to sign drivers. This means that the familiar model of getting the source and compiling everything using Cygwin tools cannot work here. The source code for the cygfuse package can be found below. You will notice that it is a rather thin layer on top of WinFsp-FUSE implemented in the WinFsp DLL. https://github.com/billziss-gh/winfsp/tree/master/opt/cygfuse Bill