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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>160814</bug_id>
          
          <creation_ts>2016-08-12 12:59:58 -0700</creation_ts>
          <short_desc>[GTK] Install script lacks gstreamer related dependencies</short_desc>
          <delta_ts>2016-08-16 07:54:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>annulen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>lforschler</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1219665</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-08-12 12:59:58 -0700</bug_when>
    <thetext>Trying to build webkitgtk+ on a debian testing chroot after running the install dependencies script (but without building the jhbuild) results on this:

-- Checking for module &apos;gstreamer-1.0 &gt;= 1.0.3&apos;
--   
-- Checking for module &apos;gstreamer-base-1.0 &gt;= 1.0.3&apos;
--   
-- Checking for module &apos;gstreamer-app-1.0 &gt;= 1.0.3&apos;
--   
-- Checking for module &apos;gstreamer-audio-1.0 &gt;= 1.0.3&apos;
--   
-- Checking for module &apos;gstreamer-fft-1.0 &gt;= 1.0.3&apos;
--   
-- Checking for module &apos;gstreamer-gl-1.0&gt;=1.8.0&apos;
--   
-- Checking for module &apos;gstreamer-mpegts-1.0&gt;=1.4.0&apos;
--   
-- Checking for module &apos;gstreamer-pbutils-1.0 &gt;= 1.0.3&apos;
--   
-- Checking for module &apos;gstreamer-tag-1.0 &gt;= 1.0.3&apos;
--   
-- Checking for module &apos;gstreamer-video-1.0 &gt;= 1.0.3&apos;
--   
-- Found GStreamer: GSTREAMER_INCLUDE_DIRS;GSTREAMER_LIBRARIES;GSTREAMER_VERSION;GSTREAMER_BASE_INCLUDE_DIRS;GSTREAMER_BASE_LIBRARIES;GSTREAMER_APP_INCLUDE_DIRS;GSTREAMER_APP_LIBRARIES;GSTREAMER_PBUTILS_INCLUDE_DIRS;GSTREAMER_PBUTILS_LIBRARIES;GSTREAMER_VIDEO_INCLUDE_DIRS;GSTREAMER_VIDEO_LIBRARIES;GSTREAMER_MPEGTS_INCLUDE_DIRS;GSTREAMER_MPEGTS_LIBRARIES;GSTREAMER_TAG_INCLUDE_DIRS;GSTREAMER_TAG_LIBRARIES;GSTREAMER_GL_INCLUDE_DIRS;GSTREAMER_GL_LIBRARIES;GSTREAMER_AUDIO_INCLUDE_DIRS;GSTREAMER_AUDIO_LIBRARIES;GSTREAMER_FFT_INCLUDE_DIRS;GSTREAMER_FFT_LIBRARIES (Required is at least version &quot;1.0.3&quot;) 
CMake Error at Source/cmake/OptionsGTK.cmake:339 (message):
  WebAudio requires the audio and fft GStreamer libraries.  Please check your
  gst-plugins-base installation.
Call Stack (most recent call first):
  Source/cmake/WebKitCommon.cmake:47 (include)
  CMakeLists.txt:126 (include)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219673</commentid>
    <comment_count>1</comment_count>
      <attachid>285937</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-08-12 13:11:17 -0700</bug_when>
    <thetext>Created attachment 285937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219863</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2016-08-13 01:12:19 -0700</bug_when>
    <thetext>I thought the install-dependencies script was meant to be used in combination with JHBuild, meaning that it shouldn&apos;t install libs built by JHBuild already...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219866</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-08-13 08:10:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I thought the install-dependencies script was meant to be used in
&gt; combination with JHBuild, meaning that it shouldn&apos;t install libs built by
&gt; JHBuild already...

I also thought this, but then I saw listed several dependencies that we build on the JHBuild, like atk, gtk+, cairo ...

So, then I thought that it actually made sense to also included the dependencies to build WebKitGTK+ without using the JHBuild (which is something that you want to do sometimes).

this makes sense to you also?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219869</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-08-13 09:25:06 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; I thought the install-dependencies script was meant to be used in
&gt; &gt; combination with JHBuild, meaning that it shouldn&apos;t install libs built by
&gt; &gt; JHBuild already...
&gt; 
&gt; I also thought this, but then I saw listed several dependencies that we
&gt; build on the JHBuild, like atk, gtk+, cairo ...
&gt; 
&gt; So, then I thought that it actually made sense to also included the
&gt; dependencies to build WebKitGTK+ without using the JHBuild (which is
&gt; something that you want to do sometimes).
&gt; 
&gt; this makes sense to you also?

yes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219880</commentid>
    <comment_count>5</comment_count>
      <attachid>285937</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-08-13 13:32:25 -0700</bug_when>
    <thetext>Comment on attachment 285937
Patch

Clearing flags on attachment: 285937

Committed r204448: &lt;http://trac.webkit.org/changeset/204448&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219882</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-08-13 13:32:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219883</commentid>
    <comment_count>7</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-08-13 13:39:57 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; I thought the install-dependencies script was meant to be used in
