Xpra: Ticket #289: ensure the osx build include all the gstreamer modules we need (and only those)

And as a result, sound does not work unless the GStreamer framework is installed locally, and the option is now shown in the menu.



Sun, 10 Mar 2013 13:26:56 GMT - Antoine Martin: status, summary changed

r2930 sets up the correct paths, which means we can now see the plugins from wherever the application is installed (here on a clean/minimal 10.6.8 system):

$ Xpra.app/Contents/Helpers/Python -c "from xpra.sound import gstreamer_util;gstreamer_util.main()"
2013-03-10 13:16:58,570 GStreamer plugins found: 3gppmux, aacparse, ac3iec958, \
    ac3parse, adder, adpcmdec .......

And the configuration class also sees them:

$ Xpra.app/Contents/Helpers/Python -c \
    "from xpra.scripts.config import get_codecs;print('codecs=%s' % get_codecs(True,False))"
codecs=['mp3', 'wav']
$ Xpra.app/Contents/Helpers/Python -c \
    "from xpra.scripts.config import get_codecs;print('codecs=%s' % get_codecs(False,False))"
codecs=['mp3', 'wav']

Problem is that somehow the xpra attach command somehow does not!?:

WARNING: some of the specified speaker codecs are not available: mp3
WARNING: some of the specified microphone codecs are not available: mp3

So, still left to do:


Mon, 11 Mar 2013 05:59:30 GMT - Antoine Martin: summary changed

First, the updating to include all the audio codecs we want to support. Then re-build all the gstreamer modules... (long)


Then we need to figure out which dylibs we want to include, since py2app and gtk-mac-bundler fail to do this automagically for us.

Here is how to get the list of dylibs for a plugin :

otool -L Xpra.app/Contents/Resources/lib/gstreamer-0.10/libgstfaac.so
Xpra.app/Contents/Resources/lib/gstreamer-0.10/libgstfaac.so:
	@executable_path/../Resources/lib/libfaac.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	@executable_path/../Resources/lib/libgstbase-0.10.0.dylib (compatibility version 30.0.0, current version 30.0.0)
	@executable_path/../Resources/lib/libgstreamer-0.10.0.dylib (compatibility version 30.0.0, current version 30.0.0)
	@executable_path/../Resources/lib/libgobject-2.0.0.dylib (compatibility version 3401.0.0, current version 3401.1.0)
	@executable_path/../Resources/lib/libgmodule-2.0.0.dylib (compatibility version 3401.0.0, current version 3401.1.0)
	@executable_path/../Resources/lib/libgthread-2.0.0.dylib (compatibility version 3401.0.0, current version 3401.1.0)
	@executable_path/../Resources/lib/libxml2.2.dylib (compatibility version 12.0.0, current version 12.0.0)
	@executable_path/../Resources/lib/libglib-2.0.0.dylib (compatibility version 3401.0.0, current version 3401.1.0)
	@executable_path/../Resources/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.1.0)
	@executable_path/../Resources/lib/libgstaudio-0.10.0.dylib (compatibility version 25.0.0, current version 25.0.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)

The lib directory already contains the base plugins (which need a little bit of trimming):

libgst*0.10.dylib
libgstapp-0.10.dylib
libgstaudio-0.10.dylib
libgstbase-0.10.dylib
libgstbasevideo-0.10.dylib
libgstcdda-0.10.dylib
libgstcheck-0.10.dylib
libgstcontroller-0.10.dylib
libgstdataprotocol-0.10.dylib
libgstfft-0.10.dylib
libgstinterfaces-0.10.dylib
libgstnet-0.10.dylib
libgstnetbuffer-0.10.dylib
libgstpbutils-0.10.dylib
libgstphotography-0.10.dylib
libgstreamer-0.10.dylib
libgstriff-0.10.dylib
libgstrtp-0.10.dylib
libgstrtsp-0.10.dylib
libgstsdp-0.10.dylib
libgstsignalprocessor-0.10.dylib
libgsttag-0.10.dylib
libgstvideo-0.10.dylib

And the following generic dylibs which are also used/included by gtk:

libgobject-2.0.0.dylib
libgmodule-2.0.0.dylib
libgthread-2.0.0.dylib
libxml2.2.dylib
libglib-2.0.0.dylib
libintl.8.dylib

And now the list of extras we need:

That is now what is included in the OSX builds as of r2931.


Notes:


Mon, 11 Mar 2013 06:37:41 GMT - Antoine Martin: status changed; resolution set

The missing plugins error is fixed in r2933

Closing - this works OK-ish for now on OSX, just be aware of #249


Sat, 23 Jan 2021 04:50:42 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/289