Skip to content

libunwind in vlc-debian-unstable

Recently (!241 (merged) and vlc!3815 (merged)), I tried and failed spectacularly to add gstreamer packages to vlc-debian-unstable, in order to build the gstdecode module in the debian CI job for VLC. At first I thought it was a Debian bug (is it still?), but the issue seems to be with the packages installed into vlc-debian-unstable:

  • gstreamer depends on libunwind-dev (the nongnu version)
  • later, libc++abi-dev is installed, which depends on libunwind-14-dev (the LLVM libunwind)
  • libunwind-14-dev also "provides" libunwind-dev, thus the nongnu libunwind is uninstalled along with its corresponding libunwind.pc
  • LLVM libunwind is fundamentally a different library and consequently doesn't provide a libunwind.pc
  • pkg-config doesn't find libunwind anymore and thus VLC can't build the gstdecode module

Conclusion: installing libgstreamer-plugins-base1.0-dev and libc++abi-dev conflicts in some obscure way.

Now as far as I understand libc++abi-dev was added specifically for medialibary to build and test with Clang (medialibrary!606 (merged)).

To allow medialibrary building with clang, and VLC with gstdecode, I see two (three) solutions:

  1. Create a new medialibary-debian-unstable image using FROM vlc-debian-unstable and have it install libc++-abi-dev, instead of vlc-debian-unstable. This should force uninstall nongnu libunwind.
  2. Build gstreamer manually without the dependency on nongnu libunwind, in the image directly or in VLC contribs. Either way, this would be a maintenance burden, as there would be another source package which needs to be continually updated alongside regular VLC contribs.

CC @robUx4 @chouquette thoughts?

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information