[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #19001 [Obfuscation/Snowflake]: Tor Browser with Snowflake
#19001: Tor Browser with Snowflake
-----------------------------------+---------------------
Reporter: dcf | Owner:
Type: project | Status: new
Priority: Medium | Milestone:
Component: Obfuscation/Snowflake | Version:
Severity: Normal | Resolution:
Keywords: | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
-----------------------------------+---------------------
Comment (by dcf):
First working bundles with Snowflake, for linux only:
* https://people.torproject.org/~dcf/pt-
bundle/snowflake-20160509-5a801bf207/
* https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/log/?h=snowflake&id=5a801bf2077e55c7b0dc35faed101a6c3d5375fb
Overall diff so far:
* https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/diff/?h=snowflake&id=5a801bf2077e55c7b0dc35faed101a6c3d5375fb&id2=a00e9b4617c65e8a09eb7584ebe92aa76df24ec3
To run,
1. Open another browser to
http://keroserene.net/snowflake/snowflake.html.
2. Run ./start-tor-browser.desktop
3. Say yes to "Does your Internet Service Provider (ISP) block or
otherwise censor connections to the Tor Network?" and select snowflake
from the menu.
If all goes well, after a few seconds the other browser should turn green.
In order to build it yourself, you have to do
{{{
git clone -b snowflake https://git.torproject.org/user/dcf/tor-browser-
bundle.git
cd tor-browser-bundle/gitian
build nightly TORSOCKS=
}}}
You'll need to prepared the gitian-builder directory and everything else
according to [[doc/TorBrowser/Hacking]] and
[[doc/TorBrowser/BuildingWithGitian]]. I did not try targets other than
nightly.
Explanations of some noteworthy changes:
* I cherry-picked [[attachment:0001-Upgrade-go-
to-1.6.2.patch:ticket:18333|the Go 1.6 patch]] from #18333 because arlolra
said there is a dependency on Go 1.5 having to do with SRCDIR.
* I [https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/tree/gitian/fetch-
inputs.sh?h=snowflake&id=235bdbc03d29e9e84e22f9fa6212677179293bc0#n308
tried using] `--no-history` when running depot_tools' `fetch` and
`gclient`, but it doesn't seem to work because the directories are 12 GB
and have history.
* libwebrtc needs a newer GCC than Debian wheezy has, so
[https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/tree/gitian/descriptors/linux/gitian-pluggable-
transports.yml?h=snowflake&id=235bdbc03d29e9e84e22f9fa6212677179293bc0#n104
I copied code] from the [https://gitweb.torproject.org/user/dcf/tor-
browser-bundle.git/tree/gitian/descriptors/linux/gitian-
firefox.yml?h=snowflake&id=235bdbc03d29e9e84e22f9fa6212677179293bc0#n57
firefox descriptor] to use our self-built GCC. I also tried building
libwebrtc with Clang, which worked, but I couldn't get the resulting
library to link with go-webrtc and Cgo.
* At https://github.com/keroserene/go-webrtc/issues/23#issue-123390551,
serene said that it was necessary to create a custom ninja file, but I
didn't find it necessary (nor did I know what to put in the custom file).
* [https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/tree/gitian/descriptors/linux/gitian-pluggable-
transports.yml?h=snowflake&id=235bdbc03d29e9e84e22f9fa6212677179293bc0#n327
The GYP_DEFINES] are a result of trial and error and cribbing from the
Debian [https://packages.debian.org/jessie/chromium chromium-browser]
source package.
* I [https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/tree/gitian/descriptors/linux/gitian-pluggable-
transports.yml?h=snowflake&id=235bdbc03d29e9e84e22f9fa6212677179293bc0#n329
had to install Java and set JAVA_HOME] to get past what seems to be a
trivial step in webrtc/build/gyp_webrtc.
* For constructing libwebrtc-magic.a,
[https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/tree/gitian/descriptors/linux/gitian-pluggable-
transports.yml?h=snowflake&id=235bdbc03d29e9e84e22f9fa6212677179293bc0#n332
I used] the `ar crs` command from [https://github.com/keroserene/go-
webrtc/blob/3a7f6aed75357dc85a7438af10b12c4177cf180f/build.sh#L68-L69 go-
webrtc's build.sh], but I had to exclude an additional file,
dump_syms_regtest.o.
* I [https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/tree/gitian/descriptors/linux/gitian-pluggable-
transports.yml?h=snowflake&id=235bdbc03d29e9e84e22f9fa6212677179293bc0#n354
had to disable] `_GLIBCXX_USE_CXX11_ABI=0` when building go-webrtc,
because the prebuilt libwebrtc-magic.a is built an older default
`_GLIBCXX_USE_CXX11_ABI=0`, but the Gitian-built libwebrtc-magic.a is
built with the new default which is `_GLIBCXX_USE_CXX11_ABI=1`.
* I [https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/commit/?h=snowflake&id=f2a142866932528549b525b0e31f8ecdb3a50a71
used an old version] of snowflake, [https://gitweb.torproject.org
/pluggable-
transports/snowflake.git/log/?id=598e2a3bfb1cd8effab4c1b945035c870be16bff
598e2a3bfb1cd8effab4c1b945035c870be16bff], because that's the parent of
the bad commit mentioned in #18653. It might not be the same problem, but
I couldn't get snowflake master to bootstrap past 10%.
* I [https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/tree/gitian/verify-
tags.sh?h=snowflake&id=235bdbc03d29e9e84e22f9fa6212677179293bc0#n159
didn't know what to do about webrtc] in verify-tags.sh, since the `gclient
sync` step clones a bunch of other repos within itself.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/19001#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs