This is an automated email from the ASF dual-hosted git repository.

leginee pushed a commit to branch bazel-migration
in repository https://gitbox.apache.org/repos/asf/openoffice.git


The following commit(s) were added to refs/heads/bazel-migration by this push:
     new dce1d7e94e fixed a missing manifest file in release (non debug mode)
dce1d7e94e is described below

commit dce1d7e94e9365ea0e1218345d38b5544075b783
Author: Peter Kovacs <[email protected]>
AuthorDate: Fri Jun 5 10:17:16 2026 +0200

    fixed a missing manifest file in release (non debug mode)
---
 main/staging/BUILD.bazel | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/main/staging/BUILD.bazel b/main/staging/BUILD.bazel
index c45d93ca9a..7ff1692364 100644
--- a/main/staging/BUILD.bazel
+++ b/main/staging/BUILD.bazel
@@ -30,6 +30,15 @@ filegroup(
     ],
 )
 
+# Release application manifest for soffice.exe — declares the 
Microsoft.VC90.CRT
+# dependency so Windows consults SxS/publisher-policy and loads MSVCR90.dll 
from
+# WinSxS with an activation context (no R6034).  Wrapped in a filegroup because
+# collect_outputs.deps does not accept raw source files.
+filegroup(
+    name = "soffice_app_manifest",
+    srcs = ["//main/desktop:util/soffice.exe.manifest"],
+)
+
 # ── Flat program/ files (DLLs, EXEs, RDBs, ZIPs, .py scripts, .ini) ─────────
 collect_outputs(
     name = "all_files",
@@ -319,12 +328,28 @@ collect_outputs(
         # activating Microsoft.VC90.DebugCRT as a private SxS assembly.
         # Set MSVC_DEBUG_CRT_PATH in user.bazelrc if VS2008 is not at the
         # default path (see //build:vs_paths.bzl).
-        # Release builds use MSVCR90.dll which is already in System32.
         "//build:dbg_build": [
             "@msvc_debug_crt//:dlls",
             ":soffice_exe_manifest",
         ],
-        "//conditions:default": [],
+        # Release (/MD): do NOT bundle app-local CRT DLLs.  Instead stage the
+        # application manifest so soffice.exe declares a Microsoft.VC90.CRT
+        # 9.0.30729.1 dependency.  That manifest is what makes Windows consult
+        # SxS: the installed VC90 publisher policy
+        # (x86_policy.9.0.microsoft.vc90.crt_..._9.0.30729.9635) redirects
+        # 9.0.30729.1 → 9.0.30729.9635, which is present in WinSxS, so 
MSVCR90.dll
+        # loads WITH an activation context (no R6034).
+        # Without the manifest the loader never consults SxS/policy and 
searches
+        # MSVCR90.dll only on the plain DLL path (program\, System32, PATH) — 
it is
+        # in none of those, so the process dies before any window ("no 
window").
+        # The :soffice cc_binary links /MANIFEST:NO, so this external 
.manifest is
+        # the only manifest soffice.exe gets.  (A redistributable build for
+        # machines lacking the VC9 redist would additionally ship the CRT as a
+        # program\Microsoft.VC90.CRT\ subfolder private assembly + hash-free
+        # manifest; on a dev box with the redist installed WinSxS covers it.)
+        "//conditions:default": [
+            ":soffice_app_manifest",
+        ],
     }),
 )
 

Reply via email to