Cygwin doesn't support IO_REPARSE_TAG_APPEXECLINK

Kagami Rosylight saschanaz@outlook.com
Sun May 24 09:51:04 GMT 2020


From: Marco Atzeri
> `Reply always with mailing list in copy, please
> and bottom posting as standard
>
> On 23.05.2020 18:34, Kagami Rosylight wrote:
> > Hi Marco,
> >
> > >Not clear why you expect that a Windows specific tag as
> > IO_REPARSE_TAG_APPEXECLINK should be supported on a Posix platform ?
> >
> > https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcygwin.com%2Fgit%2F%3Fp%3Dnewlib-cygwin.git%3Ba%3Dblob%3Bf%3Dwinsup%2Fcygwin%2Fpath.cc%3Bh%3D36aa8278fd8495bdfe5ec82b8c36d7d3d7881ebb%3Bhb%3Drefs%2Fheads%2Fmaster%23l2473&data=02%7C01%7C%7Ca9040b39384d422d0b5808d7ffc595f1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259096391494659&sdata=Llf8pBA7JBtDEThlvynB7Di1E71xjJnLVUJsEI1N6u8%3D&reserved=0
> >
> >
> > Because Cygwin already supports common reparse points (such as symlinks)
> > and APPEXECLINK is also a common one used by Microsoft Store. This issue
> > causes some CLI tools depending on MSYS2 (which again on Cygwin) to fail
> > calling system Python executable.
> >
> > > that seems a bit short to help third party in properly using it.
> >
> > Good point, and that’s why I only could provide the prior works.
> > REPARSE_DATA_BUFFER_APPEXECLINK in the PowerShell patch shows how the
> > structure look like, but this definitely needs an official
> > documentation. I don’t think it’s a strict blocker given that there are
> > public working patches, though.
> >
> > -Kagami
> >
> > *From: *Marco Atzeri
> > *Sent: *Saturday, 23 May 2020 5:50 PM
> > *To: *cygwin@cygwin.com , saschanaz@outlook.com
> > *Subject: *Re: Cygwin doesn't support IO_REPARSE_TAG_APPEXECLINK
> >
> > On 23.05.2020 17:09, Kagami Rosylight via Cygwin wrote:
> > > Hi Cygwin community,
> > >
> > > I found that Cygwin can’t run UWP based CLI tools, as they expose
> > their executables as reparse points with the tag
> > IO_REPARSE_TAG_APPEXECLINK which Cygwin does not support.
> > >
> > > Way to reproduce this issue on Cygwin:
> > >
> > > 1. Install Python from Microsoft Store:
> > https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fp%2Fpython-38%2F9mssztt1n39l&data=02%7C01%7C%7Ca9040b39384d422d0b5808d7ffc595f1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259096391494659&sdata=tJ4DeDmHrHFYPrXIDzLiXZ6vQivQbZVV703SfOqMT%2BM%3D&reserved=0
> > (assuming you don’t already have python3.8 on your PATH.)
> > > 2. Try running `python3.8` on Cygwin. It will say
> > “/cygdrive/c/Users/Kagami/AppData/Local/Microsoft/WindowsApps/python3.8:
> > Permission denied”
> > > 3. Check it’s real path by `get-childitem -path
> > C:/Users/Kagami/AppData/Local/Microsoft/WindowsApps/python3.8.exe` on
> > PowerShell. It’s `C:\Program
> > Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1008.0_x64__qbz5n2kfra8p0\python3.8.exe`.
> > > 4. Try running python again with that path. This succeeds.
> > >
> > > I posted this issue on MSYS2 GitHub repo
> > (https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmsys2%2FMSYS2-packages%2Fissues%2F1943&data=02%7C01%7C%7Ca9040b39384d422d0b5808d7ffc595f1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259096391494659&sdata=9DVvWYnNcgR26LR7p%2FdX2n7uXI8rnL%2BE1nO7ct9ZBF0%3D&reserved=0)
> > but I think Cygwin is the right place to file this.
> > >
> > > Relevant prior works:
> > >
> > > * Python
> > https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fcommit%2Fdf2d4a6f3d5da2839c4fc11d31511c8e028daf2c&data=02%7C01%7C%7Ca9040b39384d422d0b5808d7ffc595f1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259096391494659&sdata=PHB5ChU1IX4gfc7NF3XMJqghyoVBic4CJ5fDP1W7LAM%3D&reserved=0
> > > * libuv
> > https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Flibuv%2Flibuv%2Fcommit%2Fe7ebae26247d2fee0a04547eb7f9aa8f78d4a642&data=02%7C01%7C%7Ca9040b39384d422d0b5808d7ffc595f1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259096391504645&sdata=rA4UuMyybOHo35N6qPF0OYVxFLk0usYuviUH0NjymlU%3D&reserved=0
> > > * PowerShell
> > https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FPowerShell%2FPowerShell%2Fpull%2F10331&data=02%7C01%7C%7Ca9040b39384d422d0b5808d7ffc595f1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259096391504645&sdata=cW19cfgbotWpc1loOfYJHoIIvFh2zdSSPhdbeRnIGnw%3D&reserved=0
> > >
> > > Thanks,
> > >
> > > -Kagami
> > >
> >
> > Not clear why you expect that a Windows specific tag as
> > IO_REPARSE_TAG_APPEXECLINK should be supported on a Posix platform ?
> >
> > Moreover all the documentation from MS seems
> >
> > https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fopenspecs%2Fwindows_protocols%2Fms-fscc%2Fc8e77b37-3909-4fe6-a4ea-2b9d423b1ee4&data=02%7C01%7C%7Ca9040b39384d422d0b5808d7ffc595f1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259096391504645&sdata=EsAOzkEfbTP3RxYcFVsWuGax0s2dh2nf38%2FhfW%2Frre8%3D&reserved=0
> >
> > that seems a bit short to help third party in properly using it.
> >
> > Regards
> > Marco
> >
> >
> > PS: Python 3.8 is available as Cygwin binary
> >
>
>
> have you tested
>
> "cygstart
> /cygdrive/c/Users/Kagami/AppData/Local/Microsoft/WindowsApps/python3.8.exe
>   " ?
>
>
> Regards
> Marco
>

That works by opening a new window. MSYS2 doesn’t have it by default and I can’t add conditional cygstart calls everywhere just to workaround this issue, though.

Sorry for not keeping the standard style 😬. Which email client do you use to do the "bottom posting"? I copied the whole body from Outlook to my IDE and added ">" to write this, is this what you are doing? It seems there should be more straightforward way as all mailing list users are using this style.


More information about the Cygwin mailing list