david0 / homebrew-audio

Audio formulae for the Homebrew package manager
32 stars 11 forks source link

Fixing the GTK interface issues #1

Open mauritslamers opened 8 years ago

mauritslamers commented 8 years ago

Do you think it is possible to fix the Ardour GTK problems by editing the compiled binaries to use the bundled GTK libraries from Ardour? Because if the version created by homebrew has sort of the same ABI as the one from Ardour, I would expect that to work.

david0 commented 8 years ago

As far as I know, the ABI between the GTK version that is bundled with ardour and the more recent homebrew version is incompatbile. I never checked what changes make them incompatible. But I remember that I tried once to make some plugins compiled with homebrew use the ardour stack. Without success.

You could try to use install_name_tool to change the libraries that will be loaded.

Btw, did you try the ardour formula? For me that solves this problem sufficiently.

mauritslamers commented 8 years ago

I have been talking in the ardour IRC channel, and it seems that there are severe issues that will not be solved by simply using the libraries included with Ardour. The most important problem is that GTK plugins will unload GTK under OSX when they close, as there is no linker option under OSX (-Wl,-z,nodelete) which will prevent that. There is a workaround, which means that all plugins should use dlopen(RTLD_NODELETE) in order to prevent GTK to unload.

david0 commented 8 years ago

Yes, thats really the only unsolved problem for me. But thats independent of which dependency stack (bundled vs homebrew) you use.

If it would be implemented that plugins won't be unloaded, than everything should work fine (besides memory usage..).

But as far as I understand the architecture, I think this has to be implemented in suil and not by the plugin itselt. But I might be wrong...