[MacPorts] #60878: Let ports opt in to being built for different deployment targets on buildbot

MacPorts noreply at macports.org
Mon Jul 20 02:36:28 UTC 2020


#60878: Let ports opt in to being built for different deployment targets on
buildbot
---------------------------+---------------------
 Reporter:  ryandesign     |      Owner:  admin@…
     Type:  enhancement    |     Status:  new
 Priority:  Normal         |  Milestone:
Component:  buildbot/mpbb  |    Version:
 Keywords:                 |       Port:
---------------------------+---------------------
 We have some ports that cannot be built on older systems, even though they
 would run fine on older systems if compiled on a newer system. This
 happens especially in Mac apps and other software projects following
 Apple's development guidelines, which include that the developer is
 running on the latest macOS with the latest Xcode and the latest macOS
 SDK, using the latest language features.

 One example is iTerm2. 3.2.x and 3.3.x claim to run on Sierra and later
 but 3.3.11 can only be compiled on Catalina and later.

 Here's a possible solution. What if a port could indicate that it wants to
 opt in to a new buildbot build strategy: instead of building for each OS
 version on that OS version as we currently do, the port could say that it
 wants to build ''for'' each OS version ''on'' the latest OS version. In
 this situation, the buildbot would not schedule 1 build on each OS
 version; it would schedule multiple builds on the latest OS version. Each
 build would set the deployment target for the OS it's building for. Once
 the port is successfully built and installed, the darwin version in the
 archive name would have to be fixed when the archive is uploaded to the
 packages server.

 So to follow the example through: 4 builds would get scheduled on the
 Catalina buildbot worker:
 1. for deployment target 10.12; file renamed from
 iTerm2-3.3.11_0.darwin_19.x86_64.tbz2 to
 iTerm2-3.3.11_0.darwin_16.x86_64.tbz2 during upload
 2. for deployment target 10.13; file renamed from
 iTerm2-3.3.11_0.darwin_19.x86_64.tbz2 to
 iTerm2-3.3.11_0.darwin_17.x86_64.tbz2 during upload
 3. for deployment target 10.14; file renamed from
 iTerm2-3.3.11_0.darwin_19.x86_64.tbz2 to
 iTerm2-3.3.11_0.darwin_18.x86_64.tbz2 during upload
 4. for deployment target 10.15; file uploaded as
 iTerm2-3.3.11_0.darwin_19.x86_64.tbz2

 -----

 A different approach is to make newer toolchains available on older
 systems, which we already largely do, but sometimes it takes us a long
 time to get it all working; tapi support is one recent example. And one
 piece that's still missing is to provide newer SDKs to older systems,
 which I've worked on elsewhere.

-- 
Ticket URL: <https://trac.macports.org/ticket/60878>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list