Feature #20563
closedDrop support for old Windows
Description
This is the table of APIs that we are calling dynamically, and the available Windows versions.
DLL | API | Client | Server |
---|---|---|---|
iphlpapi | ConvertInterfaceGuidToLuid | Vista | 2008 |
iphlpapi | ConvertInterfaceLuidToNameA | Vista | 2008 |
kernel32 | CreateSymbolicLinkW | Vista | 2008 |
kernel32 | GetFileInformationByHandleEx | Vista | 2008 |
kernel32 | GetFinalPathNameByHandleW | Vista | 2008 |
kernel32 | SetFileInformationByHandle | Vista | 2008 |
shell32 | SHGetPathFromIDListEx | Vista | 2008 |
ws2_32 | inet_ntop | Vista | 2008 |
ws2_32 | inet_pton | Vista | 2008 |
kernel32 | GetSystemTimePreciseAsFileTime | 8 | 2012 |
kernel32 | SetThreadDescription | 10 | 2016 |
However, already random.c directly uses BCryptGenRandom
that is available since Windows Vista/Server 2008.
So I propose explicitly dropping support for Windows older than Vista/2008 8/Server 2012.
https://github.com/ruby/ruby/pull/11279
Update: added iphlpapi APIs.
Updated by jeremyevans0 (Jeremy Evans) 5 months ago
- Tracker changed from Bug to Feature
- Backport deleted (
3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN)
Updated by hsbt (Hiroshi SHIBATA) 4 months ago
- Status changed from Assigned to Closed
@usa (Usaku NAKAMURA) said "Windows Server 2016 is already EOL, we can drop them".
I also agreed to drop Windows Server 2008, 2012 and 2016
Updated by jeremyevans0 (Jeremy Evans) 4 months ago
hsbt (Hiroshi SHIBATA) wrote in #note-2:
@usa (Usaku NAKAMURA) said "Windows Server 2016 is already EOL, we can drop them".
I also agreed to drop Windows Server 2008, 2012 and 2016
Windows Server 2016 is not yet EOL, the EOL date is January 12, 2027: https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2016
Updated by nobu (Nobuyoshi Nakada) 4 months ago
It seems that the import library in VisualStudio 2015 is missing the symbol that was introduced in Windows Server 2016.
win32.obj : error LNK2019: unresolved external symbol __imp_SetThreadDescription referenced in function rb_w32_set_thread_description
miniruby.exe : fatal error LNK1120: 1 unresolved externals
Updated by nobu (Nobuyoshi Nakada) 4 months ago
jeremyevans0 (Jeremy Evans) wrote in #note-3:
Windows Server 2016 is not yet EOL, the EOL date is January 12, 2027: https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2016
It looks like "Extended Security Update" of Windows Server 2012 won't be EOL until October 13, 2026 at least either.
https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2012#releases
"Extended Security Update" of Windows Server 2008 appears to have reached EOL this year.
https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2008#releases
Updated by nobu (Nobuyoshi Nakada) 4 months ago
- Status changed from Closed to Open
Updated by hsbt (Hiroshi SHIBATA) 4 months ago
Thanks @jeremyevans0 (Jeremy Evans) , we can drop Windows Server 2008 and 2012 at least.
FYI: There is no CI and development environment of Windows Server 2016 today for us. GitHub Actions has only Windows 2019 and 2022 and I only have Windows 11.
Updated by nobu (Nobuyoshi Nakada) 4 months ago
- Status changed from Open to Closed
Applied in changeset git|7ef8051cbbb7194a8899a3966130af2bc09fc896.
[Feature #20563] Drop support for Windows older than Vista/2008
Directly call APIs available on Windows Vista/Server 2008 and later.