jaymzh / concordance

Program Harmony remote controls from Linux, Windows, or Mac!
GNU General Public License v3.0
146 stars 19 forks source link

OSX CI broke when GitHub changed macos-latest from OSX 12 x64 to OSX 14 arm64 #58

Open Ben-Meister opened 4 months ago

Ben-Meister commented 4 months ago

From https://github.blog/changelog/2024-04-01-macos-14-sonoma-is-generally-available-and-the-latest-macos-runner-image :

Over the next 12 weeks, jobs using the macos-latest runner label will migrate from macOS 12 (Monterey) to macOS 14 (Sonoma)

Additionally, per the Current List of Images (https://github.com/actions/runner-images), macos-latest is pointing to macos-14 which is arm64, not x64.

If I run ci-macos.yml with runs-on: macos-13 (or 12) instead of runs-on: macos-latest it works, which is the quick fix.

But, if I run it on macos-latest aka macos-14:

First it complains that libtool is missing (ref) and when pip3 installs build it refuses to install the package due to it being an "externally-managed-environment" (ref). OK, so I work around it with the following:

- name: Install dependencies
  run: |
    brew install autoconf automake hidapi libzip libtool
    pip3 install --break-system-packages build

But now we get the following when it's time to build:

checking for hidapi/hidapi.h... no
checking for hid_init in -lhidapi... no
configure: error: libhidapi is missing!

And it didn't throw any error when installing hidapi earlier:

==> Pouring hidapi--0.14.0.arm64_sonoma.bottle.tar.gz
🍺  /opt/homebrew/Cellar/hidapi/0.14.0: 19 files, 191.3KB

I have attached logs from the bad runs and a good run for reference. 1-logs_23416837081 Externally Managed Error.zip 2-logs_23417917674 libtool Missing.zip 3-logs_23418156127 libhidapi Missing.zip logs_23419707015 GOOD OSX 12 run.zip

swt2c commented 4 months ago

Thanks for your analysis @Ben-Meister. The last piece of the puzzle is that on ARM macs, Homebrew gets installed in /opt/homebrew instead of /usr/local for some reason, and this path is not included in the default include / linker paths, so we have to add it manually.

swt2c commented 4 months ago

Fixed by #59.

Ben-Meister commented 4 months ago

Your fix works for me, thank you for getting to the bottom of this!