Dependencies Broken
There's a broken feature in MMSP
- make utilities fails on Ubuntu Focal-Fossa
- libvtk7 and dependencies are installed.
- expected "make utilities" to complete.
- The observed behavior is that make fails.
Running "locate --limit 1 vtkCommonCore.so" returns nothing in the shell.
Is it possible that a libvtk update has broken MMSP?
Interesting, and unfortunate. Can you provide the output from make?
It looks like, on Debian 10 "Buster ", these are provided by the ParaView installation rather than libvtk.
We could update Makefile to defer to an environment variable instead, like (ref)
VTK_LIB ?= $(shell dirname $(shell locate --limit 1 vtkCommonCore.so))
VTK_SRC ?= $(shell dirname $(shell locate --limit 1 vtkImageData.h))
Then write out -I $(VTK_SRC) -L $(VTK_LIB).
Thoughts?
Thoughts?
Make output below.
mmsp/utility$ make
dirname: missing operand
Try 'dirname --help' for more information.
g++ -O2 -Wall -I ../include -I /usr/include/paraview-5.7 -L mmsp2vti.cpp -o mmsp2vti -lvtkCommonCore -lvtkCommonDataModel -lvtkIOCore -lvtkIOXML -lz
/usr/bin/ld: cannot find -lvtkCommonCore
/usr/bin/ld: cannot find -lvtkCommonDataModel
/usr/bin/ld: cannot find -lvtkIOCore
/usr/bin/ld: cannot find -lvtkIOXML
collect2: error: ld returned 1 exit status
make: *** [Makefile:42: mmsp2vti] Error 1
It seems like the library is just gone - so I'm not sure the linking idea above makes sense? Am I missing something?
Temporary fix?
Linux system:
NAME="Ubuntu" VERSION="20.04.2 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.2 LTS" VERSION_ID="20.04"
Package "paraview" provides files such as:
/usr/lib/x86_64-linux-gnu/libvtkCommonCore-pv5.7.so
Modifying Makefile to point to:
# find VTK libraries
VTK_SRC = -I $(shell dirname $(shell locate --limit 1 vtkImageData.h))
VTK_LIB = -L $(shell dirname $(shell locate --limit 1 vtkCommonCore-pv5.7.so))
VTK_LNK = -lvtkCommonCore-pv5.7 -lvtkCommonDataModel-pv5.7 -lvtkIOCore-pv5.7 -lvtkIOXML-pv5.7
Permits compilation.
Did not test to see if functions are broken yet.
On a Fedora 31 workstation, when running make in utility/, I found that locate wasn't finding vtkImageData.h, and found vtkCommonCore.so in a custom ParaView installation (not a good idea).
The solution was to install the vtk and vtk-devel packages, then the script finds libvtkCommonCore.so.1 in /usr/lib64. But it still doesn't find vtkImageData.h, so I manually set VTK_SRC = -I /usr/include/vtk.
While this may not be the same solution for Ubuntu installations, I'd suggest looking for the header and library in Ubuntu's vtk and vtk-dev (?) packages.
Building the examples (GCC 9.3.1 and OpenMPI 4.0.2-1) only revealed one failure:
1/25 beginners_diffusion/ 1 seconds
example does not match generic pattern for execution