ros-perception / vision_opencv

Apache License 2.0
537 stars 598 forks source link

Dependency to GPL-licensed library JBIG-KIT #294

Open ralph-lange opened 4 years ago

ralph-lange commented 4 years ago

We analyzed the dependencies of the opencv3 package and discovered that it depends on libtiff, which again depends on libjbig, cf. https://github.com/ros-gbp/opencv3-release/blob/master/kinetic/package.xml.

While libtiff is licensed BSD-like, libjbig comes under GPL. The JBIG-KIT website at https://www.cl.cam.ac.uk/~mgk25/jbigkit/ states the intention that dynamic linking in a combined work makes this work to fall under GPL explicitly. At the same time, the website states an exception for the case that the JBIG-KIT features are not used, but this exception is not part of the actual license text.

A Google search revealed that others are aware of this issue, but did not provide a solution.

Question 1: Can anybody confirm this dependency analysis? Question 2: Would it be possible to provide an official OpenCV3 package without the libtiff functionalities?

grafik

mlauret commented 4 years ago

I can confirm that libtiff is linked to jbig :

roso@roso:~$ ldd /usr/lib/x86_64-linux-gnu/libtiff.so
    linux-vdso.so.1 =>  (0x00007ffcd31ad000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fa8b3c76000)
>>>>>>>>libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 (0x00007fa8b3a68000)
    libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007fa8b380f000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa8b35f5000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa8b32ec000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa8b2f22000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa8b2d1e000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fa8b410d000)

You can also recompile libtiff without jbig support (https://gitlab.com/libtiff/libtiff) :

roso@roso:~/libtiff/dist$ cmake -Djbig=off .
roso@roso:~/libtiff/dist$ make
roso@roso:~/libtiff/dist$ ldd libtiff/libtiff.so
    linux-vdso.so.1 =>  (0x00007ffefc1fd000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f61c63eb000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f61c61d1000)
    libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f61c5f78000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f61c5d56000)
    libwebp.so.5 => /usr/lib/x86_64-linux-gnu/libwebp.so.5 (0x00007f61c5afa000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f61c5730000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f61c698e000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f61c552c000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f61c530f000)
ralph-lange commented 4 years ago

@mlauret, thank you for confirming and for the hint on recompiling libtiff without jbig.

ijnek commented 1 year ago

I recently became the maintainer of this repo, and I'm sorting through issues. @ralph-lange I'm going to guess it is, but could you confirm that this issue is still ongoing.

ralph-lange commented 1 year ago

Hi @ijnek, thank you for taking over the maintenance of this repo. I can confirm that this issue is still present (just checked it in my Ubuntu 20.04 + ROS Noetic installation as well as my Ubuntu 22.04 + ROS 2 Humble installation):