Skip to content

Stop supporting Windows XP and Windows Server 2003 from OpenSSL 3.1 #22

@mattcaswell

Description

@mattcaswell

Background:

Our platform policy makes no reference to old versions of Windows. The primary Windows platforms are listed as "VC-WIN64A" and "mingw64" both on Windows 10. There are no community supported Windows platforms. There are a number of Windows platforms in the "unadopted" list - but none of them specify a specific Windows version that they apply to.

In the code we define the macro _WIN32_WINNT to the value 0x0501:

https://github.com/openssl/openssl/blob/4c149cf9f6a2ba665d74dbd4cf44f080816c900b/include/internal/e_os.h#L85-L100

According to the Microsoft documentation this corresponds to Windows XP:

https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170

This means that (by default) we are unable to use functions introduced later than that in the code. We do have some conditionally compiled code which checks the value of _WIN32_WINNT and, if it is sufficient high, uses more recent functions. It is possible to override the default value at Configure time (e.g. perl Configure -D_WIN32_WINNT=...) - but this possibility does not seem to be documented and it seems unlikely that many people do this.

PR openssl/openssl#18270 proposes updating the default value of _WIN32_WINNT to 0x0600 which would exclude Windows XP and Windows Server 2003 users. Microsoft ended support for Windows XP in April 2014 and for Windows Server 2003 in July 2015.

According to this tweet, 5.6% of Windows curl users say they use it on Windows XP:
https://twitter.com/bagder/status/1534465987269083136

Proposal:

This issue is proposing the following vote text in order that PR openssl/openssl#18270 may proceed:

"We will no longer support Windows XP or Windows Server 2003 from OpenSSL 3.1"

(Note: I am not actually calling this vote yet - just gathering feedback).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions