[Paraview] Relocatable plugins on ParaView CVS for Mac?

Mike Jackson mike.jackson at bluequartz.net
Mon Sep 8 16:08:04 EDT 2008


This post pretty much explains everything. BUT the solution used is OS  
10.5 ONLY as it would seem so those with 10.4 may be stuck.

http://www.codeshorts.ca/2007/nov/01/leopard-linking-making-relocatable-libraries-movin

Just depends how far back in OS X the ParaView developers want to  
support. 10.4 support is pretty reasonable, at least if they are going  
to release by the end of the year.

  _________________________________________________
| Mike Jackson - Principal Software Engineer      |
| BlueQuartz Software                             |
| mike.jackson at bluequartz.net                     |
| www.bluequartz.net                              |
---------------------------------------------------

On Sep 8, 2008, at 1:25 PM, clinton at elemtech.com wrote:

>
> Would it work to strip all the @executable_path's out, and fix the  
> id of it,
> so you get something like this:
>
> libLabReaderGUIPlugin.dylib:
>        libLabReaderGUIPlugin.dylib (compatibility version 0.0.0,  
> current
> version 0.0.0)
>        libpqComponents.dylib (compatibility version 0.0.0, current  
> version
> 0.0.0)
>        libpqCore.dylib (compatibility version 0.0.0, current version  
> 0.0.0)
>        libQtChart.dylib (compatibility version 0.0.0, current  
> version 0.0.0)
>        libQtTesting.dylib (compatibility version 0.0.0, current  
> version
> 0.0.0)
>        libpqWidgets.dylib (compatibility version 0.0.0, current  
> version
> 0.0.0)
>        QtAssistant.framework/Versions/4/QtAssistant (compatibility  
> version
> 4.3.0, current version 4.3.5)
>  .. and so on.
>
> With just library names, doesn't the Mac loader use the ones that  
> are already
> loaded?
> An exception to removing absolute paths might be if the plugin  
> depends on
> something that paraview doesn't depend on.
>
> Clint
>
> On Monday 08 September 2008 11:14:32 am Samuel Crow wrote:
>> Hello,
>>
>> The plugins are in paraview.app/Contents/MacOS/plugins/ and the  
>> output for
>> otool -L is as follows:
>>
>> libLabReaderGUIPlugin.dylib:
>> 	@executable_path/plugins/libLabReaderGUIPlugin.dylib (compatibility
>> version 0.0.0, current version 0.0.0)
>> @executable_path/libpqComponents.dylib (compatibility version 0.0.0,
>> current version 0.0.0) @executable_path/libpqCore.dylib  
>> (compatibility
>> version 0.0.0, current version 0.0.0) @executable_path/ 
>> libQtChart.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libQtTesting.dylib (compatibility version 0.0.0,  
>> current
>> version 0.0.0) @executable_path/libpqWidgets.dylib (compatibility  
>> version
>> 0.0.0, current version 0.0.0) @executable_path/libQVTK.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkPVServerManager.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) QtAssistant.framework/Versions/4/QtAssistant
>> (compatibility version 4.3.0, current version 4.3.5)
>> QtNetwork.framework/Versions/4/QtNetwork (compatibility version  
>> 4.3.0,
>> current version 4.3.5) @executable_path/libvtkPVFiltersCS.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkPVFilters.dylib (compatibility version 0.0.0,
>> current version 0.0.0) @executable_path/libvtkPVServerCommonCS.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkPVServerCommon.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) @executable_path/libvtkInfovisCS.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> QtGui.framework/Versions/4/QtGui (compatibility version 4.3.0,  
>> current
>> version 4.3.5) QtSql.framework/Versions/4/QtSql (compatibility  
>> version
>> 4.3.0, current version 4.3.5) @executable_path/libvtkXdmfCS.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkXdmf.dylib (compatibility version 0.0.0,  
>> current
>> version 0.0.0) @executable_path/libvtkParallelCS.dylib (compatibility
>> version 0.0.0, current version 0.0.0) @executable_path/ 
>> libvtkHybridCS.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkVolumeRenderingCS.dylib (compatibility version
>> 0.0.0, current version 0.0.0) @executable_path/libvtkWidgetsCS.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkRenderingCS.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) @executable_path/libvtkViews.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkInfovis.pv3.3.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) @executable_path/libvtkWidgets.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkHybrid.pv3.3.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) @executable_path/libvtkParallel.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkVolumeRendering.pv3.3.dylib (compatibility  
>> version
>> 0.0.0, current version 0.0.0) @executable_path/ 
>> libvtkRendering.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> /System/Library/Frameworks/AGL.framework/Versions/A/AGL  
>> (compatibility
>> version 1.0.0, current version 1.0.0)
>> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
>> (compatibility version 2.0.0, current version 136.0.0)
>> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
>> (compatibility version 45.0.0, current version 949.33.0)
>> QtXml.framework/Versions/4/QtXml (compatibility version 4.3.0,  
>> current
>> version 4.3.5) QtCore.framework/Versions/4/QtCore (compatibility  
>> version
>> 4.3.0, current version 4.3.5) @executable_path/libvtkGraphicsCS.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkGenericFilteringCS.dylib (compatibility  
>> version
>> 0.0.0, current version 0.0.0)
>> @executable_path/libvtkGenericFiltering.pv3.3.dylib (compatibility  
>> version
>> 0.0.0, current version 0.0.0) @executable_path/ 
>> libvtkGraphics.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkImagingCS.dylib (compatibility version 0.0.0,
>> current version 0.0.0) @executable_path/libvtkImaging.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkIOCS.dylib (compatibility version 0.0.0,  
>> current
>> version 0.0.0) @executable_path/libvtkFilteringCS.dylib  
>> (compatibility
>> version 0.0.0, current version 0.0.0) @executable_path/ 
>> libvtkCommonCS.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkClientServer.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) @executable_path/libKWCommon.dylib  
>> (compatibility
>> version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkPVCommandOptions.dylib (compatibility  
>> version 0.0.0,
>> current version 0.0.0) @executable_path/libvtkIO.pv3.3.dylib  
>> (compatibility
>> version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkFiltering.pv3.3.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) @executable_path/libvtkCommon.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkftgl.pv3.3.dylib (compatibility version 0.0.0,
>> current version 0.0.0) @executable_path/libvtkfreetype.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
>> (compatibility version 1.0.0, current version 1.0.0)
>> @executable_path/libvtkverdict.vtk5.3.0.dylib (compatibility  
>> version 0.0.0,
>> current version 0.0.0) @executable_path/libvtkDICOMParser.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkmetaio.pv3.3.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) @executable_path/libvtksqlite.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkexpat.pv3.3.dylib (compatibility version  
>> 0.0.0,
>> current version 0.0.0) @executable_path/libvtksys.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libXdmf.dylib (compatibility version 0.0.0, current
>> version 0.0.0) @executable_path/libvtklibxml2.pv3.3.dylib  
>> (compatibility
>> version 0.0.0, current version 0.0.0) /usr/lib/libSystem.B.dylib
>> (compatibility version 1.0.0, current version 111.1.1)
>> /usr/lib/libedit.2.dylib (compatibility version 2.0.0, current  
>> version
>> 2.9.0) @executable_path/libvtkexoIIc.pv3.3.dylib (compatibility  
>> version
>> 0.0.0, current version 0.0.0) @executable_path/ 
>> libvtkNetCDF.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkpng.pv3.3.dylib (compatibility version 0.0.0,
>> current version 0.0.0) @executable_path/libvtktiff.pv3.3.dylib
>> (compatibility version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkhdf5.dylib (compatibility version 0.0.0,  
>> current
>> version 0.0.0) @executable_path/libvtkzlib.pv3.3.dylib (compatibility
>> version 0.0.0, current version 0.0.0)
>> @executable_path/libvtkjpeg.pv3.3.dylib (compatibility version 0.0.0,
>> current version 0.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)
>>
>> --- On Mon, 9/8/08, Mike Jackson <mike.jackson at bluequartz.net> wrote:
>>> From: Mike Jackson <mike.jackson at bluequartz.net>
>>> Subject: Re: [Paraview] Relocatable plugins on ParaView CVS for Mac?
>>> To: "ParaView" <paraview at paraview.org>
>>> Date: Monday, September 8, 2008, 4:33 PM
>>> Couple things come to mind that need to be checked.
>>>    Where exactly in relation to the paraview.app bundle
>>> are you
>>> trying to load the plugins from?
>>>    Also, what is the output of running "otool -L
>>> [plugin]".
>>>
>>> I have some ideas but let's see the answers to those
>>> first..
>>>
>>>  _________________________________________________
>>>
>>> | Mike Jackson - Principal Software Engineer      |
>>> | BlueQuartz Software                             |
>>> | mike.jackson at bluequartz.net                     |
>>> | www.bluequartz.net                              |
>>>
>>> ---------------------------------------------------
>>>
>>> On Sep 8, 2008, at 12:17 PM, Samuel Crow wrote:
>>>> Hello again,
>>>>
>>>> I've written a BASH script that translates the
>>>
>>> paths of any
>>>
>>>> libraries that have been accessing from the ParaView
>>>
>>> executable to
>>>
>>>> use @executable_path but unfortunately the GUI plugins
>>>
>>> don't work on
>>>
>>>> the destination computer.  I am using the RPath
>>>
>>> feature of MaxOSX to
>>>
>>>> generate the .Dylib files.  My goal is to make my
>>>
>>> plugins work on
>>>
>>>> any Mac running the 3.3.1 version of ParaView
>>>
>>> downloaded from the
>>>
>>>> ParaView website.
>>>>
>>>> On the build computer I'm getting the error
>>>
>>> message
>>>
>>>> "QObject::setParent: Cannot set parent, new
>>>
>>> parent is in a different
>>>
>>>> thread".  The plugins still work on this computer
>>>
>>> but if I copy them
>>>
>>>> to another machine that doesn't have the build
>>>
>>> environment, the
>>>
>>>> readers won't work.  The source plugin works since
>>>
>>> it only has a
>>>
>>>> server-manager plugin anyway.  I suspect the filter
>>>
>>> would work also
>>>
>>>> for similar reasons.
>>>>
>>>> My build machine is a MacPro with 2 quad-cord Xeon
>>>
>>> processors and 4
>>>
>>>> Gigs of RAM running MacOSX 10.5.4 .
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> ParaView mailing list
>>>> ParaView at paraview.org
>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>
>>> _______________________________________________
>>> ParaView mailing list
>>> ParaView at paraview.org
>>> http://www.paraview.org/mailman/listinfo/paraview
>>
>> _______________________________________________
>> ParaView mailing list
>> ParaView at paraview.org
>> http://www.paraview.org/mailman/listinfo/paraview
>
>



More information about the ParaView mailing list