Source: glew
Version: 2.3.1+dfsg2-2
Severity: grave
Tags: affect -1 src:mygui src:tulip src:avogadrolibs src:slop

Ever since src:glew switched to the CMake build system (in 0cba00b9),
it's been causing FTBFS for multiple packages that depend on it. Here
are some examples:

mygui:
> make[4]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libSM.so', 
> needed by 'lib/x86_64-linux-gnu/libMyGUI.OpenGLPlatform.so.0debian1.0.0'

tulip:
> ninja: error: '/usr/lib/x86_64-linux-gnu/libSM.so', needed by 
> 'library/tulip-gui/src/libtulip-gui-6.0.so', missing and no known rule to 
> make it

avogadrolibs:
> make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libSM.so', 
> needed by 'lib/libAvogadroRendering.so.1.101.0'.  Stop.

slop:
> make[3]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libSM.so', 
> needed by 'libslopy.so.7.7'.  Stop.

The upstream explicitly states in their README:

> ### Linux and Mac
>
> #### Using GNU Make
>
> GNU make is the primary build system for GLEW, historically.
> It includes targets for building the sources and headers, for maintenance 
> purposes.
>
> ...
>
> #### Using cmake
>
> The cmake build is mostly contributor maintained.
> Due to the multitude of use cases this is maintained on a _best effort_ basis.
> Pull requests are welcome.

The crux of the problem is that when built with CMake, GLEW installs
CMake targets with hard-coded libraries in them:

dimitry@ki6OY5lO2Z:~$ grep set_target_properties -A3 
/usr/lib/x86_64-linux-gnu/cmake/glew/glew-targets.cmake
set_target_properties(GLEW::glew PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "/usr/include/x86_64-linux-gnu"
  INTERFACE_LINK_LIBRARIES 
"/usr/lib/x86_64-linux-gnu/libOpenGL.so;/usr/lib/x86_64-linux-gnu/libGLX.so;/usr/lib/x86_64-linux-gnu/libSM.so;/usr/lib/x86_64-linux-gnu/libICE.so;/usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so"
)

Prior to this change, packages using GLEW relied on the CMake-provided
FindGLEW.cmake module.

GLEW itself does not seem to be using any of libSM, libICE, libX11 or
libXext:

dimitry@ki6OY5lO2Z:~$ objdump -p /usr/lib/x86_64-linux-gnu/libGLEW.so | grep 
NEEDED
  NEEDED               libGLX.so.0
  NEEDED               libc.so.6

But, they are somehow pulled into their CMake targets, which looks like
a bug that they won't be eager to fix (based on the above).

Please either switch back to the Make-based system, or at the very
minimum do not install upstream's broken CMake targets.

Thank you,

Dimitry

-- System Information:
Debian Release: forky/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 7.0.4+deb14-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: unable to detect

Reply via email to