Bug #1225

MakeHuman.app bundle erroneously requires MacOS 10.12 or later

Added by besworks (Forum User) 5 months ago. Updated 4 months ago.

Status:NewStart date:07/31/2018
Priority:NormalDue date:
Assignee:Jonas Hauquier% Done:

0%

Category:Programming
Target version:-

Description

Continuing the discussion from http://www.makehumancommunity.org/forum/viewtopic.php?f=3&t=14380&hilit=el+capitan&start=10#p45303

Running the executable at MakeHuman.app/Contents/MacOS/MakeHuman through a terminal does launch the GUI and everything seems to work fine. Additionally, changing the ProductVersion string for my system in /System/Library/CoreServices/SystemVersion.plist from 10.11.3 to 10.12 (and restarting Finder.app) allowed me to launch MakeHuman.app normally by double-clicking it's icon.

These results lead me to believe that this was not specifically a MakeHuman or linked library issue but rather something wrong with the build environment. After some experimentation, I discovered that replacing the MakeHuman.app/Contents/MacOS/MakeHuman executable with a prebuilt main-universal executable from the py2app repo completely resolves the issue (I made sure to revert my hacky ProductVersion workaround before testing). https://bitbucket.org/ronaldoussoren/py2app/src/default/py2app/apptemplate/prebuilt/

So, it would seem that the proper solution is to update the py2app build dependency located here https://bitbucket.org/MakeHuman/makehuman-osx-builder/src/default/build_dependencies/

History

#1 Updated by Jonas Hauquier 5 months ago

Thank you for investigating this in such detail.
At the moment, I believe none of the developers are MAC users, OSX build was done with limited knowledge of the operating system or its packaging principles.

#2 Updated by besworks (Forum User) 5 months ago

Well I'm certainly not an expert in Python or OSX app development either but my deductive reasoning skills are top-notch and this isn't my first debugging rodeo. Hopefully updating py2app helps but I'm not entirely certain that it will. I'll gladly try out any test builds and report the results though and if the issue persists I do have other thoughts on what could be wrong with the build environment.

#3 Updated by hdusel (Forum User) 4 months ago

Howdy!

This is Peter - the (old) maintainer for the OS X Build... ...before MH has been moved to 99,9% Python code. Maybe someone of the old team members remember me...

Well, please visit [url]http://www.makehumancommunity.org/forum/viewtopic.php?p=45459#p45459[/url]. This will effectively solve the issue and with this procedure MH 1.1.1. will run even on Mac OS 10.11 alias El Capitan.

@Developers: You may consider to integrate this modified MakeHuman into the BuildProcess. I had an peek into the github rep for MH but didn't found any OS Specific glue code. Especial not the source which acually builds the architecture specific exe "MakeHuman" for OS X.

BR - Peter -

#4 Updated by besworks (Forum User) 4 months ago

hdusel (Forum User) wrote:

@Developers: You may consider to integrate this modified MakeHuman into the BuildProcess.

Patching/replacing the executable is certainly an effective workaround but it is not a proper solution to the underlying build issue. Did you patch that executable yourself? What changes did you make? The file size doesn't match any of the prebuilt py2app binaries that I have seen. The latest main-universal is ~180kb, the distributed MakeHuman binary is ~67kb and yours is ~30kb. Where did this file come from?.

hdusel (Forum User) wrote:

I had an peek into the github rep for MH but didn't found any OS Specific glue code. Especial not the source which acually builds the architecture specific exe "MakeHuman" for OS X.

The app bundling process is started here: https://bitbucket.org/MakeHuman/makehuman-osx-builder/src/default/step_compile_app.sh#lines-69

I won't bother listing out every step but eventually the executable is generated using the parameters specified here: https://bitbucket.org/MakeHuman/makehuman-osx-builder/src/default/build_dependencies/py2app/apptemplate/setup.py

As you can see, for a universal binary, MacOS 10.5 should be the oldest supported version and this does seem to be the case with the prebuilt binaries. I still think it would be wise to update the py2app build dependency (since the version being used now is 4 years old) but I don't believe this alone will solve the issue. As far as I can tell, the most likely root cause here is that the MacOS 10.5 SDK is missing from the MakeHuman build environment.

Also available in: Atom