Homebrew / brew

🍺 The missing package manager for macOS (or Linux)
https://brew.sh
BSD 2-Clause "Simplified" License
40.76k stars 9.57k forks source link

Github action runner `macos-11` hanged octave installation when installing `qt@5` #16209

Closed fangq closed 10 months ago

fangq commented 10 months ago

brew doctor output

`brew doctor` fails to print on github action runner images (`macos-11`) with the following error

Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Some installed formulae are deprecated or disabled.
You should find replacements for the following formulae:
  openssl@1.1
  packer

Warning: You have an unnecessary local Cask tap.
This can cause problems installing up-to-date casks.
Please remove it by running:
  brew untap homebrew/cask

Warning: You have an unnecessary local Core tap!
This can cause problems installing up-to-date formulae.
Please remove it by running:
 brew untap homebrew/core

Warning: Broken symlinks were found. Remove them with `brew cleanup`:
  /usr/local/etc/bash_completion.d/prlctl
  /usr/local/etc/bash_completion.d/prlsrvctl
  /usr/local/share/man/man8/prl_convert.8
  /usr/local/share/man/man8/prl_disk_tool.8
  /usr/local/share/man/man8/prlctl.8
  /usr/local/share/man/man8/prlexec.8
  /usr/local/share/man/man8/prlsrvctl.8
Error: Process completed with exit code 1.

### Verification

- [X] My "`brew doctor` output" above says `Your system is ready to brew.` and am still able to reproduce my issue.
- [X] I ran `brew update` twice and am still able to reproduce my issue.
- [X] This issue's title and/or description do not reference a single formula e.g. `brew install wget`. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

### `brew config` output

```shell
N/A

What were you trying to do (and why)?

First, I have to admit that I could not complete the verification steps in the github action runner images, although I have to check those off in order to submit this ticket.

I've been using github action runners to test a number of my MATLAB/Octave toolboxes. On the MacOS runner images, I need to install octave using brew. The scripts have been running fine, until about a few weeks ago.

What happened (include all command output)?

brew install octave are consistently hanged by the step installing qt@5 - after stalled for over 20 hours, the installation was terminated.

A failing example: https://github.com/fangq/jsonlab/actions/runs/6793921937/job/18581016835

same command succeeded two weeks ago: https://github.com/fangq/jsonlab/actions/runs/6684077542/job/18160955894

same happened for another project: https://github.com/fangq/mcxcl/actions/runs/6826943142/job/18574333782

What did you expect to happen?

brew install octave should not be hanged.

The hanged qt@5 patch and hanged installation indicate a regression and should be fixed.

I understand macos-11 is a relatively old release, although it is a critical production environment that many software depends on for testing and providing support. A number of my projects are CUDA based and only older versions of MacOS has support for CUDA, so I have no other choices but to build/test my toolboxes on maco-11.

Step-by-step reproduction instructions (by running brew commands)

add the below file to a github project as `.github/workflow/test_brew.yml` and commit it to github

name: test brew install octave

jobs:
  brew_test:
    name: brew test
    strategy:
      matrix:
        os: [macos-11]
    runs-on: ${{ matrix.os }}

    steps:
      - name: Install dependencies
        run: [[ "$RUNNER_OS" == "macOS" ]] && brew install octave
Bo98 commented 10 months ago

macOS 11 pre-built bottle support has ended alongside the end of support of macOS 11 by Apple at the end of September.

This means that anything that received an update since that time will build from source on that version of macOS as we are now building pre-built bottles targetting a minimum of macOS 12. Qt 5 received an update in October to patch some critical compatibility issues with Xcode 15.

What you are likely seeing is the GitHub runners are not powerful enough to build Qt5 in a meaningful time. Qt is quite a large piece of software that take us 2 hours to build on a M1 Mac, and a few more on a virtualised x86_64 setup.

fangq commented 10 months ago

@Bo98, thanks for your prompt reply.

is there an option to prevent patching qt5 on macos-11, given it is still a supported runner on github?

Bo98 commented 10 months ago

is there an option to prevent patching qt5 on macos-11, given it is still a supported runner on github?

Not officially, sorry. We unfortunately don't have the resources to align with different support policies of different companies. I suspect it won't be supported by GitHub for much longer as macOS 13 GitHub Actions support will be GA by the end of the year and they only maintain two GA versions.

Occasionally the community offers some support here, but I'm not aware of anything for macOS 11 as it has quite low usage already (<1%).