Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

symlink requires admin rights on Windows #40

Open
ghost opened this issue May 10, 2021 · 1 comment
Open

symlink requires admin rights on Windows #40

ghost opened this issue May 10, 2021 · 1 comment

Comments

@ghost
Copy link

ghost commented May 10, 2021

The repo contains a symlink (docs/index.rst -> ../README.rst), which has the effect that unpacking funcsigs on Windows requires admin rights.

Admin rights are required due to Windows not generally allowing (temporarily) dangling symlinks, as explained e.g. in this thread.

The reason why this matters is that distributing funcsigs as a packed bundle is common for systems depending on funcsigs, such as GoogleCloudPlatform/gsutil.
gsutil in turn is used in projects like Chrome and Dart.
Example issue: dart-lang/sdk#41729

I see a few ways to address this issue:

  1. Delete docs/index.rst if it's not strictly needed and just points to README.rst anyway.
  2. Replace the symlink at docs/index.rst with a file containing a short text message, telling the user to look at README.rst instead.
  3. Copy README.rst to docs/index.rst.
@ghost
Copy link
Author

ghost commented May 10, 2021

For reference, an easy way to reproduce this issue on Windows is to:

  1. Create a file gsutil.ensure containing infra/3pp/tools/gsutil version:4.58.
  2. Run cipd ensure -ensure-file .\gsutil.ensure -root .\root\ -log-level=debug

This will, due to the aforementioned Windows issue, result in:

[P9304 13:03:09.974 client.go:1718 E] Failed to install infra/3pp/tools/gsutil:RnC6CQxIUPlNl_ShgZEBm66cw-sIqLQNpBMQHwqjiaAC - symlink ..\README.rst C:\src\gsutil\root\.cipd\pkgs\0\0Kqw5QVur-oO\third_party\funcsigs\docs\IxsC5INcpEXo: A required privilege is not held by the client. (and 1 other error) 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

0 participants