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

jimjag pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openoffice-devtools.git


The following commit(s) were added to refs/heads/main by this push:
     new b7ea1b6  macosx-remote-sign.sh: keep Contents/ directories in place 
with --legacy-layout
b7ea1b6 is described below

commit b7ea1b624c754bd9d15b52d19e0007e4a95dffda
Author: Jim Jagielski <[email protected]>
AuthorDate: Fri Sep 25 17:16:47 2026 -0400

    macosx-remote-sign.sh: keep Contents/ directories in place with 
--legacy-layout
    
    A symlinked presets/ makes the first-run profile copy fail, so 4.1.x
    refused to start on a Mac without an existing user profile.
---
 release-scripts/macosx-remote-sign.sh            | 6 ++++--
 release-scripts/tests/test_macosx_remote_sign.py | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/release-scripts/macosx-remote-sign.sh 
b/release-scripts/macosx-remote-sign.sh
index 39a5a9e..af1fdd9 100755
--- a/release-scripts/macosx-remote-sign.sh
+++ b/release-scripts/macosx-remote-sign.sh
@@ -42,7 +42,7 @@
 #                        doing anything else (a bare digest or a full
 #                        "shasum -a 256" checksum line both work)
 #       --legacy-layout  first move non-code out of Contents/MacOS and loose
-#                        entries out of Contents/ into Contents/Resources,
+#                        files out of Contents/ into Contents/Resources,
 #                        leaving symlinks, and drop dangling symlinks: 4.1.x
 #                        bundles cannot be sealed otherwise
 #   -h, --help
@@ -226,7 +226,9 @@ relayout_legacy_app() {
        done < <(non_code_in_macos "$app")
        while IFS= read -r -d '' e; do
                n="${e##*/}"
-               [ ! -L "$e" ] || continue
+               # codesign seals directories here; only loose files break it. A
+               # symlinked presets/ makes the first-run profile copy fail 
(E_ISDIR).
+               [ ! -L "$e" ] && [ ! -d "$e" ] || continue
                case "$n" in
                        
Info.plist|PkgInfo|MacOS|Resources|Frameworks|PlugIns|Library|SharedSupport|_CodeSignature)
 continue ;;
                esac
diff --git a/release-scripts/tests/test_macosx_remote_sign.py 
b/release-scripts/tests/test_macosx_remote_sign.py
index da682ef..e7e193d 100644
--- a/release-scripts/tests/test_macosx_remote_sign.py
+++ b/release-scripts/tests/test_macosx_remote_sign.py
@@ -457,6 +457,8 @@ def test_legacy_layout_moves_non_code_out_of_macos(signer, 
workdir):
         for kept in ("soffice", "libcode.dylib"):
             assert (macos / kept).is_file() and not (macos / 
kept).is_symlink(), kept
         assert os.readlink(contents / "NOTICE") == 
"Resources/ooo-contents/NOTICE"
+        # A symlinked presets dir breaks the first-run profile copy (E_ISDIR).
+        assert (contents / "share").is_dir() and not (contents / 
"share").is_symlink()
         assert (contents / "share" / "x.xcd").read_text() == "share\n"
         assert os.readlink(contents / "program") == "MacOS"
         for kept in ("Info.plist", "Library", "Resources"):

Reply via email to