commit a08b546605d13d82e6f664bf8e2d8b3caf61327c Author: Shondoit Walker shondoit@gmail.com Date: Wed Jul 25 22:18:19 2012 +0200
Add option for automatic build of obfsproxy TBBs.
Introduces the flag USE_OBFSPROXY. When set to 1, an obfsproxy bundle will be build. --- build-scripts/linux-alpha.mk | 34 +++++++++++++++++++++++++++++++++- build-scripts/osx-alpha.mk | 31 ++++++++++++++++++++++++++++++- build-scripts/windows-alpha.mk | 32 +++++++++++++++++++++++++++++--- 3 files changed, 92 insertions(+), 5 deletions(-)
diff --git a/build-scripts/linux-alpha.mk b/build-scripts/linux-alpha.mk index 96d715d..28cfa40 100644 --- a/build-scripts/linux-alpha.mk +++ b/build-scripts/linux-alpha.mk @@ -82,6 +82,13 @@ TOR_OPTS=--with-openssl-dir=$(BUILT_DIR) --with-zlib-dir=$(BUILT_DIR) --with-lib build-pidgin: echo "We're not building pidgin yet!"
+build-obfsproxy: $(OBFSPROXY_DIR) +ifeq ($(USE_OBFSPROXY),1) + cd $(OBFSPROXY_DIR) && libevent_CFLAGS=-I$(BUILT_DIR)/include libevent_LIBS="-L$(BUILT_DIR)/lib -levent" libcrypto_CFLAGS=-I$(BUILT_DIR)/include/openssl libcrypto_LIBS="-L$(BUILT_DIR)/lib -lssl -lcrypto" ./configure --prefix=$(BUILT_DIR) + cd $(OBFSPROXY_DIR) && make + cd $(OBFSPROXY_DIR) && make install +endif + build-firefox: config/dot_mozconfig $(FIREFOX_DIR) cp config/dot_mozconfig $(FIREFOX_DIR)/mozconfig cp branding/* $(FIREFOX_DIR)/browser/branding/official @@ -94,7 +101,7 @@ copy-firefox: mkdir -p $(BUILD_DIR)/Firefox cp -r $(FIREFOX_DIR)/obj-$(ARCH_TYPE)-*/dist/firefox/* $(BUILD_DIR)/Firefox
-build-all-binaries: source-dance build-zlib build-openssl build-libpng build-qt build-vidalia build-libevent build-tor build-firefox copy-firefox +build-all-binaries: source-dance build-zlib build-openssl build-libpng build-qt build-vidalia build-libevent build-tor build-firefox copy-firefox build-obfsproxy echo "If we're here, we've done something right."
## Location of compiled libraries @@ -115,12 +122,17 @@ VIDALIA=$(BUILT_DIR)/usr/local/bin/vidalia ## Someday, this will be our custom Firefox FIREFOX=$(BUILD_DIR)/Firefox PIDGIN=$(COMPILED_BINS)/pidgin +OBFSPROXY=$(COMPILED_BINS)/obfsproxy
## Location of utility applications WGET:=$(shell which wget)
## Destination for the generic bundle +ifeq ($(USE_OBFSPROXY),1) +DEST=generic-obfsproxy-bundle +else DEST=generic-bundle +endif
## Name of the bundle NAME=tor-browser @@ -131,6 +143,7 @@ DISTDIR=tbbl-alpha-dist ## Version and name of the compressed bundle (also used for source) VERSION=$(RELEASE_VER)-$(BUILD_NUM)-dev DEFAULT_COMPRESSED_BASENAME=tor-browser-gnu-linux-$(ARCH_TYPE)-$(VERSION)- +OBFS_COMPRESSED_BASENAME=tor-obfsproxy-browser-gnu-linux-$(ARCH_TYPE)-$(VERSION)- IM_COMPRESSED_BASENAME=tor-im-browser-gnu-linux-$(VERSION)- DEFAULT_COMPRESSED_NAME=$(DEFAULT_COMPRESSED_BASENAME)$(VERSION) IM_COMPRESSED_NAME=$(IM_COMPRESSED_BASENAME)$(VERSION) @@ -138,8 +151,12 @@ IM_COMPRESSED_NAME=$(IM_COMPRESSED_BASENAME)$(VERSION) ifeq ($(USE_PIDGIN),1) COMPRESSED_NAME=$(IM_COMPRESSED_NAME) else +ifeq ($(USE_OBFSPROXY),1) +COMPRESSED_NAME=$(OBFS_COMPRESSED_NAME) +else COMPRESSED_NAME=$(DEFAULT_COMPRESSED_NAME) endif +endif
## Extensions to install by default DEFAULT_EXTENSIONS=torbutton.xpi noscript.xpi httpseverywhere.xpi @@ -261,6 +278,9 @@ install-binaries: # Vidalia cp $(VIDALIA) $(APPDIR) cp $(TOR) $(APPDIR) +ifeq ($(USE_OBFSPROXY),1) + cp $(OBFSPROXY) $(APPDIR) +endif
## Fixup ## Collect up license files @@ -274,6 +294,10 @@ install-docs: cp ../changelog.linux-2.3 $(DOCSDIR)/changelog # This should be updated to be more generic (version-wise) and more Linux specific cp ../README.LINUX-2.3 $(DOCSDIR)/README-TorBrowserBundle +ifeq ($(USE_OBFSPROXY),1) + mkdir -p $(DOCSDIR)/Obfsproxy + cp $(OBFSPROXY_DIR)/LICENSE $(DOCSDIR)/Obfsproxy +endif
## Copy over Firefox install-firefox: @@ -304,10 +328,18 @@ endif ifeq ($(USE_PIDGIN),1) cp config/vidalia.conf.ff+pidgin-linux $(DEST)/Data/Vidalia/vidalia.conf else +ifeq ($(USE_OBFSPROXY),1) + cp config/alpha/vidalia.conf.ff-obfsproxy-linux $(DEST)/Data/Vidalia/vidalia.conf +else cp config/alpha/vidalia.conf.ff-linux $(DEST)/Data/Vidalia/vidalia.conf endif +endif ## Configure Tor +ifeq ($(USE_OBFSPROXY),1) + cp config/alpha/torrc-obfsproxy-linux $(DEST)/Data/Tor/torrc +else cp config/alpha/torrc-linux $(DEST)/Data/Tor/torrc +endif cp $(TOR_DIR)/src/config/geoip $(DEST)/Data/Tor/geoip chmod 700 $(DEST)/Data/Tor
diff --git a/build-scripts/osx-alpha.mk b/build-scripts/osx-alpha.mk index 4c6a1a4..9f1319d 100644 --- a/build-scripts/osx-alpha.mk +++ b/build-scripts/osx-alpha.mk @@ -117,6 +117,13 @@ TOR_CFLAGS="-arch $(ARCH_TYPE) -I$(BUILT_DIR)/include $(MIN_VERSION) $(CF_MIN_VE TOR_LDFLAGS="-L$(BUILT_DIR)/lib $(LD_MIN_VERSION)" TOR_OPTS=--enable-static-openssl --enable-static-libevent --with-openssl-dir=$(BUILT_DIR)/lib --with-libevent-dir=$(BUILT_DIR)/lib --disable-dependency-tracking $(CC)
+build-obfsproxy: $(OBFSPROXY_DIR) +ifeq ($(USE_OBFSPROXY),1) + cd $(OBFSPROXY_DIR) && libevent_CFLAGS=-I$(BUILT_DIR)/include libevent_LIBS="-L$(BUILT_DIR)/lib -levent" libcrypto_CFLAGS=-I$(BUILT_DIR)/include/openssl libcrypto_LIBS="-L$(BUILT_DIR)/lib -lssl -lcrypto" ./configure --prefix=$(BUILT_DIR) + cd $(OBFSPROXY_DIR) && make + cd $(OBFSPROXY_DIR) && make install +endif + build-firefox: $(FIREFOX_DIR) config/mozconfig-osx-$(ARCH_TYPE) cp config/mozconfig-osx-$(ARCH_TYPE) $(FIREFOX_DIR)/mozconfig cp branding/* $(FIREFOX_DIR)/browser/branding/official @@ -127,7 +134,7 @@ copy-firefox: -rm -rf $(BUILD_DIR)/TorBrowser.app cp -r $(FIREFOX_DIR)/obj*/dist/*.app $(BUILD_DIR)/TorBrowser.app
-build-all-binaries: build-zlib build-openssl build-vidalia build-libevent build-tor build-firefox +build-all-binaries: build-zlib build-openssl build-vidalia build-libevent build-tor build-firefox build-obfsproxy echo "If we're here, we've done something right."
## Location of compiled libraries @@ -147,12 +154,17 @@ TOR=$(COMPILED_BINS)/tor ## Someday, this will be our custom Firefox FIREFOX=$(BUILD_DIR)/TorBrowser.app PIDGIN=$(COMPILED_BINS)/pidgin +OBFSPROXY=$(COMPILED_BINS)/obfsproxy
## Location of utility applications WGET:=$(shell which wget)
## Destination for the generic bundle +ifeq ($(USE_OBFSPROXY),1) +DEST=generic-obfsproxy-bundle +else DEST=generic-bundle +endif
## Name of the bundle NAME=TorBrowser @@ -163,6 +175,7 @@ DISTDIR=tbbosx-alpha-dist ## Version and name of the compressed bundle (also used for source) VERSION=$(RELEASE_VER)-$(BUILD_NUM) DEFAULT_COMPRESSED_BASENAME=TorBrowser-$(VERSION)-osx-$(ARCH_TYPE)- +OBFS_COMPRESSED_BASENAME=TorBrowser-Obfsproxy-$(VERSION)-osx-$(ARCH_TYPE)- IM_COMPRESSED_BASENAME=TorBrowser-IM-$(VERSION)- DEFAULT_COMPRESSED_NAME=$(DEFAULT_COMPRESSED_BASENAME) IM_COMPRESSED_NAME=$(IM_COMPRESSED_BASENAME)$(VERSION) @@ -170,8 +183,12 @@ IM_COMPRESSED_NAME=$(IM_COMPRESSED_BASENAME)$(VERSION) ifeq ($(USE_PIDGIN),1) COMPRESSED_NAME=$(IM_COMPRESSED_NAME) else +ifeq ($(USE_OBFSPROXY),1) +COMPRESSED_NAME=$(OBFS_COMPRESSED_NAME) +else COMPRESSED_NAME=$(DEFAULT_COMPRESSED_NAME) endif +endif
## Extensions to install by default DEFAULT_EXTENSIONS=torbutton.xpi @@ -270,6 +287,9 @@ install-binaries: # Vidalia cp -R $(VIDALIA) $(APPDIR)/Vidalia.app cp $(TOR) $(APPDIR) +ifeq ($(USE_OBFSPROXY),1) + cp $(OBFSPROXY) $(APPDIR) +endif
VIDALIA_PLUGINS=$(BUILD_DIR)/vidalia-plugins install-plugins: @@ -310,14 +330,23 @@ configure-apps: mkdir -p $(DEST)/Library/Vidalia/plugins #cp -r $(BUILD_DIR)/vidalia-plugins/tbb $(DEST)/Library/Vidalia/plugins mkdir -p $(DEST)/Library/Vidalia + +ifeq ($(USE_OBFSPROXY),1) + cp config/vidalia.conf.ff-obfsproxy-osx $(DEST)/Library/Vidalia/vidalia.conf +else ifeq ($(USE_SANDBOX),1) cp config/vidalia.conf.ff-osx-sandbox $(DEST)/Library/Vidalia/vidalia.conf else cp config/alpha/vidalia.conf.ff-osx $(DEST)/Library/Vidalia/vidalia.conf endif +endif
## Configure Tor +ifeq ($(USE_OBFSPROXY),1) + cp config/alpha/torrc-obfsproxy-osx $(DEST)/Library/Vidalia/torrc +else cp config/alpha/torrc-osx $(DEST)/Library/Vidalia/torrc +endif cp $(TOR_DIR)/src/config/geoip $(DEST)/Contents/Resources/Data/Tor/geoip chmod 700 $(DATADIR)/Tor
diff --git a/build-scripts/windows-alpha.mk b/build-scripts/windows-alpha.mk index 39dffe5..97ababf 100644 --- a/build-scripts/windows-alpha.mk +++ b/build-scripts/windows-alpha.mk @@ -81,7 +81,7 @@ build-qt: build-zlib build-openssl $(QT_DIR) VIDALIA_OPTS=-DCMAKE_EXE_LINKER_FLAGS="-static-libstdc++ -Wl,--nxcompat -Wl,--dynamicbase" -DWIN2K=1 -DQT_QMAKE_EXECUTABLE=$(QT_LIB)/qmake -DCMAKE_BUILD_TYPE=minsizerel -DMINGW_BINARY_DIR=$(MING) -DWIX_BINARY_DIR=$(WIX_LIB) # XXX Once we build qt on windows, we'll want to add build-qt here build-vidalia: PATH+=:$(QT_LIB) -build-vidalia: $(VIDALIA_DIR) $(WIX_LIB) +build-vidalia: $(VIDALIA_DIR) | $(WIX_LIB) -mkdir $(VIDALIA_DIR)/build cd $(VIDALIA_DIR)/build && cmake -G "MSYS Makefiles" $(VIDALIA_OPTS) .. cd $(VIDALIA_DIR)/build && make -j $(NUM_CORES) @@ -103,10 +103,12 @@ TOR_LDFLAGS="-L$(BUILT_DIR)/lib -L$(BUILT_DIR)/bin" TOR_OPTS=--enable-static-libevent --with-libevent-dir=$(BUILT_DIR)/lib --disable-asciidoc build-tor:PATH+=:$(BUILT_DIR)/bin
-build-obfsproxy: +build-obfsproxy: $(OBFSPROXY_DIR) +ifeq ($(USE_OBFSPROXY),1) cd $(OBFSPROXY_DIR) && libevent_CFLAGS=-I$(BUILT_DIR)/include libevent_LIBS="-L$(BUILT_DIR)/lib -levent" libcrypto_CFLAGS=-I$(BUILT_DIR)/include/openssl libcrypto_LIBS="-L$(BUILT_DIR)/lib -lssl -lcrypto" ./configure --prefix=$(BUILT_DIR) cd $(OBFSPROXY_DIR) && make cd $(OBFSPROXY_DIR) && make install +endif
build-firefox: $(FIREFOX_DIR) config/dot_mozconfig $(MOZBUILD_DIR) $(MOZBUILD_DIR)/start-msvc$(MSVC_VER).bat | $(PYTHON) $(PYMAKE_DIR) cp config/dot_mozconfig $(FIREFOX_DIR)/mozconfig @@ -121,7 +123,7 @@ copy-firefox: cp "/c/Program Files (x86)/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.CRT/"msvc*90.dll $(FIREFOX)/App/Firefox cp -r $(FIREFOX_DIR)/obj-*/dist/firefox/* $(FIREFOX)/App/Firefox
-build-all-binaries: build-zlib build-openssl build-vidalia build-libevent build-tor build-firefox copy-firefox +build-all-binaries: build-zlib build-openssl build-vidalia build-libevent build-tor build-firefox copy-firefox build-obfsproxy echo "If we're here, we've done something right."
## Location of compiled libraries @@ -137,7 +139,11 @@ LIBEVENT=$(COMPILED_LIBS)
## Destination for the generic bundle +ifeq ($(USE_OBFSPROXY),1) +DEST="Generic Obfsproxy Bundle" +else DEST="Generic Bundle" +endif
## Name of the bundle NAME="Tor Browser" @@ -148,6 +154,7 @@ DISTDIR=tbbwin-alpha-dist ## Version and name of the compressed bundle (also used for source) VERSION=$(RELEASE_VER)-$(BUILD_NUM) DEFAULT_COMPRESSED_BASENAME=tor-browser-$(VERSION) +OBFS_COMPRESSED_BASENAME=tor-obfsproxy-browser-$(VERSION) IM_COMPRESSED_BASENAME=tor-im-browser-$(VERSION) DEFAULT_COMPRESSED_NAME=$(DEFAULT_COMPRESSED_BASENAME) IM_COMPRESSED_NAME=$(IM_COMPRESSED_BASENAME)$(VERSION) @@ -155,8 +162,12 @@ IM_COMPRESSED_NAME=$(IM_COMPRESSED_BASENAME)$(VERSION) ifeq ($(USE_PIDGIN),1) COMPRESSED_NAME=$(IM_COMPRESSED_NAME) else +ifeq ($(USE_OBFSPROXY),1) +COMPRESSED_NAME=$(OBFS_COMPRESSED_BASENAME) +else COMPRESSED_NAME=$(DEFAULT_COMPRESSED_NAME) endif +endif
## Extensions to install by default DEFAULT_EXTENSIONS=torbutton.xpi @@ -260,6 +271,9 @@ install-binaries: cp $(OPENSSL_LIB)/libeay32.dll $(APPDIR) cp $(VIDALIA)/build/src/vidalia/vidalia.exe $(APPDIR) cp $(TOR)/src/or/tor.exe $(APPDIR) +ifeq ($(USE_OBFSPROXY),1) + cp $(OBFSPROXY_DIR)/obfsproxy.exe $(APPDIR) +endif
install-plugins: mkdir -p $(DATADIR)/Vidalia/plugins @@ -280,6 +294,10 @@ install-docs: cp $(MING)/../msys/1.0/share/doc/MSYS/COPYING $(DOCSDIR)/MinGW cp ../changelog.windows-2.3 $(DOCSDIR)/changelog cp ../README.WIN-2.3 $(DOCSDIR)/README-TorBrowserBundle +ifeq ($(USE_OBFSPROXY),1) + mkdir -p $(DOCSDIR)/Obfsproxy + cp $(OBFSPROXY_DIR)/LICENSE $(DOCSDIR)/Obfsproxy +endif
## Copy over FirefoxPortable install-firefoxportable: @@ -319,10 +337,18 @@ endif ifeq ($(USE_PIDGIN),1) cp config/alpha/vidalia.conf.ff+pidgin $(DEST)/Data/Vidalia/vidalia.conf else +ifeq ($(USE_OBFSPROXY),1) + cp config/alpha/vidalia.conf.ff-obfsproxy $(DEST)/Data/Vidalia/vidalia.conf +else cp config/alpha/vidalia.conf.ff $(DEST)/Data/Vidalia/vidalia.conf endif +endif ## Configure Tor +ifeq ($(USE_OBFSPROXY),1) + cp config/alpha/torrc-obfsproxy $(DEST)/Data/Tor/torrc +else cp config/alpha/torrc $(DEST)/Data/Tor/torrc +endif cp $(TOR)/src/config/geoip $(DEST)/Data/Tor
launcher: