From c16a97edc4416481fe68c3b3dd89715ce58e4126 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 31 Oct 2026 17:51:05 +0100 Subject: [PATCH 1/4] ci: build and test on macos-15, as GitHub retires macos-14 on 2026-11-02 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dd568c7..4423952 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-24.04, macos-14] + os: [ubuntu-24.04, macos-15] steps: - name: Checkout code From d6231b997e8556837eff1c0d485073ec5b72d8dd Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 31 Oct 2026 17:51:12 +0100 Subject: [PATCH 2/4] ci(release): build the macOS disk image on macos-15, for macOS 15 or newer --- .github/workflows/release-binaries.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-binaries.yml b/.github/workflows/release-binaries.yml index 1ff7993..057093d 100644 --- a/.github/workflows/release-binaries.yml +++ b/.github/workflows/release-binaries.yml @@ -124,8 +124,8 @@ jobs: build-macos-binary: name: Build macOS binary (arm64) # Apple silicon. The Homebrew libraries the image ships are built for the runner's macOS, - # the oldest one the image then runs on: macos-14 gives macOS 14 (Sonoma). - runs-on: macos-14 + # the oldest one the image then runs on: macos-15 gives macOS 15 (Sequoia). + runs-on: macos-15 steps: - name: Checkout @@ -158,7 +158,7 @@ jobs: llvm="$(brew --prefix llvm@20)" cmake -S . -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=15.0 \ -DCORETRACE_VERSION_OVERRIDE="${{ steps.version.outputs.value }}" \ -DLLVM_DIR="${llvm}/lib/cmake/llvm" \ -DClang_DIR="${llvm}/lib/cmake/clang" \ From 80fd611c5266c84f713792f52d6faead927a7f27 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 31 Oct 2026 17:51:53 +0100 Subject: [PATCH 3/4] docs: CI tests macOS 15, and the macOS disk image needs macOS 15 or newer --- README.md | 17 +++++++++-------- docs/quality/reproducibility-protocol.md | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 46f7bb2..3218f06 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ at line 5, column 19 ``` The exit code is 2: a finding at or above `--fail-on`. Add `--sarif-format --report-file -ctrace.sarif` for a report that GitHub Code Scanning reads. On macOS (Apple silicon, macOS 14 or +ctrace.sarif` for a report that GitHub Code Scanning reads. On macOS (Apple silicon, macOS 15 or newer), take the disk image of the release instead ([RELEASES](#releases)). To change the code, [build from source](#build). @@ -74,7 +74,7 @@ and read [CONTRIBUTING.md](CONTRIBUTING.md): a maintainer answers within three b Builds from source need Git, CMake 3.28 or newer, Ninja, a C++20 compiler whose standard library provides `` (GCC 13 or newer, or Clang with libstdc++ 13 or libc++), and the LLVM 20 and Clang 20 development packages. The test suite also runs cppcheck. The build is tested on Ubuntu -24.04 and macOS 14, and was checked on Ubuntu 22.04. Use matching +24.04 and macOS 15, and was checked on Ubuntu 22.04. Use matching LLVM and Clang installations: `LLVM_DIR` and `Clang_DIR` select their CMake packages, while `CLANG_EXECUTABLE` selects the Clang 20 executable whose resource headers are bundled with `ctrace`. These paths are build-time settings; an installed or released `ctrace` does not need @@ -175,12 +175,13 @@ RHEL 9 and its rebuilds (Rocky, Alma), Amazon Linux 2023, Ubuntu 22.04+, Debian built on Rocky Linux 9. Each archive is unpacked and run on bare Rocky Linux 9, Ubuntu 22.04, Debian 12 and Ubuntu 24.04 images, with no compiler or LLVM, before it is published. -The macOS disk image runs on Apple silicon with macOS 14 or newer. It holds one folder laid out -as the Linux archive, with the Homebrew libraries `ctrace` and the Python analyzer load (LLVM and -Clang, Python and OpenSSL...): copy the folder anywhere, Homebrew is not needed. Before it is -published, the image is mounted, its folder copied out, and run with Homebrew moved away. Its -third-party libraries are listed in `scripts/release/third-party-macos.txt`, and their licenses, -with each Homebrew formula's version, are under `licenses/homebrew/`. +The macOS disk image runs on Apple silicon with macOS 15 or newer; the images up to v0.85.0 also +run on macOS 14. It holds one folder laid out as the Linux archive, with the Homebrew libraries +`ctrace` and the Python analyzer load (LLVM and Clang, Python and OpenSSL...): copy the folder +anywhere, Homebrew is not needed. Before it is published, the image is mounted, its folder copied +out, and run with Homebrew moved away. Its third-party libraries are listed in +`scripts/release/third-party-macos.txt`, and their licenses, with each Homebrew formula's version, +are under `licenses/homebrew/`. Each archive carries the license of every third-party component it ships. `licenses/` holds those of the code compiled into `ctrace` and of the Ubuntu libraries in `lib/`, with each diff --git a/docs/quality/reproducibility-protocol.md b/docs/quality/reproducibility-protocol.md index 4e22ece..e90f11c 100644 --- a/docs/quality/reproducibility-protocol.md +++ b/docs/quality/reproducibility-protocol.md @@ -10,7 +10,7 @@ a dated report in `docs/quality/reproducibility/`. line and the basics of C or C++. They use their own machine, with one of: - Ubuntu 24.04, natively or in WSL2; -- macOS 14 or newer. +- macOS 15 or newer. These are the platforms the README supports. Windows outside WSL2 is not supported ([#54](https://github.com/CoreTrace/coretrace/issues/54)). From 47d47d683aa13fe4111928675efa92fd4fa635f8 Mon Sep 17 00:00:00 2001 From: Hugo Date: Sat, 31 Oct 2026 17:52:05 +0100 Subject: [PATCH 4/4] docs(changelog): the macOS disk image needs macOS 15 or newer --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 656eed3..b68fd99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,9 @@ Notable changes are grouped by release. See [all releases](https://github.com/Co `--input`. The server answers `InvalidInput`. - **Tool selection:** a tool selected twice, by `--static` or `--dyn` and by `--invoke`, runs once, and its findings are counted once. +- **macOS:** the disk image needs macOS 15 or newer, instead of 14. GitHub retires its macOS 14 + runners on 2026-11-02, and the image ships Homebrew libraries built for the macOS of the + runner that makes it, now macOS 15. ## v0.85.0