]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-46744: Move Windows ARM64 installation directory to correct ProgramFiles (GH...
authorSteve Dower <steve.dower@python.org>
Fri, 4 Mar 2022 00:50:42 +0000 (00:50 +0000)
committerGitHub <noreply@github.com>
Fri, 4 Mar 2022 00:50:42 +0000 (00:50 +0000)
Misc/NEWS.d/next/Windows/2022-03-04-00-24-55.bpo-46744.tneWFr.rst [new file with mode: 0644]
Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
Tools/msi/bundle/bundle.wxs

diff --git a/Misc/NEWS.d/next/Windows/2022-03-04-00-24-55.bpo-46744.tneWFr.rst b/Misc/NEWS.d/next/Windows/2022-03-04-00-24-55.bpo-46744.tneWFr.rst
new file mode 100644 (file)
index 0000000..25f9e7a
--- /dev/null
@@ -0,0 +1,3 @@
+The default all users install directory for ARM64 is now under the native
+``Program Files`` folder, rather than ``Program Files (Arm)`` which is
+intended for ARM (32-bit) files.
index 226416f3545850460aa5a9500d39f5291e19cbcb..fdc2a21d83d5f3dc411aa83426f46506143d3589 100644 (file)
@@ -1501,9 +1501,6 @@ private:
         hr = UpdateUIStrings(_command.action);
         BalExitOnFailure(hr, "Failed to load UI strings.");
 
-        hr = FindProgramFilesArm();
-        BalExitOnFailure(hr, "Fatal error locating Program Files (Arm)");
-
         GetBundleFileVersion();
         // don't fail if we couldn't get the version info; best-effort only
     LExit:
@@ -2184,37 +2181,6 @@ private:
         return hr;
     }
 
-    HRESULT FindProgramFilesArm() {
-        wchar_t buffer[MAX_PATH + 1];
-        DWORD bufferLen = MAX_PATH;
-        LSTATUS res = RegGetValueW(
-            HKEY_LOCAL_MACHINE,
-            L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion",
-            L"ProgramFilesDir (Arm)",
-            RRF_RT_REG_SZ | RRF_RT_REG_EXPAND_SZ | RRF_SUBKEY_WOW6464KEY,
-            NULL,
-            buffer,
-            &bufferLen
-        );
-        if (res != ERROR_SUCCESS) {
-            // ProgramFilesArmFolder will default to ProgramFilesFolder. We only report
-            // an error if the value existed, as it will simply just be absent on non-ARM
-            // devices.
-            if (res != ERROR_FILE_NOT_FOUND) {
-                BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "Failed to query 'ProgramFilesDir (Arm)': error code %d", res);
-            }
-            return S_OK;
-        }
-        if (buffer[0]) {
-            wchar_t *p = &buffer[bufferLen / sizeof(wchar_t) - 1];
-            while (*p == L'\\' || *p == L'\0') { p -= 1; }
-            *++p = L'\\';
-            *++p = L'\0';
-            _engine->SetVariableString(L"ProgramFilesArmFolder", buffer);
-        }
-        return S_OK;
-    }
-
     //
     // OnPlan - plan the detected changes.
     //
index 340c72acf408be6f5e95f9c6c303a8f40661e687..0683f87cb05863d20c10ba1b5ecddbe20797e143 100644 (file)
@@ -26,9 +26,6 @@
     <Variable Name="WinVer" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />
     <Variable Name="WinVerNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />
 
-    <!-- A more accurate value may be calculated by the bootstrapper -->
-    <Variable Name="ProgramFilesArmFolder" Value="[ProgramFilesFolder]" bal:Overridable="yes" />
-
     <Variable Name="InstallAllUsers" Value="0" bal:Overridable="yes" />
     <?if "$(var.PyTestExt)"="" ?>
     <Variable Name="InstallLauncherAllUsers" Value="1" bal:Overridable="yes" />
@@ -40,7 +37,7 @@
     <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFiles64Folder]Python[WinVerNoDot]" bal:Overridable="yes" />
     <Variable Name="TargetPlatform" Value="x64" />
     <?elseif $(var.Platform)~="ARM64" ?>
-    <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFilesArmFolder]Python[WinVerNoDot]" bal:Overridable="yes" />
+    <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFiles64Folder]Python[WinVerNoDot]" bal:Overridable="yes" />
     <Variable Name="TargetPlatform" Value="ARM64" />
     <?else ?>
     <Variable Name="DefaultAllUsersTargetDir" Value="[ProgramFilesFolder]Python[WinVerNoDot]" bal:Overridable="yes" />