[RFC] Removing legacy support
Goal
I believe all support for legacy operationg systems should be removed. I believe we shouldn't spend time supporting/developing outdated Windows software.
Motivation
As of January 14, 2020, PCs running Windows 7 no longer receive security updates and in January of 2023 security updates for Windows 8.1 will stop (Windows 8 support has ended already). This means that anyone running these operating systems is at risk of having their device compromised. Windows 7, 8 and 10's hardware requirements are essentially the same, so there's very little reason not to upgrade to Windows 10.
The web and technologies keep changing but these operating systems will not get any updates to stay functional, this means that more and more work will be needed on our end to keep them functional.
Specification
- Don't add any new Windows 7 releases.
- Don't add any new Windows 7 bypasses/fixes to the codebase.
- Suggest any users in the Discord to update their device to Windows 10, 8.1 or Linux.
Drawbacks
- Anyone unwilling or unable to upgrade will need to compile their own version of the software and provide any fixes themselves.
Unresolved Questions
Alternatives Considered
- Instead of only suggesting users in the Discord to update their device to Windows 10 we could also point them at the now outdated executables on the Github.
- We could also choose to remove all outdated executables. (Although this seems unneeded in my opinion)
This suggestion is unique
- [X] I have searched the issue tracker and did not find an issue describing my suggestion, especially not one that has been rejected.
You may use the editor below to elaborate further.
This is my first RFC, please be nice 😄
There is no reason not to continue shipping the legacy windows build because we would already have to keep compat with qt 5 anyways
There is no reason not to continue shipping the legacy windows build because we would already have to keep compat with qt 5 anyways
Supporting Qt5 and Windows 7/8 doesn't seem like the same thing to me though. See for example #134 that, as far as I'm aware has nothing to do with Qt5.
I don't see why we wouldn't want to support platforms that we can support with some changes anyways. Also, 8.1 is not eol
about 7, we will have to drop it soon because msys2 (which we use for building on windows) will drop it soon
PolyMC v1.3.2 and latest MultiMC releases work just fine on legacy systems. I understand much of the original reason for polymc was to add better packaging to multimc, where it used to be a pain to use on certain systems, this feels like a step backwards making prism launcher be more restrictive than multimc.
Realistically telling anyone who is running windows 7 to update their system to use prism is a terrible idea, they are not going to change their OS to use your launcher, chances are they'll just use multimc, vanilla launcher, or any of the other launchers which all run on 7.
Also, 8.1 is not eol
Correct, as mentioned in the RFC support for 8.1 will be dropped in January. I will remove the mentions to Windows 8 in the RFC. I figured since it was ending soon, it might be good to at least mention it.
PolyMC v1.3.2 and latest MultiMC releases work just fine on legacy systems. I understand much of the original reason for polymc was to add better packaging to multimc, where it used to be a pain to use on certain systems, this feels like a step backwards making prism launcher be more restrictive than multimc.
The intention isn't to not package for as many operating systems as possible or to restrict anyone from doing so, but not supporting an operating system for which support has already been dropped by its own creator.
about 7, we will have to drop it soon because msys2 (which we use for building on windows) will drop it soon
Fair enough, that makes this kind of unneeded then. This is the kind of stuff I was mostly worrying about when I mentioned the web and technologies kept changing. I was just worried we'd keep using outdated technology to keep it alive.
Should I close this as completed or not planned or keep it open for now?
If it can be built seperately automatically with GitHub Actions (with an older version of msys2), then I do not see the harm in making a seperate build for Windows 7 users, if it is automated and does not have to be maintained.
Personally, I use Windows 7 on my laptop as it's low end and slow. I am aware of the risks, but Windows 7 is still significantly faster than new versions of Windows due to:
- Ability to disable DWM (compositing)
- Less background CPU usage (less bloat running in the background)
- Less mitigations and features for power saving
I can use Linux, but there is worse compatibility.
If it can be built seperately automatically with GitHub Actions (with an older version of msys2), then I do not see the harm in making a seperate build for Windows 7 users, if it is automated and does not have to be maintained.
More and more software and technologies will stop working with Windows 7 over time. Right now it's certificates and msys2, tomorrow it will be something else.
Is it possible to keep supporting it? Possibly, but it may lead to it becoming a drag on support (and force them to use insecure systems to test things), require workarounds and could potentially lead to accidentally introducing security issues because of using old packages.
I know these are hypothetical situations and I understand the drawbacks, but Windows 7 hasn't been getting any updates, security fixes or otherwise for almost 3 years now.
Using outdated software is a significant security risk that I don't believe we should expose users, support or developers to. While it is their own choice in the end, I believe it would be better to drop support in order to mitigate the situation.
Windows 7/POSReady 7/Server 2008 R2 still receives support and updates via paid ESUs (in which there is evidence that there may be 3 more years of them). Saying they are completely out of support is not accurate. Additionally Windows 8.1/Embedded 8.1/Server 2012 R2 will also have paid ESU updates, which means they are technically not going EOL in January.
Either way I understand the reasoning for needing to remove Windows 7 support, especially since MSYS2 is dropping support for it.
There is no need to remove Windows 7 support if it concludes to an automated build. And there also is no need to do excplicit testing for it.
Not exposing users to security risks is not the motivation those users would appreciate. If someone uses Windows 7, they know what they're doing, leave them alone. If they see that you intentionally dropped support for their system the only reason being "it's incesure and you should update now", they won't stick around.
It doesn't take much to use an older version of msys2 for legacy building and just leave it at this until it actually breaks and nobody wants to isolate and fix the issue.
Windows 7, 8 and 10's hardware requirements are essentially the same, so there's very little reason not to upgrade to Windows 10.
windows 10 costs money.
Windows 7, 8 and 10's hardware requirements are essentially the same, so there's very little reason not to upgrade to Windows 10.
windows 10 costs money.
Updating is free, tbh
piracy exists tbh
Updating is free, tbh
this is incorrect for versions of windows prior to 10.
What do you mean? Upgrading from 7 or 8.1 to 10 is free and from 10 to 11 is free too
not anymore, the offer was dropped.
that's false, it's still there. Officially it "was dropped" but it's actually still there.
just try to update to windows 10 from 7 and 8.1 and see that it'll activate it because of the old license, lol
Right now supporting legacy platforms is free. We might drop support when it gets too annoying though.
Small update: on the latest version(8.0) we droped support for windows 7. For more info: https://github.com/PrismLauncher/PrismLauncher/pull/1684