Transition of macOS Preview build from host 10.13 (High Sierra) to 13 (Ventura)

In the next few days, we will transition the Slicer preview build for application and extensions from factory-south-macos (10.13 / High Sierra) to computron (13 / Ventura).

Implications for users

Our deployment target will change from 10.13 (High Sierra) to 11 (Big Sur).

Implications for developers

Updates

The following pull-requests describe the changes for both Slicer and associated DashboardScripts:

Qt 5

To support packaging either Slicer or Slicer-based application, at least Qt 5.15.8 (with QtWebEngine 5.15.12) is required.

Waiting we have more detailed instructions, see here

Qt 6

This is a required step toward supporting Qt6.

Next

  • Finalize update of Build instructions / macOS / Prerequisites section in the developer guide.
  • Merge pull-requests referenced above

Related posts

cc: @jamesobutler

1 Like

After confirming that Slicer could be packaged and installed, the corresponding pull-requests have been merged.

2023-03-31T04:00:00Z packages for the Preview builds are expected to be completed on computron.

Here is a summary of the environment changes:

Before After
hostname factory-south-macos computron
macOS version 10.13 (High Sierra) 13 (Ventura)
deployment target 10.13 11
Apple clang version 10.0 14.0
Qt version 5.15.2 5.15.8 (+ with qtwebengine 5.15.12-lts)

Thanks to

Systems used for testing:

  • 2019 mac pro running macOS Ventura 13.2.1
  • Mid-2014 MacBook Pro running macOS Big Sur 11.7.1
  • Mac mini (2018) running macOS Ventura

To tentatively address a non-reproducible segfault associated with clang compiler, the build was just restarted after installing an updated version.

Before After
Clang version 10.0 14.0.0 14.0.6

Details

Text below copied from pull-request Slicer/DashboardScripts#/57 description

This updates was motivated after observing a clang EXC_BAD_ACCESS error that is not consistently reproducible.

Here are some of the observed occurrences of Error while building C++ object file:

  1. CMakeFiles/PythonQt.dir/generated_cpp_511/com_trolltech_qt_gui/com_trolltech_qt_gui0.cpp.o
  2. CMakeFiles/dcmect_tests.dir/t_roundtrip.cc.o
  3. Code/BasicFilters/src/CMakeFiles/SimpleITK_ITKBinaryMathematicalMorphology.dir/sitkBinaryDilateImageFilter.cxx.o
  4. Code/BasicFilters/src/CMakeFiles/SimpleITK_ITKCommon.dir/sitkCastImageFilter-2v.cxx.o
  5. Code/BasicFilters/src/CMakeFiles/SimpleITK_ITKConnectedComponents.dir/sitkConnectedComponentImageFilter.cxx.o
  6. Code/BasicFilters/src/CMakeFiles/SimpleITK_ITKConvolution.dir/sitkFFTNormalizedCorrelationImageFilter.cxx.o

These errors did not all happen in the same build. In the case listed above:

  • (1) and (2) were two different clean build
  • (3), (4), (5) and (6) were reported in the same build

Segfault

In all cases, the message reported was similar to the copied below and attempt to re-run the associated sh script (e.g com_trolltech_qt_gui0-17dcc3.sh) did not lead to a segfault.

clang: error: unable to execute command: Segmentation fault: 11
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: x86_64-apple-darwin22.2.0
Thread model: posix
InstalledDir: /Applications/Xcode-14.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
[CTest: warning matched] clang: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
[CTest: warning matched] clang: note: diagnostic msg: /var/folders/sh/x1zm1krn56j808c00cbtr2900000gp/T/com_trolltech_qt_gui0-17dcc3.cpp
[CTest: warning matched] clang: note: diagnostic msg: /var/folders/sh/x1zm1krn56j808c00cbtr2900000gp/T/com_trolltech_qt_gui0-17dcc3.sh
[CTest: warning matched] clang: note: diagnostic msg: Crash backtrace is located in
[CTest: warning matched] clang: note: diagnostic msg: /Users/svc-dashboard/Library/Logs/DiagnosticReports/clang_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
[CTest: warning matched] clang: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
[CTest: warning matched] clang: note: diagnostic msg:
********************

Step to install clang 14.0.6

Step to install the compiler were the following:

cd /D/Support
curl -#LO https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.6/clang+llvm-14.0.6-x86_64-apple-darwin.tar.xz
tar -xzvf clang+llvm-14.0.6-x86_64-apple-darwin.tar.xz

Installed version is

cd /D/Support/clang+llvm-14.0.6-x86_64-apple-darwin/bin/
./clang --version
clang version 14.0.6 (https://github.com/tru/llvm-release-build 686807a176470032c208f27da2cc31b1c10777c6)
Target: x86_64-apple-darwin22.2.0
Thread model: posix
InstalledDir: /D/Support/clang+llvm-14.0.6-x86_64-apple-darwin/bin

Release notes for clang 14.0.x

Date Version Release Notes
24 Jun 2022 14.0.6 release notes
10 Jun 2022 14.0.5 release notes
24 May 2022 14.0.4 release notes
29 Apr 2022 14.0.3 release notes
26 Apr 2022 14.0.2 release notes
12 Apr 2022 14.0.1 release notes
25 Mar 2022 14.0.0 release notes