# macOS universal build status clarification

Ok, my intention was not to spread confusion, so let me rephrase I wrote previously:

I have been compiling universal (x86_64 + arm64) builds of both Pd and Tk 8.6.12 for some months in the fall of 2021. It was working ok, more or less, after some adjustments to the build scripts. In late November / early December as finalization of the 0.52 release was upon us, I noticed that suddenly builds of Tk on my system ended with a non-working Wish.app and subsequent Pd.app. I believe this is when I was making test builds linking the newer JACK macOS distribution. I provided an arm64-only build instead as a work-around, then came holiday time and weeks of our whole family being sick so I haven't done any further development in detail since.

I believe this was also noticed on the IEM CI build setup, but perhaps I am remembering it incorrectly.

In no way do I imply that we cannot have a universal build, only that it wasn't working for me at a moment when we wanted to make a release.

The fix is more less when IOhannes (or whoever) can implement A1 (update the build system to a newer version of Xcode/CLITools).

# included pre-built Wish.app needs to be updated

I agree with A2 (don't build Tk every time), however then the included pre-build Wish.app also needs to be updated so everyone gets a *canonical* version from make app. As it is now, the current pre-built wish is 8.6.10 which has numerous small issues on macOS 12 systems, one of which I pointed out on a GitHub issue: black header bars on a table view.

For every release which requires rebuilding or updating the Wish.app used to make the App .app bundle on macOS, this wish needs to be included in the repo and replace the previous version. If we need two separate tarballs ala one for "old systems" from Miller's build setup and one for "newer systems" for the IEM CI setup, so be it. We can then modify the build system to detect the macOS version on the build system and use the appropriate Wish tarball.

In either case, the point is that users do not need to build Tk to get a working Pd .app *and* everyone is using the same nominal Tk frameworks. I believe I've stressed this before but perhaps it should be added to the release notes as an important step since I'm not involved in making the actually release zips or dmgs.

On Jan 25, 2022, at 12:00 PM, pd-list-request@lists.iem.at wrote:

Message: 1
Date: Mon, 24 Jan 2022 17:56:40 +0100
From: IOhannes m zmoelnig <zmoelnig@iem.at>
To: pd-list@lists.iem.at
Subject: Re: [PD] pd 0.52-0 test 4 released
Message-ID: <36ca2d0c-f6bc-764a-32f0-cdae73d16a44@iem.at>
Content-Type: text/plain; charset="utf-8"; Format="flowed"

On 1/24/22 17:18, Dan Wilcox wrote:
There was an issue with building Tk Wish 8.6.12 as a universal build which stopped this for now.

no.
this is not really true, and more importantly i think it spreads confusion.

the truth (according to john) is:
- for newer macOS versions, miller uses binaries produced by the iem-ci
- the iem-ci currently does not build arm64 binaries
  - simply because the XCode version installed there is too old
- this means that Pd-core (on the downloads) is only x86_64
- the iem-ci does not build Tcl/Tk *at all*
  - instead it uses a pre-built binary (similar to the one found in 
mac/stuff.tgz)
  - this pre-built blob is Tcl/Tk-8.6.12 and it is a universal build 
for arm64 and x86_64


this raises the following questions:
Q1: why is the iem-ci not updated to a newer XCode that allows to build 
arm64 binaries for macOS?
A1: because I haven't found the time yet to do so

Q2: why isn't Tcl/Tk build along with Pd
A2: because I don't want our CI to spend time compiling a helper library 
that we is not actively developed by *us*


because of the situation with the externals, i do not consider the 
current situation extremely bad.


gfdmst
IOhannes

--------
Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com