&gt; &gt; combination with JHBuild, meaning that it shouldn&apos;t install libs built by
&gt; &gt; JHBuild already...
&gt; 
&gt; I also thought this, but then I saw listed several dependencies that we
&gt; build on the JHBuild, like atk, gtk+, cairo ...

I even was cleaning up such cases, following advise of Michael Catanzaro, see https://bugs.webkit.org/show_bug.cgi?id=159628</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219889</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-08-13 15:08:02 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; I thought the install-dependencies script was meant to be used in
&gt; &gt; &gt; combination with JHBuild, meaning that it shouldn&apos;t install libs built by
&gt; &gt; &gt; JHBuild already...
&gt; &gt; 
&gt; &gt; I also thought this, but then I saw listed several dependencies that we
&gt; &gt; build on the JHBuild, like atk, gtk+, cairo ...
&gt; 
&gt; I even was cleaning up such cases, following advise of Michael Catanzaro,
&gt; see https://bugs.webkit.org/show_bug.cgi?id=159628

Well... I guess we need to add some comment on the script clarifying which kind of dependency is ok or not.

Personally, I see value on having listed the dependencies that allow to build WebKitGTK+ without using the internal jhbuild.


Perhaps an idea is to add a --nojhbuild parameter that installs the dependencies which are only needed when no using the jhbuild ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220008</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-08-15 01:52:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I thought the install-dependencies script was meant to be used in
&gt; combination with JHBuild, meaning that it shouldn&apos;t install libs built by
&gt; JHBuild already...

I agree; why should it install extra stuff?

FYI: I&apos;m planning to delete this script and replace it with jhbuild sysdeps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220012</commentid>
    <comment_count>10</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-08-15 02:39:39 -0700</bug_when>
    <thetext>As for jhbuild sysdeps: AFAIU installation of system packages would require running jhbuild as root, but we should run main jhbuild as root for obvious reasons. Also, jhbuild itself is installed as a part of update-webkit-libs-jhbuild which is normally run after install-dependencies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220015</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-08-15 03:56:21 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; As for jhbuild sysdeps: AFAIU installation of system packages would require
&gt; running jhbuild as root

That&apos;s a Debian-specific problem. PackageKit allows package installation without authentication by default, and PackageKit is the default, cross-platform jhbuild sysdeps backend. (And it uses polkit, so it works without any root account.) But on Debian, jhbuild defaults to a Debian-specific sysdeps backend that uses apt-cache; I&apos;m not completely sure why, but I think it&apos;s because Debian&apos;s PackageKit backend doesn&apos;t support searching for files? It&apos;s slower and does not use polkit, so we really do have to run it as root, but that is not any problem because the existing install-dependencies script already requires root. So the change is actually that root will no longer be required on other distros.

&gt; but we should run main jhbuild as root for obvious
&gt; reasons.

Of course not, only the sysdeps --install portion would need to be run as root (I guess with sudo), and *only* on Debian/Ubuntu. (We would need to check /etc/os-release before deciding to use sudo.) Actually building stuff should obviously not be done as root.

&gt; Also, jhbuild itself is installed as a part of
&gt; update-webkit-libs-jhbuild which is normally run after install-dependencies.

We would have to change that. The order would be:

 * Install jhbuild
 * jhbuild sysdeps --install
 * jhbuild build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220430</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-08-16 06:58:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #2)
&gt; &gt; I thought the install-dependencies script was meant to be used in
&gt; &gt; combination with JHBuild, meaning that it shouldn&apos;t install libs built by
&gt; &gt; JHBuild already...
&gt; 
&gt; I agree; why should it install extra stuff?
&gt; 

Because sometimes I want to build WebKit without the JHBuild???? And sometimes I want to build it on distros that are not my usual distro (like Fedora). And I find it handy to just execute an script that installs all the deps.

&gt; FYI: I&apos;m planning to delete this script and replace it with jhbuild sysdeps.

In this case, rather than deleting it, please rename it to install-dependencies-nojhbuild</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220432</commentid>
    <comment_count>13</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-08-16 07:04:12 -0700</bug_when>
    <thetext>1. Package lists for these 2 cases are going to be different

2. Sysdeps of jhbuild can be used for &quot;non-jhbuild&quot; set up as well, it&apos;s not very productive to maintain parallel package lists for different distros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220433</commentid>
    <comment_count>14</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-08-16 07:04:51 -0700</bug_when>
    <thetext>(though it will have to be different jhbuild sysdeps module)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220434</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-08-16 07:24:22 -0700</bug_when>
    <thetext>You could just run &apos;jhbuild sysdeps --install&apos; to install the dependencies, you don&apos;t need to build the full jhbuild environment if you don&apos;t want to. The point of switching to jhbuild sysdeps is to be able to remove this script, so we don&apos;t have to maintain three different sets of dependencies for each distro, there&apos;s no value in doing it otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220436</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-08-16 07:39:45 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; You could just run &apos;jhbuild sysdeps --install&apos; to install the dependencies,
