[tor-bugs] #25483 [Obfuscation/Snowflake]: Windows reproducible build of snowflake

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Mar 14 08:09:56 UTC 2018


#25483: Windows reproducible build of snowflake
-----------------------------------+------------------------
 Reporter:  arlolra                |          Owner:  (none)
     Type:  defect                 |         Status:  new
 Priority:  Medium                 |      Milestone:
Component:  Obfuscation/Snowflake  |        Version:
 Severity:  Normal                 |     Resolution:
 Keywords:                         |  Actual Points:
Parent ID:  #19001                 |         Points:
 Reviewer:                         |        Sponsor:
-----------------------------------+------------------------
Changes (by gk):

 * cc: gk (added)


Comment:

 Replying to [ticket:25483 arlolra]:
 > Breaking this out from
 https://trac.torproject.org/projects/tor/ticket/19001#comment:36, where
 dcf wrote,
 >
 > > I pushed some preliminary code for getting started with a windows
 reproducible build.
 > >   https://gitweb.torproject.org/user/dcf/tor-browser-bundle.git/log/?h
 =snowflake-windows&id=0f48dc9e1904fa0643576fc8dcf3db50a4d2f959
 > >
 > > It doesn't work yet; after `./mkbundle-windows.sh versions.alpha`, it
 eventually fails with:
 > > {{{
 > > + /home/ubuntu/build/webrtc/src/out_bootstrap/gn gen out/Release '--
 args= target_os="win" target_cpu="x86" is_debug=false
 treat_warnings_as_errors=false is_component_build=false is_clang=true
 use_sysroot=false clang_use_chrome_plugins=false
 clang_base_path="/home/ubuntu/build/clang" rtc_include_opus=false
 rtc_include_ilbc=false rtc_include_internal_audio_device=false
 rtc_include_tests=true'
 > > ERROR at //build/config/BUILDCONFIG.gn:239:3: Assertion failed.
 > >   assert(target_os == host_os, "Win cross-compiles only work on win
 hosts.")
 > >   ^-----
 > > Win cross-compiles only work on win hosts.
 > > }}}
 > > But at this point one can ssh into the build VM and start debugging
 the build failures.
 >
 > Some further notes from what we've discovered so far.
 >
 > *
 https://chromium.googlesource.com/chromium/src/+/master/docs/win_cross.md
 says that we need to add `target_os = ['win']` to our `.gclient` file
 before calling `gclient sync` to get some additional deps.
 >
 > *
 https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/master/win_toolchain/README.md
 says that Googlers have access to the necessary toolchain, but we don't.

 Ugh. So, you need to use clang to cross-compile the webrtc parts? We want
 to have this, too, for Firefox as Stylo needs that but we won't go the
 road Google takes but use a clang/mingw-w64 approach. See:
 https://bugzilla.mozilla.org/show_bug.cgi?id=1390583 where we basically
 got this working.

 I am not thrilled to have two different clang-based approaches in our
 build setup for Windows. That said, what are the options for not having to
 pull in all the Chromium stuff to build the WebRTC parts we need? I can't
 imagine that everyone wanting to have that lib is always building the
 whole Chromium thing.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25483#comment:6>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list