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
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
# 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:
+1 −1
Original line number Diff line number Diff line
# 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

+1 −1
Original line number Diff line number Diff line
@@ -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");
+35 −23
Original line number Diff line number Diff line
@@ -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)

+9 −8
Original line number Diff line number Diff line
@@ -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
Loading