#20002: bugs in vtk-devel Portfile on Tiger -------------------------------+-------------------------------------------- Reporter: jjstickel@… | Owner: dweber@… Type: defect | Status: assigned Priority: Normal | Milestone: Component: ports | Version: 1.7.1 Keywords: Tiger darwin_8 | Port: vtk-devel -------------------------------+-------------------------------------------- Comment(by dweber@…): Replying to [comment:10 jjstickel@…]:
I'm sorry, but I can't do any more testing right now. I have no reason to use vtk-devel (vtk-5.4) over vtk5 (vtk-5.2).
OK, thanks for the feedback so far. It has taken me many days to develop vtk-devel, too many days to learn both MacPorts, cmake, and vtk quirks, but there it is. In case you find a minute to run it overnight on Tiger, just run the `port destroot vtk-devel` so it will not try to install. It would be great if there were no conflicts in the installation between vtk5 and vtk-devel, but there might be some binaries or symlinks that conflict.
To be honest, I don't understand why so much complexity is needed in the vtk-devel Portfile. The vtk-devel Portfile is 27 kb whereas the vtk5 Portfile is only 6 kb. Another thing I just noticed is that the installed libraries with vtk-devel are an order of magnitude larger in size compared to vtk5. For example, libvtkCommon.5.4.dylib is 27.1 MB compared to just 3.8 MB for libvtkCommon.5.2.1.dylib. Must be related to the compile options. Are debug symbols being included? Is this intentional?
a) There are more comments in vtk-devel (to explain my understanding of how things work; it's not gospel, so my understanding may change and hence vtk-devel may change, but it's in there for any 'openmaintainer' to read in my absence). b) There are more variants in vtk-devel (wrappers, database, mpi, boost). c) vtk5 handles the RPATH settings differently to vtk-devel. The vtk5 port uses `-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON` and it has to set `build.env-append DYLD_LIBRARY_PATH=${worksrcpath}/bin`. I've seen a post from the fink package maintainer that he does likewise. Perhaps that is the way to go, but after careful study of cmake settings and how they should work, I opted not to use any DYLD_LIBRARY_PATH or similar settings in vtk-devel. The point is that cmake is supposed to reset all the rpath strings during the installation (destroot), which it does for the majority of the build, but it fails to do so for the examples, testing, and wrapping. This is a bug that should be fixed up-stream in cmake or vtk. So, for now, there are a lot of extra bits in vtk-devel to call `install_name_tool` to change the rpath settings on various things (especially the examples and testing variants). I was able to abstract and consolidate a lot of that work for the InsightToolkit port into a tcl proc. Perhaps vtk5 handles this in a more elegant way in the post- configure phase of the port (I should look into how that works). d) vtk-devel has an explicit cmake build type setting, RelWithDebInfo, so I hope there are debug symbols in there. I've adopted the general GNU convention for releases that contain debug symbols for libraries (gcc/g++ options -g and -O2 are provided by cmake RelWithDebInfo). Is that is a problem for a system with limited disk space, the Portfile setting to change is `-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo` to `-DCMAKE_BUILD_TYPE:STRING=Release`. I'm adding to vtk-devel a couple of variants for the build type, so it's easy to select a pure 'release' or 'debug' build. See the update for revision 4 in my user svn: http://trac.macports.org/browser/users/dweber/graphics/vtk-devel/Portfile Anyhow, sounds like your on the way with vtk5. BTW, you might like to look into whether vtk5 can be configured for mpi (perhaps borrow the vtk- devel variant and see if it works in vtk5). If you need cocoa, vtk-devel adds the compiler setting for garbage collection on 10.5+. Good luck! Darren -- Ticket URL: <http://trac.macports.org/ticket/20002#comment:11> MacPorts <http://www.macports.org/> Ports system for Mac OS