intel / openvino-ai-plugins-gimp

GIMP AI plugins with OpenVINO Backend
Apache License 2.0
470 stars 50 forks source link

Linux Mint 21.3 Xfce gimp-2.99: symbol lookup error: gimp-2.99: undefined symbol: gegl_node_connect #120

Closed chipster123 closed 3 months ago

chipster123 commented 3 months ago

I get the following error on Linux Mint 21.3 Xfce and following the instructions https://github.com/intel/openvino-ai-plugins-gimp/blob/main/Docs/linux_install_guide.md and get the following undefined symbol when running gimp-2.99 gimp-2.99: symbol lookup error: gimp-2.99: undefined symbol: gegl_node_connect Searching the libs show the following symbols

readelf -Ws --dyn-syms /usr/lib/x86_64-linux-gnu/libgegl-0.4.so.0.433.1 | grep gegl_node_connect
   573: 00000000000615d0    27 FUNC    GLOBAL DEFAULT   14 gegl_node_connect_to
   605: 0000000000061310   690 FUNC    GLOBAL DEFAULT   14 gegl_node_connect_from

Any ideas how I can fix this without changing my system to Ubuntu 22.04?

gblong1 commented 3 months ago

Strange. the API shouldn't be different on different distributions. Looking at your library version, looks like you are using 433.1 vs 445.1

readelf -Ws --dyn-syms /usr/local/lib/x86_64-linux-gnu/libgegl-0.4.so.0.445.1 | grep gegl_node_connect
   682: 000000000007fc70     9 FUNC    GLOBAL DEFAULT   14 gegl_node_connect_to
  1179: 000000000007f920   810 FUNC    GLOBAL DEFAULT   14 gegl_node_connect
  1231: 000000000007fc50    27 FUNC    GLOBAL DEFAULT   14 gegl_node_connect_from
  2311: 000000000007fc50    27 FUNC    GLOBAL DEFAULT   14 gegl_node_connect_from
  2417: 000000000007fc70     9 FUNC    GLOBAL DEFAULT   14 gegl_node_connect_to
  2616: 000000000007f920   810 FUNC    GLOBAL DEFAULT   14 gegl_node_connect

Please double check that you are on GEGL_0_4_46

git status
HEAD detached at GEGL_0_4_46
gblong1 commented 3 months ago

If you do git log and search for 6e7eba3a2a you should see this commit:

commit 6e7eba3a2a7123f3ed793ce5e3de7dba646fba0e
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Tue Jun 13 00:20:51 2023 +0200

    gegl: new API gegl_node_connect

    The mental overhead of thinking about sinks and sources and which
    API to use of gegl_node_connect_from and gegl_node_connect_to is
    solved by introducing a third option, which sniffts out which pad
    is input and output pad and makes the connection accordingly.

    Deprecation warning added for gegl_node_connect_from which suggests
    using gegl_node_connect.

If you don't you probably need to do git checkout tags/GEGL_0_4_46 and rebuild/reinstall the library.

chipster123 commented 3 months ago

@gblong1 , thanks for the quick reply.

All things check out so far

~/GIMP/gegl/gegl$ git branch
* (HEAD detached at GEGL_0_4_46)
  master

Then I read your reply more carefully. I have an older /usr/lib/x86_64-linux-gnu/libgegl-0.4.so.0.433.1 and also the newly compiled and installed /usr/local/lib/x86_64-linux-gnu/

So forcing that to be searched first resolve the shared library link issue:

export LD_LIBRARY_PATH=/usr/local/lib/x86_64-linux-gnu/:${LD_LIBRARY_PATH}
export GI_TYPELIB_PATH=/usr/lib/x86_64-linux-gnu/girepository-1.0:/usr/local/lib/x86_64-linux-gnu/girepository-1.0
gimp-2.99

This issue was completely my system configuration problem. I'm closing this issue.

gblong1 commented 3 months ago

Glad you were able to get it resolved!