<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>6294</bug_id>
          
          <creation_ts>2014-05-08 14:34:38 +0000</creation_ts>
          <short_desc>Move GStreamer 0.10 to meta-multimedia</short_desc>
          <delta_ts>2015-07-06 09:11:04 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>multimedia</component>
          <version>1.7</version>
          <rep_platform>All</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>1.9 M1</target_milestone>
          <dependson>5481</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Burton">ross.burton</reporter>
          <assigned_to name="Alexander Kanavin">alex.kanavin</assigned_to>
          <cc>alex.kanavin</cc>
    
    <cc>alexandru.c.georgescu</cc>
    
    <cc>cristina-danielax.agurida</cc>
    
    <cc>jessica.zhang</cc>
    
    <cc>jku</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>raj.khem</cc>
    
    <cc>richard.purdie</cc>
          
          <qa_contact name="Cristina Agurida">cristina-danielax.agurida</qa_contact>
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>43181</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2014-05-08 14:34:38 +0000</bug_when>
    <thetext>On the grounds that GStreamer 0.10 is effectively unmaintained upstream and most projects have finally ported to 1.x we should move GStreamer 0.10 from oe-core to meta-multimedia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43233</commentid>
    <comment_count>1</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2014-05-10 09:28:55 +0000</bug_when>
    <thetext>Both Qt4 and Qt5 currently require GStreamer 0.10.  Qt 5.3 is due to be released shortly and this still needs 0.10, it&apos;s possible that Qt 5.4 (due October 2014) will be ported to GStreamer 1.0.

I&apos;m thinking we should leave 0.10 in oe-core for 1.7 and re-evaluate this in 1.8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50415</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Kanavin">alex.kanavin</who>
    <bug_when>2015-04-20 14:41:47 +0000</bug_when>
    <thetext>So here are the things that require gstreamer 0.10 in current master, and how their 0.10 requirements could be eliminated:

1. bluez4 has a set of gstreamer 0.10 elements. Those elements are now available as a part of gstreamer 1.0 gst-plugins-bad component. So bluez4 elements can be removed.

2. python-gst - the version in oe-core is badly out of date, version 1.4.0 available upstream (from gstreamer devs themselves). We should update.

3. clutter-gst - badly out of date as well, latest upstream version supports gst 1.4.

4. webkit-gtk - same thing again, needs to be updated, and probably will require updating midori (simple web browser) too. Latest webkit seems to need ruby for building, is that an obstacle somehow?

5. Qt4. The reason Qt4 (which is of course obsoleted by Qt5) is in oe-core to begin with is because it&apos;s required by LSB 4 (and upcoming LSB 5). I would suggest we should find out if LSB compatibility is still needed, and by whom. If it is, then move Qt4 to a separate layer (something like meta-lsb?), but if that&apos;s also not possible, then we can instead only get rid of gst 0.10 dependencies and keep Qt4 in oe-core.

Qt4 requires gstreamer 0.10 in two spots:

a) Qt Mobility. This project has been basically dead for several years and can be removed altogether. It&apos;s not required by LSB and Qt website doesn&apos;t even provide tarballs for it, so the recipe downloads them from Fedora&apos;s website. 

b) Qt4 itself has a gstreamer 0.10 plugin for phonon multimedia framework, which can be disabled at build time. Nothing in LSB or oe-core requires phonon.

Side note about Qt5: 
Qt5 is maintained by community here: https://github.com/meta-qt5/meta-qt5
Seems like Qt5 supports both gst 0.10 and 1.0, so it won&apos;t be affected by 0.10 removal.

So I have 3 questions:
Shall I proceed with this, or is there something I missed? Can you help me with the necessity-of-LSB issue? Are there other reasons those things I listed above haven&apos;t been kept up to date?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50419</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Kanavin">alex.kanavin</who>
    <bug_when>2015-04-20 15:01:15 +0000</bug_when>
    <thetext>Update: I just saw in oe-core mailing list patches that remove bluez4 from oe-core altogether. Apparently it will still be available in meta-oe.

I&apos;ll look deeper into webkit-ruby issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50422</commentid>
    <comment_count>4</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2015-04-20 15:25:27 +0000</bug_when>
    <thetext>Thanks for the in depth analysis, just what we need!

For qt4, I&apos;d propose we move the mobility parts to meta-oe along with streamer 0.10 and disable the phonon build by default (leaving it configurable).

With python-gst, is the a dependency on gobject-introspection? If so, that would be a potential problem and require meta-gir to get sorted out and merged with core.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50424</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-04-20 15:46:10 +0000</bug_when>
    <thetext>I expect the new python-gst would need g-i but if that&apos;s the case then we&apos;ll just have to move the current recipe along with the gstreamer 0.10 to meta-multimedia, and not have python-gst 1.x in oe-core until we do something about g-i.

Other than that I agree with Richard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50425</commentid>
    <comment_count>6</comment_count>
    <who name="Alexander Kanavin">alex.kanavin</who>
    <bug_when>2015-04-20 15:57:04 +0000</bug_when>
    <thetext>Richard, that&apos;s right. 

