Re: [osg-users] Mac bundle distribution can't use plugin
I Haven't fixed my issues yet so here comes some more info. This is what I get when listing dependencies using otool. I have massaged the libs extensivly using install_name_tool... [fi...@mpq]:[~/Documents/Code/OSGTests/Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L BasicApp BasicApp: @loader_path/libosgDB.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgUtil.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgGA.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgText.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgViewer.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosg.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) [fi...@mpq]:[~/Documents/Code/OSGTests/Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L libOpenThreads.11.dylib libOpenThreads.11.dylib: @loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) [fi...@mpq]:[~/Documents/Code/OSGTests/ Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L ../PlugIns/osgPlugins-2.9.6/osgdb_obj.so ../PlugIns/osgPlugins-2.9.6/osgdb_obj.so: @loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) @loader_path/libosg.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgDB.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgUtil.61.dylib (compatibility version 61.0.0, current version 2.9.6) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 136.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) And the output from the failing loading of the plugin is a before (in first post). Any ideas ? /F On Mon, Nov 23, 2009 at 9:52 AM, Filip Wänström filip.wanst...@gmail.com wrote: Hi, thanks for the answer but I am using CMake/regular makefiles to do all my building and using the OSX Ingest into bundle script that comes with osg. I just presumed it did all magic but maybe I should check out the actual paths in the libs. I'll be back with a report. /Filip On Fri, Nov 20, 2009 at 6:21 PM, Stephan Maximilian Huber ratzf...@digitalmind.de wrote: Hi Filip, check your system.log-file -- I am pretty sure the osgdb_obj pluging refers to the osg-dylibs in /usr/lib or similar. You'll have to massage the paths to the libs stored in the plugin via install_name_tool in a post-build-step. Paths to libs are hardcoded in the object-file when linked. You can change them to something better suited like @loader_path.../pipapo. Try googling for install_name_tool and @loader_path to get an idea. If you are using the deprecated XCode-project and embed the osg frameworks into your app and the obj-plugin into plugins it should work out of the box whithout fiddling around with install_name_tool. cheers, Stephan Filip Wänström schrieb: Hi, I have problems with distributing self-contained applications on the mac. I have reduced my issues by building a very simple example that basically only opens a window and loads an .obj file. Using OSG_NOTIFY_LEVEL=INFO (DEBUG is the same + a lot more, but unrelated) I get the following output: [fi...@mpq]:[~/Documents/Code/OSGTests/]$ ./_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS/BasicApp GraphicsContext::setWindowingSystemInterface() 0xc0e930 0xa13c50 Initiating Constructing BasicApp 1 Listing plugins plugin: /Users/filip/Documents/Code/OSGTests/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/PlugIns/osgPlugins-2.9.6/osgdb_obj.so Found file: data/models/clogo.obj
Re: [osg-users] Mac bundle distribution can't use plugin
And finally, I have a founf the fix. These are happy times! The plugin loader_path should be pointing to the libs from the path of the plugin. This means that the otool listing should be: $otool -L osgdb_obj.so osgdb_obj.so: @loader_path/../../MacOS/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) @loader_path/../../MacOS/libosg.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/../../MacOS/libosgDB.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/../../MacOS/libosgUtil.61.dylib (compatibility version 61.0.0, current version 2.9.6) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 136.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) And then it all works. I will make an example of this so that others don't have to spend weeks to support mac deployment! /Filip On Wed, Nov 25, 2009 at 10:46 AM, Filip Wänström filip.wanst...@gmail.com wrote: I Haven't fixed my issues yet so here comes some more info. This is what I get when listing dependencies using otool. I have massaged the libs extensivly using install_name_tool... [fi...@mpq]:[~/Documents/Code/OSGTests/Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L BasicApp BasicApp: �...@loader_path/libosgDB.61.dylib (compatibility version 61.0.0, current version 2.9.6) �...@loader_path/libosgUtil.61.dylib (compatibility version 61.0.0, current version 2.9.6) �...@loader_path/libosgGA.61.dylib (compatibility version 61.0.0, current version 2.9.6) �...@loader_path/libosgText.61.dylib (compatibility version 61.0.0, current version 2.9.6) �...@loader_path/libosgViewer.61.dylib (compatibility version 61.0.0, current version 2.9.6) �...@loader_path/libosg.61.dylib (compatibility version 61.0.0, current version 2.9.6) �...@loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) [fi...@mpq]:[~/Documents/Code/OSGTests/Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L libOpenThreads.11.dylib libOpenThreads.11.dylib: �...@loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) [fi...@mpq]:[~/Documents/Code/OSGTests/ Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L ../PlugIns/osgPlugins-2.9.6/osgdb_obj.so ../PlugIns/osgPlugins-2.9.6/osgdb_obj.so: �...@loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) �...@loader_path/libosg.61.dylib (compatibility version 61.0.0, current version 2.9.6) �...@loader_path/libosgDB.61.dylib (compatibility version 61.0.0, current version 2.9.6) �...@loader_path/libosgUtil.61.dylib (compatibility version 61.0.0, current version 2.9.6) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 136.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) And the output from the failing loading of the plugin is a before (in first post). Any ideas ? /F On Mon, Nov 23, 2009 at 9:52 AM, Filip Wänström filip.wanst...@gmail.com wrote: Hi, thanks for the answer but I am using CMake/regular makefiles to do all my building and using the OSX Ingest into bundle script that comes with osg. I just presumed it did all magic but maybe I should check out the actual paths in the libs. I'll be back with a report.
Re: [osg-users] Mac bundle distribution can't use plugin
Hi Filip, there's one major difference between your otool output and the otool output of my packaged app: [fi...@mpq]:[~/Documents/Code/OSGTests/Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L libOpenThreads.11.dylib libOpenThreads.11.dylib: @loader_path/libOpenThreads.11.dylib (compatibility version in my version, there's only libOpenThreads.11.dylib (compatibility version for every used lib. Not sure if this makes a difference. Check your logfiles (open Console.app), there should be a more descriptive errormessage from the dynamic linker. cheers, Stephan Filip Wänström schrieb: I Haven't fixed my issues yet so here comes some more info. This is what I get when listing dependencies using otool. I have massaged the libs extensivly using install_name_tool... [fi...@mpq]:[~/Documents/Code/OSGTests/Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L BasicApp BasicApp: @loader_path/libosgDB.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgUtil.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgGA.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgText.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgViewer.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosg.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) [fi...@mpq]:[~/Documents/Code/OSGTests/Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L libOpenThreads.11.dylib libOpenThreads.11.dylib: @loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) [fi...@mpq]:[~/Documents/Code/OSGTests/ Build/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS]$ otool -L ../PlugIns/osgPlugins-2.9.6/osgdb_obj.so ../PlugIns/osgPlugins-2.9.6/osgdb_obj.so: @loader_path/libOpenThreads.11.dylib (compatibility version 11.0.0, current version 2.4.0) @loader_path/libosg.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgDB.61.dylib (compatibility version 61.0.0, current version 2.9.6) @loader_path/libosgUtil.61.dylib (compatibility version 61.0.0, current version 2.9.6) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 136.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) And the output from the failing loading of the plugin is a before (in first post). Any ideas ? /F On Mon, Nov 23, 2009 at 9:52 AM, Filip Wänström filip.wanst...@gmail.com wrote: Hi, thanks for the answer but I am using CMake/regular makefiles to do all my building and using the OSX Ingest into bundle script that comes with osg. I just presumed it did all magic but maybe I should check out the actual paths in the libs. I'll be back with a report. /Filip On Fri, Nov 20, 2009 at 6:21 PM, Stephan Maximilian Huber ratzf...@digitalmind.de wrote: Hi Filip, check your system.log-file -- I am pretty sure the osgdb_obj pluging refers to the osg-dylibs in /usr/lib or similar. You'll have to massage the paths to the libs stored in the plugin via install_name_tool in a post-build-step. Paths to libs are hardcoded in the object-file when linked. You can change them to something better suited like @loader_path.../pipapo. Try googling for install_name_tool and @loader_path to get an idea. If you are using the deprecated XCode-project and embed the osg frameworks into your app and the obj-plugin into plugins it should work out of the box whithout fiddling around with install_name_tool. cheers, Stephan Filip Wänström schrieb: Hi, I have problems with
Re: [osg-users] Mac bundle distribution can't use plugin
Hi, thanks for the answer but I am using CMake/regular makefiles to do all my building and using the OSX Ingest into bundle script that comes with osg. I just presumed it did all magic but maybe I should check out the actual paths in the libs. I'll be back with a report. /Filip On Fri, Nov 20, 2009 at 6:21 PM, Stephan Maximilian Huber ratzf...@digitalmind.de wrote: Hi Filip, check your system.log-file -- I am pretty sure the osgdb_obj pluging refers to the osg-dylibs in /usr/lib or similar. You'll have to massage the paths to the libs stored in the plugin via install_name_tool in a post-build-step. Paths to libs are hardcoded in the object-file when linked. You can change them to something better suited like @loader_path.../pipapo. Try googling for install_name_tool and @loader_path to get an idea. If you are using the deprecated XCode-project and embed the osg frameworks into your app and the obj-plugin into plugins it should work out of the box whithout fiddling around with install_name_tool. cheers, Stephan Filip Wänström schrieb: Hi, I have problems with distributing self-contained applications on the mac. I have reduced my issues by building a very simple example that basically only opens a window and loads an .obj file. Using OSG_NOTIFY_LEVEL=INFO (DEBUG is the same + a lot more, but unrelated) I get the following output: [fi...@mpq]:[~/Documents/Code/OSGTests/]$ ./_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS/BasicApp GraphicsContext::setWindowingSystemInterface() 0xc0e930 0xa13c50 Initiating Constructing BasicApp 1 Listing plugins plugin: /Users/filip/Documents/Code/OSGTests/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/PlugIns/osgPlugins-2.9.6/osgdb_obj.so Found file: data/models/clogo.obj Opened DynamicLibrary osgPlugins-2.9.6/osgdb_obj.so Warning: Could not find plugin to read objects from file data/models/clogo.obj. Failed to load model This seems self contradictory to me... So as far as I can tell: 1) the bundled osglibs are found correctly and the app starts 2) the file in the Resources directory in the app bundle is found correctly 3) the right plugin is chosen and found in the app bundle PlugIns/osgPlugins-2.9.6 directory 4) The lib is opened ok 5) it fails All .dylibs/.so are copied from my /usr/local/ osg install into the app bundle I tried to see if there were some hidden depencies on osgdb_obj.so using otool but as far as I could tell there were no extra Non-system dependencies I'm at a loss here and tearing my nonexistent hair. Any help would be greatly appreciated. Best /Filip ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Mac bundle distribution can't use plugin
Hi, I have problems with distributing self-contained applications on the mac. I have reduced my issues by building a very simple example that basically only opens a window and loads an .obj file. Using OSG_NOTIFY_LEVEL=INFO (DEBUG is the same + a lot more, but unrelated) I get the following output: [fi...@mpq]:[~/Documents/Code/OSGTests/]$ ./_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS/BasicApp GraphicsContext::setWindowingSystemInterface() 0xc0e930 0xa13c50 Initiating Constructing BasicApp 1 Listing plugins plugin: /Users/filip/Documents/Code/OSGTests/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/PlugIns/osgPlugins-2.9.6/osgdb_obj.so Found file: data/models/clogo.obj Opened DynamicLibrary osgPlugins-2.9.6/osgdb_obj.so Warning: Could not find plugin to read objects from file data/models/clogo.obj. Failed to load model This seems self contradictory to me... So as far as I can tell: 1) the bundled osglibs are found correctly and the app starts 2) the file in the Resources directory in the app bundle is found correctly 3) the right plugin is chosen and found in the app bundle PlugIns/osgPlugins-2.9.6 directory 4) The lib is opened ok 5) it fails All .dylibs/.so are copied from my /usr/local/ osg install into the app bundle I tried to see if there were some hidden depencies on osgdb_obj.so using otool but as far as I could tell there were no extra Non-system dependencies I'm at a loss here and tearing my nonexistent hair. Any help would be greatly appreciated. Best /Filip ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Mac bundle distribution can't use plugin
Hi Filip, check your system.log-file -- I am pretty sure the osgdb_obj pluging refers to the osg-dylibs in /usr/lib or similar. You'll have to massage the paths to the libs stored in the plugin via install_name_tool in a post-build-step. Paths to libs are hardcoded in the object-file when linked. You can change them to something better suited like @loader_path.../pipapo. Try googling for install_name_tool and @loader_path to get an idea. If you are using the deprecated XCode-project and embed the osg frameworks into your app and the obj-plugin into plugins it should work out of the box whithout fiddling around with install_name_tool. cheers, Stephan Filip Wänström schrieb: Hi, I have problems with distributing self-contained applications on the mac. I have reduced my issues by building a very simple example that basically only opens a window and loads an .obj file. Using OSG_NOTIFY_LEVEL=INFO (DEBUG is the same + a lot more, but unrelated) I get the following output: [fi...@mpq]:[~/Documents/Code/OSGTests/]$ ./_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/MacOS/BasicApp GraphicsContext::setWindowingSystemInterface() 0xc0e930 0xa13c50 Initiating Constructing BasicApp 1 Listing plugins plugin: /Users/filip/Documents/Code/OSGTests/_CPack_Packages/Darwin/DragNDrop/BasicApp-1.0.0-Darwin/BasicApp.app/Contents/PlugIns/osgPlugins-2.9.6/osgdb_obj.so Found file: data/models/clogo.obj Opened DynamicLibrary osgPlugins-2.9.6/osgdb_obj.so Warning: Could not find plugin to read objects from file data/models/clogo.obj. Failed to load model This seems self contradictory to me... So as far as I can tell: 1) the bundled osglibs are found correctly and the app starts 2) the file in the Resources directory in the app bundle is found correctly 3) the right plugin is chosen and found in the app bundle PlugIns/osgPlugins-2.9.6 directory 4) The lib is opened ok 5) it fails All .dylibs/.so are copied from my /usr/local/ osg install into the app bundle I tried to see if there were some hidden depencies on osgdb_obj.so using otool but as far as I could tell there were no extra Non-system dependencies I'm at a loss here and tearing my nonexistent hair. Any help would be greatly appreciated. Best /Filip ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org