Bug 156675 - [GTK] Compiling on Arch Linux has some dependency issues
Summary: [GTK] Compiling on Arch Linux has some dependency issues
Status: RESOLVED INVALID
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-17 06:42 PDT by Drew DeVault
Modified: 2016-04-18 14:08 PDT (History)
10 users (show)

See Also:


Attachments
Patch (4.60 KB, patch)
2016-04-17 06:45 PDT, Drew DeVault
no flags Details | Formatted Diff | Diff
Patch (3.17 KB, patch)
2016-04-17 07:00 PDT, Drew DeVault
mcatanzaro: review-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Drew DeVault 2016-04-17 06:42:37 PDT
Namely, geoclue should be replaced with geoclue2, and openwebrtc is not available in the official repositories. openwebrtc is available in the AUR, but has a packaging issue (which I've brought to the attention of the package maintainer).
Comment 1 Drew DeVault 2016-04-17 06:45:36 PDT
Created attachment 276589 [details]
Patch
Comment 2 WebKit Commit Bot 2016-04-17 06:46:30 PDT
Attachment 276589 [details] did not pass style-queue:

env: python2: No such file or directory


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Drew DeVault 2016-04-17 06:48:03 PDT
Whoops. It looks like the webkit-patch script includes your uncommitted changes. Will upload a new patch.
Comment 4 Drew DeVault 2016-04-17 07:00:37 PDT
Created attachment 276590 [details]
Patch
Comment 5 Michael Catanzaro 2016-04-18 08:03:07 PDT
Comment on attachment 276590 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=276590&action=review

> Tools/gtk/install-dependencies:203
> +    makepkg -si

I'd rather not install packages from the AUR. Does build-webkit fail without OpenWebRTC installed? If so, I think we should change FeatureList.pm to not build WebRTC support by default. Unfortunately, WebRTC support in WebKit has been experimental for a long time, there has been very little progress, and OpenWebRTC is a questionable dependency at best.

> Tools/gtk/install-dependencies:243
> +        geoclue2 \

Since this is really a different issue, I'd split this into a separate patch in a separate bug
Comment 6 Michael Catanzaro 2016-04-18 08:13:43 PDT
By the way, build-webkit has had the same issue on Fedora for several years due to this same issue; I have a script that passes --no-media-stream to build-webkit as a workaround.

As far as I can tell, there are no release tarballs of OpenWebRTC anywhere, just one git tag on GitHub that I could find... so I doubt we'll be packaging it up anytime soon. I think it's reasonable to expect build-webkit to work by default on supported distros (currently Arch, Debian, Fedora).
Comment 7 Drew DeVault 2016-04-18 08:18:42 PDT
Thanks for the feedback. I'll prepare new bugs/patches:

1. Make OpenWebRTC disabled by default
2. Use geoclue2 on Arch Linux
Comment 8 Drew DeVault 2016-04-18 08:19:30 PDT
I'll bring along the changes that generally clean up the install script in the second patch as well.
Comment 9 Alejandro G. Castro 2016-04-18 08:19:54 PDT
(In reply to comment #8)
> I'll bring along the changes that generally clean up the install script in
> the second patch as well.

Is this enough?

https://github.com/EricssonResearch/openwebrtc/releases

The support has been activated some time ago to allow the bots to run the tests but we I think we could try other approaches if this is causing big issues to distros.
Comment 10 Michael Catanzaro 2016-04-18 09:44:46 PDT
Yeah, that looks exactly like what I was hoping to find.

This is not causing any issue to distros because WebRTC is disabled by default for end users (people who use CMake directly, including all distros). It's only enabled by default for developers (people who use build-webkit). I think we still want this to work for developers.

But wait a second, don't we have OpenWebRTC in the jhbuild moduleset? Did you run update-webkitgtk-libs? I think that should have built and installed it for you, so this really shouldn't be an issue?
Comment 11 Drew DeVault 2016-04-18 10:04:07 PDT
I think it's sane to make the default dev loadout similar to the one that they'll inevitably have installed on their system (and consider that people who just want to compile/install webkit from source are probably folling similar instructions on the docs), then have features beyond that be opt-in if they plan to work on those parts of the code.
Comment 12 Michael Catanzaro 2016-04-18 13:28:31 PDT
(In reply to comment #11)
> I think it's sane to make the default dev loadout similar to the one that
> they'll inevitably have installed on their system (and consider that people
> who just want to compile/install webkit from source are probably folling
> similar instructions on the docs), then have features beyond that be opt-in
> if they plan to work on those parts of the code.

We normally have some experimental features enabled so they can be tested by devs and more importantly on the bots... it's better to keep WebRTC enabled for this reason. I was wrongly thinking that OpenWebRTC wasn't in the jhbuild moduleset. Since it is, I think we probably don't need to do anything here, asides fix the geoclue package?
Comment 13 Drew DeVault 2016-04-18 13:41:41 PDT
Well, the issue is that on a fresh Arch Linux system, by following the build instructions you will hit a point where the build fails because openwebrtc isn't around. So we should figure out some way of installing it, telling the user what's up, or just make it optional in cmake rather than failing the build if it's not there.
Comment 14 Michael Catanzaro 2016-04-18 14:08:40 PDT
(In reply to comment #13)
> Well, the issue is that on a fresh Arch Linux system, by following the build
> instructions you will hit a point where the build fails because openwebrtc
> isn't around.

Did you run update-webkitgtk-libs as part of the build instructions? It should have built and installed openwebrtc.