homebrew-core icon indicating copy to clipboard operation
homebrew-core copied to clipboard

Break circular dependency between `gstreamer` and `libnice`

Open carlocab opened this issue 1 year ago • 3 comments

  • [x] Have you followed the guidelines for contributing?
  • [x] Have you ensured that your commits follow the commit style guide?
  • [x] Have you checked that there aren't other open pull requests for the same formula update/change?
  • [ ] Have you built your formula locally with HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • [ ] Is your test running fine brew test <formula>, where <formula> is the name of the formula you're submitting?
  • [ ] Does your build pass brew audit --strict <formula> (after doing HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>)? If this is a new formula, does it pass brew audit --new <formula>?

See Homebrew/discussions#3740, in particular, https://github.com/orgs/Homebrew/discussions/3740#discussioncomment-8566223.

  • gstreamer: enable libnice
  • libnice: disable gstreamer plugin
  • libnice-gstreamer 1.22 (new formula)

carlocab avatar May 16 '24 16:05 carlocab

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

github-actions[bot] avatar Jun 08 '24 13:06 github-actions[bot]

Would love to see this merged! ❤️

davydog187 avatar Jun 08 '24 16:06 davydog187

Will get back to this soon.

carlocab avatar Jun 10 '24 00:06 carlocab

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

github-actions[bot] avatar Jul 06 '24 15:07 github-actions[bot]

Ditto, this would be quite helpful!

AlexHayton avatar Jul 24 '24 11:07 AlexHayton

Would also be good to update to 1.24.7 (1.24.8 is also coming soon), which has a lot of webrtc-related improvements.

nirbheek avatar Sep 17 '24 06:09 nirbheek

Build seems to be failing with

  <unknown>:: Fatal: GES: Skipping foreign identifier 'GstFrameCompositionApi' from namespace GstPbutils
  <unknown>:: Fatal: GES: Skipping foreign identifier 'GstFrameCompositionApi' from namespace GstPbutils

which is weird since that didn't happen in previous builds.

https://github.com/Homebrew/homebrew-core/actions/runs/10897819192/job/30239982948?pr=171902#step:3:3749

carlocab avatar Sep 17 '24 07:09 carlocab

@carlocab Upstream has a bug report open for this, https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3800. It looks like a bug in gobject-introspection, I will try and have a look upstream.

amyspark avatar Sep 17 '24 16:09 amyspark

Would also be good to update to 1.24.7 (1.24.8 is also coming soon), which has a lot of webrtc-related improvements.

We're already on 1.24.7, but thanks for the heads up!

Upstream has a bug report open for this, gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3800. It looks like a bug in gobject-introspection, I will try and have a look upstream.

Good to know; thanks @amyspark!

carlocab avatar Sep 17 '24 20:09 carlocab

Summary for @Homebrew/core:

This implements a feature multiple users (and upstream) have asked for, which we broke recently when we merged the various gst-* formulae to fix various user issues (#125996). See #183884, #161361, #25649, #25680.

The problem is that there is a circular dependency between libnice and gstreamer. We break this by splitting libnice into two: the parts that gstreamer depends on (retained as libnice), and the parts that depend on gstreamer (added as a new formula named libnice-gstreamer).

Splitting libnice requires patching. The patch is provided by a GStreamer maintainer (@nirbheek), and upstreamed at https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/271.

carlocab avatar Sep 23 '24 18:09 carlocab