-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
native webrtc dependency build script #23
Comments
Yeah, we should definitely pin to a branch head. These can be obtained with |
* Probably not necessary but a diff when running a step in build.sh
Uh oh, the readme currently says you used Can we clarify? |
Ah yes... it should be Also, maybe we should try a build from a branch head and see if things are still stable... perhaps |
I had tried that but it's missing a necessary commit as described in #19 (comment) see https://chromium.googlesource.com/external/webrtc/+/ec6b51d318f2cc747446089259495b161db11681/talk/app/webrtc/peerconnection.cc#403 But definitely when the next branch is cut. |
Hey congrats on this! As I see the hardest part getting this into Debian will be to build the webrtc library dependency. Here's my attempt, ignoring the entire
It's currently failing due to some SSLv3 error, I'm guessing because Debian dropped support for it. I'll have another look when I get some time. In the meantime you could definitely use the non-Debian parts of the above script, to completely ignore depot_tool which makes you download far more than is necessary. It also makes reproducible builds hard too, you don't want to DL during the build of course. (The Debian package is essentially just a git clone of some of the upstream repos, without any of the gclient sync/config complexity, so you could just expand that out into a series of non-Debian-specific commands.) Also it would be good if you could figure out what you actually need out of the |
So I got that script to work. I built it in about 30 minutes (including download times) with webrtc HEAD and chromium 48.0.2564.82. You don't need The Debian |
@arlolra in |
@infinity0 Yeah, that line was for OS X. I think you need to create a script,
then, @keroserene built the magic for GNU/Linux so maybe she can weigh in on what she did. |
For some reason, native webrtc defaults to building thin archives on linux, which I wasn't quite sure how to deal with for concatenation. So, during my initial attempt to get a working archive at all, I overrode that by removing the Then, I put together this terrible janky script which takes a single not thin archive argument. It flattens / concats everything within:
There's most likely a much simpler way to do this :) |
Ah thanks, I think I can just do It turns out my |
Oh, looks like on my computer I need to explicitly force it to C++11 (which is the system default). I guess cgo must be overriding that setting somehow, which makes it incompatible with external libraries built by a system default compiler. :( |
https://github.com/infinity0/go-webrtc/blob/master/build-webrtc-debian.sh (WIP, but the chat demo already works) in case anyone is interested. Later I will try to do it with webrtc HEAD and also experiment with building less of the objects. (You seem to only be using objects from libjingle_peerconnection, libjingle_peerconnection_unittest, and their dependencies.) It's still a long way to go before an actual Debian package but the way is much clearer now, at least for me. |
@infinity0 see #10, also as described above, branch-heads/49 is preferable to HEAD. |
Ah thanks I had missed that, |
I'm getting a build error with branch-heads/49 @ 69bd93596468d949b1064d089b0e7e3826b73dbb which succeeds if I cherry-pick 3542013f587f0858fb24fa8e554ec3c01a323da8 on top of it. Such a shame, it's the very first commit on the master branch after 49 forks away from it.
|
Btw, I think that last build error here is because you didn't do But you've moved on from building that way anyways. |
As described, this was implemented in #51 We can open a separate issue for getting it into Debian. |
Need to make
build.sh
actually functional, and easy to use.It should do roughly the following:
depot_tools
is installed on path (https://www.chromium.org/developers/how-tos/install-depot-tools)gclient sync
webrtc, and checkout a specific commit hash or release branchlibwebrtc_magic
, place inout/Release/obj/webrtc
, add a couple more lines toout/Release/build.ninja
.ninja webrtc_magic
lib/
in the correct name.h
toinclude/
This build script will probably take an hour, but will be better than manually doing these steps. Also, this repo can then become much more lightweight by removing the
include/
and prebuilt archives, and maybe supplying them elsewhere.The text was updated successfully, but these errors were encountered: