actions / runner-images

GitHub Actions runner images
MIT License
10.2k stars 3.06k forks source link

icu4c lost on macos-14-arm64 in version 20241022.361 #10864

Closed andreasabel closed 2 days ago

andreasabel commented 3 weeks ago

Description

Looks like the ICU library (packageicu4c) got removed from macos-14-arm64 somewhere between 20241007.259 and 20241022.361. The symptom is visible at https://github.com/agda/agda/actions/runs/11530774344/job/32100729494#step:7:11

Package icu-i18n was not found in the pkg-config search path.

It was still present in 20241007.259, see https://github.com/agda/agda/actions/runs/11401211472/job/31723660531#step:1:8

Image: macos-14-arm64 Version: 20241007.259

It is absent in 20241022.361, see https://github.com/agda/agda/actions/runs/11530774344/job/32100729494#step:1:8

Image: macos-14-arm64 Version: 20241022.361

Workaround is brew install icu4c, workflow run https://github.com/agda/agda/actions/runs/11531272325/job/32101789092#step:1:8

Image: macos-14-arm64 Version: 20241022.361

Not sure why packages get removed from one minor release to another. After all, as a user of these runners I cannot request a specific version. I can just ask for major versions like macos-14 etc. It would be acceptable to remove packages for major bumps, e.g. going from macos-14 to macos-15. But just dropping stuff (without offering the possibility to pin to a certain version) inevitably results in breakages downstream.

Platforms affected

Runner images affected

Image version and build link

https://github.com/agda/agda/actions/runs/11530774344/job/32100729494#step:7:11

Is it regression?

Yes, succeeds in 20241007.259 see description.

Expected behavior

icu4c installed on runner per default

Actual behavior

icu4c no longer installed

Repro steps

See description with linked workflows.

sureshe456 commented 2 weeks ago

Hi @andreasabel We are looking into the issue.Will keep you posted with updates.

susmitamane commented 2 days ago

Hi @andreasabel Nothing changed for macOS images, there is update from homebrew site for package path. They have updated different paths for intel and ARM64 architecture.

Previously, you could set the PKG_CONFIG_PATH to /usr/local/opt/icu4c/lib/pkgconfig, and it would work for both Intel and Apple Silicon systems (if you were running the same architecture). But with the new architecture separation in Homebrew, Apple Silicon requires you to update the PKG_CONFIG_PATH to use /opt/homebrew/ instead of /usr/local/.

If you want to use both images then please refer below. anyhow you have already performed workaround in your script.

if [[ "$(uname -m)" == "arm64" ]]; then
  # Apple Silicon (M1/M2)
  export PKG_CONFIG_PATH="/opt/homebrew/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH"
else
  # Intel-based Mac
  export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:$PKG_CONFIG_PATH"
fi
Screenshot 2024-11-15 at 3 31 49 PM
andreasabel commented 2 days ago

@susmitamane: But I already used the flexible setup of PKG_CONFIG_PATH that gives me the correct path for ARM and Intel: https://github.com/agda/agda/actions/runs/11530774344/job/32100729494#step:6:2

PKG_CONFIG_PATH=$(brew --prefix)/opt/icu4c/lib/pkgconfig

Anyhow, I think you fixed the problem in macos-14-arm64 20241108.442 https://github.com/agda/agda/actions/runs/11831620001/job/32967077629#step:1:9 . Because there I see now for brew install icu4c https://github.com/agda/agda/actions/runs/11831620001/job/32967077629#step:6:17

icu4c@76 76.1_1 is already installed and up-to-date. To reinstall 76.1_1, run: brew reinstall icu4c@76
susmitamane commented 2 days ago

Yeah, Thanks for the confirmation. closing this issue.

Feel free to get back to us for mac-os related issues. Thank you.