Feature request : move the graphics part in another shared library
The pip packages are very handy in many situations. However on some HPC clusters or when running in bare docker images (e.g. in gitlab-ci) the dependency of the shared library in libGLU/libGL and especially in the various X11 and fontconfig libraries is annoying. I'm wondering if it would not be worth to either
- provide alternative pip packages without the graphics part
- or link the graphics part in a separated shared libraries, then in the python bindings we can try/catch to import this separated library and, if it fails, disable the gmsh.fltk submodule (and other graphical functions if any).
I think the second option is better but I don't know how difficult it would be.
For info on a bare ubuntu 18.04 docker :
apt update
apt install python3-pip
pip3 install --user gmsh
ldd .local/lib/python3.6/site-packages/gmsh-4.6.0-Linux64-sdk/lib/libgmsh.so.4.6.0
linux-vdso.so.1 (0x00007ffd5adfc000)
libGLU.so.1 => not found
libGL.so.1 => not found
libXrender.so.1 => not found
libXcursor.so.1 => not found
libXfixes.so.3 => not found
libXext.so.6 => not found
libXft.so.2 => not found
libfontconfig.so.1 => not found
libXinerama.so.1 => not found
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f80c4b84000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f80c4980000)
libX11.so.6 => not found
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f80c4778000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f80c455b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f80c41bd000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f80c3e34000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f80c3c1c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f80c382b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f80cadfd000)