Johannes Schindelin
6183ff9dd5
Cygwin: Treat Windows Store's "app execution aliases" as symbolic links
...
When the Windows Store version of Python is installed, so-called "app
execution aliases" are put into the `PATH`. These are reparse points
under the hood, with an undocumented format.
We do know a bit about this format, though, as per the excellent analysis:
https://www.tiraniddo.dev/2019/09/overview-of-windows-execution-aliases.html
The first 4 bytes is the reparse tag, in this case it's
0x8000001B which is documented in the Windows SDK as
IO_REPARSE_TAG_APPEXECLINK. Unfortunately there doesn't seem to
be a corresponding structure, but with a bit of reverse
engineering we can work out the format is as follows:
Version: <4 byte integer>
Package ID: <NUL Terminated Unicode String>
Entry Point: <NUL Terminated Unicode String>
Executable: <NUL Terminated Unicode String>
Application Type: <NUL Terminated Unicode String>
Let's treat them as symbolic links. For example, in this developer's
setup, this will result in the following nice output:
$ cd $LOCALAPPDATA/Microsoft/WindowsApps/
$ ls -l python3.exe
lrwxrwxrwx 1 me 4096 105 Aug 23 2020 python3.exe -> '/c/Program Files/WindowsApps/PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0/python.exe'
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2021-03-31 11:09:42 -04:00
..
2021-03-31 11:09:41 -04:00
2020-10-14 10:54:21 -04:00
2020-10-14 10:54:30 -04:00
2020-10-27 10:50:46 -04:00
2020-10-14 10:54:26 -04:00
2021-03-31 11:09:42 -04:00
2021-01-07 13:58:58 -05:00
2020-10-19 17:54:54 -04:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:26 -04:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:16 -04:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:29 -04:00
2019-01-22 15:42:07 +01:00
2019-01-22 15:42:07 +01:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:29 -04:00
2016-04-01 13:53:25 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:13 -04:00
2016-08-25 14:18:31 +02:00
2021-01-23 12:13:58 -05:00
2018-02-20 18:01:40 +01:00
2019-01-22 16:38:14 +01:00
2021-03-03 17:57:33 -05:00
2019-03-04 17:31:27 +01:00
2016-06-23 10:09:17 +02:00
2020-11-25 15:06:41 -05:00
2016-08-20 17:14:55 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:14 -04:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:13 -04:00
2019-01-23 21:45:59 +01:00
2016-06-25 13:36:52 +02:00
2016-06-23 10:09:17 +02:00
2016-06-25 00:43:01 +02:00
2020-10-14 10:53:59 -04:00
2018-03-05 17:49:50 +01:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:26 -04:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:03 -04:00
2020-11-17 09:22:32 -05:00
2020-10-14 10:54:03 -04:00
2021-01-23 12:13:59 -05:00
2019-02-07 15:58:02 +01:00
2020-10-14 10:53:53 -04:00
2020-10-14 10:53:52 -04:00
2016-06-23 10:09:17 +02:00
2021-03-03 17:57:31 -05:00
2021-02-01 12:16:54 -05:00
2020-10-14 10:54:09 -04:00
2017-01-10 16:24:50 +01:00
2018-02-20 17:59:53 +01:00
2017-11-27 14:36:06 +01:00
2021-03-03 17:57:32 -05:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:14 -04:00
2021-02-01 12:16:54 -05:00
2020-10-14 10:53:58 -04:00
2021-03-05 14:10:32 -05:00
2021-03-31 11:09:41 -04:00
2019-01-07 12:29:07 +01:00
2021-01-23 12:13:59 -05:00
2021-03-03 17:57:33 -05:00
2020-10-14 10:54:26 -04:00
2021-03-05 14:11:01 -05:00
2021-03-05 14:07:01 -05:00
2020-10-14 10:54:14 -04:00
2016-06-23 10:09:17 +02:00
2021-03-05 14:09:28 -05:00
2021-03-03 17:57:32 -05:00
2019-03-30 20:08:36 +01:00
2020-10-14 10:54:31 -04:00
2020-10-14 10:54:30 -04:00
2020-12-07 14:08:38 -05:00
2020-10-14 10:54:30 -04:00
2016-12-14 14:14:28 +01:00
2021-03-05 14:07:01 -05:00
2020-11-17 09:21:56 -05:00
2021-02-02 18:56:42 -05:00
2020-10-14 10:53:55 -04:00
2020-11-22 15:02:39 -05:00
2021-03-03 17:57:34 -05:00
2021-03-05 14:11:01 -05:00
2020-10-14 10:54:26 -04:00
2021-03-05 14:08:13 -05:00
2021-03-31 11:09:41 -04:00
2020-11-17 09:21:56 -05:00
2021-03-31 11:09:42 -04:00
2020-11-17 09:21:56 -05:00
2020-10-14 10:54:14 -04:00
2020-10-14 10:54:26 -04:00
2016-06-23 10:09:17 +02:00
2021-03-05 14:09:28 -05:00
2021-03-31 11:09:41 -04:00
2020-10-14 10:54:14 -04:00
2020-10-14 10:54:29 -04:00
2020-10-14 10:53:53 -04:00
2020-10-14 10:54:28 -04:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 16:56:41 +02:00
2020-10-19 17:54:55 -04:00
2020-10-14 10:54:26 -04:00
2020-10-14 10:54:09 -04:00
2016-03-24 16:39:15 +01:00
2016-03-24 16:39:15 +01:00
2020-10-14 10:54:26 -04:00
2020-10-14 10:53:53 -04:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:14 -04:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2019-01-23 10:46:24 +01:00
2020-10-14 10:54:13 -04:00
2019-01-07 19:35:00 +01:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:53:52 -04:00
2020-10-14 10:53:52 -04:00
2019-03-02 12:43:34 +01:00
2020-10-14 10:54:14 -04:00
2020-10-14 10:54:21 -04:00
2019-03-12 17:09:42 +01:00
2017-03-27 22:03:58 +01:00
2021-01-23 12:13:58 -05:00
2020-10-14 10:54:14 -04:00
2020-11-18 14:18:28 -05:00
2016-03-29 14:43:55 +02:00
2016-03-24 16:39:15 +01:00
2020-10-14 10:54:16 -04:00
2020-10-14 10:54:14 -04:00
2015-08-17 11:05:43 +02:00
2019-01-24 11:39:43 +01:00
2020-10-14 10:54:16 -04:00
2020-10-14 10:53:57 -04:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:24 -04:00
2019-02-18 10:26:53 +01:00
2019-02-18 10:23:15 +01:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-12-07 14:08:38 -05:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:31 -04:00
2021-01-26 09:42:16 -05:00
2020-10-14 10:54:14 -04:00
2016-12-14 14:14:28 +01:00
2020-10-14 10:54:26 -04:00
2021-03-31 11:09:42 -04:00
2021-03-03 17:57:31 -05:00
2016-09-08 13:36:31 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:09 -04:00
2020-10-14 10:54:29 -04:00
2020-12-29 11:36:16 -05:00
2020-10-14 10:54:26 -04:00
2020-10-14 10:54:13 -04:00
2019-01-22 18:20:18 +01:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:32 -04:00
2018-06-27 17:56:59 +02:00
2020-10-14 10:54:14 -04:00
2020-10-14 10:54:26 -04:00
2018-04-16 22:46:11 -05:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2021-02-01 12:16:54 -05:00
2017-06-19 08:16:42 -05:00
2020-10-14 10:54:29 -04:00
2021-03-03 17:57:33 -05:00
2019-03-27 17:08:49 +01:00
2020-10-14 10:54:14 -04:00
2020-10-14 10:54:26 -04:00
2020-10-14 10:54:22 -04:00
2020-10-14 10:54:32 -04:00
2020-10-14 10:54:14 -04:00
2021-03-03 17:57:32 -05:00
2021-01-23 12:13:59 -05:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2019-02-07 15:58:02 +01:00
2019-02-07 15:58:02 +01:00
2020-10-14 10:53:57 -04:00
2020-10-14 10:54:12 -04:00
2020-10-14 10:54:29 -04:00
2020-10-14 10:54:29 -04:00
2020-10-14 10:54:28 -04:00
2021-03-31 11:09:42 -04:00
2018-11-26 17:59:10 +01:00
2020-10-14 10:54:28 -04:00
2020-10-14 10:54:22 -04:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:10 -04:00
2020-10-14 10:54:12 -04:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2021-03-03 17:57:34 -05:00
2021-02-01 12:16:54 -05:00
2018-07-06 10:41:21 +02:00
2020-10-14 10:54:26 -04:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:29 -04:00
2020-10-14 10:54:29 -04:00
2020-10-14 10:53:55 -04:00
2020-10-14 10:53:55 -04:00
2021-02-01 12:16:53 -05:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:14 -04:00
2020-10-14 10:53:59 -04:00
2020-10-14 10:53:59 -04:00
2021-03-31 11:09:41 -04:00
2021-03-31 11:09:41 -04:00
2020-10-14 10:54:26 -04:00
2021-03-31 11:09:41 -04:00
2016-06-23 10:09:17 +02:00
2016-09-08 13:36:29 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:22 -04:00
2021-01-26 09:42:16 -05:00
2021-01-26 09:42:16 -05:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2016-06-23 10:09:17 +02:00
2020-10-14 10:54:31 -04:00
2020-10-14 10:54:30 -04:00
2016-06-23 10:09:17 +02:00
2016-03-29 14:43:55 +02:00