swiftlang / swift-installer-scripts

Apache License 2.0
72 stars 38 forks source link

Windows ARM64 installer.exe only installs Swift under AppData for the current user #300

Open egorzhdan opened 5 months ago

egorzhdan commented 5 months ago

Description

The new ARM64 installer doesn't provide an easy way to install Swift under Program Files. Instead, it silently installs Swift under the current user's home directory. Most Windows software that I worked with installed itself under Program Files by default. Should this also be the default for Swift?

Reproduction

Try out an installer.exe artifact from https://ci-external.swift.org/job/swift-main-windows-toolchain-arm64/

Expected behavior

Clicking "Install" without customizing any settings would install Swift for all users of the machine.

Environment

ARM64 Windows 11

Additional information

No response

egorzhdan commented 5 months ago

cc @compnerd @shahmishal

compnerd commented 5 months ago

This is intentional. If we are installing to %ProgramFiles%, it would require elevated privileges. Doing a dual install setup is far more complicated (where you can select between the two). Most software these days is distributed as a user-centric installer (e.g. VSCode has a user installer and a system installer).

egorzhdan commented 5 months ago

That makes sense! Do you think it would be reasonable to provide a checkbox like "install system-wide" if the installer was invoked with admin privileges, or is that not something that Windows installers do conventionally?

compnerd commented 5 months ago

That is possible to do but requires a fair amount of tweaking is my understanding. Patches to enable that are welcome though :)

tristanlabelle commented 5 months ago

@egorzhdan , is there a scenario that installing machine-wide enables? We worked with the creators of the WiX installer technologies and they told us that supporting both was complex, so we chose per-user as it requires fewer privileges.

This issue would also be best for apple/swift-installer-scripts

lxbndr commented 5 months ago

A separate system-wide installer would be nice. I was going to set up a PC for my team to play with Swift on Windows - one installation, multiple users.