-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Add Windows7 support #1686
Comments
How do you expect this to happen when the Windows Store is not on Windows 7? |
Is it hardcoded to use Windows Store? (is it just an empty cli interface for Windows Store?) Or winget.exe could download the installer over https and run it in the background, without any MS login. |
The store isnt required at least to retrieve apps as msstore source isn't required. Getting the app and modifying the code to run on older versions of Windows is probably the issue more than the store part |
Well, github says it's written 86% in C++, it shouldn't be that hard to write portable code (even to compile it to 32bit, -m32), |
Related to #1008 (comment): Since WinGet includes OS dependencies (and possibly APIs) that are not available in older versions of Windows, it would likely be a hard feat to achieve since these OS dependencies (and possibly APIs) are only available for Windows 10 version 1809 and above. There are also some dependencies that have Windows 7 support stripped out from their code which will mean two things:
So, I don't think it would be worth for the engineering team to spend their engineering resources and budget to support Windows 7 for WinGet; especially when most people are on Windows 10 and above. If the community wanted to make their own fork of WinGet to bring Windows 7 support, it will need some changes to how the pre-defined source is pulled down as MSIX isn't available in Windows 7, and more. An alternative solution would be to use Chocolately or Scoop for Windows 7, or for the community to design their own solution similar to how it's done for Evergreen or Nevergreen. |
This comment is response to "http://github.com/microsoft/winget-cli/issues/1686#issuecomment-980389836": @ItzLevvie, MSIX is available for Windows 7 as "MSIXCore". Do observe "http://docs.microsoft.com/windows/msix/msix-core/msixcore" for verification of support. |
Thanks ;) I didn't know that MSIX is available for Windows 7, but there seems to be some downsides with it: https://docs.microsoft.com/en-us/windows/msix/msix-core/msixcore#considerations-of-msix-core. It looks like you can only run WinGet in Win + R instead of Command Prompt or Windows PowerShell which will be a big issue because most, if not all, people run the It also looks like WinGet must first support older versions of Windows before attempting to use MSIX Core, according to: MSIX Core enables the installation of MSIX apps on previous versions of Windows, provided that the apps are already built to work on those versions of Windows, so OS dependencies (and possibly APIs) are still an issue. |
Not sure why the MSIXCore win+R restriction, "echo %appdata%" works great on local cmd.exe. There shouldn't be many win10 dependencies in WinGet to compile it to win7, I would imagine getting windows version and paths. Could someone try to compile it to win7 and share the compiler error log to see how much work is it? What are the minimum .NET requirements for WinGet? |
This is probably related to the alias. Win+R is |
This should work in that case:
Instead last step use this script in same window: https://github.com/chocolatey-archive/chocolatey/blob/master/src/redirects/RefreshEnv.cmd |
Wasn't the goal to build it on .NET which suppose to provides abstraction? |
You can only do so much abstraction before you require a specific feature from the system. |
We will not be targeting below Windows 10 (1809). |
@Masamune3210 commented on Nov 29, 2021:
So what specific features does |
See here: |
Isn't possible to read os version/type universally, without GetPackageFamilyName ? |
OK, it's the API for "Packaging, deployment, and query of Windows Store apps". |
Windows 7 does not support UWP/SparsePackage so all they would have to do is use |
That would mean that "They" would have to cater the tool to work on an OS that "They" haven't supported for over three years, and currently has a global market share of 3.6% (according to gs.statcounter.com) and declining. If your hardware can run 7, it can run 10. Else, fork it and you can do it. |
Yes, just like the tool workder before v0.2.2941 Preview circa Oct 29, 2020:
To make comparison more fair, it will need to count only installations that were running
I take this an off-topic at the very least. With the same success I could say that anyone running w10 can run Debian or Ubuntu instead and replace I stress that it's quite offensive to say. The UX is entirely different (both 7-vs-10 and 10-vs-Ubuntu).
Sure, that's why asked you to summarize / if I got the needed features missing from w7 right from the comment (and since you pointed me to it). |
The winget.ps1 script is currently not working. Microsoft is still doing work on this front so I'm going to wait until the dust settles here. If you need non-interactive installation of WinGet now then see here: https://github.com/asheroto/winget-installer/blob/master/winget-install.ps1 WinGet GitHub issues to track: microsoft/winget-cli#401 microsoft/winget-cli#2434 Also, perhaps MSIX Core so we can get Windows 7 support: https://learn.microsoft.com/en-us/windows/msix/msix-core/msixcore However, that's only MSIX, MS isn't targeting WinGet for below Windows 10 1809 (but maybe someone will build a small compatability layer): microsoft/winget-cli#1686 (comment)
I mean, the issue is closed and the statement has been made. 7 has been out of support for quite a while now, is it really surprising to see that this isn't going to ever support it when even open-source projects with communal effort behind it is also doing the same thing? |
Partly yes. The EOL OSes usually stops being moving targets (their APIs don't change anymore). Which means the code to support them needs little changes (if any). If the code runs on 7, it runs. Things will not change here anymore. And statements about 7 being insecure has nothing to do with the real expectations. The only exception I see here could be network related: the SSL handling. I don't know how the SSL handshakes are handled in
That's a project (or even mindset) specific thing. Eg last two coming to my mind right now:
So it depends. |
They won't change, but the application will. It was evidently left as an "if it works, great if not, well we don't support it anyway" state.
Of course they can, but if the end-user wants to stick to their EOL OS for whatever reason, they can't be shocked that people are going to drop support for it. You linking to other projects which do support them is irrelevant. |
Yes, but the logic that only works on 7 would not. If yes, for what reasons?
We are not shocked. At least me. We are demanding.
And earlier you wrote:
Do you think your last statement could be applied to that quote too? |
Compilers have a support list, as well as other things like code signing. Both have been removing support for older OS's. Most people do not have the time, patience, and, frankly, the inclination, to support multiple codebases just because some people want to be stubborn and use a OS that lost general support years ago, and has been EOL for almost 4 months now. |
Sometimes, it's not about being stubborn. I know of a few cases with highly regulated industries or special purpose hardware using older OSs can't easily be updated. If there is enough of a business case to invest in "legacy" technologies vs. the forklift update scenario, that's what needs to be done. Unfortunately, we aren't in a position with enough business justification to apply our limited resources to support older versions of the OS, but there might be value in forking the project and seeing what can be done to muscle through a problem by a determined community. |
@denelon Would you accept if a third party backport is offered in a pull request? |
I believe this could be a reasonable option. The real concern here is the statement on support, and the risk of future changes we make potentially breaking an older OS that we don't test or certify. Any SKU of Windows that we "support" would be a limitation of what we're able to maintain. I'll need to discuss this with a few other internal folks to determine if it makes sense. |
Description of the new feature / enhancement
Not everyone is going to upgrade to Windows 10, think older HW/third countries/industrial apps.
Admins still have to support these, even after MS dropped support.
Proposed technical implementation details
No response
The text was updated successfully, but these errors were encountered: