belangeo / pyo

Python DSP module
GNU Lesser General Public License v3.0
1.28k stars 130 forks source link

update macOS SDK to allow code signing #186

Open peircej opened 3 years ago

peircej commented 3 years ago

I'm now trying to codesign PsychoPy.app on macOS, including pyo and the dependencies. It looks like you're compiling pyo using an old mac SDK (presumably for compatibility with older machines) but this is resulting in a failure to notarize the application, because that step needs SDK 10.9 upwards. This can help update the SDK to a version of your choice so you can keep to something fairly old if you like https://github.com/devernay/xcodelegacy

belangeo commented 3 years ago

Hi @peircej , my only mac computer (not even mine) is running on 10.12, so I'm stuck with Xcode 8. As soon as I can upgrade I will build a new release. On the mean time, compiling pyo on mac is very easy if you want to do it on a more recent system.

python3 -m pip install wheel
brew install liblo libsndfile portaudio portmidi
git clone https://github.com/belangeo/pyo.git
cd pyo
sudo sh scripts/release_wheels_OSX.sh

Wheel files for 3.6, 3.7 and 3.8 end up in the dist folder.

peircej commented 3 years ago

Yeah, because I rarely have to compile C code it always goes wrong and I'm slow to debug. So it's easier in theory than it is in practice! ;-)

I'm getting this error

src/engine/ad_coreaudio.c:115:21: error: implicit declaration of function 'AudioGetCurrentHostTime' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
    now.mHostTime = AudioGetCurrentHostTime();

and lots of deprecation warnings (AudioHardwareGetProperty, AudioDeviceGetPropertyInfo, AudioDeviceGetProperty, AudioDeviceSetProperty, AudioDeviceAddIOProc, AudioDeviceRemoveIOProc)

peircej commented 3 years ago

Oh but you said you're runnign 10.12 and the SDK only needs upgrading to 10.9 so you might be able to do it anyway?