I’m trying to get ParaView running on OpenBSD (64-bit, AMD/x86 CPU)
I’ve succeeded to get a build and install done as per OpenBSD typical ports process.
The issue is: python site-packages/paraview/modules and site-packages/vtkmodules have a mix of versioned so files (29 of those) and plain so files (119 of those):
But python only looks for files ending with .so not the .so.0.0. The cmake/ninja build step produces the so.0.0 files plus a softlink to the .so. But the installation cmake files omit the .so link or the file it points at.
The reason this occurs is due to OpenBSD ports strategy: all ported packages (third-party software) that generates a so file has the version managed by the OpenBSD ports infrastructure, not the original third-party. This so all 11,000 ports can have consistent linking, especially in the face of minor version changes. The symbol LIBxxx_VERSION=n.n is the input to the compiling / building system identifying the version to use.
Paraview is unusal that it generates so files for the system library and same file names for the python site-package. OpenBSD porting scheme doesn’t distinguish. So I will have to undo the versioning for the site-packages directories. The OpenBSD-based versioning for the system libraries does work correctly (of course) so no change required there.
Hmm. I guess if you’re building the unversioned names, this could happen, though the /usr/lib ones would (should) have a lib prefix and the site-packages not. Out of curiosity, how does this work for other Python module-shipping projects?
Other projects simply use other names. For example:
xmms2 has 2 python libraries: xmmsapi.so and xmmsvalue.so but about two dozen system libraries libxmms_xxx.so (and libxmms_xxx.so.x.y of course).
Gnu Radio names the python libraries _xxx_yy.so and the system libraries are libgnuradio-xxxx.so
And so on. None of the 67 ports on OpenBSD that provide both system shared lib(s) and python site-package shared lib(s) have name overlaps between the two.
I realize it would be a big ask to suggest changing the VTK/Paraview python lib names, so I won’t. Too much code would break. It is what it is.
Hmm. That’s still confusing to me because the Python libraries should be lacking the lib prefix all of the /usr/lib system libraries should have. But maybe that is “factored out” when determining the name in the linker? Anyways, it sounds like you have a solution. Thanks for the info.