https://github.com/python/cpython/commit/fac5e7aa171f8547fcb56f090e718c15ffd79d0b
commit: fac5e7aa171f8547fcb56f090e718c15ffd79d0b
branch: main
author: Steve Dower <[email protected]>
committer: zooba <[email protected]>
date: 2024-09-30T18:50:46+01:00
summary:
gh-124487: Require at least Windows 10 SDK and update install check (GH-124672)
files:
A Misc/NEWS.d/next/Windows/2024-09-27-15-07-30.gh-issue-124487.7LrwHC.rst
M PC/pyconfig.h.in
M Tools/msi/bundle/Default.wxl
M Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
diff --git
a/Misc/NEWS.d/next/Windows/2024-09-27-15-07-30.gh-issue-124487.7LrwHC.rst
b/Misc/NEWS.d/next/Windows/2024-09-27-15-07-30.gh-issue-124487.7LrwHC.rst
new file mode 100644
index 00000000000000..93fb68d28c702e
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2024-09-27-15-07-30.gh-issue-124487.7LrwHC.rst
@@ -0,0 +1 @@
+Increases Windows required OS and API level to Windows 10.
diff --git a/PC/pyconfig.h.in b/PC/pyconfig.h.in
index 503f3193e2803e..010f5fe5646630 100644
--- a/PC/pyconfig.h.in
+++ b/PC/pyconfig.h.in
@@ -169,9 +169,9 @@ WIN32 is still required for the locale module.
#endif /* MS_WIN64 */
/* set the version macros for the windows headers */
-/* Python 3.9+ requires Windows 8 or greater */
-#define Py_WINVER 0x0602 /* _WIN32_WINNT_WIN8 */
-#define Py_NTDDI NTDDI_WIN8
+/* Python 3.13+ requires Windows 10 or greater */
+#define Py_WINVER 0x0A00 /* _WIN32_WINNT_WIN10 */
+#define Py_NTDDI NTDDI_WIN10
/* We only set these values when building Python - we don't want to force
these values on extensions, as that will affect the prototypes and
diff --git a/Tools/msi/bundle/Default.wxl b/Tools/msi/bundle/Default.wxl
index 0014204e89d1bb..49f681d3e11d2e 100644
--- a/Tools/msi/bundle/Default.wxl
+++ b/Tools/msi/bundle/Default.wxl
@@ -123,7 +123,7 @@ Feel free to post at <a
href="https://discuss.python.org/c/users/7">discus
<String Id="FailureRestartText">You must restart your computer to complete
the rollback of the software.</String>
<String Id="FailureRestartButton">&Restart</String>
<String Id="FailureExistingInstall">Unable to install [WixBundleName] due to
an existing install. Use Programs and Features to modify, repair or remove
[WixBundleName].</String>
- <String Id="FailureOldOS">At least Windows 8.1 or Windows Server 2012 are
required to install [WixBundleName]
+ <String Id="FailureOldOS">At least Windows 10 or Windows Server 2016 are
required to install [WixBundleName]
Visit <a href="https://www.python.org/downloads/">python.org</a>
to download an earlier version of Python.</String>
<String Id="SuccessMaxPathButton">Disable path length limit</String>
diff --git a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
index 094ddba4f1ad8f..6f50200dc7b251 100644
--- a/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
+++ b/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
@@ -3086,11 +3086,13 @@ class PythonBootstrapperApplication : public
CBalBaseBootstrapperApplication {
LOC_STRING *pLocString = nullptr;
if (IsWindowsServer()) {
- if (IsWindowsVersionOrGreater(6, 2, 0)) {
- BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Target OS is Windows
Server 2012 or later");
+ if (IsWindowsVersionOrGreater(10, 0, 0)) {
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Target OS is Windows
Server 2016 or later");
return;
+ } else if (IsWindowsVersionOrGreater(6, 2, 0)) {
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Detected Windows Server
2012");
} else if (IsWindowsVersionOrGreater(6, 1, 1)) {
- BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Detected Windows
Server 2008 R2");
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Detected Windows Server
2008 R2");
} else if (IsWindowsVersionOrGreater(6, 1, 0)) {
BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Detected Windows Server
2008 R2");
} else if (IsWindowsVersionOrGreater(6, 0, 0)) {
@@ -3104,8 +3106,7 @@ class PythonBootstrapperApplication : public
CBalBaseBootstrapperApplication {
BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Target OS is Windows
10 or later");
return;
} else if (IsWindows8Point1OrGreater()) {
- BalLog(BOOTSTRAPPER_LOG_LEVEL_STANDARD, "Target OS is Windows
8.1");
- return;
+ BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Detected Windows 8.1");
} else if (IsWindows8OrGreater()) {
BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Detected Windows 8");
} else if (IsWindows7OrGreater()) {
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]