#16650: Set up domain fronting for BridgeDB -------------------------------------------------+------------------------- Reporter: isis | Owner: isis Type: enhancement | Status: new Priority: Medium | Milestone: Component: Obfuscation/BridgeDB | Version: Severity: Normal | Resolution: Keywords: bridgedb-dist, bridgedb-usability, | Actual Points: tbb-wants, usability, bridge-distribution, | TorCoreTeam201608 | Parent ID: | Points: Reviewer: | Sponsor: -------------------------------------------------+-------------------------
Comment (by isis): I tried to use Debian stable's go, installed in #21772, in the following manner: {{{ #!/usr/bin/env bash #GOROOT=/home/bridgedb/go GOPATH=/home/bridgedb/go/ GO_BINARY=`which go` MEEK_REPO=https://git.torproject.org/pluggable-transports/meek PTLIB_REPO=https://git.torproject.org/pluggable-transports/goptlib CRYPTO_REPO=https://go.googlesource.com/crypto CONTEXT_REPO=https://golang.org/x/net/context if test -z "$GO_BINARY" ; then printf "It seems Go is not installed! Exiting...\n" exit 2 fi PT_PATH=${GO_PATH}/src/git.torproject.org/pluggable-transports X_PATH=${GO_PATH}/src/golang.org/x for path in "$PT_PATH" "$X_PATH" ; do if ! test -d "$path" ; then mkdir -p "$path" fi done cd "$PT_PATH" for repo in "$MEEK_REPO" "$PTLIB_REPO" ; do git clone $repo done # For some reason, it expects the goptlib repo to live in a directory # called "goptlib.git" mv goptlib goptlib.git cd "$X_PATH" git clone "$CRYPTO_REPO" mkdir net cd net git clone "$CONTEXT_REPO" # In /home/bridgedb/go/src/golang.org/x/crypto/acme/autocert/autocert.go # and /home/bridgedb/go/src/golang.org/x/crypto/acme/autocert/cache.go # and /home/bridgedb/go/src/golang.org/x/crypto/acme/autocert/renewal.go # and /home/bridgedb/go/src/golang.org/x/crypto/acme/acme.go # you will need to change the line in `import(...)` which says # # "context" # # to instead be: # # context "golang.org/x/net/context" # # because Debian's go version is extremely old and package which used # to be at golang.org/x/net/conext is now top-level in the standard library. # # Next, in /home/bridgedb/go/src/golang.org/x/crypto/acme/acme.go # you will need to add in the `import(...) the following: # # "golang.org/x/crypto/ssh/keys" # # and then, in that same file, change all instances of "crypto.Signer" to # "keys.Signer". }}} This is all because Debian's go version is 1.3.3. These crypto libraries all expect at least go1.7. I'm just going to install gotools the proper way, in bridgedb's home directory. I know a lot of Debian people are going to complain about this, but I'm sorry, this is insane and a waste of time. I can build meek on my laptop just fine, with `go build`, and I should be able to do the same on the server. -- Ticket URL: <https://trac.torproject.org/projects/tor/ticket/16650#comment:10> Tor Bug Tracker & Wiki <https://trac.torproject.org/> The Tor Project: anonymity online _______________________________________________ tor-bugs mailing list tor-bugs@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs