From 03ddaacda7ca04656dd32bfbad56121cf4108dc7 Mon Sep 17 00:00:00 2001 From: Harald Nordgren Date: Tue, 27 Oct 2026 08:32:15 +0000 Subject: [PATCH 1/2] ci: drop quarantine removal for macos perforce binaries The xattr -d call that strips com.apple.quarantine from the macOS perforce binaries has been doing nothing for years, and can simply go. 5ed9fc3fc8 (ci: prevent `perforce` from being quarantined, 2020-02-27) added that call to stop p4d -V from hanging on a GUI confirmation dialog that never comes on a CI box, back when perforce was installed via Homebrew's --no-quarantine cask flag. When 49af448197 (ci: reintroduce prevention from perforce being quarantined in macOS, 2022-05-12) replaced that with a plain wget and tar download, it kept the xattr -d call as a precaution, while noting that it already does nothing on GitHub Actions. A file downloaded with wget never gets com.apple.quarantine set in the first place, only Safari, Finder, and AirDrop apply that attribute through the LaunchServices quarantine API. The same holds on GitLab CI's macOS runners, so the call has been a silent no-op everywhere since 2022. Signed-off-by: Harald Nordgren Signed-off-by: Junio C Hamano --- ci/install-dependencies.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index d57dce5663..203e8401cf 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -122,7 +122,6 @@ macos-*) mkdir -p "$CUSTOM_PATH" wget -q "$P4WHENCE/bin.macosx12arm64/helix-core-server.tgz" && tar -xf helix-core-server.tgz -C "$CUSTOM_PATH" p4 p4d && - sudo xattr -d com.apple.quarantine "$CUSTOM_PATH/p4" "$CUSTOM_PATH/p4d" 2>/dev/null || true rm helix-core-server.tgz case "$jobname" in From 266e43f1f7d2a0bae6eff610dc2ea8c572cb321e Mon Sep 17 00:00:00 2001 From: Harald Nordgren Date: Tue, 27 Oct 2026 08:32:16 +0000 Subject: [PATCH 2/2] ci: fail the build if perforce, git-lfs, or JGit fail to install A failed install of perforce, git-lfs, or JGit was silently tolerated. The corresponding tests would just skip and the build stayed green, so a broken download could go unnoticed indefinitely. Fail the build immediately instead on the platforms that install these tools. The presence checks and warnings at the end of the script are gone too, since we already know by then that everything installed or the build wouldn't have gotten this far. Signed-off-by: Harald Nordgren Signed-off-by: Junio C Hamano --- ci/install-dependencies.sh | 61 +++++++++++++------------------------- 1 file changed, 21 insertions(+), 40 deletions(-) diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index 203e8401cf..d35c64102e 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -93,23 +93,26 @@ ubuntu-*|i386/ubuntu-*|debian-*) wget --quiet --directory-prefix="$CUSTOM_PATH" \ "$P4WHENCE/bin.linux26x86_64/p4d" \ - "$P4WHENCE/bin.linux26x86_64/p4" && - chmod a+x "$CUSTOM_PATH/p4d" "$CUSTOM_PATH/p4" || { - rm -f "$CUSTOM_PATH/p4" - rm -f "$CUSTOM_PATH/p4d" - } + "$P4WHENCE/bin.linux26x86_64/p4" + chmod a+x "$CUSTOM_PATH/p4d" "$CUSTOM_PATH/p4" + echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)" + p4d -V + echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)" + p4 -V wget --quiet \ - "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" && + "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" tar -xzf "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" \ -C "$CUSTOM_PATH" --strip-components=1 \ - "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs" && - rm "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" || - rm -f "$CUSTOM_PATH/git-lfs" + "git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs" + rm "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" + echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)" + git-lfs version - wget --quiet "$JGITWHENCE" --output-document="$CUSTOM_PATH/jgit" && - chmod a+x "$CUSTOM_PATH/jgit" || - rm -f "$CUSTOM_PATH/jgit" + wget --quiet "$JGITWHENCE" --output-document="$CUSTOM_PATH/jgit" + chmod a+x "$CUSTOM_PATH/jgit" + echo "$(tput setaf 6)JGit Version$(tput sgr0)" + jgit version ;; esac ;; @@ -120,9 +123,13 @@ macos-*) brew link --force gettext mkdir -p "$CUSTOM_PATH" - wget -q "$P4WHENCE/bin.macosx12arm64/helix-core-server.tgz" && - tar -xf helix-core-server.tgz -C "$CUSTOM_PATH" p4 p4d && + wget -q "$P4WHENCE/bin.macosx12arm64/helix-core-server.tgz" + tar -xf helix-core-server.tgz -C "$CUSTOM_PATH" p4 p4d rm helix-core-server.tgz + echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)" + p4d -V + echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)" + p4 -V case "$jobname" in osx-meson) @@ -170,30 +177,4 @@ Documentation) ;; esac -if type p4d >/dev/null 2>&1 && type p4 >/dev/null 2>&1 -then - echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)" - p4d -V - echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)" - p4 -V -else - echo >&2 "::warning:: perforce wasn't installed, see above for clues why" -fi - -if type git-lfs >/dev/null 2>&1 -then - echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)" - git-lfs version -else - echo >&2 "::warning:: git-lfs wasn't installed, see above for clues why" -fi - -if type jgit >/dev/null 2>&1 -then - echo "$(tput setaf 6)JGit Version$(tput sgr0)" - jgit version -else - echo >&2 "::warning:: JGit wasn't installed, see above for clues why" -fi - end_group "Install dependencies"