Opened 9 years ago

Closed 9 years ago

Last modified 8 years ago

#3334 closed defect (fixed)

gstreamer dependency problem

Reported by: Pierre Labastie Owned by: blfs-book@…
Priority: normal Milestone:
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

When you build gstreamer, gobject-introspection is an optional dependency. When you want then to build the gstreamer base plugins, pango is a required dependency and gobject-introspection is a recommended dependency of pango. So if you follow recommandations, you may end up building in the order: gstreamer...gobject-introspection, pango, gst-plugin-base.

In that case it fails, because gst-plugin-base's configure finds gobject-introspection and assumes that the gstreamer .gir files are installed. Of course they are not... So the build of the gst-plugins fails. I suggest promoting gobject-instrospection to a recommended dep of gstreamer.

Change History (7)

comment:1 by ken@…, 9 years ago

An interesting analysis. But you make it sound as if you are building gstreamer without any other packages ? My current belief, perhaps mistaken, is that gstreamer is only really usable by gnome-ish packages. Since gstreamer isn't particularly necessary until you have applications which can use it (e.g. webkit-gtk) and is not useful until there are applications which can use the plugins (e.g. epiphany-extensions, totem, and probably some other gnome packages), I had assumed that people would build the gnome gtk3 deps (gobject-introspection before atk, gdk-pixbuf, pango, gtk3) a long time before they tried to build gstreamer.

Certainly, recommending gobject-introspection for gnome packages is sensible (Armin said he planned to do this in a lot of cases during the move to 3.4).

My preference is to build packages as late as possible. I suspect your scripts take a different view. My concern about adding a dependency here is that more and more of the book will look like e.g. gnome-shell with a maze of recommended and required dependencies. That might suit your tool, but it makes it much harder for human readers to come up with a good order in which to build the packages they require or wish to try.

comment:2 by Armin K, 9 years ago

While gobject-introspection is not a big dep to anything that requires glib, I am against making it recommended for gstreamer packages. Why? It's gnome which requires gobject-introspection, but it's not just gnome which uses gstreamer. There is KDE's phonon (gstreamer backend) which uses it as well, but does not need gobject-introspection for anything. Most people will install recommended dependencies, so will your scripts, but g-i is not always necesary for gstreamer. There is a note at gstreamer and gstreamer base plugins page about gobject-introspection and I think it is enough.

in reply to:  1 ; comment:3 by Pierre Labastie, 9 years ago

Replying to ken@…:

An interesting analysis. But you make it sound as if you are building gstreamer without any other packages ? My current belief, perhaps mistaken, is that gstreamer is only really usable by gnome-ish packages. Since gstreamer isn't particularly necessary until you have applications which can use it (e.g. webkit-gtk) and is not useful until there are applications which can use the plugins (e.g. epiphany-extensions, totem, and probably some other gnome packages), I had assumed that people would build the gnome gtk3 deps (gobject-introspection before atk, gdk-pixbuf, pango, gtk3) a long time before they tried to build gstreamer.

Well, the book proposes to build phonon-backends-gstreamer as a base package for KDE (I am in the process of testing KDE build "from scratch", I'll do that for GNOME when 3.4 is finished. At least ablfs is a great tool to find dependencies mismatches). I guess phonon (which is for KDE) needs backends, and that gstreamer is a natural backend for it. So, with the book "as is": gstreamer is also usable by non-gnome-ish packages. Now, on my Debian host, I have only phonon-backend-vlc, so maybe VLC is enough for KDE. Phonon-backend-gstreamer could then be moved to the chapter "KDE additional packages". Any thought from "KDE" people?

in reply to:  2 comment:4 by Pierre Labastie, 9 years ago

Replying to Krejzi:

While gobject-introspection is not a big dep to anything that requires glib, I am against making it recommended for gstreamer packages. Why? It's gnome which requires gobject-introspection, but it's not just gnome which uses gstreamer. There is KDE's phonon (gstreamer backend) which uses it as well, but does not need gobject-introspection for anything. Most people will install recommended dependencies, so will your scripts, but g-i is not always necesary for gstreamer. There is a note at gstreamer and gstreamer base plugins page about gobject-introspection and I think it is enough.

My point was that since pango is required for gstreamer base plugins and g-i is recommended for pango, g-i is de facto recommended for gstreamer plugins (and so for gstreamer), but could have been built after gstreamer, which makes the plugins build fail. Of course, if you build gnome, you do not have that problem, because as Ken said, g-i would be built much earlier. But in the case of KDE, I think people building it for the first time would end doing what I do.

Of course, another solution would be to put g-i as just an optional dep for pango...

in reply to:  3 comment:5 by rt, 9 years ago

Replying to pierre.labastie:

Replying to ken@…:

An interesting analysis. But you make it sound as if you are building gstreamer without any other packages ? My current belief, perhaps mistaken, is that gstreamer is only really usable by gnome-ish packages. Since gstreamer isn't particularly necessary until you have applications which can use it (e.g. webkit-gtk) and is not useful until there are applications which can use the plugins (e.g. epiphany-extensions, totem, and probably some other gnome packages), I had assumed that people would build the gnome gtk3 deps (gobject-introspection before atk, gdk-pixbuf, pango, gtk3) a long time before they tried to build gstreamer.

Well, the book proposes to build phonon-backends-gstreamer as a base package for KDE (I am in the process of testing KDE build "from scratch", I'll do that for GNOME when 3.4 is finished. At least ablfs is a great tool to find dependencies mismatches). I guess phonon (which is for KDE) needs backends, and that gstreamer is a natural backend for it. So, with the book "as is": gstreamer is also usable by non-gnome-ish packages. Now, on my Debian host, I have only phonon-backend-vlc, so maybe VLC is enough for KDE. Phonon-backend-gstreamer could then be moved to the chapter "KDE additional packages". Any thought from "KDE" people?

Well, neither phonon backends are "required" (as in compile-time req.) for KDE, but if you want any multimedia capabilites at all you need one of them. I think the idea of moving the gstreamer-backend to additional KDE packages is unfortunate, as it would signal that the backend remaining in the core section (vlc-backend) is the recommended and better alternative. This is simply not true, as both backends are of equal functionality (one of them might work better on certain hardware and vice versa) and the reader should be able to choose a backend in an unbiased way. Anyways, this would be a dirty fix, because if other non-gnome packages depend on gstreamer (I haven't checked), the problem would remain.

comment:6 by Armin K, 9 years ago

Resolution: fixed
Status: newclosed

gobject-introspections is set as an optional dep for pango, atk, gdk-pixbuf and gtk3. Marking as fixed.

comment:7 by bdubbs@…, 8 years ago

Milestone: current

Milestone current deleted

Note: See TracTickets for help on using tickets.