Failing Mac Build

Open
#198 5 comments 0 reactions 0 assignees View on GitHub

@youneedgreg is already working on this.

Since Oct 10, 2026.

  • #208 by @youneedgreg — open

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
54/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
github-actions, macos, python
Domain
ci-cd

Research direction

Start with the failing Intel macOS job linked in the issue, then inspect .github/workflows/build.yaml around the Mac dependency installation step (lines 51–55). Confirm the failure from the job logs before changing the workflow; done means the Intel Mac build passes without disrupting the latest-version Mac build.

Written by the indexing model from the issue text.

Description

good first issue

The latest version Mac build is passing, but we see the Intel version Mac build failing here:

https://github.com/google/sbsim/actions/runs/34853141529/job/111936919192?pr=187

AI suggestions for a fix, below:


I'll retrieve the job logs to identify the failure and help you find a solution.Now let me get the workflow file to understand the full context:## Solution for Failing Job

The job is failing during the macOS dependency installation step. The issue is a Homebrew symlink conflict when installing ffmpeg and its dependency openssl@3.

Root Cause

When Homebrew installs openssl@3, it attempts to symlink /usr/local/bin/openssl but this fails because the target already exists or there's a permission/conflict issue. This causes the brew install command to exit with code 1, stopping the entire workflow.

Recommended Fix

The most reliable solution is to use --force when installing the conflicting packages, or to unlink existing packages first. Modify the macOS dependency installation step in .github/workflows/build.yaml (lines 51-55):

Option 1: Force reinstall (Recommended)

- name: Install system dependencies (on Mac)
  if: runner.os == 'macOS'
  run: |
    brew update
    brew install --force protobuf@21 ffmpeg

Option 2: Unlink conflicting packages first

- name: Install system dependencies (on Mac)
  if: runner.os == 'macOS'
  run: |
    brew update
    brew unlink openssl@3 2>/dev/null || true
    brew install protobuf@21 ffmpeg

Option 3: Skip the symlink step entirely

- name: Install system dependencies (on Mac)
  if: runner.os == 'macOS'
  run: |
    brew update
    brew install --overwrite protobuf@21 ffmpeg

Option 1 is the simplest and most straightforward approach. The --force flag tells Homebrew to proceed even if there are symlink conflicts, allowing the installation to complete successfully.

Dominant language
Python
Stars
132
Forks
64
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from google/sbsim

All issues in google/sbsim

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.