Wireshark-dev: Re: [Wireshark-dev] Building Wireshark for High Sierra (Mac)

From: Gerald Combs <gerald@xxxxxxxxxxxxx>
Date: Wed, 27 May 2020 16:32:41 -0700
On 5/27/20 1:57 PM, Michael Tuexen wrote:
>> On 27. May 2020, at 22:33, Guy Harris <gharris@xxxxxxxxx> wrote:
>>
>> On May 27, 2020, at 1:22 PM, Juanjo Martin Carrascosa <juanjo@xxxxxxx> wrote:
>>
>>> A colleague is trying to build the latest Wireshark in High Sierra and he is facing lots of problems. He built it very smoothly for Mojave.
>>>
>>> Which release tag or version should he check out in order to build for High Sierra?
>>
>> Building *for* High Sierra means building with a version of Xcode that has a High Sierra SDK; that means building with Xcode 9.x.
>>
>> Do you mean building *for* High Sierra, or building *on* High Sierra?
>>
>> Gerald/Michael T, how are the Mac buildbots set up?  (They build for Sierra.)
> The 64-bit buildbots are running on a MacOS VM with Mac OS X Mojave and a
> version of XCode for it. The libraries are build and installed via 
> tools/macos-setup.sh
> 
> Not sure about the SDKs. I think Gerald did something...

The master macOS builder passes -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 to CMake, which in turn adds -mmacosx-version-min=10.12 to CFLAGS. That takes care of Wireshark and each CLI utility, but not our dependent libraries. For official Qt releases, compatibility varies by each minor version. We have checks in CMakeLists.txt to ensure that the version of Qt we're using supports the target macOS version For macOS 10.12 you'll want to use Qt <= 5.14. If you're building other libraries with tools/macos-setup.sh, it has a `-t` flag which behaves similar to CMAKE_OSX_DEPLOYMENT_TARGET.

As I recall we talked about installing the 10.12 SDK by hand on the macOS builder but I don't think we actually did so.

As a sanity check packaging/macosx/osx-app.sh prints the minimum version for each library that it adds to the bundle:

----
Minimum macOS version for libbcg729.0.dylib:
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.12
      sdk 10.12
----

It doesn't error out if there's a version conflict but we could modify it to do so.

[1]https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_DEPLOYMENT_TARGET.html