Unverified Commit cebffc5e authored by boklm's avatar boklm
Browse files

Update webrtc, go-webrtc and snowflake

tor-browser-bundle.git commit: 38689af2a845dfa85765bf52e535c89476863378
tor-browser-bundle.git commit: 121de1ca7cbee29f34f99753a7948c7447e38965
tor-browser-bundle.git commit: e9b16e19134655aa16a8840e09093e01692138d5
parent 899fe6b8
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://github.com/keroserene/go-webrtc.git
git_hash: 69c5ca70533142494d145b43ef2f46ca94715557
git_hash: ab1b64862e0c4b4182010699911c2c5818f0a101
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
remote_docker: 1
......@@ -23,7 +23,9 @@ var:
# the prebuilt libwebrtc-magic.a libraries. Since we build our own
# libwebrtc-magic.a with the C++11 ABI, we have to undo that setting here,
# using CGO_CXXFLAGS.
export CGO_CXXFLAGS=-D_GLIBCXX_USE_CXX11_ABI=1
# __STDC_FORMAT_MACROS is needed for a definition of PRIxPTR from inttypes.h.
export CGO_CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=1 -D__STDC_FORMAT_MACROS=1"
export CGO_LDFLAGS=-latomic
targets:
master:
......
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://git.torproject.org/pluggable-transports/snowflake.git
git_hash: 6cecd31fd896eb26e64ad8bab8a9ea510ec3b21d
git_hash: 9f2e9a6ecb696149708716ca06ce842df03cf492
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
remote_docker: 1
......
......@@ -39,4 +39,4 @@ pref("extensions.torlauncher.default_bridge.obfs4.21", "obfs4 38.229.1.78:80 C8C
pref("extensions.torlauncher.default_bridge.meek-amazon.1", "meek 0.0.2.0:2 B9E7141C594AF25699E0079C1F0146F409495296 url=https://d2zfqthxsdq309.cloudfront.net/ front=a0.awsstatic.com");
pref("extensions.torlauncher.default_bridge.meek-azure.1", "meek 0.0.2.0:3 97700DFE9F483596DDA6264C4D7DF7641E1E39CE url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com");
pref("extensions.torlauncher.default_bridge.snowflake.1", "snowflake 0.0.3.0:1 B05EC36590AC0374F0E4D36DDA77908FD59D97F3");
pref("extensions.torlauncher.default_bridge.snowflake.1", "snowflake 0.0.3.0:1 2B280B23E1107BB62ABFC40DDCC8824814F80A72");
......@@ -22,20 +22,17 @@ tar -C /var/tmp/build -xf webrtc-sources-[% c('version') %].tar.gz
builddir=/var/tmp/build/[% project %]/src
cd $builddir
export GYP_CROSSCOMPILE=1
export GYP_DEFINES="OS=[% c("var/webrtc/os") %] target_arch=[% c("var/webrtc/arch") %]"
# Do not use bundled utilities.
GYP_DEFINES+=" clang=0 host_clang=0 use_sysroot=0"
GYP_DEFINES+=" linux_use_bundled_gold=0 linux_use_gold_flags=0 linux_use_bundled_binutils=0"
# Avoid some dependencies. Some of these don't seem to work fully; for
# example even with use_alsa=0 we need libasound2-dev.
GYP_DEFINES+=" use_x11=0 use_gtk=0 use_gconf=0 use_alsa=0 use_pulseaudio=0 use_libpci=0 include_internal_audio_device=0 enabled_libjingle_device_manager=0"
# examples and tests also bring in dependencies.
GYP_DEFINES+=" include_examples=0 include_tests=0"
# embedded=1 is supposed to turn of various features; see
# https://bugs.chromium.org/p/chromium/issues/detail?id=318413.
GYP_DEFINES+=" embedded=1"
GYP_DEFINES+=" werror="
patch -p1 < $rootdir/webrtc-linux.patch
# First, build a copy of GN, rather than use the prebuilt copy in buildtools/linux64.
cd tools/gn
# __STDC_FORMAT_MACROS is needed for a definition of PRIxPTR from inttypes.h.
CXXFLAGS=-D__STDC_FORMAT_MACROS=1 LDFLAGS=-latomic ./bootstrap/bootstrap.py --no-rebuild --no-clean
cd ../..
# This is where bootstrap.py stashes the built gn.
GN="$PWD/out_bootstrap/gn"
[% IF c("var/linux") -%]
export CC=gcc
export CXX=g++
......@@ -48,16 +45,31 @@ GYP_DEFINES+=" werror="
export CXXFLAGS=-m32
export LDFLAGS=-m32
[% END -%]
JAVA_HOME=/usr/lib/jvm/default-java webrtc/build/gyp_webrtc.py
ninja -C out/Release
# Run ninja once more, without include_tests=0, in order to build just the
# FakeAudioCaptureModule that go-webrtc uses.
GYP_DEFINES="$(echo "$GYP_DEFINES" | sed -e 's/include_tests=0//g')"
JAVA_HOME=/usr/lib/jvm/default-java webrtc/build/gyp_webrtc.py
ninja -C out/Release obj/webrtc/api/test/peerconnection_unittests.fakeaudiocapturemodule.o
export GN_ARGS=""
# For a list of all possible GN args, do "gn gen out/Release; gn args --list out/Release".
# https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/cross_compiles.md
GN_ARGS+=" target_os=\"linux\" target_cpu=\"[% IF c("var/linux-i686") %]x86[% ELSE %]x64[% END %]\""
# Not debug.
GN_ARGS+=" is_debug=false"
# There are warnings from unused returns.
GN_ARGS+=" treat_warnings_as_errors=false"
# Build static libraries.
GN_ARGS+=" is_component_build=false"
# Do not use bundled utilities.
GN_ARGS+=" is_clang=false use_sysroot=false"
GN_ARGS+=" gold_path=\"$INSTDIR/binutils/bin\""
# Make extra sure we don't use bundled binutils.
rm -rf third_party/binutils/Linux_*
# Avoid some dependencies.
GN_ARGS+=" use_ozone=true use_gconf=false"
GN_ARGS+=" rtc_include_opus=false rtc_include_ilbc=false rtc_include_internal_audio_device=false rtc_include_pulse_audio=false"
# Included for "field_trial" below. Maybe "fieldtrial_testing_like_official_build" could help here?
#GN_ARGS+=" rtc_include_tests=false"
rm -rf out/Release
"$GN" gen out/Release --args="$GN_ARGS"
ninja -C out/Release webrtc field_trial metrics_default pc_test_utils
# https://github.com/keroserene/go-webrtc/issues/23#issuecomment-175312648
# dump_syms_regtest.o is actually an executable, not an object file. If not
# excluded, it results in the error:
# libwebrtc-linux-386-magic.a(dump_syms_regtest.o): unsupported ELF file type 2
ar crs libwebrtc-magic.a $(find . -name '*.o' -not -name '*.main.o' -not -name 'dump_syms_regtest.o' | sort)
......
......@@ -4,7 +4,7 @@ remote_docker: 1
filename: 'webrtc-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
var:
webrtc_tag: f33698296719f956497d2dbff81b5080864a8804
webrtc_tag: c279861207c5b15fc51069e96595782350e0ac12
input_files:
- project: docker-image
......@@ -17,6 +17,8 @@ input_files:
- project: binutils
name: binutils
enable: '[% c("var/linux") %]'
- filename: webrtc-linux.patch
enable: '[% c("var/linux") %]'
targets:
linux:
......@@ -28,16 +30,17 @@ targets:
dockerbuild: "[% pc('docker-image', 'pre') %]"
sort_deps: 0
arch_deps:
- default-jre-headless
- default-jdk
- lib32asound2-dev
- lib64expat1
- libexpat1-dev:i386
- libglib2.0-dev:i386
- libgtk2.0-dev:i386
- libudev-dev:i386
- libx11-dev:i386
- libxext-dev:i386
- libxrandr-dev:i386
- lib32stdc++6
- pkg-config
- hardening-wrapper
webrtc:
arch: ia32
......@@ -46,14 +49,15 @@ targets:
linux-x86_64:
var:
arch_deps:
- default-jre-headless
- default-jdk
- libasound2-dev
- libexpat1-dev
- libglib2.0-dev
- libgtk2.0-dev
- libudev-dev
- libx11-dev
- libxext-dev
- libxrandr-dev
- pkg-config
webrtc:
arch: x64
lib_arch: amd64
......@@ -70,10 +74,7 @@ steps:
# https://webrtc.org/native-code/development/
tar xf [% c('input_files_by_name/depot_tools') %]
export PATH="$rootdir/depot_tools:$PATH"
# GYP_CROSSCOMPILE=1 and GYP_DEFINES="use_x11=0" prevent probing for certain dependencies.
# Use --no-history because the whole checkout with history is about 12 GB.
export GYP_CROSSCOMPILE=1
export GYP_DEFINES="use_x11=0"
# JAVA_HOME is needed in a hook for libjingle. The readlink line tries to find the current JRE.
# default-java comes from the package default-jdk-headless.
export JAVA_HOME=/usr/lib/jvm/default-java
......
From ebc1773a92884bec7d93274b2d729ccf76050197 Mon Sep 17 00:00:00 2001
From: David Fifield <fifield@eecs.berkeley.edu>
Date: Wed, 22 Mar 2017 09:53:07 -0400
Subject: [PATCH] Disable some settings in build_overrides.
---
build_overrides/build.gni | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
index af4924d4c..ffaafdebc 100644
--- a/build_overrides/build.gni
+++ b/build_overrides/build.gni
@@ -14,7 +14,7 @@ mac_sdk_min_build_override = "10.11"
enable_java_templates = true
# Some non-Chromium builds don't use Chromium's third_party/binutils.
-linux_use_bundled_binutils_override = true
+linux_use_bundled_binutils_override = false
# Variable that can be used to support multiple build scenarios, like having
# Chromium specific targets in a client project's GN file etc.
--
2.12.1
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment