[tor-bugs] #19001 [Obfuscation/Snowflake]: Tor Browser with Snowflake

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Jul 5 23:21:55 UTC 2016


#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 arlolra):

 In order to help out with https://github.com/keroserene/go-
 webrtc/issues/38,
 dcf pushed https://gitweb.torproject.org/user/dcf/tor-browser-
 bundle.git/commit/?h=snowflake&id=4c9dae0f2242361b71f74d0533ee5780fe60dbb8,
 and built https://people.torproject.org/~dcf/pt-
 bundle/snowflake/20160608-6.0a5-98487434e0/

 The bundles there work fine, but using the magic to build go-webrtc (and
 thus, help out in the above) runs afoul.

 go-webrtc has moved ahead now, so first check out
 3a7f6aed75357dc85a7438af10b12c4177cf180f (or, better
 5e9969c3bf5e63df086566404241c06279e5d56a).

 Then, because the headers might not be what's expected (see
 https://gitweb.torproject.org/user/dcf/tor-browser-
 bundle.git/tree/gitian/descriptors/linux/gitian-pluggable-
 transports.yml?h=snowflake&id=6cd7c411e8910d75f5ef18e86bbe682f943aa229#n341),
 checkout 8ccf77319e08b86330c0e5b195697fd738c80931 in webrtc.git, and copy
 them over again.

 Now, I'd expect it to work.  But, linux 386 yields,

 {{{
 # github.com/keroserene/go-webrtc
 /tmp/go-build151695054/github.com/keroserene/go-
 webrtc/_obj/peerconnection.cc.o: In function `CGO_DeserializeSDP':
 ./peerconnection.cc:344: undefined reference to
 `webrtc::JsepSessionDescription::JsepSessionDescription(std::string
 const&)'
 ./peerconnection.cc:347: undefined reference to
 `webrtc::SdpDeserialize(std::string const&,
 webrtc::JsepSessionDescription*, webrtc::SdpParseError*)'
 /tmp/go-build151695054/github.com/keroserene/go-
 webrtc/_obj/peerconnection.cc.o: In function `CGO_AddIceCandidate':
 ./peerconnection.cc:386: undefined reference to
 `webrtc::CreateIceCandidate(std::string const&, int, std::string const&,
 webrtc::SdpParseError*)'
 /tmp/go-build151695054/github.com/keroserene/go-
 webrtc/_obj/peerconnection.cc.o: In function `Peer::Initialize()':
 ./peerconnection.cc:54: undefined reference to
 `rtc::Thread::SetName(std::string const&, void const*)'
 ./peerconnection.cc:55: undefined reference to
 `rtc::Thread::SetName(std::string const&, void const*)'
 collect2: error: ld returned 1 exit status
 }}}

 and amd64,

 {{{
 # _/home/david/branches/go-webrtc
 /usr/bin/ld: skipping incompatible ./lib/libwebrtc-linux-amd64-magic.a
 when searching for -lwebrtc-linux-amd64-magic
 /usr/bin/ld: skipping incompatible ./lib/libwebrtc-linux-amd64-magic.a
 when searching for -lwebrtc-linux-amd64-magic
 /usr/bin/ld: skipping incompatible ./lib/libwebrtc-linux-amd64-magic.a
 when searching for -lwebrtc-linux-amd64-magic
 /usr/bin/ld: cannot find -lwebrtc-linux-amd64-magic
 collect2: error: ld returned 1 exit status
 FAIL    _/home/david/branches/go-webrtc [build failed]
 }}}

 Maybe this has something to do with what's said above,

 > libwebrtc needs a newer GCC than Debian wheezy has, so ​I copied code
 from the ​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.

 Another thing I noticed is that `gclient sync -r hash` does something
 funky with master if you aren't already on `hash`.  What I've normally
 been doing is `gclient sync && cd src/ && git checkout hash && cd .. &&
 gclient sync -r hash`, but maybe that was just me.

 It was also suggested that it might be because go-webrtc sets
 `_GLIBCXX_USE_CXX11_ABI=0` but playing with that didn't produce any useful
 results.

 Anyways, just documenting for posterity.

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


More information about the tor-bugs mailing list