&gt; you don&apos;t need to build the full jhbuild environment if you don&apos;t want to.
&gt; The point of switching to jhbuild sysdeps is to be able to remove this
&gt; script, so we don&apos;t have to maintain three different sets of dependencies
&gt; for each distro, there&apos;s no value in doing it otherwise.

That won&apos;t work.

For example, I want the cairo-devel from the system in order to be able to built WebKit without the JHBuild.

And jhbuild sysdeps --install should not install Cairo because we want to build our own very specific version of Cairo in order to have reliable test results for the layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220437</commentid>
    <comment_count>17</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-08-16 07:40:59 -0700</bug_when>
    <thetext>Solution is separate modulesets for 2 use cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220438</commentid>
    <comment_count>18</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-08-16 07:54:12 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; That&apos;s a Debian-specific problem. PackageKit allows package installation
&gt; without authentication by default, and PackageKit is the default,
&gt; cross-platform jhbuild sysdeps backend. (And it uses polkit, so it works
&gt; without any root account.) But on Debian, jhbuild defaults to a
&gt; Debian-specific sysdeps backend that uses apt-cache; I&apos;m not completely sure
&gt; why, but I think it&apos;s because Debian&apos;s PackageKit backend doesn&apos;t support
&gt; searching for files?

FWIW, apt-cache does not require root access, and pkexec could be used to run apt-get</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285937</attachid>
            <date>2016-08-12 13:11:17 -0700</date>
            <delta_ts>2016-08-13 13:32:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160814-20160812220937.patch</filename>
            <type>text/plain</type>
            <size>1448</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDExCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTFmZDdhMjI3MTIxMzBlMzJhN2RhMjE3MDI2MDZkOTYx
YzNkZWZhNi4uOTUyOGU2ZmViODI1ZjBjOTg3Y2M5NTM5MmQ3YTY3YjhmNGVkMjA5OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDE2LTA4LTEyICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIEluc3RhbGwgc2NyaXB0IGxhY2tzIGdzdHJlYW1lciBy
ZWxhdGVkIGRlcGVuZGVuY2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYwODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBndGsvaW5zdGFsbC1kZXBlbmRlbmNpZXM6IEZlZG9yYSBjYXNlIGhhZCBh
bHJlYWR5IGxpc3RlZCB0aGlzIGRlcGVuZGVuY2llcywKKyAgICAgICAgYnV0IGJvdGggQXJjaCBh
bmQgRGViaWFuL1VidW50dSB3ZXJlIG1pc3NpbmcgdGhlbS4KKwogMjAxNi0wOC0xMiAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSAzMi1iaXQgTWFj
IGJ1aWxkIGFmdGVyOgpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2luc3RhbGwtZGVwZW5kZW5jaWVz
IGIvVG9vbHMvZ3RrL2luc3RhbGwtZGVwZW5kZW5jaWVzCmluZGV4IGQ4NWVmZjg5NTE3M2RiZjI1
Zjk4MDhjMzZmMjQ5MDY0MWJmNDI3NjcuLmJkZjdhMzkwMTA4MTg2MGQ5NTg3Mzg4MWY1NGY3Njcy
ZGFhMzI3YzYgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9pbnN0YWxsLWRlcGVuZGVuY2llcworKysg
Yi9Ub29scy9ndGsvaW5zdGFsbC1kZXBlbmRlbmNpZXMKQEAgLTEwMiw2ICsxMDIsOCBAQCBmdW5j
dGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzV2l0aEFwdCB7CiAgICAgICAgIGxpYmdudXRsczI4LWRl
diBcCiAgICAgICAgIGxpYmd0azIuMC1kZXYgXAogICAgICAgICBsaWJndGstMy1kZXYgXAorICAg
ICAgICBsaWJnc3RyZWFtZXIxLjAtZGV2IFwKKyAgICAgICAgbGliZ3N0cmVhbWVyLXBsdWdpbnMt
YmFzZTEuMC1kZXYgXAogICAgICAgICBsaWJndWRldi0xLjAtZGV2IFwKICAgICAgICAgbGliaHlw
aGVuLWRldiBcCiAgICAgICAgIGxpYmpwZWctZGV2IFwKQEAgLTIyNiw2ICsyMjgsOCBAQCBmdW5j
dGlvbiBpbnN0YWxsRGVwZW5kZW5jaWVzV2l0aFBhY21hbiB7CiAgICAgICAgIGdwZXJmIFwKICAg
ICAgICAgZ3JlcCBcCiAgICAgICAgIGdyb2ZmIFwKKyAgICAgICAgZ3N0cmVhbWVyIFwKKyAgICAg
ICAgZ3N0LXBsdWdpbnMtYmFzZS1saWJzIFwKICAgICAgICAgZ3ppcCBcCiAgICAgICAgIGh5cGhl
biBcCiAgICAgICAgIGxpYnRvb2wgXAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>