From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.13]) by sourceware.org (Postfix) with ESMTPS id 1657A3858C2C for ; Mon, 10 Jan 2022 09:27:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1657A3858C2C Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=cygwin.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=cygwin.com Received: from calimero.vinschen.de ([24.134.7.25]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N3Kc8-1mO4JN1D74-010Map for ; Mon, 10 Jan 2022 10:27:31 +0100 Received: by calimero.vinschen.de (Postfix, from userid 500) id D765EA80D60; Mon, 10 Jan 2022 10:27:30 +0100 (CET) Date: Mon, 10 Jan 2022 10:27:30 +0100 From: Corinna Vinschen To: cygwin@cygwin.com Subject: Re: Support for ADS (Alternate Data Streams) Message-ID: Reply-To: cygwin@cygwin.com Mail-Followup-To: cygwin@cygwin.com References: <25042.4135.663145.551881@consult.pretender> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-Provags-ID: V03:K1:ekQnwgvCGQ6ZE9KLTYwJ8ReQxRcYF+FmEVuXkxswmWFmdghNG95 OoigB0mchtXmBN8HGyl4xhQir7Ak5PBWkKgtiwXB0TeGa0dX3gX3R2HBVkPwIup0MNuumNM 30RGYMRmjv5gRkwnlPpMPZHhV+QyaaSSjw4QZQqnmMi/cSd/C0vY45xCgg4p8pFXcFF1KMJ AgQRh4uzro0g3Q4eQxbkw== X-UI-Out-Filterresults: notjunk:1;V03:K0:Yn6pMOUPg5w=:r0M9j1cl7AGcAgF9NIYhhs m0GVWPIKEtmXFRnov1bOUWo7qKlFk428TpbgU8jkNvMtYiY6RiWvfCeM1J5e7xYMD3VYLUqsy Oln433LMzA7+W38FvIxIgE3JK/pSQBgtKTfwh5InxTICUY8EG3pBPLEPJquJ0QejQb78Acyd3 oIsM2Sq1OnIdAxToTKDRQzOeyR6RQknc6pXXFqMYZJdqJ22UeozzRAfkqE4jUSvhw6pHlmAoD pd+ikFOlz67q9i8MtWSDne/I2DFERmWDWO5o2CSPWEjbCe+pVNWsVTTkEynAwUB3kU0GbQUqP vUiAtOCCFlhFPjtn2nGZZ4kAAllw6O34Cayxy/flepJy9fZFUAeXfY1/QJhHWbvhY5ubVHBRm NQukWsJy1bQSEemjw7Xrnl9tHWKANM7bq8VXz/7kpuo4hvgbdHNFZAWggRaU44NfGX6qsJVny q/k6xr2IburU812rvlhc+HKw7BtFX/aPya61bG+mVNRogK/NJLlaluQZmCpftSD4DtIYrY8p9 63gQhqSf/SSeKx3mtrdswWPTcwZNS87K59SwNIaKC0ew8jVPWD8m6uPufLBjZU0vf6/dTRwH2 3mD7PpFG3AHgbtoGSSzaF9EqjoGi7ggHXUqz8WPRtroyHj8iXOnFaqnyalH82icE1qp5iCHvh jmNT80jVkptGr66qx2JA8VCjFvpzZHHV/ivemtJdAVQLV4883vNP0ek5S6wMjK+Fh9yaITmCH vQAx3t71HvZh2paT X-Spam-Status: No, score=-88.5 required=5.0 tests=BAYES_00, GOOD_FROM_CORINNA_CYGWIN, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H2, SPF_FAIL, SPF_HELO_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Jan 2022 09:27:34 -0000 On Jan 8 04:14, NightStrike wrote: > On Wed, Jan 5, 2022, 05:08 Corinna Vinschen > wrote: > > > On Jan 3 22:40, NightStrike wrote: > > > On Sun, Jan 2, 2022, 15:51 wrote: > > > > > > > While I recognize that ADS is not supported by POSIX, I was wondering > > > > what if any support for ADS might exist within Cygwin. > > > > > > > > The last time I looked into this was probably more than a decade ago > > > > but I am seeing (unfortunately) more usage of ADS in the Windows > > > > world, so I was wondering if there has been any effort to support in > > > > Cygwin? > > > > > > > > -- > > > > Problem reports: https://cygwin.com/problems.html > > > > FAQ: https://cygwin.com/faq/ > > > > Documentation: https://cygwin.com/docs.html > > > > Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple > > > > > > > > > FWIW, ntfs-3g under Linux maps these to extended attributes > > > > Using the EA API as ntfs-3g with the streams_interface=xattr option > > seems like a nice way to allow reading and writing ADS on Cygwin as > > well. > > > > Do you know how ntfs-3g performs the mapping? For instance, I guess > > that ADS are stored in the user.* namespace? Does listxattr list ADS or > > does it skip them? Stuff like that. > > > > The ntfs.streams.list attribute contains the stream names, and there's a > shortcut to access them by name with a colon. So if you have a stream named > str and a file named f.txt, you could do 'cat f.txt:str'. Hmm, that's not quite what I expected. We could support an EA like ntfs.streams.list, but we can't use the colon syntax. We could map streams to EAs so they are read with getxattr and written with setxattr. Or we would have to invent a different way. Corinna