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

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Jul 14 22:58:15 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 dcf):

 I've been working on getting the mac build to work; however I'm having
 trouble and it doesn't work yet. I pushed some work-in-progress changes
 here:
   https://gitweb.torproject.org/user/dcf/tor-browser-
 bundle.git/diff/?h=snowflake&id=dcf12df6630b519abecf86e58467aad151816083&id2=39a46f2b37573c3824e7bab8719d2bcd90f7af77

 {{{
 + echo "print(\"$SDKROOT\")" > build/mac/find_sdk.py
 }}}
 This line prevents an error when the build system runs `find_sdk.py`,
 which tries to guess the Mac OS X SDK version of the ''build'' system;
 i.e., it does the wrong thing when cross-compiling:
 {{{
 $ webrtc/build/gyp_webrtc
 Updating projects from gyp files...
 Traceback (most recent call last):
   File "./build/mac/find_sdk.py", line 91, in <module>
     raise Exception("This script only runs on Mac")
 Exception: This script only runs on Mac
 gyp: Call to 'python ./build/mac/find_sdk.py 10.10' returned exit status 1
 while in all.gyp.
 }}}

 {{{
 +  sed -i -e 's#\$(SDKROOT)#/usr/lib/apple/SDKs/MacOSX10.6.sdk#g'
 out/Release/obj/webrtc/tools/*.ninja
 }}}
 For some reason, the `$(SDKROOT)` variable doesn't get properly
 substituted in these files, so I tried replacing it with a hardcoded value
 to get the build to at least progress. With this line, the error is:
 {{{
 $ ninja -C out/Release/
 ninja: Entering directory `out/Release/'
 ninja: error: obj/webrtc/tools/psnr_ssim_analyzer.ninja:43: bad $-escape
 (literal $ must be written as $$)
     $(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework
     ^ near here
 }}}

 I first tried building using the usual `/home/debian/build/apple-
 osx/bin/i686-apple-darwin11-g++`. However that version of g++ appears to
 be too old to support the flags that Chromium assumes:
 {{{
 $ ninja -C out/Release/
 ninja: Entering directory `out/Release/'
 [1/1996] CXX
 obj/third_party/protobuf/src/google/protobuf/protobuf_lite.wire_format_lite.o
 FAILED:
 obj/third_party/protobuf/src/google/protobuf/protobuf_lite.wire_format_lite.o
 /home/debian/build/apple-osx/bin/i686-apple-darwin11-g++ -MMD -MF
 obj/third_party/protobuf/src/google/protobuf/protobuf_lite.wire_format_lite.o.d
 -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2
 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -DCHROMIUM_BUILD
 -DUSE_AURA=1 -DUSE_OZONE=1 -DUSE_LIBJPEG_TURBO=1 -DENABLE_ONE_CLICK_SIGNIN
 -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DENABLE_CONFIGURATION_POLICY
 -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DDONT_EMBED_BUILD_METADATA
 -DFIELDTRIAL_TESTING_ENABLED -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1
 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_SESSION_SERVICE=1
 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1
 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1
 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1
 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1
 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA
 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL
 -DLIBPROTOBUF_EXPORTS -DPROTOBUF_USE_DLLS -DGOOGLE_PROTOBUF_NO_RTTI
 -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DUSE_LIBPCI=1 -DUSE_OPENSSL=1
 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -Igen
 -I../../third_party/protobuf -I../../third_party/protobuf/src -fstack-
 protector --param=ssp-buffer-size=4 -Wno-unused-local-typedefs   -c
 ../../third_party/protobuf/src/google/protobuf/wire_format_lite.cc -o
 obj/third_party/protobuf/src/google/protobuf/protobuf_lite.wire_format_lite.o
 cc1plus: error: unrecognized command line option "-Wno-unused-local-
 typedefs"
 }}}
 So I tried building it with clang, as in #18331.

 Now the problem I'm having is a lack of a stdlib with C++11 support
 (features such as `nullptr_t`) for the x86_64-apple-darwin10 arch:
 {{{
 [3/1996] CXX
 obj/webrtc/common_audio/resampler/common_audio_sse2.sinc_resampler_sse.o
 FAILED:
 obj/webrtc/common_audio/resampler/common_audio_sse2.sinc_resampler_sse.o
 /home/debian/build/clang/bin/clang++ -MMD -MF
 obj/webrtc/common_audio/resampler/common_audio_sse2.sinc_resampler_sse.o.d
 -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -D__ASS
 LE_ONE_CLICK_SIGNIN -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1
 -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1
 -DDONT_EMBED_BUILD_METADATA -DFIELDTRI
 _AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_SPELLCHECK=1
 -DUSE_BROWSER_SPELLCHECKER=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1
 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=
 _LOCAL -DEXPAT_RELATIVE_PATH -DWEBRTC_POSIX -DWEBRTC_MAC -DUSE_LIBPCI=1
 -DUSE_OPENSSL=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG
 -DNVALGRIND -DDYNAMIC_ANN
 ripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default
 -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-
 inconsistent-missing-override
 msse2 -std=gnu++11 -stdlib=libc++ -mmacosx-version-min=10.6 -target x86_64
 -apple-darwin10 -isysroot /home/debian/build/MacOSX10.7.sdk
 -I/home/debian/build/MacOSX10.7.sdk/
 /sinc_resampler_sse.cc -o
 obj/webrtc/common_audio/resampler/common_audio_sse2.sinc_resampler_sse.o
 In file included from
 ../../webrtc/common_audio/resampler/sinc_resampler_sse.cc:14:
 In file included from
 ../../webrtc/common_audio/resampler/sinc_resampler.h:18:
 ../../webrtc/base/scoped_ptr.h:331:19: error: no type named 'nullptr_t' in
 namespace 'std'
   scoped_ptr(std::nullptr_t) : impl_(nullptr) {}
              ~~~~~^
 ../../webrtc/base/scoped_ptr.h:368:30: error: no type named 'nullptr_t' in
 namespace 'std'
   scoped_ptr& operator=(std::nullptr_t) {
                         ~~~~~^
 ../../webrtc/base/scoped_ptr.h:380:17: error: no member named 'move' in
 namespace 'std'
     return std::move(*this);
            ~~~~~^
 ../../webrtc/base/scoped_ptr.h:491:19: error: no type named 'nullptr_t' in
 namespace 'std'
   scoped_ptr(std::nullptr_t) : impl_(nullptr) {}
              ~~~~~^
 ../../webrtc/base/scoped_ptr.h:504:30: error: no type named 'nullptr_t' in
 namespace 'std'
   scoped_ptr& operator=(std::nullptr_t) {
                         ~~~~~^
 ../../webrtc/base/scoped_ptr.h:516:17: error: no member named 'move' in
 namespace 'std'
     return std::move(*this);
            ~~~~~^
 6 errors generated.
 }}}

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


More information about the tor-bugs mailing list