python-gst 1.x is not actually a full set of bindings, it seems to be a small layer of &apos;overrides&apos; on top of pygobject-based access to gstreamer. Pygobject itself is using gobject-introspection of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50483</commentid>
    <comment_count>7</comment_count>
    <who name="Alexander Kanavin">alex.kanavin</who>
    <bug_when>2015-04-23 10:05:22 +0000</bug_when>
    <thetext>Latest webkit&apos;s CMakeLists.txt (yes, they switched from autotools to CMake in the meantime) lists ruby as an optional dependency, but it actually doesn&apos;t build if you remove ruby and re-run &apos;cmake .&apos;.

So ruby is required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50608</commentid>
    <comment_count>8</comment_count>
    <who name="Alexander Kanavin">alex.kanavin</who>
    <bug_when>2015-04-29 14:47:27 +0000</bug_when>
    <thetext>After updating a package version (for clutter-gst), one of the included patches fails to apply during build:

http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-graphics/clutter/clutter-gst-1.0-1.6.0/enable-tests.patch

The patch has all sorts of metadata that need to be preserved (I suppose), and the essence of the patch is still valid, so what&apos;s the easiest way to produce a new patch? Maybe I should clone the source from git separately, and apply the patch there? I can of course edit the patch manually, because it&apos;s small, but in general case that wouldn&apos;t really work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50629</commentid>
    <comment_count>9</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2015-04-30 10:14:09 +0000</bug_when>
    <thetext>(In reply to comment #8)
&gt; After updating a package version (for clutter-gst), one of the included
&gt; patches fails to apply during build:
&gt; 
&gt; http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-graphics/
&gt; clutter/clutter-gst-1.0-1.6.0/enable-tests.patch
&gt; 
&gt; The patch has all sorts of metadata that need to be preserved (I suppose),
&gt; and the essence of the patch is still valid, so what&apos;s the easiest way to
&gt; produce a new patch? Maybe I should clone the source from git separately,
&gt; and apply the patch there? I can of course edit the patch manually, because
&gt; it&apos;s small, but in general case that wouldn&apos;t really work.

There may be better ways but the process I&apos;ve used is:
* unpack the source with bitbake, possibly apply other patches
* do &quot;git init .&quot;, &quot;git add *&quot;, &quot;git commit -m &apos;unpacked source&apos;&quot;
  in the source dir to create a baseline
* apply the patch by hand, fix what didn&apos;t apply.
* commit to git, possibly with an expanded comment
  if needed and sign-off-by
* do &quot;git format-patch -1&quot;, copy patch to meta/recipes-...

It&apos;s a bit of work for a single small patch but still quite fast and it scales well to bigger patches and many patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50630</commentid>
    <comment_count>10</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-04-30 10:18:39 +0000</bug_when>
    <thetext>That&apos;s certainly how I used to update patches, and devtool should handle this if it doesn&apos;t already.

Ideally, I&apos;d see devtool failing to apply a patch and giving you a prompt to update the patch, where you can use git mergetool.  I&apos;ll file a bug for Paul. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50917</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Kanavin">alex.kanavin</who>
    <bug_when>2015-05-12 13:22:51 +0000</bug_when>
    <thetext>I&apos;ve reviewed the patches for webkit-gtk; the good news is that almost all of them can be dropped; the bad news is that updating webkitgtk is otherwise quite involved, because they have switched from autotools to cmake, added a ton of dependencies, and all of the build options have changed or disappeared. This is the price to pay for allowing recipes go stale. 

Working on making the latest version (at least) build right now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50965</commentid>
    <comment_count>12</comment_count>
    <who name="Alexander Kanavin">alex.kanavin</who>
    <bug_when>2015-05-13 12:55:58 +0000</bug_when>
    <thetext>Ross made a comment on otcchat:

&quot;is gstreamer optional in the webkit we ship? if so to stop the series stalling we could disable it by default (with packageconfig) without upgrading webkit now, and then re-enable when new webkit is integrated&quot;

Gstreamer is optional in webkit, but disabling it means that HTML5 video and Web Audio would no longer be supported in midori or any other browser that&apos;s using it.

If you (and/or Richard) are ok with it, I can do it, and submit the full patchset for this bug very shortly afterwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51214</commentid>
    <comment_count>13</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-05-22 00:00:59 +0000</bug_when>
    <thetext>Done in oe-core as of fe44ac167a2a76531af3519f3889fce92024567b</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51216</commentid>
    <comment_count>14</comment_count>
    <who name="Khem Raj">raj.khem</who>
    <bug_when>2015-05-22 05:38:15 +0000</bug_when>
    <thetext>is patch to add them posted for meta-multimedia ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51218</commentid>
    <comment_count>15</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-05-22 07:36:36 +0000</bug_when>
    <thetext>Yes, it&apos;s been posted to oe-devel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52141</commentid>
    <comment_count>16</comment_count>
    <who name="Cristina Agurida">cristina-danielax.agurida</who>
    <bug_when>2015-07-06 09:11:04 +0000</bug_when>
    <thetext>Verified on master: b78b1a6bb82fb864f1f857bf7259908d0ed930b5</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>