Winget-cli: Require EULA/TOS acceptance before download starts.

Created on 19 May 2020  路  5Comments  路  Source: microsoft/winget-cli

Description of the new feature/enhancement

Some packages require a EULA to be accepted before commencing the download of the product. But I have noticed no such functionality is present. There should be an option to provide a EULA/TOS source url or file that will be presented before the download of the file begins that will be accepted by the end user.

Proposed technical implementation details (optional)

My thoughts would be that we can have something like a "EULAUrl" or "TermsURL" that will point to the products EULA or Terms, that will be shown in some kind of pager inside the terminal that will allow accepting or declining. If you accept, download commences and process continues as normal. If declined, just exit.

Also maybe a flag to auto-accept the EULA for purposes of automation.

Issue-Feature

Most helpful comment

It's kind of what I meant with my last sentence of having a flag for automation.

With proper messaging like krism suggested, it could work well enough. Similar to how Oracle JDK works on Linux even. You have to accept licenses to use it but has a flag for automation to auto accept.

This is mostly to distribute software that requires it, its optional and doesn't need to be used for everything.

All 5 comments

Wouldn't this be problematic when running winget as part of a script? You're not guaranteed to have an interactive shell

It would only be problematic if the package you are trying to script against uses the flag, in which case you probably were not scripting that before this anyway no? since it would imply that the package required users to agree to the EULA/Terms before download anyway

I might have accepted the EULA before creating my script, but if I give my script to a friend who has not accepted the EULA, then that might be a problem 馃槙 .

Another solution might be to add a --accept-licenses flag which auto-accepts the EULAs and prints something like By using the --accept-licenses flag, you agree to the following terms and conditions followed by links to the relevant EULAs. This isn't perfect but would solve the interactivity-in-non-interactive-use-cases issue.

It's kind of what I meant with my last sentence of having a flag for automation.

With proper messaging like krism suggested, it could work well enough. Similar to how Oracle JDK works on Linux even. You have to accept licenses to use it but has a flag for automation to auto accept.

This is mostly to distribute software that requires it, its optional and doesn't need to be used for everything.

This is something we have been discussing internally. I do not believe I managed to create an issue for it already. I'm interested in the discussion here. So far it's similar to early thoughts the team had.

If there were a flag in the manifest, the user experience could be improved either with some form of "strict" mechanism requiring user interaction, and / or prioritizing the EULA prompts for download on package set (<- current conceptual name for a collection of packages) initiation. If one were to specify the entire set needed to be 100% unattended, we could fail on manifests that have a EULA required for download.

We have observed EULA prompts prior to download, at install time, and on first launch. Our goals are not to prescribe how software publishers handle their EULAs. We want to focus on providing the best user experience with the client given the various options.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

denelon picture denelon  路  4Comments

jessehouwing picture jessehouwing  路  5Comments

TomBrien picture TomBrien  路  4Comments

brunovieira97 picture brunovieira97  路  3Comments

sob picture sob  路  5Comments